GPU Overdraw Culling for 2D UI Fragment Shading
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Graphics processing units face high workload and overdrawing issues in scenarios lacking depth information, particularly in two-dimensional user interface applications where culling algorithms like depth culling cannot be executed, leading to inefficient shader processor load and increased power consumption.
Innovation Solution
Incorporating a culling module with an overdraw culling module and a register to identify and perform overdraw culling operations on specific sub-regions, including those without depth information, before processing by the shader processor, thereby reducing unnecessary fragment shading and improving performance and power efficiency.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If depth culling algorithm is used to reduce fragment shader workload, then shader processor load is reduced, but the method cannot be applied in two-dimensional user interface scenarios where depth information is unavailable
Solution Approach 1:
The patent changes the culling parameter from depth information to screen space position information and fragment ranking information. This allows the overdraw culling module to identify and cull fragments that will be overwritten by later drawn fragments, enabling effective culling in both 3D scenes with depth information and 2D UI scenarios without depth information.
Solution Approach 2:
The overdraw culling module is designed to handle multiple types of drawing scenarios universally. It can process fragments from both 3D rendering pipelines and 2D UI rendering pipelines by using a unified culling approach based on screen space position and fragment ranking, making the GPU adaptable to diverse application types including games, 3D applications, and 2D UI applications.
2Reliability
If all fragments are processed by the shader processor, then complete rendering accuracy is achieved, but power consumption and processing time increase significantly
Solution Approach 1:
The overdraw culling module performs preliminary filtering of fragments before they reach the shader processor. By using screen space position information and fragment ranking information to identify and cull fragments that will be overwritten, the system eliminates unnecessary shader processing in advance, reducing power consumption while maintaining rendering accuracy for visible fragments.
Solution Approach 2:
The patent extracts and removes redundant fragments from the processing pipeline before they consume shader processor resources. The overdraw culling module identifies fragments that are guaranteed to be overwritten by later drawn fragments and removes them from further processing, separating useful rendering work from wasted computation.
3Productivity
If overdraw culling is performed on all fragments, then shader processor load is reduced, but processing overhead increases in regions with special operations like blend and stencil comparisons
Solution Approach 1:
The patent applies different processing qualities to different regions of the screen. The overdraw culling module focuses its detailed culling operations on regions without special operations (blend, stencil comparison, instruction discard) where simple screen space position comparison is sufficient. For regions with special operations, the system adjusts its approach to avoid unnecessary complexity while maintaining correctness.
Data Source
AI summary
A graphics processing unit includes a culling module and a shader processor, the culling module includes a register and an overdraw culling module, and an output end of the overdraw culling module is coupled to an input end of the shader processor. The overdraw culling module is configured to: record position information of a plurality of fragments of the drawing task in the graphic region and ranking information of the plurality of fragments involved in drawing, perform the overdraw culling operation on a fragment in the sub-region based on the position information and the ranking information, and send, to the shader processor, a fragment in the plurality of fragments that needs to be drawn. The shader processor is configured to perform shading on the fragment in the plurality of fragments that needs to be drawn.


