Fine-Grained Rendering Predication via IGPU-DGPU Bitstream Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improverendering efficiencyVSAvoidculling granularity
Core Design Contradiction:
ProductivityVSMeasurement precision

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.

Inventive Principle:
Principle #1Segmentation

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

Engineering Contradiction:
Improveculling precisionVSAvoidoverall performance
Core Design Contradiction:
Measurement precisionVSProductivity

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.

Inventive Principle:
Principle #2Taking out (Extraction)

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

Engineering Contradiction:
Improverendering optimizationVSAvoidworkflow efficiency
Core Design Contradiction:
ProductivityVSLoss of time

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.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8102393B1Cull streams for fine-grained rendering predication
Publication Date: 2012.01.24 NVIDIA CORP
  • US8102393B1 patent drawing
  • US8102393B1 patent drawing
  • US8102393B1 patent drawing

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.