Command Buffer Formats for Data-Parallel Graphics Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional 3D computer graphics rendering approaches result in poor coordination between CPUs and GPUs, leading to low throughput and graphics performance due to inefficient data access and processing, where the CPU waits for the GPU to catch up, causing idle periods and resource wastage.

Innovation Solution

A facility that generates a GPU-specific command buffer through data-parallel translation of an application-defined command buffer, using compute kernels and SIMD instructions to optimize processing, allowing simultaneous operation of CPUs and GPUs and reducing resource consumption.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the CPU generates rendering commands and waits for the GPU to catch up, then the CPU can process the next frame's data, but the CPU experiences idle periods and throughput decreases

Engineering Contradiction:
Improverendering throughputVSAvoidCPU idle time
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The CPU prepares command buffers in advance for multiple future frames before the GPU has finished processing current frames. This allows the CPU to continue generating rendering commands without waiting for the GPU to catch up, eliminating CPU idle periods and maintaining high throughput.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A command buffer serves as an intermediary data structure that decouples the CPU and GPU operations. The CPU writes commands to the buffer asynchronously while the GPU consumes them at its own pace, allowing both processors to operate independently without blocking each other.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If the CPU generates GPU-specific commands through a device driver, then the commands are optimized for the specific GPU, but the CPU processing resources are consumed by the driver software

Engineering Contradiction:
Improvegraphics performanceVSAvoidCPU processing resources
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The CPU generates GPU-specific commands in advance and stores them in command buffers before the GPU needs them. This preliminary generation allows the CPU to work efficiently on command generation without real-time pressure, reducing overall CPU resource consumption during rendering operations.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system allows the CPU to independently generate and queue commands without continuous driver software intervention for each command. Once commands are generated and queued, the GPU executes them autonomously, reducing the ongoing CPU processing burden while maintaining optimized GPU-specific command generation.

Inventive Principle:
Principle #25Self-service

3Productivity

If the CPU and GPU operate simultaneously without coordination, then processor utilization increases, but data access efficiency decreases

Engineering Contradiction:
Improveprocessor utilizationVSAvoiddata access efficiency
Core Design Contradiction:
ProductivityVSEase of manufacture

Solution Approach 1:

The command buffer acts as an intermediary that coordinates CPU and GPU operations. The CPU writes to the buffer while the GPU reads from it, allowing simultaneous operation without direct interference. This intermediary structure maintains data access efficiency by providing a dedicated communication channel between the two processors.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system transitions from sequential CPU-GPU operation to parallel operation by adding the time dimension for asynchronous command submission. Multiple frames of commands can be prepared in advance in different time slots, allowing the CPU to work on future frames while the GPU processes current frames without data access conflicts.

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

Data Source

PatentUS9792663B2User-defined command buffer formats supporting data-parallel translation
Publication Date: 2017.10.17 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9792663B2 patent drawing
  • US9792663B2 patent drawing
  • US9792663B2 patent drawing

AI summary

A facility for specifying a set of graphics commands for performance on behalf of an application is provided. The facility provides a first, command signature data structure specifying a list of resources capable of affecting the outcome of graphics commands among the set. The facility further provides a second, application-defined command buffer data structure that, for each of the graphics commands among a set, represents the graphics command by including a value for each of the resources of the list.