Culling Shader Vertex Index Routing for Two-Level Primitive Binning
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing hardware-accelerated three-dimensional graphics processing systems face inefficiencies in rendering operations due to inadequate handling of culling and binning processes, leading to suboptimal cache locality and increased memory access bandwidth, which affects performance and power consumption.
Innovation Solution
Implementing a two-level primitive batch binning system that includes a coarse binner and a fine binner, with a culling shader that outputs culled primitives and provides reconstituted draw calls, enhancing spatial and temporal cache locality by organizing geometry into coarse and fine bins based on visibility testing and tile ordering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Use of energy by moving object
If traditional single-level binning is used, then device complexity is low, but cache locality is poor leading to increased memory access bandwidth
Solution Approach 1:
The patent divides the binning process into two distinct levels: a coarse binner that performs initial spatial grouping, and a fine binner that performs detailed organization. This segmentation allows each level to operate with optimized data structures and algorithms, improving overall cache locality while distributing computational complexity across multiple specialized components rather than a single complex system.
Solution Approach 2:
The fine binning structure is nested within the coarse binning framework, where fine bins are organized within coarse bin regions. This nested arrangement enables hierarchical data access patterns that maximize cache utilization, as data accessed at the fine level is already pre-positioned within the appropriate coarse region, reducing memory access bandwidth requirements.
2Productivity
If comprehensive geometry processing is performed, then rendering completeness is high, but processing time increases due to unnecessary culled geometry
Solution Approach 1:
The system performs preliminary culling operations during the coarse binning phase, identifying and eliminating invisible or culled primitives before they proceed to the fine binning and rendering stages. This preliminary action ensures that only potentially visible geometry undergoes detailed processing, significantly reducing total processing time while maintaining rendering completeness.
Solution Approach 2:
The patent extracts and removes culled geometry from the processing pipeline at the coarse binning stage, preventing unnecessary computation on invisible primitives. By taking out these irrelevant elements early in the pipeline, the system avoids wasting processing time on geometry that will not contribute to the final rendered image.
3Speed
If inadequate culling and binning are used, then device complexity is low, but cache locality is poor affecting performance
Solution Approach 1:
The rendering pipeline is segmented into distinct culling and binning stages, with the coarse binner handling spatial culling and organization, and the fine binner handling detailed tile-based binning. This segmentation enables each component to be optimized independently for its specific function, improving overall rendering speed through specialized processing.
Solution Approach 2:
The patent introduces a hierarchical dimension to the binning process by organizing geometry into multiple levels of spatial organization (coarse bins containing fine bins). This dimensional approach to data organization creates more efficient cache access patterns, as related geometry is grouped together across multiple organizational layers, improving rendering speed without excessive complexity.
Data Source
AI summary
Techniques for performing rendering operations are disclosed herein. The techniques include providing indices and vertices to a culling shader; culling primitives and outputting primitives and indices that are not culled; and generating information for a fine binning pass based on the indices and primitives that are not culled.


