Graphics Processor Pre-Pass Visibility Culling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems suffer from 'overdraw' due to processing primitives sequentially and not in perfect front-to-back order, leading to redundant rendering operations, reduced frame rates, and increased memory bandwidth requirements.
Innovation Solution
A novel 'pre-pass' operation is introduced, where primitives are processed into sets of fragments to determine visibility information, stored in a set of primitive identifying information. This information is used in a second pass to control further processing and cull invisible fragments.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially without front-to-back ordering, then processing flexibility is maintained, but overdraw increases and rendering performance decreases
Solution Approach 1:
The patent applies preliminary action by performing a pre-pass operation before the main rendering pass to determine visibility information for all primitives. This pre-pass processes primitives to identify which fragments are visible and which are occluded, storing this information in a visibility buffer. By performing this analysis beforehand, the system can then cull invisible fragments during the main pass, eliminating redundant rendering operations and improving rendering performance without sacrificing processing flexibility.
2Productivity
If hidden surface removal is implemented to reduce overdraw, then rendering efficiency improves, but device complexity increases
Solution Approach 1:
The patent applies segmentation by dividing the rendering process into two distinct passes: a pre-pass for visibility determination and a main pass for actual rendering with culling. The pre-pass segments the work by separately analyzing primitive visibility and storing results in a visibility buffer, while the main pass uses this pre-computed information to cull invisible fragments. This segmentation reduces the complexity of implementing hidden surface removal by breaking down the complex task into manageable, sequential operations that can be efficiently processed by standard graphics hardware.
3Measurement precision
If visibility information is stored for each sampling position, then fragment culling precision improves, but memory bandwidth requirements increase
Solution Approach 1:
The patent applies local quality by storing visibility information at the sampling position level, where each sampling position has its own visibility status recorded in the visibility buffer. This allows the system to maintain high fragment culling precision by tracking which specific sample positions are covered by visible primitives. The local quality approach enables precise culling decisions for each fragment while the structured storage in the visibility buffer optimizes memory access patterns, reducing overall bandwidth requirements compared to alternative approaches.
Data Source
AI summary
When performing tile-based rendering a first, pre-pass operation in which primitives in a sequence of primitives for a tile are processed to determine visibility information for the sequence of primitives, the visibility information being usable to determine whether or not fragments for a primitive in the sequence of primitives should subsequently be processed further for the render output, is performed. Thereafter a second, main pass operation is performed in which the further processing of fragments for primitives that were processed during the first, pre-pass operation is controlled based on the determined visibility information for the sequence of primitives, such that for fragments for which the visibility information indicates that the fragments should not be processed further for the render output some or all of the processing during the second, main pass is omitted. The visibility information indicates which primitives should be rendered for which sampling positions of the render output.


