Programmable Pixel Shader Dispatch for Blending Consistency

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveprocessing speedVSAvoidblending consistency
Core Design Contradiction:
ProductivityVSReliability

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

Inventive Principle:
Principle #10Preliminary action

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

Inventive Principle:
Principle #35Parameter changes

2Manufacturing precision

If super-sampling mode is used to improve image quality, then image quality is improved, but resource consumption increases significantly

Engineering Contradiction:
Improveimage qualityVSAvoidresource consumption
Core Design Contradiction:
Manufacturing precisionVSUse of energy by moving object

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

Inventive Principle:
Principle #1Segmentation

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

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS9082212B2Programmable blending via multiple pixel shader dispatches
Publication Date: 2015.07.14 NVIDIA CORP
  • US9082212B2 patent drawing
  • US9082212B2 patent drawing
  • US9082212B2 patent drawing

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.