Region-Based Depth Testing for Early GPU Occlusion Culling
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing unit (GPU) rendering pipelines face inefficiencies in Early-Ztest due to the need for depth tests after raster processes, which impact culling efficiency.
Innovation Solution
Implement a block-based depth test method that splits tiles into blocks before raster, using block information and primitive information to determine depth ranges and test results, allowing early culling of occluded objects without proceeding to the raster stage, and utilizing a depth range buffer for efficient depth range acquisition.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Measurement precision
If Early-Ztest is performed after raster process, then pixel-level depth test accuracy is improved, but culling efficiency deteriorates
Solution Approach 1:
The patent divides the processing into two levels: block-level depth testing (coarse granularity) and pixel-level depth testing (fine granularity). Each tile is divided into multiple blocks, and depth testing is first performed at the block level to quickly eliminate obviously occluded blocks, then pixel-level testing is performed only on remaining blocks. This segmentation resolves the contradiction by achieving both efficiency (through block-level culling) and accuracy (through pixel-level testing where needed).
Solution Approach 2:
The patent performs preliminary depth range calculation and block-level depth testing before the raster process and pixel-level depth testing. By calculating depth ranges in advance and performing early culling at the block level, the system eliminates unnecessary pixel-level processing, thereby improving culling efficiency while maintaining the option for accurate pixel-level testing when required.
2Productivity
If depth test is performed before raster process, then culling efficiency is improved, but measurement precision deteriorates
Solution Approach 1:
The patent implements a two-stage depth testing approach with different precision levels. The first stage performs block-level depth testing using depth ranges before rasterization, providing efficient but approximate culling. The second stage performs pixel-level depth testing after rasterization, providing precise accuracy. This segmentation allows the system to achieve both high culling efficiency and accurate depth testing where necessary.
Solution Approach 2:
The patent applies partial precision to partial problems: block-level depth testing uses approximate depth ranges for efficient culling of obviously occluded blocks, while pixel-level depth testing uses precise per-pixel depth values for accurate testing where needed. This partial application of different precision levels resolves the contradiction by not requiring full precision everywhere, thus achieving both efficiency and accuracy.
3Device complexity
If tile is processed as whole, then processing simplicity is maintained, but computational resource waste increases
Solution Approach 1:
The patent segments each tile into multiple blocks and processes them independently at the block level. This segmentation allows the system to identify and cull entire blocks that are obviously occluded, avoiding the need to process all pixels in the entire tile. The segmented approach maintains relative simplicity through regular block structures while significantly reducing computational resource waste by eliminating unnecessary pixel processing.
Solution Approach 2:
The patent performs preliminary block-level depth testing and culling before proceeding to pixel-level processing. By evaluating depth ranges at the block level first, the system identifies and eliminates blocks that do not require further processing, thereby preventing waste of computational resources on pixels within those blocks while maintaining a relatively simple overall processing framework.
Data Source
Figure 1~2
Figure 3~5
Figure 6
AI summary
A region-based depth test method and apparatus, a device, a storage medium, and a computer program product. The method includes: before executing a tile rasterization process, dividing a tile is divided to obtain a plurality of regions to be tested and region data corresponding to said regions, the region data including region information of said regions and graphic primitive information corresponding to said regions (S201); for each said region, generating a first depth range of said region on the basis of the region information of said region and the graphic primitive information corresponding to said region (S202); acquiring a second depth range of said region from a depth range cache (S203); and determining a depth test result of said region on the basis of the first depth range and the second depth range, the depth test result being used for indicating whether said region requires a pixel-level depth test (S204).