Programmable Pixel Shader Dispatch for Blending Consistency
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics processing units (GPUs) face challenges in consistently blending graphics objects due to the unpredictable processing order of pixel shaders and inefficient resource utilization in super-sampling modes, leading to inconsistent image quality and increased resource consumption.
Innovation Solution
A method for dispatching pixel information in a graphics processing pipeline that generates multiple samples based on a graphics primitive, calculates source values, retrieves destination values from render targets, blends these values, and stores the results in output registers, allowing for efficient per-sample operations and flexible blending without the limitations of fixed-function operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If pixel shader programs are executed in parallel on multiple processing pipelines, then processing speed is improved, but processing order becomes unpredictable leading to inconsistent blending results
Solution Approach 1:
The patent applies preliminary action by performing a coverage test before the blending operation to determine which pipeline should execute the pixel shader. This pre-determination of the winning pipeline based on coverage area ensures that the blending order is consistent and predictable, resolving the reliability issue while maintaining parallel processing capabilities
Solution Approach 2:
The patent changes the parameter used for pipeline selection from arbitrary or round-robin scheduling to coverage-based selection. By using coverage area as the selection criterion, the system ensures that pipelines processing larger coverage areas execute first, providing deterministic blending order across multiple parallel pipelines
2Manufacturing precision
If super-sampling mode is used to improve image quality, then image quality is improved, but resource consumption increases significantly
Solution Approach 1:
The patent segments the super-sampling process by allowing pixel shader programs to selectively render to different sample locations within a pixel. Instead of requiring separate pixel shader executions for each sample, the system divides the work by having a single pixel shader program render to multiple sample locations based on coverage tests, reducing resource consumption while maintaining image quality
Solution Approach 2:
The patent applies partial action by performing coverage tests that determine whether to render to all samples or only some samples within a pixel. This selective rendering approach avoids the excessive resource consumption of full super-sampling while still achieving improved image quality where needed, by rendering to the minimum necessary samples
Data Source
AI summary
Techniques are disclosed for dispatching pixel information in a graphics processing pipeline. A fragment processing unit in the graphics processing pipeline generates a pixel that includes multiple samples based on a portion of a graphics primitive received by a thread. The fragment processing unit calculates a set of source values, where each source value corresponds to a different sample of the pixel. The fragment processing unit retrieves a set of destination values from a render target, where each destination value corresponds to a different source value. The fragment processing unit blends each source value with a corresponding destination value to create a set of final values, and creates one or more dispatch messages to store the set of final values in a set of output registers. One advantage of the disclosed techniques is that pixel shader programs perform per-sample operations with increased efficiency.


