Shader Variable Precision Control for GPU Rendering Quality

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Graphics processing units (GPUs) face challenges in maintaining high rendering quality while using lower precision data types, such as medium-p and low-p, which can lead to performance issues and lower quality rendering compared to FP32 implementations, as they may result in overflow and underflow exceptions.

Innovation Solution

Implementing automated data type precision control that tracks and monitors shader variables for potential overflow and underflow exceptions during execution, dynamically upgrading the precision of these variables to higher formats as needed to prevent exceptions and maintain rendering quality.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If medium-p or low-p data types are used in shader variables, then pixel processing capability and frames per second are improved, but rendering quality deteriorates due to overflow and underflow exceptions

Engineering Contradiction:
Improveframes per secondVSAvoidrendering quality
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The system dynamically adjusts the precision of shader variables at runtime based on detected overflow and underflow exceptions. The graphics driver monitors exception conditions and automatically upgrades variable precision from medium-p or low-p to high-p when needed, allowing the system to adapt between performance and quality requirements during execution

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The invention changes the precision parameter of shader variables dynamically. When overflow or underflow exceptions are detected, the system modifies the data type precision from lower precision (medium-p/low-p) to higher precision (high-p), thereby resolving rendering quality issues while maintaining performance when possible

Inventive Principle:
Principle #35Parameter changes

2Reliability

If high-p data types are used in shader variables, then rendering quality is maintained, but pixel processing capability and performance decrease

Engineering Contradiction:
Improverendering qualityVSAvoidpixel processing capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system applies different precision levels to different shader variables based on their specific needs. Instead of uniformly using high-p precision for all variables, the system selectively upgrades precision only for variables that exhibit overflow or underflow exceptions, allowing other variables to remain in faster medium-p or low-p formats

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The precision configuration is dynamic rather than static. The system starts with lower precision for performance and automatically upgrades to high-p precision locally and temporarily only when and where exceptions occur, rather than maintaining high-p precision throughout the entire shader execution

Inventive Principle:
Principle #15Dynamics

3Reliability

If automated precision control is implemented, then rendering quality is maintained through exception handling, but device complexity increases

Engineering Contradiction:
Improverendering qualityVSAvoidprecision control mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements self-service through automatic exception detection and handling. The graphics driver autonomously monitors for overflow and underflow exceptions, identifies affected shader variables, and upgrades their precision without requiring manual intervention or complex external control mechanisms

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The system uses feedback from runtime exception monitoring to drive precision adjustments. When overflow or underflow exceptions are detected during shader execution, this feedback triggers automatic precision upgrades for the affected variables, creating a closed-loop control system that responds to actual rendering quality issues

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10332308B2Graphic rendering quality improvements through automated data type precision control
Publication Date: 2019.06.25 INTEL CORP
  • US10332308B2 patent drawing
  • US10332308B2 patent drawing
  • US10332308B2 patent drawing

AI summary

One or more system, apparatus, method, and computer readable media is described below for automated data type precision control capable of improving rendering quality on a graphics processor. Perceptible rendering quality is dependent at least in part on number format precision (e.g., FP16 or FP32) employed for shader program variables. In accordance with embodiments, shader variables implemented in lower precision data formats are tracked during shader compile to identify those that might trigger a floating point overflow and/or underflow exception. For shaders including one or more such variable, resources are provided to automatically monitor overflow and/or underflow exceptions during shader execution. In further embodiments, shader code is automatically re-generated based, at least in part, upon occurrences of such exceptions, and an increased number format precision specified for one or more of the tracked shader variables.