Programmable Blend Operations in GPU Color Raster Operations

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional graphics processing units (GPUs) are unable to efficiently render complex blend modes required by graphics rendering standards like OpenVG, SVG, and Adobe Flash, as they rely on fixed-function sum of two products circuits, leading to performance issues compared to central processing units (CPUs).

Innovation Solution

Implementing a programmable blend operation within the GPU that decomposes complex blend modes into a series of simple blend passes, using a sequence of instructions to perform arbitrary blend operations, allowing for efficient rendering of graphics content by a graphics processing unit.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a fixed-function sum of two products circuit is used in the CROP unit, then the hardware implementation is simple, but complex blend modes required by graphics rendering standards cannot be implemented

Engineering Contradiction:
Improveblend mode compatibilityVSAvoidCROP unit complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The complex blend operation is segmented into multiple simple blend passes, where each pass uses a basic sum of two products circuit. The CROP unit executes a sequence of these simple passes to achieve complex blend modes, maintaining hardware simplicity while expanding functionality.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The CROP unit is made dynamically programmable by introducing an instruction cache and instruction memory that allow the blend operation sequence to be configured at runtime. This enables the same hardware to adapt to different complex blend modes by loading different instruction sequences.

Inventive Principle:
Principle #15Dynamics

2Adaptability or versatility

If a fragment shader is programmed to implement complex blend modes, then programmability is achieved, but read and write latency to frame buffer memory cripples rendering performance

Engineering Contradiction:
Improveblend mode programmabilityVSAvoidrendering throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The blending operation is extracted from the fragment shader and moved to the CROP unit. This allows the computationally intensive blend operations to be performed closer to the frame buffer memory, reducing memory access latency and improving rendering throughput while maintaining programmability through instruction sequences.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

An instruction cache and instruction memory are introduced as intermediaries between the fragment shader output and the frame buffer memory. These intermediaries allow the CROP unit to execute complex blend operations locally without requiring frequent reads and writes to the main frame buffer memory, thus reducing latency.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If CPU is used to render graphics content with complex blend modes, then correct rendering is achieved, but processing throughput is insufficient compared to GPU

Engineering Contradiction:
Improverendering accuracyVSAvoidrendering throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The GPU's CROP unit is given universal capability to handle both simple and complex blend modes through programmable instruction sequences. This allows the GPU to maintain its high parallel processing throughput while correctly rendering various complex blend modes that were previously only achievable on CPU.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS9183609B2Programmable blending in multi-threaded processing units
Publication Date: 2015.11.10 NVIDIA CORP
  • US9183609B2 patent drawing
  • US9183609B2 patent drawing
  • US9183609B2 patent drawing

AI summary

A technique for efficiently rendering content reduces each complex blend mode to a series of basic blend operations. The series of basic blend operations are executed within a recirculating pipeline until a final blended value is computed. The recirculating pipeline is positioned within a color raster operations unit of a graphics processing unit for efficient access to image buffer data.