Concurrent Visibility and Geometry Processing for Tiled Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional graphics processing techniques incur inefficiencies and duplicate data processing due to the sequential execution of visibility passes and vertex shading across tiles, leading to increased frame latency and unnecessary work, especially when primitives do not overlap or are rendered out of order.
Innovation Solution
The method involves concurrently executing a visibility pass and front-end geometry processing for a tile at one hardware block while performing back-end processing at another, allowing for simultaneous execution of visibility determination and primitive location processing, thereby reducing redundant work and latency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Loss of time
If visibility pass and vertex shading are executed sequentially across tiles, then processing order is maintained, but frame latency increases and duplicate data processing occurs
Solution Approach 1:
The visibility pass is executed in advance for all tiles before vertex shading begins, so that primitive location information is predetermined and available when geometry processing starts. This preliminary execution of the visibility pass eliminates the need for sequential coordination between visibility checks and shading across tiles, reducing frame latency while maintaining processing correctness.
Solution Approach 2:
The rendering process is divided into distinct segments: a global visibility pass that determines primitive locations across all tiles, followed by tile-by-tile geometry processing and back-end processing. This segmentation allows each phase to be optimized independently - the visibility pass processes all primitives globally, while subsequent processing can proceed in parallel across tiles without duplicate visibility checks.
2Productivity
If visibility pass is executed for each tile before geometry processing, then processing accuracy is maintained, but redundant work increases and efficiency decreases
Solution Approach 1:
The visibility pass is merged into a single global execution that processes all primitives for all tiles simultaneously, rather than executing separate visibility passes for each tile. This merging eliminates redundant visibility checks and primitive location determinations, reducing duplicate data processing while maintaining the accuracy of primitive-to-tile assignment. The combined visibility pass produces a unified set of location information that serves all subsequent tile processing.
3Reliability
If primitives are rendered in order specified by application, then rendering correctness is ensured, but data reuse is limited and cache efficiency decreases
Solution Approach 1:
The visibility pass preliminarily determines the correct tile locations for all primitives in the order specified by the application, storing this location information before geometry processing begins. This preliminary determination allows the rendering system to maintain application-specified render order for correctness while enabling optimized data access patterns during actual geometry processing, as the location information is already available to guide data reuse and cache utilization.
Data Source
AI summary
A method of tiled rendering of an image for display is provided which comprises receiving an image comprising one or more three dimensional (3D) objects and executing a visibility pass for determining locations of primitives of the image. The method also comprises executing, concurrently with the executing of the visibility pass, front end geometry processing of one of the primitives determined, from the visibility pass, to be in a first one of a plurality of tiles of the image and executing, concurrently with the executing of the visibility pass, back end processing of the one primitive in the first tile.


