Graphics Driver Delta State Submission for PSO Transitions

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern graphics APIs bundle large amounts of state into Pipeline State Objects (PSOs) to enhance GPU processing efficiency, but this leads to significant duplications and inefficiencies due to wasteful resource usage, such as time, memory, and power, resulting in costly and inefficient GPU processing.

Innovation Solution

A mechanism is implemented in the graphics driver to detect transitions between PSOs and selectively submit delta states, eliminating duplications by recording transitions in a data structure, ensuring efficient processing and minimizing future submission costs, while ensuring thread safety for concurrent operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If large amounts of state are bundled into a single PSO object, then GPU processing efficiency is improved, but significant duplications occur leading to higher resource costs

Engineering Contradiction:
ImproveGPU processing efficiencyVSAvoidresource costs
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent segments the PSO state data into two parts: common state data that is shared across multiple PSOs and delta state data that contains only the differences. This segmentation allows the GPU to process efficient bundled states while avoiding duplication of common data, thereby resolving the contradiction between processing efficiency and resource consumption.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Instead of copying entire PSO objects which causes duplication, the patent copies only the delta state data (the differences) from one PSO to another. This selective copying mechanism maintains the benefits of state bundling while eliminating redundant data transmission, thus improving efficiency without increasing resource costs.

Inventive Principle:
Principle #26Copying

2Speed

If PSOs are bundled to achieve better efficiency, then processing speed is improved, but duplications lead to wasted time and memory

Engineering Contradiction:
Improveprocessing speedVSAvoidwasted time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent extracts only the essential delta state information from complete PSO objects. By taking out only the necessary differences and leaving out redundant common state data, the system achieves fast processing speed without the time waste associated with transmitting duplicate information.

Inventive Principle:
Principle #2Taking out (Extraction)

3Reliability

If complete PSOs are submitted to eliminate state transitions, then processing completeness is improved, but resource wastage increases

Engineering Contradiction:
Improveprocessing completenessVSAvoidresource wastage
Core Design Contradiction:
ReliabilityVSLoss of substance

Solution Approach 1:

The patent merges the common state data (inherited from parent PSO) with the delta state data (specific differences) to form a complete logical PSO representation. This merging ensures processing completeness is maintained while avoiding the resource wastage of submitting redundant complete PSO data, as only the necessary delta portions are transmitted.

Inventive Principle:
Principle #5Merging (Combining)

Data Source

PatentUS9881352B2Facilitating efficient graphics commands processing for bundled states at computing devices
Publication Date: 2018.01.30 INTEL CORP
  • US9881352B2 patent drawing
  • US9881352B2 patent drawing
  • US9881352B2 patent drawing

AI summary

A mechanism is described for facilitating efficient processing of graphics commands at computing devices. A method of embodiments, as described herein, includes detecting a current object representing a bundled state of graphics commands in a command list to be processed at a graphics processor of a computing device, and evaluating the current object to determine a previous object bound to a first set of the graphics commands, where the first set of the graphics commands is associated with a first command state corresponding to the previous object. The method may further include copying a second set of the graphics commands to a command buffer associated with the command list, where the second set of the graphics commands represents a remainder of the graphics commands in the command list upon excluding the first set of the graphics commands. The method may further include facilitating the graphics processor to execute the second set of the graphics commands from the command buffer.