Early Depth Testing for Graphics Processing Overdraw
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to redundant rendering operations caused by processing primitives sequentially, leading to increased memory bandwidth requirements and reduced frame rates, especially in complex render outputs where overdraw occurs frequently.
Innovation Solution
Implementing a graphics processor with a rasteriser and renderer that perform early depth tests for primitives, using both patch and sampling position depth buffers to identify and discard occluded fragments, and selectively storing and restoring depth values to optimize processing and reduce storage requirements.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially without early depth testing, then all fragments are rendered, but redundant rendering operations increase memory bandwidth usage and reduce frame rates
Solution Approach 1:
The patent performs early depth testing on patches before generating fragments, allowing the system to identify and discard occluded areas in advance. This preliminary action prevents redundant fragment processing and reduces memory bandwidth consumption by avoiding the rendering of fragments that would be occluded by closer primitives.
2Measurement precision
If per-sample depth buffers are stored for all sampling positions, then accurate depth testing is achieved, but storage requirements increase
Solution Approach 1:
The patent divides the render output into patches and performs depth testing at the patch level rather than at every individual sample position. This segmentation allows the system to maintain depth information for patches while reducing the overall storage requirements compared to maintaining per-sample depth buffers for all positions.
Solution Approach 2:
The patent performs depth testing on patches even when not all sample positions within a patch will be rendered. This partial action ensures accurate depth testing for visible samples while accepting that some depth buffer entries may not be fully utilized, thereby balancing precision with storage efficiency.
3Adaptability or versatility
If rendering is stopped and resumed, then processing can be interrupted, but restoring depth buffers increases complexity
Solution Approach 1:
The patent extracts and stores only the necessary patch-level depth information when rendering is interrupted, rather than storing complete per-sample depth buffers. This extraction approach simplifies the restoration process by reducing the amount of data that needs to be saved and restored, thereby lowering system complexity while maintaining the ability to interrupt and resume rendering.
Data Source
AI summary
A graphics processor that performs early depth tests for primitives in respect of patches of a render output, and depth tests for sampling positions of the render output, maintains a per patch depth buffer that stores depth values for patches for use by the patch early depth test and a per sample depth buffer. When processing of a render output is stopped before the render output is finished, the per sample depth values in the per sample depth buffer are written to storage so that those values can be restored, but the per patch depth value information in the per patch depth buffer is discarded. Then, when processing of the render output is resumed, the per sample depth buffer values are loaded into a per sample depth buffer, and the loaded per sample depth buffer values are also used to restore the per patch depth buffer.


