Graphics Processor Visibility Pre-Pass for Overdraw Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems suffer from redundant rendering operations due to sequential processing of primitives, leading to reduced frame rates and increased memory bandwidth requirements, exacerbated by larger and more complex render outputs and programmable fragment shading, which existing hidden surface removal techniques fail to adequately address.
Innovation Solution
A two-pass approach is implemented, comprising a pre-pass operation for hidden surface removal followed by a main pass, where visibility information is used to control fragment processing based on visibility tests and maintain records of processing order dependencies, allowing efficient culling of invisible fragments and optimizing rendering operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially using traditional rendering methods, then the rendering pipeline can process all primitives, but redundant rendering operations occur causing reduced frame rates and increased memory bandwidth requirements
Solution Approach 1:
The patent applies preliminary action by performing a pre-pass rendering operation before the main rendering pass. In this pre-pass, all primitives are rasterized and depth information is stored in a depth buffer without completing the full rendering pipeline. This preliminary depth information collection enables the main pass to identify and skip invisible fragments, thereby reducing redundant rendering operations and improving frame rate while decreasing memory bandwidth usage.
2Productivity
If early hidden surface removal techniques are used, then some redundant processing is reduced, but they are less effective in complex scenes leading to continued overdraw
Solution Approach 1:
The patent segments the rendering process into two distinct passes: a pre-pass that collects depth information for all primitives, and a main pass that uses this information to selectively render only visible fragments. This segmentation enables more effective hidden surface removal in complex scenes by separating the depth information gathering phase from the actual rendering phase, allowing precise identification of visible fragments that would otherwise be culled incorrectly.
Solution Approach 2:
The patent implements feedback by using the depth buffer generated in the pre-pass to control fragment processing in the main pass. The depth information collected during the pre-pass serves as feedback that guides which fragments should be rendered and which can be skipped, creating a feedback loop that optimizes rendering efficiency based on the scene's depth structure.
Data Source
AI summary
A sequence of primitives to be rendered is processed using a first, pre-pass operation to determine “visibility” information for the sequence of primitives, that is then used in a second, main pass operation in which fragments for primitives that were processed during the first, pre-pass operation are subjected to a visibility test that uses the visibility information determined during the first, pre-pass operation, to determine whether a fragment for a primitive should be processed further in the second, main pass operation. When a fragment is, in the second, main pass operation, subjected to and passes a particular form of visibility test so as to be determined as needing to be processed further, a processing order dependency that would be indicated for the fragment in a record indicative of processing order dependencies for a sub-region of the render output to which the fragment relates is not enforced.


