Hybrid Depth Testing for Graphics Pipeline Accuracy

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional depth testing in graphics processing systems often leads to wasted processing time and bandwidth due to early depth operations resulting in incorrect z-values and unnecessary pixel processing, especially when pixels are ultimately discarded after alpha-testing or blending.

Innovation Solution

Implementing a hybrid depth testing method that performs an initial depth test on pixel samples, delaying their write to storage if they pass, and only writing them to the Z-buffer after a subsequent depth test, thereby preventing incorrect z-value updates and reducing bandwidth usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If traditional depth testing is performed after shader processing operations, then rendering accuracy is maintained, but processing time increases and bandwidth is wasted due to unnecessary pixel processing

Engineering Contradiction:
Improverendering accuracyVSAvoidprocessing time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent segments the depth testing process into two distinct stages: early depth testing performed before shader processing to quickly eliminate obviously occluded pixels, and late depth testing performed after shader processing to ensure accurate depth comparisons. This segmentation allows the system to benefit from both early rejection of unnecessary pixels and accurate final depth testing, resolving the contradiction between rendering accuracy and processing time.

Inventive Principle:
Principle #1Segmentation

2Productivity

If early depth operation is performed before other pixel processing operations, then processing speed increases by discarding occluded pixels early, but rendering accuracy deteriorates when pixels are incorrectly discarded after alpha testing

Engineering Contradiction:
Improveprocessing speedVSAvoidrendering accuracy
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The patent applies preliminary action by performing an early depth test before shader processing to quickly identify and discard obviously occluded pixels. However, it also performs a subsequent late depth test after shader processing and alpha testing to correct any premature rejections. This two-stage approach allows the system to benefit from early filtering while maintaining rendering accuracy through the corrective late depth test.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If early depth test replaces z-value before alpha test, then processing efficiency improves, but incorrect z-values are written to Z-buffer when pixels are later discarded

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidz-value accuracy
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback by performing a late depth test after shader processing and alpha testing to verify whether pixels that passed the early depth test should indeed be rendered. The result of the late depth test feeds back into the decision of whether to write the z-value to the Z-buffer, correcting any premature rejections from the early depth test and ensuring z-value accuracy while maintaining processing efficiency.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9076265B2System and method for performing depth testing at top and bottom of graphics pipeline
Publication Date: 2015.07.07 ATI TECHNOLOGIES ULC
  • US9076265B2 patent drawing
  • US9076265B2 patent drawing
  • US9076265B2 patent drawing

AI summary

Embodiments of a system and method including graphics processing of a pixel sample are described. According to an embodiment, a first depth test processes a value, such as a z/stencil value, of a pixel sample and determines whether the value of the pixel sample satisfies the first depth test. If the value of the pixel sample satisfies the first depth test, the value of the pixel sample is not immediately written to storage, such as a Z-buffer. That is, if the value of the pixel sample satisfies the first depth test, the depth processing logic prevents or delays a write operation for the value of the pixel sample to storage at that time. A second depth test is performed on the value of the pixel sample if the value of the pixel sample satisfied the first depth test. If the value of the pixel sample satisfies the second depth test, the value of the pixel sample is then written to storage.