Early Depth Test Culling for Graphics Pipeline Overdraw

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to 'overdraw' caused by processing primitives sequentially, leading to redundant rendering operations, which reduces frame rates and increases memory bandwidth requirements, especially in complex render outputs and with programmable fragment shading.

Innovation Solution

Implementing an early culling test in the graphics processing pipeline to identify and stop processing of sampling points and fragments that will be occluded by later primitives, even after they have been partially processed, by using an early depth test before the renderer stage and broadcasting culling test results to subsequent pipeline stages to halt unnecessary processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If primitives are processed sequentially in the graphics processing pipeline, then the processing order is simple and device complexity is reduced, but overdraw occurs causing redundant rendering operations and reduced productivity

Engineering Contradiction:
Improveprocessing order complexityVSAvoidframe rendering efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs an early culling test on fragments before they undergo full rendering processing. By evaluating depth values and determining visibility in advance, the system identifies and eliminates hidden surfaces before they consume significant processing resources, thereby reducing overdraw and improving rendering efficiency without requiring complex reordering of primitives

Inventive Principle:
Principle #10Preliminary action

2Productivity

If early culling test is implemented to stop processing of occluded fragments, then unnecessary processing is reduced and productivity improves, but additional processing stages are required increasing device complexity

Engineering Contradiction:
Improverendering throughputVSAvoidpipeline stage complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent implements a partial early culling test that evaluates only the necessary depth values and visibility criteria for fragments, rather than performing complete rendering operations. This partial evaluation is sufficient to identify hidden surfaces for elimination while avoiding the overhead of full processing, thus improving productivity with minimal increase in device complexity

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If fragments are processed completely before hidden surface removal, then rendering accuracy is maintained, but memory bandwidth requirements increase and processing time is wasted on hidden surfaces

Engineering Contradiction:
Improverendering accuracyVSAvoidprocessing time for hidden surfaces
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs depth value evaluation and visibility determination in advance, before fragments complete full processing. By determining which fragments are visible based on depth testing against already-rendered surfaces, the system maintains rendering accuracy for visible fragments while eliminating wasted processing time on hidden surfaces that would not contribute to the final image

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9153070B2Hidden surface removal in graphics processing systems
Publication Date: 2015.10.06 ARM LTD
  • US9153070B2 patent drawing
  • US9153070B2 patent drawing

AI summary

The early depth test stages 4, 13 of a graphics processing pipeline 1 are configured to broadcast information 9, 10, 11, 14 about fragments, etc., that pass those early depth tests to other stages 3, 4, 6, 12 in the pipeline. The other stages in the pipeline then use the early depth test pass information to determine if the processing of any fragments that they are currently processing can be stopped.