Primitive Block Memory Allocation for Tile-Based GPU Rendering
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Reliability
If all transformed primitives are stored in memory for later rendering, then complete scene rendering is enabled, but memory bandwidth requirements increase
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.
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.
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
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.
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.
Data Source
Figure 1
Figure 2
Figure 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.