Graphics Library Command Buffer for GPU Efficiency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics libraries lack flexibility in programming and efficiency in graphics processing, particularly in multiprocessor systems, due to obscure hardware-software boundaries, slow processing, and limited memory operational flexibility, which leads to performance degradation and difficulty in fine-tuned control and debugging.

Innovation Solution

A specialized graphics library that manages rendering commands directly for the GPU, eliminating the need for retained rendering attributes and allowing asynchronous communication between the main processor and GPU, enabling fast processing, clear hardware-software boundaries, and efficient memory management, while supporting multiple command lists and flexible flow control.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If a traditional graphics library is used to hide hardware-specific functions, then ease of operation is improved, but device complexity increases and programming flexibility is reduced

Engineering Contradiction:
Improveease of operationVSAvoiddevice complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The graphics library is segmented into multiple modules: a state management module that retains rendering attributes, a command generation module that creates rendering commands, and a command buffer management module. This segmentation allows the library to maintain high-level abstraction while internally managing hardware-specific complexities in dedicated modules, thus improving ease of operation without excessively increasing overall device complexity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a command buffer as an intermediary data structure between the high-level graphics library interface and the low-level GPU hardware. This command buffer acts as a mediator that translates abstract rendering commands into hardware-specific instructions, allowing the library to hide hardware complexity while maintaining programming flexibility through a standardized interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the CPU performs common processing and synchronous processing with the GPU, then reliability is improved, but productivity is reduced due to CPU bottlenecks

Engineering Contradiction:
ImprovereliabilityVSAvoidproductivity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements preliminary action by having the CPU pre-process and prepare rendering commands and store them in a command buffer before GPU execution. This includes pre-managing rendering state attributes and pre-generating the sequence of rendering commands. By performing these actions in advance, the CPU reduces the need for synchronous processing during GPU execution, thereby improving overall system productivity while maintaining reliability through proper command validation and state management.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces dynamic command lists that can be generated, modified, and managed independently of the main rendering loop. Multiple command lists can be created and switched between, allowing the system to dynamically adjust the distribution of work between CPU and GPU. This dynamic approach enables asynchronous processing where command generation and GPU execution can proceed independently, reducing CPU bottlenecks while maintaining reliable rendering through proper synchronization points.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If existing graphics libraries are used, then ease of operation is improved, but adaptability is reduced for fine-tuned control at hardware level

Engineering Contradiction:
Improveease of operationVSAvoidadaptability
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The patent implements dynamic command lists that can be generated, modified, and managed independently of the main rendering loop. Multiple command lists can be created and switched between, allowing the system to dynamically adjust the distribution of work between CPU and GPU. This dynamic approach enables asynchronous processing where command generation and GPU execution can proceed independently, reducing CPU bottlenecks while maintaining reliable rendering through proper synchronization points.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent introduces programmable parameters in the rendering command structure that allow dynamic adjustment of rendering parameters at the hardware level. These parameters include vertex buffer offsets, draw ranges, and state flags that can be modified without changing the overall library interface. This enables fine-tuned control for optimization while maintaining the ease of operation provided by the high-level library interface.

Inventive Principle:
Principle #35Parameter changes

4Ease of operation

If rendering attributes are retained in the graphics library, then ease of operation is improved, but loss of time occurs due to slow processing

Engineering Contradiction:
Improveease of operationVSAvoidloss of time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent implements preliminary action by having the CPU pre-process and prepare rendering commands and store them in a command buffer before GPU execution. This includes pre-managing rendering state attributes and pre-generating the sequence of rendering commands. By performing these actions in advance, the CPU reduces the need for synchronous processing during GPU execution, thereby improving overall system productivity while maintaining reliability through proper command validation and state management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentEP1921584B1Graphics processing apparatus, graphics library module, and graphics processing method
Publication Date: 2021.07.14 SONY INTERACTIVE ENTERTAINMENT LLC
  • EP1921584B1 patent drawingFigure 1
  • EP1921584B1 patent drawingFigure 2A~2C
  • EP1921584B1 patent drawingFigure 3

AI summary

There is provided a graphics processing system that includes a main processing unit (100) and a graphics processing unit (GPU) (200). The main processing unit (100) puts rendering commands generated using a graphics library (300) in the queue of a command buffer (10) in a main memory. In this process, the library function offered by the graphics library (300) is converted into the rendering commands, without any rendering attributes retained in the library. The GPU (200) reads and executes the rendering commands stacked in the command buffer (10), and generates rendering data in a frame buffer.