Early and Late Depth Testing for Graphics Fragment Processing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to redundant rendering operations caused by processing primitives out of order, leading to increased frame rates and memory bandwidth requirements, and existing depth testing techniques can result in incorrect rendering results when fragments are tested out of order.

Innovation Solution

A method for graphics processing that includes both early and late depth tests, where fragments are evaluated for updating the depth buffer based on whether they can undergo an early depth test without waiting for other fragments, or if they should wait for late depth tests to complete, allowing for out-of-order updates to the depth buffer while ensuring accurate rendering.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If early depth test is performed before renderer processing to enable out-of-order updates, then depth buffer update efficiency is improved, but rendering correctness may deteriorate due to out-of-order fragment processing

Engineering Contradiction:
Improvedepth buffer update efficiencyVSAvoidrendering correctness
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system performs early depth testing on fragments before they undergo full rendering processing, allowing depth buffer updates to occur ahead of time. This preliminary depth evaluation enables out-of-order updates by determining which fragments will ultimately update the depth buffer based on their depth values, without waiting for complete rendering of all fragments.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system dynamically adjusts the processing order of fragments based on their depth test results. Fragments that pass the early depth test can trigger immediate depth buffer updates, while other fragments continue through the rendering pipeline. This dynamic reordering optimizes performance by updating the depth buffer as soon as possible rather than waiting for all fragments to be processed in strict order.

Inventive Principle:
Principle #15Dynamics

2Reliability

If primitives are processed sequentially in traditional order, then rendering correctness is maintained, but frame rate deteriorates due to redundant overdraw operations

Engineering Contradiction:
Improverendering correctnessVSAvoidframe rate
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary depth testing on fragments before they undergo expensive rendering operations such as shading and texture sampling. By evaluating depth values early in the pipeline, the system can discard fragments that will be occluded by closer geometry, preventing redundant rendering work and improving frame rate while maintaining correctness through the subsequent late depth test.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system performs a preliminary depth test that evaluates only the depth component of fragments, which is a partial evaluation compared to full rendering. This partial action allows the system to quickly eliminate obviously occluded fragments without performing complete rendering, reducing overdraw and improving performance while the full rendering and late depth test ensure correctness.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If fragments wait for late depth tests to complete before updating depth buffer, then rendering correctness is ensured, but processing speed deteriorates

Engineering Contradiction:
Improverendering correctnessVSAvoiddepth buffer update speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The system performs preliminary depth testing and depth buffer updates based on early depth test results, rather than waiting for late depth tests to complete. This allows depth buffer updates to occur in advance, improving processing speed while maintaining correctness through the combination of early and late depth testing that ensures only properly occluded fragments update the depth buffer.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS11055904B2Optimizing depth testing in graphics processing systems that perform early and late depth testing
Publication Date: 2021.07.06 ARM LTD
  • US11055904B2 patent drawing
  • US11055904B2 patent drawing
  • US11055904B2 patent drawing

AI summary

A graphics processor includes a rasteriser, an early depth tester, a renderer, a late depth tester, and a depth test data buffer that stores depth data values for use by the early and late depth testers. When a fragment is to undergo an early depth test to update the depth buffer, it is first determined whether the fragment should undergo the early depth test to update the depth buffer without waiting for any other fragment to undergo a depth test, or whether the result of a late depth test on a fragment that is still to undergo a late depth test should be awaited before performing a depth test to update the depth buffer on the fragment.