Early Depth Testing Using Predicted Values and Update Indications
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face limitations in performing early depth testing due to the potential for stored depth values to be updated by other graphics fragments, which can prevent the determination of obscuration before the rendering stage, leading to unnecessary processing.
Innovation Solution
Incorporating depth testing circuitry that stores update indications for depth values, allowing the modification of depth comparison functions to account for pending updates, enabling early depth testing even when stored depth values are not final, and using a 2-bit update indication to efficiently manage storage and processing.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If early depth testing is performed before the rendering stage, then processing efficiency is improved by eliminating obscured fragments earlier, but accuracy deteriorates because stored depth values may be updated by other fragments, leading to potentially incorrect depth comparisons
Solution Approach 1:
The patent performs depth testing before the rendering stage by using predicted depth values from the depth buffer as if they were final. This preliminary depth test allows early elimination of obviously obscured fragments, improving processing efficiency while accepting that some fragments may need re-evaluation later if depth values change during rendering.
Solution Approach 2:
The patent changes the state of depth values by introducing a 'predicted' vs 'final' depth value distinction. During early depth testing, the system uses predicted depth values (0x8000 bias applied) to make depth comparisons, then later adjusts to final depth values after rendering completes, allowing the same depth buffer to serve multiple purposes at different pipeline stages.
2Reliability
If depth testing is performed after the rendering stage, then accuracy is improved because all depth information is final and complete, but productivity deteriorates because no fragments can be eliminated before expensive rendering operations
Solution Approach 1:
The patent performs a preliminary depth test using predicted depth values before rendering to eliminate obviously obscured fragments early in the pipeline. This preliminary action filters out fragments that will definitely be obscured, reducing the workload for subsequent rendering and final depth testing stages.
Solution Approach 2:
The patent performs an incomplete depth test early using predicted values that may not reflect final depth relationships. This partial depth testing is sufficient to eliminate clearly obscured fragments but intentionally accepts that some fragments requiring re-evaluation will pass through to later stages, balancing early elimination with overall correctness.
3Productivity
If the depth buffer stores both depth values and update indications, then early depth testing capability is improved, but device complexity increases due to additional storage requirements
Solution Approach 1:
The patent merges two separate data structures into one: the depth buffer now stores both depth values and update indications (validity flags) in the same memory location. This combining eliminates the need for separate validation bitmaps or auxiliary structures, reducing overall memory bandwidth requirements and simplifying the memory interface while enabling early depth testing with predicted values.
Data Source
AI summary
An apparatus for processing graphics primitives for display includes rasterization, depth testing, and rendering circuitry. The depth testing circuitry determines if a selected graphics fragment would be obscured when displayed by comparing a depth comparison function and a depth value associated with the selected graphics fragment with a stored depth value. The depth testing circuitry suppresses rendering operations for the fragment if the selected fragment would be obscured. An update indication shows a possible change direction due to the updating for a stored depth value which depends on a received depth comparison function. The depth testing for the selected fragment is performed using the possible change direction shown by the update indication to modify the depth comparison function to allow for updating of the stored depth value by the rendering operations.


