Hierarchical Patch Rasterization for Reducing Overdraw
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing systems face inefficiencies due to sequential processing of primitives, leading to redundant rendering operations as primitives are processed multiple times, especially when later primitives cover earlier ones, resulting in 'overdraw' and increased processing burdens.
Innovation Solution
A hierarchical rasterization method where the render output is divided into larger patches that are tested against primitives, with partially covered patches subdivided further and completely covered patches output directly without generating graphics fragments, allowing for efficient processing and reducing redundant operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If primitives are processed sequentially in traditional rasterization, then the rendering pipeline can process all primitives, but redundant rendering operations occur leading to overdraw and increased processing burden
Solution Approach 1:
The render output is divided into a hierarchy of patches (e.g., 256x256, 128x128, 64x64, 32x32 sampling positions) that are processed at different levels. This segmentation allows the system to test primitives against larger patches first and only subdivide when necessary, reducing redundant processing while maintaining complete rendering coverage.
Solution Approach 2:
The system performs preliminary testing of primitives against larger patches before proceeding to finer subdivisions. By testing whether a primitive covers a larger patch and determining if it should be output as a complete patch or subdivided, the system avoids unnecessary fragment generation and rendering operations for completely covered patches.
2Reliability
If all sampling positions are tested for each primitive, then complete rendering coverage is achieved, but redundant fragment generation occurs for completely covered patches
Solution Approach 1:
The sampling positions are segmented into hierarchical patches of different sizes. The system tests primitives against larger patches first and only generates fragments for smaller patches when the primitive partially covers the larger patch. This segmentation maintains rendering completeness while avoiding redundant fragment generation for completely covered areas.
Solution Approach 2:
The system performs partial testing at different levels of the patch hierarchy. Instead of testing all sampling positions for every primitive, the system tests at the largest patch level first and only proceeds to finer levels when necessary, using partial action to achieve complete coverage when needed while avoiding excessive testing when not required.
Data Source
AI summary
A graphics processing system can divide a render output into plural larger patches, with each larger patch encompassing plural smaller patches. A rasteriser of the system tests a larger patch against a primitive to be processed to determine if the primitive covers the larger patch. When it is determined that the primitive only partially covers the larger patch, the larger patch is sub-divided into plural smaller patches and at least one of the smaller patches is re-tested against the primitive. Conversely, when it is determined that the primitive completely covers the larger patch, the larger patch is output from the rasteriser in respect of the primitive for processing by a subsequent stage, of the graphics processing system. The system can provide efficient, hierarchal, processing of primitives, whilst helping to prevent the output of the rasteriser from becoming blocked.


