Hidden Surface Removal via Early and Late Culling Tests

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing systems face inefficiencies due to redundant rendering operations caused by processing primitives sequentially, leading to increased overdraw and reduced performance, especially as render outputs become larger and more complex, and existing hidden surface removal techniques suffer from delays and inefficiencies.

Innovation Solution

A graphics processing pipeline that includes both early and late culling tests, with state information controlling when to perform culling operations and update culling test data buffers, allowing for more efficient hidden surface removal by potentially performing early culling on fragments and reducing dependencies.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If primitives are processed sequentially in traditional graphics processing systems, then the rendering process can be completed, but redundant rendering operations occur leading to increased overdraw and reduced performance

Engineering Contradiction:
Improverendering throughputVSAvoidredundant processing operations
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent performs preliminary hidden surface removal by executing depth tests and determining visible surfaces before the main rendering process. The system identifies and marks hidden fragments early in the pipeline, preventing them from undergoing subsequent expensive rendering operations such as fragment shading and blending, thus eliminating redundant processing while maintaining rendering completeness

Inventive Principle:
Principle #10Preliminary action

2Loss of energy

If early hidden surface removal is performed to reduce overdraw, then redundant rendering operations are reduced, but processing delays occur due to dependencies between fragments

Engineering Contradiction:
Improveredundant rendering operationsVSAvoidprocessing delays
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent segments the hidden surface removal process into distinct pipeline stages: depth pre-pass for initial hidden surface identification, fragment generation with visibility markers, and main rendering with conditional processing. This segmentation allows different fragments to be processed independently based on their visibility status, reducing processing delays caused by inter-fragment dependencies while maintaining effective overdraw reduction

Inventive Principle:
Principle #1Segmentation

3Loss of energy

If primitives are sorted in front-to-back order to reduce overdraw, then redundant rendering is minimized, but other graphics processing requirements such as coherent texture access and minimized API calls are compromised

Engineering Contradiction:
Improveredundant rendering operationsVSAvoidtexture access coherence
Core Design Contradiction:
Loss of energyVSEase of operation

Solution Approach 1:

The patent introduces an intermediary depth buffer and visibility determination stage that acts as a mediator between primitive ordering and rendering. This intermediary structure allows primitives to be processed in any order while the depth buffer systematically tracks visible surfaces, eliminating the need for front-to-back sorting while maintaining overdraw reduction and preserving texture access coherence requirements

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10311016B2Hidden surface removal in graphics processing systems
Publication Date: 2019.06.04 ARM LTD
  • US10311016B2 patent drawing
  • US10311016B2 patent drawing
  • US10311016B2 patent drawing

AI summary

A graphics processing pipeline includes a rasteriser, an early culling tester, a renderer, a late culling tester, and a culling test data buffer that stores data values for use by the early and late culling testers. The testing of fragments by the early and late culling testers is controlled in accordance with a first set of state information indicative of when a culling test operation to be used to determine whether to cull the fragments is to be performed, and a second set of state information indicative of when to determine whether to update the culling test data buffer with data for the fragments based on a culling test operation, allocated to the fragments.