Graphics Processor Pre-Pass Visibility Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems suffer from 'overdraw' due to processing primitives sequentially and not in perfect front-to-back order, leading to redundant rendering operations, reduced frame rates, and increased memory bandwidth requirements.

Innovation Solution

A novel 'pre-pass' operation is introduced, where primitives are processed into sets of fragments to determine visibility information, stored in a set of primitive identifying information. This information is used in a second pass to control further processing and cull invisible fragments.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed sequentially without front-to-back ordering, then processing flexibility is maintained, but overdraw increases and rendering performance decreases

Engineering Contradiction:
Improverendering performanceVSAvoidredundant rendering operations
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 processes primitives to identify which fragments are visible and which are occluded, storing this information in a visibility buffer. By performing this analysis beforehand, the system can then cull invisible fragments during the main pass, eliminating redundant rendering operations and improving rendering performance without sacrificing processing flexibility.

Inventive Principle:
Principle #10Preliminary action

2Productivity

If hidden surface removal is implemented to reduce overdraw, then rendering efficiency improves, but device complexity increases

Engineering Contradiction:
Improveframe rateVSAvoidprocessing complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies segmentation by dividing the rendering process into two distinct passes: a pre-pass for visibility determination and a main pass for actual rendering with culling. The pre-pass segments the work by separately analyzing primitive visibility and storing results in a visibility buffer, while the main pass uses this pre-computed information to cull invisible fragments. This segmentation reduces the complexity of implementing hidden surface removal by breaking down the complex task into manageable, sequential operations that can be efficiently processed by standard graphics hardware.

Inventive Principle:
Principle #1Segmentation

3Measurement precision

If visibility information is stored for each sampling position, then fragment culling precision improves, but memory bandwidth requirements increase

Engineering Contradiction:
Improvefragment culling precisionVSAvoidmemory bandwidth
Core Design Contradiction:
Measurement precisionVSQuantity of substance

Solution Approach 1:

The patent applies local quality by storing visibility information at the sampling position level, where each sampling position has its own visibility status recorded in the visibility buffer. This allows the system to maintain high fragment culling precision by tracking which specific sample positions are covered by visible primitives. The local quality approach enables precise culling decisions for each fragment while the structured storage in the visibility buffer optimizes memory access patterns, reducing overall bandwidth requirements compared to alternative approaches.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS12266052B2Graphics processors
Publication Date: 2025.04.01 LTD ARM
  • US12266052B2 patent drawing
  • US12266052B2 patent drawing
  • US12266052B2 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. The visibility information indicates which primitives should be rendered for which sampling positions of the render output.