Primitive Block Memory Allocation for Tile-Based GPU Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing tile-based rendering (TBR) graphics processing systems that use untransformed display lists (UDLs) require transforming untransformed geometry data twice, once in the geometry processing phase and again in the rasterization phase, leading to inefficiencies in processing time and power consumption, especially for complex scenes.

Innovation Solution

Implement a method and system that generates an expansion transformation stage mask in the geometry processing phase to identify which sub-primitives will be used in rendering, allowing the rasterization phase to efficiently re-transform only necessary untransformed geometry data, thereby reducing redundant processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If untransformed geometry data is transformed twice (once in geometry processing phase and again in rasterization phase), then rendering flexibility and tile-based processing are achieved, but processing costs and memory usage increase

Engineering Contradiction:
Improverendering flexibilityVSAvoidprocessing efficiency
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by generating expansion transformation stage masks during the geometry processing phase to identify which sub-primitives will be used in rendering. This preliminary identification allows the system to optimize the second transformation in the rasterization phase by discarding unnecessary sub-primitives, thereby reducing redundant processing while maintaining rendering flexibility.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the necessary transformation information (expansion transformation stage masks) during the geometry processing phase, separating the essential identification function from the full transformation process. This extraction allows the rasterization phase to focus only on transforming and rendering the identified sub-primitives, reducing overall processing costs.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If all transformed primitives are stored in memory for later rendering, then complete scene rendering is enabled, but memory bandwidth requirements increase

Engineering Contradiction:
Improverendering completenessVSAvoidmemory bandwidth
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent segments the rendering process into tile-based units, where only the transformed primitives relevant to each specific tile need to be processed and stored. The expansion transformation stage masks enable this segmentation by identifying which sub-primitives fall within each tile's bounds, allowing selective memory access and reducing overall memory bandwidth requirements while maintaining complete rendering capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent applies local quality by processing and storing only the transformation data and primitives relevant to each specific tile rather than the entire scene. The expansion transformation stage masks provide local identification information that enables this localized processing, reducing memory bandwidth usage while ensuring complete rendering of the scene through systematic tile-by-tile processing.

Inventive Principle:
Principle #3Local quality

3Shape

If geometry data is transformed in the geometry processing phase, then spatial organization is improved, but memory allocation complexity increases when dealing with variable-sized primitive blocks

Engineering Contradiction:
Improvespatial organizationVSAvoidmemory allocation complexity
Core Design Contradiction:
ShapeVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by generating expansion transformation stage masks during the geometry processing phase that identify which sub-primitives will be used in rendering. This preliminary identification enables systematic memory allocation for untransformed primitive blocks, allowing the system to allocate memory based on actual usage patterns rather than worst-case scenarios, thereby reducing memory allocation complexity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent uses feedback from the geometry processing phase (in the form of expansion transformation stage masks indicating which sub-primitives will be used) to optimize memory allocation in the rasterization phase. This feedback mechanism enables dynamic memory allocation strategies that adapt to actual rendering requirements, reducing the complexity of managing variable-sized primitive blocks.

Inventive Principle:
Principle #23Feedback

Data Source

PatentEP3690798B1Memory for storing untransformed primitive blocks
Publication Date: 2026.05.20 IMAGINATION TECH LTD
  • EP3690798B1 patent drawingFigure 1
  • EP3690798B1 patent drawingFigure 2
  • EP3690798B1 patent drawingFigure 3

AI summary

Memories and methods for storing untransformed primitive blocks of variable size in a memory structure of a graphics processing system, the untransformed primitive blocks having been generated by geometry processing logic of the graphics processing system. The method includes: storing an untransformed primitive block in the memory structure, and increasing, by a predetermined amount, a current total amount of memory allocated for storing untransformed primitive blocks; determining an unused amount of the current total amount of memory allocated for storing untransformed primitive blocks; receiving a new untransformed primitive block for storing in the memory structure, and determining whether a size of the new untransformed primitive block is less than or equal to the unused amount; and if it is determined that the size of the new untransformed primitive block is less than or equal to the unused amount, storing the new untransformed primitive block in the memory structure.