Hierarchical Tiling for Graphics Rendering Control List Optimization
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tile-based graphics processing systems face inefficiencies due to the large number of control lists required for rendering, leading to increased memory write bandwidth and memory footprint, especially when dealing with large primitives that cover many tiles.
Innovation Solution
The system introduces hierarchical tiling by subdividing the rendering space into multiple levels of regions, allowing primitives to be added to control lists based on their spatial coverage. Large primitives that cover a significant portion of a macro tile are added to the macro tile control list, reducing the need for repeated data in tile control lists.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Quantity of substance
If traditional tile-based rendering is used where each tile has its own control list, then rendering coverage is maintained, but memory write bandwidth and memory footprint increase significantly due to data redundancy
Solution Approach 1:
The rendering space is segmented into macro-tiles, with each macro-tile having a single control list that covers multiple underlying tiles. This segmentation reduces the number of control lists from one per tile to one per macro-tile, significantly reducing memory footprint while maintaining rendering coverage through the hierarchical structure.
Solution Approach 2:
Multiple tile control lists are merged into a single macro-tile control list. The control list contains primitive entries that are valid across multiple tiles within the macro-tile, eliminating data redundancy. When a primitive covers multiple tiles, its control data is stored once in the macro-tile control list rather than being repeated in each individual tile control list.
2Quantity of substance
If control lists are optimized to reduce memory footprint, then memory bandwidth is reduced, but processing complexity increases due to hierarchical structure
Solution Approach 1:
A hierarchical dimension is introduced with macro-tiles at the upper level and individual tiles at the lower level. The control lists operate at the macro-tile level, adding a new organizational dimension that reduces data redundancy without significantly increasing processing complexity, as the hierarchy naturally maps to the existing tile-based rendering pipeline.
Solution Approach 2:
The macro-tile control list serves multiple functions: it acts as a unified control list for all tiles within the macro-tile, reduces memory bandwidth requirements, and maintains compatibility with existing tile-based rendering operations. This multi-functionality achieves optimization without proportionally increasing processing complexity.
3Measurement precision
If large primitives are added to every tile control list they cover, then rendering accuracy is maintained, but memory write bandwidth increases due to repeated data
Solution Approach 1:
The redundant control data for large primitives is extracted from individual tile control lists and consolidated into the macro-tile control list. Each primitive's control data is stored once at the macro-tile level, eliminating repeated writes to multiple tile control lists while maintaining rendering accuracy through the hierarchical validation process.
Solution Approach 2:
The control list is constructed at the macro-tile level before individual tile rendering begins. Large primitives are identified and added to the macro-tile control list in advance, with their coverage information pre-calculated. This preliminary action prevents the need to repeatedly write primitive data to each tile control list during the rendering process, reducing memory bandwidth usage.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Methods and graphics processing systems are provided which render primitives using a rendering space which is subdivided into a plurality of regions. Geometry processing logic is configured to perform a geometry processing phase which comprises: determining, for each of a plurality of primitives which are present in a region, whether the primitive totally covers the region; and storing data for the primitives which are present in the region, wherein the stored data comprises, for each of the primitives which are determined to totally cover the region, data to indicate total coverage of the region. Rendering logic is configured to perform a rendering phase for rendering primitives within the region. The rendering phase comprises: retrieving the stored data for the primitives which are present in the region; selectively processing the primitives which are present in the region based on the retrieved data to determine which sample points within the region are covered by the primitives, wherein if the retrieved data includes data which indicates total coverage of the region for a particular primitive then said processing to determine which sample points within the region are covered by the particular primitive is skipped; and determining rendered values at the sample points within the region based on the primitives which cover the respective sample points.