Constant Buffer Translation Table for GPU Context Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face performance penalties due to the need to flush and reload the entire constant buffer when switching between rendering contexts, which stalls execution units and disrupts the processing of shader programs.

Innovation Solution

A constant buffer system that allows simultaneous processing of constants from multiple rendering contexts by using a translation table to map constants into physical storage slots, enabling updates without stalling execution units, and managing constant fetches and updates to maintain multiple contexts within the buffer.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire constant buffer is flushed and reloaded when switching between rendering contexts, then the correctness of constant data is ensured, but the execution units are stalled and performance deteriorates

Engineering Contradiction:
Improvecorrectness of constant dataVSAvoidexecution speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The constant buffer is divided into multiple independent slots, each capable of storing constants for different rendering contexts simultaneously. This segmentation allows the system to maintain multiple contexts without flushing the entire buffer, thereby preserving correctness while eliminating performance penalties during context switching.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a translation table that maps constant indices to physical buffer slots, adding a layer of indirection between the shader program constants and the physical storage. This dimensional change enables efficient context switching by allowing the translation table to be updated independently of the actual constant data in the buffer slots.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Adaptability or versatility

If the constant buffer is updated with new context constants, then the rendering context switching is enabled, but the execution unit must wait for the flush operation to complete

Engineering Contradiction:
Improverendering context switching capabilityVSAvoidexecution stall time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system pre-loads constants for multiple rendering contexts into different buffer slots before the actual execution begins. The translation table is prepared in advance to map constant indices to the appropriate buffer slots for each context, eliminating the need to wait for flush operations during context switching.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

Instead of flushing and rewriting the entire constant buffer, the system copies only the necessary constant data into specific buffer slots corresponding to different rendering contexts. This selective copying approach enables rapid context switching without the time penalty of full buffer operations.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If multiple rendering contexts are supported simultaneously, then the adaptability of the system is improved, but the device complexity increases

Engineering Contradiction:
Improvemulti-context supportVSAvoidconstant buffer management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The translation table serves as an intermediary between the shader program's constant references and the physical constant buffer slots. This mediator simplifies the management of multiple rendering contexts by providing a straightforward mapping mechanism that decouples the complexity of multi-context support from the execution unit's perspective.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8319774B2Constant buffering for a computational core of a programmable graphics processing unit
Publication Date: 2012.11.27 VIA TECH INC
  • US8319774B2 patent drawing
  • US8319774B2 patent drawing
  • US8319774B2 patent drawing

AI summary

Embodiments of the present disclosure are directed to graphics processing systems, comprising: a plurality of execution units, wherein one of the execution units is configurable to process a thread corresponding to a rendering context, wherein the rendering context comprises a plurality of constants with a priority level; a constant buffer configurable to store the constants of the rendering context into a plurality of slot in a physical storage space; and an execution unit control unit configurable to assign the thread to one of the execution units; a constant buffer control unit providing a translation table for the rendering context to map the corresponding constants into the slots of the physical storage space. Comparable methods are also disclosed.