Programmable GPU Blending via Decomposed Operation Sequences

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The direct implementation of blending equations for various blending modes in graphics processing units (GPUs) is complex and cost-prohibitive, necessitating a more efficient method to support multiple blending modes and graphics functions.

Innovation Solution

The implementation of blending equations is simplified by decomposing each equation into a sequence of operations from a base set, allowing different blending equations to be implemented with different sequences of operations, which simplifies hardware implementation and provides flexibility to support various blending modes and graphics functions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Manufacturing precision

If dedicated hardware is used to directly implement all blending equations for various blending modes, then blending accuracy and visual effect quality are improved, but device complexity and manufacturing cost increase significantly

Engineering Contradiction:
Improveblending accuracyVSAvoidhardware complexity
Core Design Contradiction:
Manufacturing precisionVSDevice complexity

Solution Approach 1:

The patent implements a universal blending processing unit that can perform multiple blending modes (src over dst, dst over src, src in dst, dst in src, multiply, screen, overlay, darken, lighten) using a single set of hardware components. The unit uses configurable blending equations with parameters that can be programmed to support different blending modes, eliminating the need for dedicated hardware for each mode while maintaining blending accuracy.

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

Solution Approach 2:

The patent changes the parameters of a base blending equation to generate different blending modes. By configuring blending factors (src factor and dst factor) and selecting different blending equations from a set, the same hardware can produce various visual effects. This parameter-based approach allows one hardware unit to replace multiple dedicated units, reducing complexity while preserving functionality.

Inventive Principle:
Principle #35Parameter changes

2Adaptability or versatility

If dedicated hardware is implemented for each blending mode, then blending functionality and versatility are improved, but manufacturing cost increases

Engineering Contradiction:
Improveblending mode supportVSAvoidmanufacturing cost
Core Design Contradiction:
Adaptability or versatilityVSEase of manufacture

Solution Approach 1:

The blending processing unit is designed as a universal component that supports multiple blending modes through programmable parameters rather than dedicated hardware for each mode. This multi-functional design reduces the total number of hardware components needed, thereby lowering manufacturing costs while maintaining support for various blending modes including those defined in OpenVG and OpenGL standards.

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

Solution Approach 2:

The patent introduces dynamic configurability to the blending unit, allowing it to adapt its behavior based on programmed parameters. The blending equations and factors can be dynamically changed to support different modes, making the hardware flexible and versatile without requiring separate dedicated units for each mode, thus reducing manufacturing complexity and cost.

Inventive Principle:
Principle #15Dynamics

3Device complexity

If a base set of operations is used to decompose blending equations, then device complexity is reduced, but the number of operations required increases

Engineering Contradiction:
Improvehardware complexityVSAvoidprocessing time
Core Design Contradiction:
Device complexityVSLoss of time

Solution Approach 1:

The patent merges multiple blending operations into a unified processing pipeline. By combining the blending factor configuration, equation selection, and actual blending computation into a single programmable unit, the system reduces overall hardware complexity. The base set of operations is integrated efficiently, allowing the unit to perform multiple blending modes through a consolidated structure rather than separate dedicated circuits.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent performs preliminary configuration of blending parameters (src factor, dst factor, equation selection) before executing the actual blending operation. This pre-programming approach allows the hardware to be optimized for the specific blending mode being used, reducing the computational overhead during execution. The base operations are prepared and configured in advance, enabling faster real-time blending despite the multi-step process.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP2082373B1Programmable blending in a graphics processing unit
Publication Date: 2013.01.16 QUALCOMM INC
  • EP2082373B1 patent drawingFigure 1A~2
  • EP2082373B1 patent drawingFigure 3
  • EP2082373B1 patent drawingFigure 4

AI summary

Techniques for implementing blending equations for various blending modes with a base set of operations are described. Each blending equation may be decomposed into a sequence of operations. In one design, a device includes a processing unit that implements a set of operations for multiple blending modes and a storage unit that stores operands and results. The processing unit receives a sequence of instructions for a sequence of operations for a blending mode selected from the plurality of blending modes and executes each instruction in the sequence to perform blending in accordance with the selected blending mode. The processing unit may include (a) an ALU that performs at least one operation in the base set, e.g., a dot product, (b) a pre-formatting unit that performs gamma correction and alpha scaling of inbound color values, and (c) a post-formatting unit that performs gamma compression and alpha scaling of outbound color values.