Zmax-mask Occlusion Culling Reduces GPU Memory Traffic

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current depth prepass methods in graphics processing units (GPUs) are inefficient as they require multiple passes and significant memory traffic, especially when dealing with complex scenes and highly tessellated models, due to the need for per-pixel depth computations and feedback loops.

Innovation Solution

The implementation of Zmax-mask occlusion culling, which uses two zmax-values per tile and a zmax-mask to perform accurate hierarchical depth representation without per-pixel depth testing, allowing for efficient occlusion culling within the depth unit and reducing memory traffic by enabling depth writes only in the second pass with a LESS_EQUAL test.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If per-pixel depth computations are performed in the first pass, then depth buffer accuracy is improved, but memory traffic and computational overhead increase significantly

Engineering Contradiction:
Improvedepth buffer accuracyVSAvoidmemory traffic
Core Design Contradiction:
Measurement precisionVSLoss of energy

Solution Approach 1:

The patent divides the depth buffer into hierarchical levels (HiZ buffer at tile level and fine depth buffer at pixel level). During the first pass, only HiZ buffer updates are performed without computing per-pixel depths. This segmentation allows the system to maintain depth accuracy where needed while avoiding unnecessary computations in occluded regions, thereby reducing memory traffic and computational overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary occlusion culling using the HiZ buffer before rendering the second pass. By pre-computing tile-level depth bounds (zmin and zmax) during the first pass and using them to cull occluded triangles in the second pass, the system avoids performing per-pixel depth computations for hidden surfaces, thus reducing overall computational overhead and memory traffic.

Inventive Principle:
Principle #10Preliminary action

2Manufacturing precision

If multiple passes are used for rendering, then rendering quality is improved, but rendering time increases

Engineering Contradiction:
Improverendering qualityVSAvoidrendering time
Core Design Contradiction:
Manufacturing precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary occlusion culling using the HiZ buffer before rendering the second pass. By pre-computing tile-level depth bounds during the first pass and using them to cull occluded triangles in the second pass, the system avoids performing per-pixel depth computations for hidden surfaces, thus reducing overall computational overhead and memory traffic.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent applies partial depth computation by only updating HiZ buffer values (zmin and zmax) during the first pass without computing complete per-pixel depths. This partial action is sufficient for occlusion culling purposes and allows the system to maintain rendering quality in the second pass while significantly reducing the computational workload compared to full per-pixel depth computation in both passes.

Inventive Principle:
Principle #16Partial or excessive action

3Measurement precision

If per-pixel depth testing is performed, then occlusion culling accuracy is improved, but device complexity and computational overhead increase

Engineering Contradiction:
Improveocclusion culling accuracyVSAvoidcomputational overhead
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent divides the depth buffer into hierarchical levels (HiZ buffer at tile level and fine depth buffer at pixel level). During the first pass, only HiZ buffer updates are performed without computing per-pixel depths. This segmentation allows the system to maintain depth accuracy where needed while avoiding unnecessary computations in occluded regions, thereby reducing memory traffic and computational overhead.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces the HiZ buffer as an intermediary data structure between the scene geometry and the final pixel rendering. The HiZ buffer stores tile-level depth bounds (zmin and zmax) that serve as a coarse approximation of the depth buffer, enabling fast occlusion culling decisions without requiring detailed per-pixel depth information. This intermediary layer simplifies the computational complexity while maintaining sufficient accuracy for culling purposes.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10846915B2Method and apparatus for masked occlusion culling
Publication Date: 2020.11.24 INTEL CORP
  • US10846915B2 patent drawing
  • US10846915B2 patent drawing
  • US10846915B2 patent drawing

AI summary

An apparatus, method, and machine-readable medium for performing masked occlusion culling. For example, one embodiment of an apparatus comprises: incremental scene rendering circuitry/logic to incrementally render a first portion of a scene in a first buffer and a second portion of a scene in a second buffer; buffer merging circuitry/logic to merge the first portion of the scene and the second portion of the scene to generate merged scene data; and masked occlusion culling (MOC) circuitry/logic, responsive to a mask value in an occlusion query (OQ) mask buffer, to perform depth testing and occlusion culling operations on the merged scene data.