Graphics Processor Two-Pass Visibility Culling for Overdraw Reduction

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 scenes where early hidden surface removal techniques are less effective.

Innovation Solution

Implementing a two-pass processing method where a pre-pass operation determines visibility information for primitives, allowing for efficient identification and culling of non-visible primitives, and a main pass performs detailed rendering based on the pre-pass results, using a set of primitive identifying information to control further processing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed sequentially in a single pass, then the rendering pipeline is simple, but redundant rendering operations occur causing overdraw

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

Solution Approach 1:

The rendering process is divided into two distinct passes: a pre-pass that processes all primitives to determine visibility information, and a main pass that performs detailed rendering only for visible fragments. This segmentation eliminates redundant overdraw operations by identifying and culling invisible primitives before they are rendered, thereby significantly improving rendering efficiency without requiring complex real-time decision-making during the rendering process itself.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The pre-pass performs preliminary processing of all primitives to determine visibility information before the main rendering pass. By advancing the decision-making process to occur before rendering (rather than during), the system can identify which fragments are visible and should be rendered, and which are hidden and can be culled. This preliminary action eliminates the need for complex runtime visibility testing during the main pass, resolving the contradiction between rendering efficiency and pipeline complexity.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If early hidden surface removal techniques are used, then some redundant operations are reduced, but they are less effective in complex scenes

Engineering Contradiction:
Improveframe rateVSAvoideffectiveness in complex scenes
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The two-pass rendering approach provides universal effectiveness across both simple and complex scenes. The pre-pass universally processes all primitives to determine visibility, and the main pass universally renders only visible fragments regardless of scene complexity. This multi-functional approach maintains high frame rates in simple scenes while also effectively handling complex scenes with overlapping primitives, thereby resolving the limitation of early hidden surface removal techniques that struggled with complex geometries.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Loss of energy

If all fragments are rendered regardless of visibility, then rendering is straightforward, but memory bandwidth requirements increase

Engineering Contradiction:
Improveenergy efficiencyVSAvoidvisibility determination complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The pre-pass extracts and determines visibility information for all primitives before the main rendering pass. By separating the visibility determination function from the rendering function, the system can efficiently identify which fragments are visible and should be rendered, and which are hidden and can be culled. This extraction of visibility information enables the main pass to render only necessary fragments, significantly reducing memory bandwidth requirements and energy consumption without introducing excessive complexity through the use of simple visibility testing mechanisms.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS20240169618A1Graphics processors
Publication Date: 2024.05.23 ARM LTD
  • US20240169618A1 patent drawing
  • US20240169618A1 patent drawing
  • US20240169618A1 patent drawing

AI summary

When performing tile-based rendering a first, pre-pass operation in which primitives for a tile are processed to determine visibility information, the visibility information usable to determine whether or not fragments for a primitive 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. The visibility information indicates which primitives should be rendered for which sampling positions of the render output in a hierarchical manner.