Depth Prepass Using Zmax-Mask Occlusion Culling

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing units (GPUs) perform inefficiently in rendering scenes without a depth prepass, as they render triangles based on depth, leading to unnecessary computations and increased memory traffic due to lack of accurate occlusion culling, especially in complex and highly tessellated models.

Innovation Solution

The implementation of Zmax-mask occlusion culling within the depth unit of the GPU, which maintains two zmax-values per tile and a zmax-mask to accurately represent hierarchical depth, allowing for efficient occlusion culling without per-pixel depth computations, and enables a LESS_EQUAL test in the second pass, reducing memory traffic and improving rendering efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Measurement precision

If a traditional depth prepass is performed with per-pixel depth computations, then occlusion culling accuracy is improved, but hardware complexity and computational overhead increase

Engineering Contradiction:
Improveocclusion culling accuracyVSAvoidhardware complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The patent segments the depth buffer into hierarchical regions (tiles and sub-tiles) and represents depth information using aggregated zmax values at different levels of the hierarchy rather than per-pixel values. This segmentation allows accurate occlusion culling at the tile level while avoiding the need for complex per-pixel depth computations, thus resolving the contradiction between culling accuracy and hardware complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a hierarchical dimension to the depth representation by maintaining zmax values at multiple levels (pixel level, tile level, sub-tile level). This dimensional transformation allows the system to perform occlusion culling operations at the aggregated hierarchical level rather than at the individual pixel level, reducing computational complexity while preserving accuracy.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Measurement precision

If per-pixel depth computations are performed in the depth prepass, then depth buffer accuracy is improved, but memory traffic and processing time increase

Engineering Contradiction:
Improvedepth buffer accuracyVSAvoidprocessing time
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent performs preliminary computation of zmax values at the tile and sub-tile levels during the depth prepass, storing these aggregated values in the hierarchical depth buffer. This preliminary action at the aggregated level eliminates the need for time-consuming per-pixel depth computations during subsequent rendering passes, significantly reducing processing time while maintaining sufficient depth accuracy for occlusion culling.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts only the essential depth information (zmax values at hierarchical levels) needed for occlusion culling and stores it in the hierarchical depth buffer, rather than maintaining complete per-pixel depth data. This extraction of essential information reduces memory traffic and processing requirements while preserving the accuracy needed for effective occlusion culling.

Inventive Principle:
Principle #2Taking out (Extraction)

3Productivity

If hierarchical depth buffer with culling is used, then rendering efficiency is improved, but the first pass requires significant memory traffic to prime the buffer

Engineering Contradiction:
Improverendering efficiencyVSAvoidmemory traffic
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the depth buffer into a hierarchical structure with tiles and sub-tiles, allowing the first pass to prime only the aggregated zmax values at these hierarchical levels rather than writing complete per-pixel depth data. This segmentation dramatically reduces memory traffic during the priming phase while ensuring the hierarchical buffer is properly initialized for efficient occlusion culling in subsequent passes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs partial depth prepass by computing and storing only the essential zmax values at hierarchical levels rather than performing complete per-pixel depth computations. This partial action is sufficient to prime the hierarchical depth buffer effectively, reducing memory traffic and energy consumption while maintaining the rendering efficiency benefits of hierarchical culling.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS10380789B2Method and apparatus for efficient depth prepass
Publication Date: 2019.08.13 INTEL CORP
  • US10380789B2 patent drawing
  • US10380789B2 patent drawing
  • US10380789B2 patent drawing

AI summary

An apparatus and method are described for performing an efficient depth prepass. For example, one embodiment of a method comprising: a method comprising: performing a first pass through a specified portion of a graphics pipeline with only depth rendering active; initializing a coarse depth buffer within the specified portion of the graphics pipeline during the first pass, the coarse depth buffer storing depth data at a level of granularity less than that stored in a per-pixel depth buffer, which is not initialized during the first pass; and performing a second pass through the graphics pipeline following the first pass, the second pass utilizing the full graphics pipeline and using values in the coarse depth buffer initialized by the first pass.