Display List Control Stream Grouping for Tile-Based 3D Graphics
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Tile-based rendering systems in 3D computer graphics face performance bottlenecks due to the significant amount of control data required for large triangles that cover multiple tiles, leading to increased memory bandwidth usage and reduced performance.
Innovation Solution
Implementing a method to organize the display list control stream into tile groups, allowing control stream data to be shared among tiles within a group, and using a control pointer array to optimize the processing of control stream data, thereby reducing the internal parameter memory bandwidth and improving performance.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If control stream data is written to every tile that a primitive covers, then complete rendering coverage is achieved, but memory bandwidth usage increases significantly
Solution Approach 1:
The patent divides the screen into macro tiles, each containing multiple tiles. Control stream data is written to the macro tile level rather than individual tiles. A bounding box determination identifies which macro tiles are covered by each primitive, and control data is written once per macro tile. This segmentation reduces redundant writes while maintaining complete rendering coverage through subsequent tile-level processing.
2Loss of energy
If control stream data is grouped by macro tile, then memory bandwidth usage is reduced, but data structure complexity increases
Solution Approach 1:
The patent implements a nested data structure where tiles are nested within macro tiles. The control stream data structure contains macro tile headers that reference arrays of tile headers, which in turn reference primitive blocks. This hierarchical nesting organizes the complexity systematically, allowing efficient memory access patterns while maintaining the reduced bandwidth benefits of macro tile grouping.
3Loss of substance
If primitive blocks are grouped by macro tile bounding box, then control data redundancy is reduced, but processing complexity increases
Solution Approach 1:
The patent performs preliminary bounding box determination during the tiling phase, before control stream data is written. The Macro Tiling Engine calculates which macro tiles are covered by each primitive block and pre-organizes the control data accordingly. This preliminary action eliminates the need for redundant control data writes while the processing complexity is confined to the initial organization phase, not the rendering phase.
Data Source
Figure 1~2
Figure 3
Figure 4
AI summary
A method and apparatus are provided for rendering a 3 dimensional computer graphics image. The image is subdivided into a plurality of rectangular areas and primitives which may be visible in the image are assigned to respective ones of a plurality of primitive blocks. A determination is made as to which primitive blocks contain primitives which intersect each rectangular area. The rectangular areas are then grouped into a plurality of fixed size groups and control stream data for each of the fixed size groups is derived, this control stream data including data which determines which primitive blocks are required to render the rectangular areas in each respective first fixed size group. The control stream data is then used to render the image for display.