Dual Depth Buffering for Unresolved Fragment Processing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Deferred rendering graphics processing systems face inefficiencies due to unresolved fragments, such as punch through objects, which cause unnecessary processing, stalls, and recalculations of depth values.
Innovation Solution
Implementing a graphics processing system with two depth buffers: a primary depth buffer for resolved fragments and a secondary depth buffer for unresolved fragments, allowing for efficient storage and management of depth values during the hidden surface removal stage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single depth buffer is used to store depth values for all fragments, then the device complexity is reduced, but unnecessary processing occurs when opaque objects overwrite punch through fragments and recalculations of depth values are required
Solution Approach 1:
The patent divides the single depth buffer into two separate depth buffers: a first depth buffer for storing depth values of resolved fragments and a second depth buffer for storing depth values of unresolved fragments. This segmentation allows the system to track the resolution status of each fragment, enabling opaque objects to overwrite punch through fragments directly in the second depth buffer without triggering unnecessary recalculations, thereby improving processing efficiency while maintaining manageable complexity through structured organization.
2Productivity
If punch through fragments are processed before resolving their presence, then the rendering pipeline continues without stalls, but depth values must be recalculated after presence is resolved
Solution Approach 1:
The patent performs preliminary storage of depth values for punch through fragments in the second depth buffer before their presence is fully resolved. This preliminary action allows the rendering pipeline to continue processing subsequent fragments without stalling, while the depth values are already in place and do not require recalculation after presence resolution, thus eliminating the time loss associated with post-resolution recalculations.
3Reliability
If opaque fragments wait for punch through fragment resolution before processing, then depth test accuracy is maintained, but processing stalls occur reducing overall efficiency
Solution Approach 1:
The patent introduces the second depth buffer as an intermediary structure that temporarily holds depth values of unresolved punch through fragments. This intermediary allows opaque fragments to be processed against the stored depth values without waiting for presence resolution, maintaining depth test accuracy while preventing processing stalls. The intermediary buffer decouples the depth testing operation from the presence resolution operation, enabling continuous processing throughput.
Data Source
AI summary
A graphics processing system performs hidden surface removal and texturing/shading on fragments of primitives. The system includes a primary depth buffer (PDB) for storing depth values of resolved fragments, and a secondary depth buffer (SDB) for storing depth values of unresolved fragments. Incoming fragments are depth tested against depth values from either the PDB or the SDB. When a fragment passes a depth test, its depth value is stored in the PDB if it is a resolved fragment (e.g. if it is opaque or translucent), and its depth value is stored in the SDB if it is an unresolved fragment (e.g. if it is a punch through fragment). This provides more opportunities for subsequent opaque objects to overwrite punch through fragments which passed a depth test, thereby reducing unnecessary processing and time which may be spent on fragments which ultimately will not contribute to the final rendered image.


