Hierarchical Patch Rasterization for Reducing Overdraw

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improverendering throughputVSAvoidprocessing burden
Core Design Contradiction:
ProductivityVSLoss of energy

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #10Preliminary action

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

Engineering Contradiction:
Improverendering completenessVSAvoidfragment generation efficiency
Core Design Contradiction:
ReliabilityVSProductivity

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.

Inventive Principle:
Principle #1Segmentation

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.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10769838B2Hierarchical graphics processing for primitives
Publication Date: 2020.09.08 ARM LTD
  • US10769838B2 patent drawing
  • US10769838B2 patent drawing
  • US10769838B2 patent drawing

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.