Tile-Based GPU Rendering with Per-Tile Redundancy Detection
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graphics processing systems face inefficiencies due to redundant rendering operations, particularly in tile-based systems, where the same rendered values are produced multiple times for unchanged image portions, leading to unnecessary processing.
Innovation Solution
A method and system for a graphics processing unit that implements a tile-based graphics pipeline, where it identifies and avoids redundant renders by comparing per-tile vertex shader and render data with previous renders, using pre- and post-geometry phase data to determine if a render can be skipped.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If the graphics processing system performs rendering operations for each tile in the rendering space, then the rendering output is generated, but redundant processing occurs when the same rendered values are produced multiple times for unchanged image portions
Solution Approach 1:
The system performs preliminary comparison of vertex shader data and render data with previous render results before executing the full rendering pipeline. This preliminary action identifies tiles that have not changed, allowing the system to skip redundant rendering operations and directly use previous results, thereby reducing power consumption while maintaining rendering efficiency
2Loss of energy
If the graphics processing system compares render data with previous renders to detect redundant renders, then redundant processing is reduced, but additional processing steps and data comparison operations are introduced
Solution Approach 1:
The system extracts and compares only specific critical data elements (vertex shader data and render data) from the full rendering pipeline rather than analyzing all rendering operations. This selective extraction approach enables redundancy detection with minimal additional processing complexity, as it focuses only on the key parameters that determine whether a tile's visual output will change
3Volume of stationary object
If the graphics processing system uses tile-based rendering with on-chip memory storage, then the amount of on-chip memory is reduced, but redundant rendering operations increase processing delays
Solution Approach 1:
The system implements a feedback mechanism where render results from previous frames are stored and compared with current render data. This feedback loop enables the system to quickly identify unchanged tiles and skip their rendering, reducing processing delays despite the tile-based architecture's inherent sequential processing characteristics
Data Source
Figure 1
Figure 2
Figure 3
AI summary
A method and system are disclosed for performing a render using a graphics processing unit that implements a tile-based graphics pipeline where a rendering space is sub-divided into tiles. Geometry data for the render is received, the geometry data including primitives associated with one or more vertex shader programs. The geometry data is processed using the vertex shader programs to generate processed primitives, and it is determined which tile each of the processed primitives are located in. For at least one selected tile there is stored i) a representation of per-tile vertex shader data identifying the one or more vertex shader programs used to generate the processed primitives in that tile, and ii) a representation of per-tile render data that can be used when rendering the processed primitives in that tile in subsequent stages of the graphics pipeline. it is determined whether the output of a previous render for the selected tile(s) can be used as an output for the render by comparing the per-tile vertex shader data of that tile with that of the previous render before comparing the per-tile render data of that tile with that of the previous render.