Display List Control Stream Grouping for Tile-Based 3D Graphics

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improverendering coverageVSAvoidmemory bandwidth usage
Core Design Contradiction:
ReliabilityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

2Loss of energy

If control stream data is grouped by macro tile, then memory bandwidth usage is reduced, but data structure complexity increases

Engineering Contradiction:
Improvememory bandwidth usageVSAvoiddata structure
Core Design Contradiction:
Loss of energyVSDevice complexity

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.

Inventive Principle:
Principle #7Nested doll (Nesting)

3Loss of substance

If primitive blocks are grouped by macro tile bounding box, then control data redundancy is reduced, but processing complexity increases

Engineering Contradiction:
Improvecontrol data redundancyVSAvoidprocessing logic
Core Design Contradiction:
Loss of substanceVSDevice complexity

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.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2380139B1Display list control stream grouping in tile based 3D computer graphics system
Publication Date: 2017.11.15 IMAGINATION TECH LTD
  • EP2380139B1 patent drawingFigure 1~2
  • EP2380139B1 patent drawingFigure 3
  • EP2380139B1 patent drawingFigure 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.