MSAA Depth Culling Using Masked Zmax Values

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current graphics processing techniques for occlusion culling, such as zmax-culling, face limitations in efficiently updating and managing maximum depth values per tile, especially when dealing with multi-sampled anti-aliasing and complex geometric silhouettes, leading to suboptimal culling efficiency and increased processing requirements.

Innovation Solution

Maintaining two zmax-values per tile, along with a zmax-mask, allows for per-sample granularity in occlusion culling, enabling efficient merging and updating strategies that adapt to changing depth representations, and supports multi-sampled anti-aliasing by using a coverage mask to selectively apply zmax-values, thereby improving culling efficiency without requiring feedback mechanisms.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Quantity of substance

If a single zmax-value is stored per tile for occlusion culling, then memory usage is minimized, but culling accuracy deteriorates when multiple depth layers exist in MSAA scenarios

Engineering Contradiction:
Improvememory usageVSAvoidculling accuracy
Core Design Contradiction:
Quantity of substanceVSMeasurement precision

Solution Approach 1:

The patent divides the single zmax-value storage into multiple segmented zmax-values (e.g., zmax0, zmax1, zmax2, zmax3) corresponding to different depth layers in MSAA. Each zmax-value represents the maximum depth for a specific layer, enabling accurate per-layer culling decisions while maintaining efficient memory usage through compact storage structures.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent adds a new dimension to depth representation by introducing layer indices alongside zmax-values. Instead of a single scalar depth value, the system now uses (layer_index, zmax_value) pairs, where layer_index identifies which MSAA layer the depth value belongs to. This dimensional extension enables precise culling accuracy for multi-layer scenarios without proportionally increasing memory consumption.

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

2Speed

If zmax-values are conservatively updated without feedback, then processing speed is maintained, but culling efficiency deteriorates due to overly conservative depth values

Engineering Contradiction:
Improveprocessing speedVSAvoidculling efficiency
Core Design Contradiction:
SpeedVSProductivity

Solution Approach 1:

The patent performs preliminary computation of zmax-values during the rasterization phase, before the actual depth testing occurs. By pre-calculating accurate zmax-values for each layer based on the current triangle being rendered, the system eliminates the need for conservative approximations and subsequent feedback loops, achieving both high processing speed and high culling efficiency simultaneously.

Inventive Principle:
Principle #10Preliminary action

3Measurement precision

If per-sample depth values are read from memory for every triangle, then culling accuracy is maximized, but memory access overhead increases significantly

Engineering Contradiction:
Improveculling accuracyVSAvoidmemory access overhead
Core Design Contradiction:
Measurement precisionVSLoss of time

Solution Approach 1:

The patent extracts only the essential depth information (zmax-values per layer) from the full per-sample depth buffer and stores it in a compact tile-level representation. This extracted representation contains precisely the information needed for culling decisions, eliminating the need to read entire per-sample depth values from memory for every triangle, thus reducing memory access overhead while maintaining culling accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a simplified copy of the depth buffer at the tile level, storing only the maximum depth values for each layer rather than all per-sample depth values. This copy structure (zmax0, zmax1, zmax2, zmax3 per tile) serves as a sufficient statistic for culling decisions, enabling accurate occlusion testing without the memory access cost of the full depth buffer.

Inventive Principle:
Principle #26Copying

4Productivity

If multiple zmax-values are maintained per tile with per-sample granularity, then culling efficiency is improved, but device complexity increases

Engineering Contradiction:
Improveculling efficiencyVSAvoiddata structure complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent applies local quality by maintaining multiple zmax-values only where needed (per tile) rather than globally across the entire framebuffer. Each tile independently stores its own set of zmax-values (zmax0, zmax1, zmax2, zmax3) corresponding to its local depth layers, enabling efficient localized culling decisions without imposing global data structure complexity on the entire rendering system.

Inventive Principle:
Principle #3Local quality

Data Source

PatentUS9934604B2Culling using masked depths for MSAA
Publication Date: 2018.04.03 INTEL CORP
  • US9934604B2 patent drawing
  • US9934604B2 patent drawing
  • US9934604B2 patent drawing

AI summary

In accordance with some embodiments, a full per sample coverage mask may be used for a subset of the pixels in the tile, thereby enabling pixels that belong to multiple depth ranges to be handled. This makes the depth bounds a tighter fit for the true depth range of the tile and improves hierarchical depth culling efficiency when MSAA is used.