Coarse Visibility Compression for Low-Latency Tile Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
The graphics processing system experiences delays due to waiting for compressed visibility data to be made available for rendering, which lowers the efficiency of the graphics pipeline.
Innovation Solution
The system operates in a pipeline delay reduction mode, where it keeps a visible primitive and draw call count, and renders a predetermined number of primitives using uncompressed visibility data while the visibility pass is ongoing, switching to standard mode when a threshold is reached.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If the graphics processing system waits for compressed visibility data to be flushed from buffers before rendering, then data availability and reliability are improved, but pipeline delays increase and productivity decreases
Solution Approach 1:
The system performs preliminary actions by rendering primitives using uncompressed visibility data before the compressed visibility data is fully flushed from buffers. This allows the rendering pipeline to proceed in advance without waiting for data compression to complete, thereby reducing pipeline delays while maintaining data availability through the use of uncompressed data as a fallback.
Solution Approach 2:
The system dynamically switches between two rendering modes: standard mode (waiting for compressed data) and pipeline delay reduction mode (rendering with uncompressed data). This dynamic adaptation allows the system to optimize between data reliability and productivity based on real-time conditions, switching modes when visibility data counts exceed thresholds.
2Productivity
If the system uses uncompressed visibility data for rendering during visibility pass, then pipeline delays are reduced and productivity increases, but data compression benefits are lost
Solution Approach 1:
The system applies partial action by using uncompressed visibility data only for rendering when certain conditions are met (visibility data counts exceed thresholds), rather than always using compressed data. This partial application of uncompressed data allows the system to reduce pipeline delays in specific scenarios while maintaining compression benefits in other scenarios, achieving a balance between productivity and compression efficiency.
3Duration of action of moving object
If the graphics processing system divides the scene into multiple tiles and performs visibility pass, then rendering time is reduced, but pipeline delays increase due to data compression
Solution Approach 1:
The system segments the rendering process into two independent parts: visibility data generation (compression) and primitive rendering. By dividing the scene into tiles and processing visibility data independently, the system allows rendering to proceed in parallel with compression, reducing the overall rendering time while minimizing pipeline delays through the pipeline delay reduction mode.
Data Source
AI summary
A processing system divides an image to be rendered into one or more tiles and performs a visibility pass on the primitives of the image. During the visibility pass, the processing system generates visibility data for each primitive of a draw call of the image based on a visible primitive count and a visible draw call count. In response to a primitive of the draw call being visible in the first tile, the processing system increments the visible primitive count and generates visibility data indicating that the primitives of the draw call are to be rendered using draw call index data stored in an on-chip memory. If the primitive is the first visible primitive of the draw call, the processing system further increments the visible draw call count. Additionally, the processing system renders the primitives of the draw call using the draw call index data stored in the on-chip memory.


