Tile-Based Graphics Processing With Hierarchical Bounding Boxes
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing tile-based graphics processing systems face inefficiencies in determining which primitives to process for rendering tiles, leading to unnecessary processing and reduced performance.
Innovation Solution
A hierarchical bounding box system is introduced, where primitives are grouped into packets and further organized into groups, with bounding boxes generated at multiple levels to optimize the identification of primitives for rendering tiles, reducing the number of tests required.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are sorted into primitive listing regions using traditional tile-based rendering, then the render output can be divided into smaller area regions for separate processing, but the system requires writing primitive lists to memory and reading them back, increasing memory access operations and processing time
Solution Approach 1:
The patent divides the render output into smaller area regions called rendering tiles, and further segments primitives into packets with hierarchical bounding boxes. This segmentation allows the system to process only relevant primitives for each tile by traversing the bounding box hierarchy, avoiding the need to write and read complete primitive lists from memory for each tile, thus reducing memory access operations and improving rendering efficiency
Solution Approach 2:
The patent introduces a hierarchical bounding box structure with multiple levels (primitive level, packet level, and render output level) that adds a dimensional organization to primitive data. This hierarchical dimension allows efficient spatial queries by traversing the bounding box tree rather than linearly searching through primitive lists in memory, reducing the time required to identify primitives for each rendering tile
2Productivity
If a hierarchy of bounding boxes is built with multiple levels (primitive, packet, and render output), then the identification of primitives for rendering tiles becomes more efficient, but the device complexity increases due to additional data structures and processing steps
Solution Approach 1:
The patent segments the bounding box structure into three hierarchical levels: primitive bounding boxes at the lowest level, packet bounding boxes at the intermediate level, and render output bounding boxes at the highest level. This segmentation allows the system to quickly eliminate large portions of primitives that do not intersect with a rendering tile by traversing from the top level down, improving primitive identification efficiency while keeping each individual bounding box level relatively simple
Solution Approach 2:
The patent implements a nested bounding box hierarchy where primitive bounding boxes are contained within packet bounding boxes, which are in turn contained within render output bounding boxes. This nesting structure allows efficient culling by testing larger bounding boxes first and only processing smaller ones when necessary, improving identification efficiency while organizing complexity in a hierarchical manner that can be processed systematically
3Loss of energy
If primitives are grouped into packets and organized with bounding boxes at multiple levels, then unnecessary primitive processing is minimized, but the initial processing overhead to build the hierarchy increases
Solution Approach 1:
The patent performs preliminary actions by building the hierarchical bounding box structure once during the geometry processing pass, organizing all primitives into packets with bounding boxes at multiple levels before the rendering pass begins. This preliminary organization allows the rendering pass to efficiently traverse the pre-built hierarchy and skip unnecessary primitives without incurring repeated processing overhead, minimizing unnecessary primitive processing during actual rendering
Solution Approach 2:
The patent ensures continuity of useful action by making the hierarchical bounding box structure reusable across multiple rendering operations. Once the hierarchy is built during geometry processing, it can be traversed repeatedly during the rendering pass to efficiently identify primitives for multiple rendering tiles without rebuilding the structure, thereby minimizing repeated processing overhead and reducing unnecessary primitive processing across the entire rendering sequence
Data Source
AI summary
A tile-based graphics processor that generates and processes packets of primitives is disclosed. The graphics processor generates a hierarchy of bounding boxes by generating primitive bounding boxes that bound respective primitives, primitive group bounding boxes that bound respective groups of primitives within a packet, and packet bounding boxes that bound all primitives within respective packets. The hierarchy of bounding boxes is traversed to determine which primitives to process for which rendering tiles.


