Hierarchical Tile List Memory Management for Graphics Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing tile-based rendering systems face challenges in predicting memory usage due to varying sizes of tile lists across different tiles and scenes, which is particularly problematic for resource-constrained devices like mobile phones and PDAs.
Innovation Solution
The system allows for the preparation of separate tile lists for individual sub-regions and sets of sub-regions, enabling flexible memory management and control by storing primitives at different resolutions, ensuring that each primitive is included in a limited number of lists to optimize memory usage.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If separate tile lists are prepared for each sub-region to enable precise primitive selection, then rendering accuracy is improved, but memory usage increases due to duplicate primitives being stored multiple times
Solution Approach 1:
The patent segments the scene into multiple sub-regions (tiles) and prepares separate tile lists for each sub-region. This allows primitives to be selected precisely for their actual location in each tile, improving rendering accuracy. The segmentation is implemented by dividing the scene into a grid of sub-regions and creating independent primitive lists for each, enabling efficient spatial culling and reducing unnecessary processing.
Solution Approach 2:
The patent implements a hierarchical tile list structure where tile lists are organized at multiple levels. Each tile contains a pointer to a parent tile list, creating a nested hierarchy. This nesting allows the system to store primitive lists at different levels of granularity, enabling precise primitive selection for individual tiles while sharing common primitives across parent tiles, thus reducing overall memory usage through hierarchical reuse.
2Reliability
If tile lists are prepared for all sub-regions to ensure complete rendering coverage, then rendering completeness is improved, but device complexity increases due to memory management challenges
Solution Approach 1:
The patent prepares tile lists in advance before rendering begins. By pre-computing which primitives belong to which tiles and storing them in the hierarchical structure, the system ensures complete rendering coverage is ready beforehand. This preliminary action eliminates the need for complex runtime memory management decisions, as the tile lists are already organized and ready for efficient rendering processing.
Solution Approach 2:
The patent introduces a hierarchical tile list structure as an intermediary between the scene primitives and the rendering process. This intermediary structure organizes primitives by spatial location in a managed way, providing complete coverage while simplifying memory management. The hierarchical structure acts as a mediator that translates the complexity of complete scene coverage into a manageable pointer-based system where each tile lists only its relevant primitives.
3Measurement precision
If primitives are stored in multiple tile lists to ensure they are rendered in all correct sub-regions, then rendering accuracy is improved, but memory requirements increase
Solution Approach 1:
The patent uses a nested hierarchical structure where primitives are stored in multiple tile lists at different levels. Each primitive is included in tile lists for all tiles it actually appears in, with parent tile lists containing the same primitive. This nesting pattern ensures rendering accuracy by maintaining primitive placement information at all relevant levels, while the hierarchical organization enables efficient memory management through shared data structures.
Solution Approach 2:
The patent adds a hierarchical dimension to the traditional flat tile list structure. Instead of just storing primitives in a single level of tile lists, the system organizes them across multiple levels (parent tiles, child tiles, etc.). This dimensional change allows the same primitive to be efficiently stored and referenced at multiple levels simultaneously, improving placement accuracy while managing memory through the additional organizational dimension.
Data Source
AI summary
A scene to be rendered is divided into plural individual sub-regions or tiles. The individual sub-regions 51 are also grouped into differing groups of sets of plural sub-regions. There is a top level layer comprising a set of 8×8 sub-regions which encompasses the entire scene area. There is then a group of four 4×4 sets of sub-regions, then a group of sixteen 2×2 sets of sub-regions, and finally a layer comprising the 64 single sub-regions. A primitive list building processor takes each primitive in turn, determines a location for that primitive, compares the primitive's location with the locations of the sub-regions and the locations of the sets of sub-regions, and allocates the primitive to respective primitive lists for the sub-regions and sets of sub-regions accordingly.


