Sparse Tile Rendering in Computer Graphics for Memory Reduction
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing graphics processing systems face significant memory and processing overheads due to the handling of large textures, particularly shadow maps, which require large memory allocation and high memory bandwidth, leading to increased power consumption and reduced application performance.
Innovation Solution
A tile-based graphics processing system that tiles a scene into multiple tiles, identifies a subset of tiles with a predetermined number of primitives, and allocates memory and renders only those tiles, while ignoring and not rendering tiles without sufficient primitives, thereby reducing memory and processing overheads.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If large textures (shadow maps) are used to maintain high rendering quality, then image quality is improved, but memory allocation and memory bandwidth requirements increase
Solution Approach 1:
The shadow map is divided into multiple tiles, each representing a portion of the scene. Instead of treating the shadow map as a single large texture, the system segments it into manageable chunks that can be processed and stored independently. This allows the system to only allocate memory for tiles that contain relevant shadow information, reducing overall memory requirements while maintaining rendering quality in visible areas.
Solution Approach 2:
The system performs partial rendering by identifying and processing only the subset of tiles that contain primitives (geometric elements). Rather than rendering all tiles in the shadow map, it applies partial action by focusing computational resources only on relevant regions, thereby reducing memory bandwidth requirements and processing overhead while maintaining image quality where needed.
2Measurement precision
If high resolution shadow maps are generated and stored, then shadow rendering accuracy is improved, but processing power and memory bandwidth consumption increase
Solution Approach 1:
The shadow map rendering process is segmented into tile-level operations. Each tile is processed independently, allowing the system to apply high resolution processing only where necessary (in tiles containing primitives) while using lower resolution or skipping processing entirely in empty tiles. This segmentation enables accurate shadow rendering in relevant areas without the processing cost of generating high resolution data everywhere.
Solution Approach 2:
The system applies local quality by varying the resolution and processing intensity across different regions of the shadow map. Tiles containing primitives receive full high-resolution processing to ensure accurate shadow rendering, while empty or less important tiles use reduced resolution or are skipped entirely. This localized approach maintains shadow rendering accuracy where needed while reducing overall processing power consumption.
3Reliability
If all tiles in a shadow map are rendered, then complete shadow coverage is achieved, but memory bandwidth usage and processing time increase
Solution Approach 1:
The system extracts and processes only the necessary subset of tiles from the complete shadow map. By identifying tiles that contain primitives and extracting only those for processing, the system achieves complete shadow coverage for all visible objects while eliminating the processing time and memory bandwidth consumption associated with rendering empty or irrelevant tiles.
Solution Approach 2:
The system applies partial action by rendering only the subset of tiles that contain primitives rather than all tiles in the shadow map. This partial rendering approach maintains reliability for shadow coverage in all relevant areas while significantly reducing processing time and memory bandwidth usage by skipping empty tiles entirely.
Data Source
AI summary
A graphics processing system includes a tiling unit configured to tile a scene into a plurality of tiles. A processing unit identifies tiles of the plurality of tiles that are each associated with at least a predetermined number of primitives. A memory management unit allocates a portion of memory to each of the identified tiles and does not allocate a portion of memory for each of the plurality of tiles that are not identified by the processing unit. A rendering unit renders each of the identified tiles and does not render tiles that are not identified by the processing unit.


