Shader Prologue Shared Functions for Constant Computation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing unit (GPU) shader computations are inefficient due to repeated calculations of constants, leading to CPU bottlenecking and performance drops, especially with dynamic constant folding requiring recompilation and slow GPU memory reads.

Innovation Solution

Implement a shared function for multiple shader instances, executed as a prologue, to compute constant values across instances without accessing the constant buffer, thereby reducing redundant calculations and synchronization issues.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If dynamic constant folding is applied to optimize shader computations, then calculation efficiency is improved, but CPU usage increases and CPU bottlenecking occurs

Engineering Contradiction:
Improveshader computation efficiencyVSAvoidCPU usage
Core Design Contradiction:
ProductivityVSPower

Solution Approach 1:

The patent extracts the constant buffer access and folding computation from the CPU domain and relocates it to the GPU domain. The GPU directly accesses constants from the constant buffer and performs folding computations independently, removing the CPU bottleneck caused by reading constants and performing computations before shader execution.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces an intermediary mechanism where the GPU itself serves as the mediator between the constant buffer and the shader computation. Instead of CPU reading constants and passing them to GPU, the GPU directly accesses the constant buffer and uses those constants in computations, eliminating the CPU intermediary role.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Measurement precision

If constants are read from GPU memory for dynamic constant folding, then computation accuracy is improved, but performance drops due to slow GPU memory reads

Engineering Contradiction:
Improvecomputation accuracyVSAvoidGPU performance
Core Design Contradiction:
Measurement precisionVSSpeed

Solution Approach 1:

The patent applies preliminary action by having the GPU access and process constants directly within the shader execution context before the actual shader computations begin. The constant buffer is accessed and folded computations are performed as part of the shader prologue, eliminating the need for separate slow memory read operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent merges the constant buffer access operation with the shader computation operation. Instead of separate steps of reading constants from memory and then performing computations, the patent combines these operations so that constants are accessed and immediately used in folding computations within the same execution context, reducing memory access overhead.

Inventive Principle:
Principle #5Merging (Combining)

3Adaptability or versatility

If multiple shader instances access the constant buffer, then shader functionality is maintained, but synchronization issues and performance drops occur

Engineering Contradiction:
Improveshader instance functionalityVSAvoidsynchronization stability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent segments the constant buffer access operation so that each shader instance has its own independent access path to the constant buffer. Instead of multiple instances sharing a single access point that requires synchronization, each instance can independently read and fold constants without interfering with others, eliminating synchronization bottlenecks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements a copying mechanism where constant values are copied into a local context or register file for each shader instance. Instead of all instances continuously accessing and potentially conflicting over the shared constant buffer, each instance has its own copy of the folded constants, eliminating synchronization issues while maintaining functionality.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS12444118B2Constant-based calculations in shader prologue shared function
Publication Date: 2025.10.14 INTEL CORP
  • US12444118B2 patent drawing
  • US12444118B2 patent drawing
  • US12444118B2 patent drawing

AI summary

A system creates a single shared instance of a shared function from shader code for multiple instances of the shader. The system creates multiple instances of a primary shader function from shader code to compute instance-specific values. The system creates the single instance of the shared function to compute a value used by the multiple instances of the primary shader function. A graphics execution unit can execute the multiple instances of the primary shader function, including calling the shared function from the multiple instances of the primary shader function.