Graphics Processor Pre-Pass Visibility Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to 'overdraw' caused by processing primitives sequentially rather than in front-to-back order, leading to redundant rendering operations and increased memory bandwidth requirements, which existing hidden surface removal techniques struggle to fully address, especially in complex scenes.

Innovation Solution

Implementing a pre-pass operation in graphics processing that determines visibility information for primitives, allowing for the generation of a primitive culling data structure to identify and cull entirely occluded primitives, thereby reducing unnecessary processing in a subsequent main pass.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed sequentially in traditional rendering order, then the rendering pipeline can process all primitives without complex sorting, but redundant rendering operations occur leading to overdraw and increased memory bandwidth requirements

Engineering Contradiction:
Improverendering efficiencyVSAvoidenergy consumption due to redundant processing
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent applies preliminary action by performing a pre-pass operation before the main rendering pass to determine visibility information for all primitives. This pre-pass analyzes depth buffer data to identify which primitives are completely occluded by previously processed primitives, allowing the system to cull these invisible primitives before they enter the main rendering pipeline. This preliminary culling action eliminates redundant rendering operations and reduces energy consumption without compromising rendering correctness.

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If hidden surface removal techniques are applied to reduce overdraw, then redundant rendering operations are reduced, but existing techniques struggle to fully address the problem in complex scenes

Engineering Contradiction:
Improveenergy consumptionVSAvoideffectiveness of hidden surface removal
Core Design Contradiction:
Loss of energyVSReliability

Solution Approach 1:

The patent implements feedback by using depth buffer information from previously processed primitives to determine visibility of subsequent primitives. The system continuously references the depth buffer state to make real-time decisions about which primitives can be culled, creating a feedback loop that adapts to the rendering context. This feedback mechanism ensures reliable hidden surface removal by basing culling decisions on actual depth data rather than speculative predictions.

Inventive Principle:
Principle #23Feedback

3Productivity

If a pre-pass operation is implemented to determine visibility information, then redundant rendering operations are significantly reduced, but additional processing pass is required

Engineering Contradiction:
Improverendering throughputVSAvoidrendering pipeline complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges the visibility determination function into the existing fragment processing pipeline by combining depth buffer updates with fragment rendering operations. Rather than implementing a completely separate pre-pass system, the visibility information is gathered and processed within the existing fragment frontend architecture, merging multiple functions into a unified processing stream. This reduces the effective complexity increase while maintaining the benefits of preliminary culling.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS20240169647A1Graphics processors
Publication Date: 2024.05.23 ARM LTD
  • US20240169647A1 patent drawing
  • US20240169647A1 patent drawing
  • US20240169647A1 patent drawing

AI summary

When performing tile-based rendering a first, pre-pass operation in which primitives in a sequence of primitives for a tile are processed to determine visibility information for the sequence of primitives, the visibility information being usable to determine whether or not fragments for a primitive in the sequence of primitives should subsequently be processed further for the render output, is performed. Thereafter a second, main pass operation is performed in which the further processing of fragments for primitives that were processed during the first, pre-pass operation is controlled based on the determined visibility information for the sequence of primitives, such that for fragments for which the visibility information indicates that the fragments should not be processed further for the render output some or all of the processing during the second, main pass is omitted. A data structure is also built to allow entire primitives to be culled.