GPU Tile Rendering Pipelines for Ordered Primitive Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing units (GPUs) face challenges in reducing latency, power consumption, and size while implementing tile-based rendering techniques, often requiring trade-offs between these factors.
Innovation Solution
A graphics processing unit (GPU) is configured to process primitives using a rendering space divided into tiles, featuring a geometry processing phase with parallel geometry pipelines and a tiling module that includes tiling front-end and back-end modules, allowing for efficient determination and ordering of tile-primitive associations, and a dynamic allocation scheme for tile pipelines.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If tile-based rendering techniques are implemented in GPU, then rendering efficiency is improved, but device complexity increases
Solution Approach 1:
The rendering space is divided into multiple tiles, and the geometry processing logic is segmented into multiple geometry pipelines that can process different tiles in parallel. Each pipeline independently handles tiling operations for its assigned tiles, enabling concurrent processing and improving rendering efficiency while distributing complexity across multiple simpler units
Solution Approach 2:
The system dynamically allocates tiles to geometry pipelines based on workload characteristics. The tiling module can adaptively determine which geometry pipeline processes which tiles, allowing the system to optimize performance for different rendering scenarios and primitive distributions without requiring a fixed complex architecture
2Productivity
If multiple geometry pipelines are used for parallel processing, then productivity is improved, but loss of time due to coordination overhead increases
Solution Approach 1:
The system performs preliminary tiling operations within each geometry pipeline before final control stream generation. By determining tile-primitive associations early in the geometry processing phase and caching intermediate results, the system reduces the coordination overhead required during fragment processing, allowing parallel pipelines to work independently with minimal synchronization
Solution Approach 2:
The tiling module acts as an intermediary that receives tile-primitive indications from multiple geometry pipelines and consolidates them into unified control streams. This mediator coordinates the output from parallel pipelines efficiently, managing the aggregation and ordering of primitive data without requiring complex direct communication between pipelines
3Measurement precision
If tiling module determines tile-primitive associations for all tiles, then measurement precision is improved, but use of energy increases
Solution Approach 1:
Each geometry pipeline performs tiling operations with high precision for its assigned tiles, ensuring accurate tile-primitive associations locally. The system maintains measurement precision by dedicating sufficient computational resources to each pipeline's specific tile set, while the overall energy consumption is managed by distributing work across multiple pipelines that can operate independently and efficiently
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A graphics processing unit (GPU) and method are described herein for processing a sequence of primitives using a rendering space which is sub-divided into a plurality of tiles. The GPU comprises geometry processing logic which comprises a plurality of geometry pipelines and a tiling back-end module. The geometry pipelines are configured to receive batches of primitives of the sequence of primitives. Each of the geometry pipelines comprises: one or more geometry processing modules configured to perform one or more geometry processing functions on the primitives of a batch of primitives received at the geometry pipeline; and a tiling front-end module configured to determine, for each tile of a set of one or more tiles, one or more tile-primitive indications indicating which of the primitives of the batch of primitives received at the geometry pipeline are present within that tile. The tiling back-end module is configured to: receive the tile-primitive indications determined by the plurality of geometry pipelines; and for each of the tiles for which a tile-primitive indication is received, include indications of the primitives that are present within that tile in a control stream for that tile in an order in accordance with an order of the primitives within the sequence of primitives.