Dynamic Depth Testing Switching for GPU Fragment Shaders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face inefficiencies in rendering three-dimensional scenes due to the need for early and late depth testing, which can lead to unnecessary processing of occluded fragments, impacting performance.

Innovation Solution

A method for dynamically switching between conservative depth testing and late depth testing based on the workload of the fragment shader, where conservative depth testing is performed if the workload is high to remove occluded fragments early, and late depth testing is used if the workload is low to minimize wait times and optimize processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If early depth testing is performed on all fragments, then occluded fragments can be removed early, but processing time increases due to unnecessary depth testing of fragments that would be processed anyway

Engineering Contradiction:
Improveprocessing energyVSAvoiddepth testing time
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent dynamically switches between early depth testing and late depth testing modes based on real-time fragment shader workload conditions. When fragment shader workload is high, early depth testing is enabled to remove occluded fragments before shading. When workload is low, early depth testing is disabled to avoid unnecessary processing time, thus adaptively optimizing the balance between energy loss and time loss.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the depth testing timing parameter based on fragment shader workload thresholds. By monitoring the workload and comparing it against predefined thresholds, the system adjusts whether to perform depth testing early or late in the rendering pipeline, thereby optimizing processing efficiency under different workload conditions.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If late depth testing is used exclusively, then fragment shader processing can begin immediately, but occluded fragments are processed unnecessarily increasing overall workload

Engineering Contradiction:
Improvefragment processing throughputVSAvoidfragment quantity
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system dynamically adjusts the depth testing strategy based on fragment shader workload. When workload is low, late depth testing is used to maintain high throughput by processing all fragments. When workload exceeds thresholds, early depth testing is activated to reduce the quantity of fragments that need to be processed, thus balancing throughput and workload management.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent implements a feedback mechanism that monitors fragment shader workload and uses this information to control whether early or late depth testing is performed. This feedback loop allows the system to respond to changing workload conditions and adjust the depth testing strategy accordingly, optimizing both throughput and fragment quantity management.

Inventive Principle:
Principle #23Feedback

3Productivity

If depth testing mode is fixed, then pipeline simplicity is maintained, but performance cannot be optimized for varying workload conditions

Engineering Contradiction:
Improverendering performanceVSAvoiddepth testing control complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent introduces dynamic control of depth testing mode based on workload conditions. The system monitors fragment shader workload and switches between early and late depth testing modes accordingly, enabling performance optimization for varying workload conditions while adding minimal complexity through threshold-based control logic.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The system changes the depth testing timing parameter based on workload thresholds. By comparing monitored workload against predefined thresholds, the patent adjusts the depth testing mode parameter, achieving performance adaptability without requiring complex control mechanisms.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentEP3353746B1Dynamically switching between late depth testing and conservative depth testing
Publication Date: 2019.05.01 QUALCOMM INC
  • EP3353746B1 patent drawingFigure 1
  • EP3353746B1 patent drawingFigure 2
  • EP3353746B1 patent drawingFigure 3

AI summary

A graphics processing unit (GPU) may determine a workload of a fragment shader program that executes on the GPU. The GPU may compare the workload of the fragment shader program to a threshold. In response to determining that the workload of the fragment shader program is lower than a specified threshold, the fragment shader program may process one or more fragments without the GPU performing early depth testing of the one or more fragments before the processing by the fragment shader program. The GPU may perform, after processing by the fragment shader program, late depth testing of the one or more fragments to result in one or more non-occluded fragments. The GPU may write pixel values for the one or more non-occluded fragments into a frame buffer.