Fine-Grained Rendering Predication via IGPU-DGPU Bitstream Culling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current predicated rendering techniques are coarse and inefficient, leading to unnecessary overhead and reduced performance due to the lack of fine-grained culling, especially when dealing with complex graphics objects, as they either render entire objects or fail to render visible parts due to coarse occlusion queries.
Innovation Solution
A system and method for fine-grained rendering predication using an integrated graphics processing unit (IGPU) to process batches of triangles, determine culling, and write bits into a bitstream, allowing a discrete graphics processing unit (DGPU) to render only visible batches through a second pipeline, thereby optimizing processing efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If predicated rendering is used to determine visibility of 3D objects, then rendering efficiency is improved by avoiding unnecessary rendering, but the granularity of culling is too coarse causing entire objects to be rendered even when only small portions are visible
Solution Approach 1:
The patent divides a 3D object into multiple batches of primitives (e.g., batches of triangles), where each batch can be independently culled and rendered. This segmentation allows fine-grained control over which portions of an object are rendered, resolving the contradiction by enabling precise visibility determination at the batch level rather than object level. The IGPU processes each batch through a rendering pipeline and writes culling results to a bitstream, allowing the DGPU to render only visible batches.
2Measurement precision
If sub-bounding volumes are used to achieve finer-grained culling, then culling precision is improved, but additional overhead is required to generate and render each sub-bounding volume decreasing overall performance
Solution Approach 1:
The patent extracts the culling function from the main rendering path by using an integrated graphics processing unit (IGPU) dedicated to processing batches of primitives and determining visibility. The IGPU writes culling results to a bitstream that is then read by a discrete graphics processing unit (DGPU) for rendering. This extraction eliminates the overhead of generating and rendering sub-bounding volumes while maintaining fine-grained culling precision at the batch level.
3Productivity
If occlusion queries are performed to determine object visibility, then rendering of invisible objects is avoided, but the GPU must transmit test results back to the CPU creating workflow bubbles that reduce processing efficiency
Solution Approach 1:
The patent introduces a bitstream as an intermediary data structure between the IGPU and DGPU for transmitting culling results. The IGPU writes culling decisions to the bitstream, and the DGPU reads from it to determine which batches to render. This intermediary mechanism eliminates the need for GPU-to-CPU communication and workflow synchronization, allowing continuous processing without bubbles while maintaining rendering optimization through precise culling.
Data Source
AI summary
One embodiment of the present invention sets forth a technique to perform fine-grained rendering predication using an IGPU and a DGPU. A graphics driver divides a 3D object into batches of triangles. The IGPU processes each batch of triangles through a modified rendering pipeline to determine if the batch is culled. The IGPU writes bits into a bitstream corresponding to the visibility of the batches. The DGPU reads bits from the bitstream and performs full-blown rendering, including shading, but only on the batches of triangles whose bit indicates that the batch is visible. Advantageously, this approach to rendering predication provides fine-grained culling without adding unnecessary overhead, thereby optimizing both hardware resources and performance.


