Multicore GPU Geometry Processing With Dependency-Aware Overlap

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The geometry processing stage in tile-based deferred rendering is often the rate-limiting step, especially in complex scenes, and cannot be easily parallelized across multiple cores, leading to scalability issues and potential errors when commands are processed out of sequence.

Innovation Solution

A multicore GPU architecture with multiple cores that analyze command dependencies using a circular command buffer and read offsets to enable overlapping execution of geometry commands, allowing independent commands to be processed concurrently without requiring significant hardware changes or modifications to the client driver.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If geometry processing is performed sequentially on a single core, then execution order is maintained and correctness is ensured, but processing speed is limited and scalability is poor

Engineering Contradiction:
Improvegeometry processing speedVSAvoidparallel execution control complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent segments the geometry command stream into independent executable units by introducing read offsets for each core. Each core maintains its own read offset pointer in the command buffer, allowing independent progression through the command stream. This segmentation enables multiple cores to process different portions of geometry commands simultaneously while maintaining the ability to track and enforce execution dependencies through the read offset mechanism.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple cores process geometry commands in parallel, then processing throughput increases, but execution order may be violated causing rendering errors

Engineering Contradiction:
Improverendering throughputVSAvoidcommand execution correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements a feedback mechanism where each core continuously monitors the command buffer and checks for dependency indicators before executing geometry commands. When a dependency indicator is detected, the core receives feedback to pause execution and wait for the dependent command to complete. This feedback loop ensures that parallel execution does not violate the required execution order, maintaining rendering correctness while still allowing concurrent processing of independent commands.

Inventive Principle:
Principle #23Feedback

3Productivity

If the geometry processing stage is optimized for speed, then rendering performance improves, but the stage becomes the rate-limiting step due to inability to parallelize

Engineering Contradiction:
Improverendering efficiencyVSAvoidparallel processing capability
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent introduces dynamic adaptability to the geometry processing stage by enabling cores to dynamically adjust their execution behavior based on real-time conditions. Each core can dynamically read and interpret dependency indicators in the command buffer, dynamically pause or resume execution, and dynamically coordinate with other cores. This dynamic behavior allows the system to automatically exploit parallelism when available while maintaining sequential correctness when required, making the geometry stage adaptable to different scene complexities and workloads.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP4148571B1Overlapped geometry processing in a multicore GPU
Publication Date: 2025.10.29 IMAGINATION TECH LTD
  • EP4148571B1 patent drawingFigure 1~2
  • EP4148571B1 patent drawingFigure 3
  • EP4148571B1 patent drawingFigure 4

AI summary

A multicore graphics processing unit (GPU) and a method of operating a GPU are provided. The GPU comprises at least a first core and a second core. A client driver writes a series of geometry commands in the command buffer, along with associated dependency data that indicates the extent to which correct execution of the geometry commands is dependent on the completion of execution of other commands. The first core reads a first geometry command from the command buffer and executes it. The second core reads a second geometry command from the command buffer. The second core determines that the second geometry command is not dependent on the results of the first geometry command, and, in response, executes the second geometry command.