Fixed Length Control Stream for Graphics Tiling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tile-based rendering (TBR) graphics processing systems face inefficiencies in memory bandwidth and data storage due to the variable length of primitive block entries in the control stream, leading to increased processing time and memory usage.

Innovation Solution

The proposed solution involves storing variable length control data separately from the control stream, with each primitive block entry having a fixed length. This includes a valid tile mask and a data pointer identifying the location of the corresponding control data block, allowing for efficient storage and retrieval of relevant data.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If variable length control data is stored in the control stream, then all necessary information is included in a single structure, but the control stream cannot be packed densely and memory bandwidth increases

Engineering Contradiction:
Improvememory usageVSAvoidcontrol stream structure
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The control data is segmented into two separate components: a fixed-length control stream containing only essential information (valid tile mask and data pointer), and a separate variable-length control data block containing detailed primitive information. This segmentation allows the control stream to be packed densely while detailed data is stored separately only when needed.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The variable-length control data is extracted from the control stream and stored separately in memory. The control stream retains only the fixed-length entries with valid tile masks and data pointers, eliminating the variable length component that prevented dense packing and increased memory bandwidth requirements.

Inventive Principle:
Principle #2Taking out (Extraction)

2Productivity

If variable length control data is stored in the control stream, then complete primitive information is available, but processing time increases due to inability to skip invalid entries efficiently

Engineering Contradiction:
Improverendering speedVSAvoidprocessing time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The variable-length control data is extracted from the control stream, allowing the rasterization logic to process only the fixed-length control stream entries. This enables efficient skipping of invalid entries through the compact fixed-length structure while detailed primitive information is retrieved only when needed from the separate control data blocks.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The control stream is pre-processed to include only valid tile information and data pointers in a compact format. This preliminary organization allows the rasterization logic to quickly identify and skip invalid entries without processing unnecessary variable-length data, significantly reducing processing time.

Inventive Principle:
Principle #10Preliminary action

3Quantity of substance

If fixed length control stream entries are used, then memory packing density increases, but variable length control data must be stored separately

Engineering Contradiction:
Improvememory bandwidthVSAvoiddata storage structure
Core Design Contradiction:
Quantity of substanceVSDevice complexity

Solution Approach 1:

The control data structure is segmented into a fixed-length control stream for memory efficiency and a separate variable-length control data block for detailed information storage. This segmentation resolves the contradiction by allowing compact memory packing while maintaining access to complete primitive information through the separate data block.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A data pointer acts as an intermediary element in the fixed-length control stream entry, providing a reference to the separate control data block. This intermediary allows the fixed-length control stream to maintain memory packing density while enabling access to variable-length control data through the pointer reference.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS20250166276A1Data Structures, Methods and Tiling Engines for Storing Tiling Information in a Graphics Processing System
Publication Date: 2025.05.22 IMAGINATION TECH LTD
  • US20250166276A1 patent drawing
  • US20250166276A1 patent drawing
  • US20250166276A1 patent drawing

AI summary

A control stream decoder decodes a control stream for a tile group comprising at least two tiles of a rendering space. A primitive block entry analyser received a primitive block entry of the control stream and identifies a location in memory of a control data block for a corresponding primitive block. For the received primitive block entry, in response to determining that a current tile is a valid tile for the corresponding primitive block, the control data block for the corresponding primitive block is retrieved from the identified location in memory. An address of the corresponding primitive block in memory is identified from the control data block and primitives of that primitive block relevant for rendering the current tile, and information identifying the address of the corresponding primitive block and the primitives of that primitive block relevant for rendering the current tile is outputted.