Graphics Processing Subprocessor Command Buffer Architecture

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics libraries are not suitable for finely-tuned control of graphics processing at the hardware level, leading to performance degradation due to CPU bottlenecks and unclear boundaries between hardware and software, resulting in slow processing, low operational flexibility, and inability to generate multiple rendering command lists.

Innovation Solution

A graphics processing apparatus with a main processing unit generating rendering commands, a command buffer for storing these commands, and a graphics processing unit that executes them, allowing for independent operation of sub-processors and clear hardware-software separation, enabling efficient and flexible memory management and generation of multiple command lists.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If the CPU performs common processing and synchronous processing with the GPU, then the graphics processing can be coordinated, but the CPU becomes the bottleneck and system performance is degraded

Engineering Contradiction:
Improvesystem performanceVSAvoidCPU bottleneck
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The main processing unit is divided into a main processor for common processing and a sub processor for graphics-related processing. This segmentation allows the sub processor to handle rendering command generation independently, preventing the main processor from becoming a bottleneck while maintaining coordinated graphics processing.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A command buffer is introduced as an intermediary data structure between the processor and GPU. The sub processor generates rendering commands and stores them in the command buffer, which the GPU then consumes asynchronously. This intermediary mechanism decouples the processor from the GPU, eliminating synchronization bottlenecks.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If existing graphics libraries are used to hide hardware-specific functions, then programming is simplified, but fine-tuned control at the hardware level is lost

Engineering Contradiction:
Improveprogramming simplicityVSAvoidhardware control flexibility
Core Design Contradiction:
Ease of operationVSAdaptability or versatility

Solution Approach 1:

The system provides dynamic control flexibility by allowing programmers to choose between high-level graphics library functions and low-level hardware control. The sub processor can generate rendering commands using graphics libraries when simplicity is needed, or directly manipulate rendering command sequences for fine-tuned hardware control, adapting to different programming needs.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The processing hierarchy is segmented into multiple levels: the main processor can use high-level graphics libraries for common tasks, while the sub processor provides intermediate control for hardware-specific optimizations. This segmentation allows programmers to access hardware control when needed without sacrificing the simplicity of library-based programming for routine operations.

Inventive Principle:
Principle #1Segmentation

3Reliability

If the CPU is involved in synchronous processing with the GPU, then coordination is achieved, but processing speed is reduced

Engineering Contradiction:
Improveprocessing coordinationVSAvoidprocessing speed
Core Design Contradiction:
ReliabilityVSSpeed

Solution Approach 1:

The command buffer serves as an intermediary that enables asynchronous communication between the sub processor and GPU. Rendering commands are written to the command buffer by the sub processor and consumed by the GPU at its own pace, eliminating synchronous waiting while maintaining proper coordination through the shared buffer mechanism.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The sub processor performs preliminary action by pre-generating and storing rendering commands in the command buffer before the GPU needs to execute them. This allows the GPU to consume commands asynchronously without requiring real-time coordination with the processor, thereby increasing processing speed while maintaining reliability.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8269782B2Graphics processing apparatus
Publication Date: 2012.09.18 SONY INTERACTIVE ENTERTAINMENT LLC
  • US8269782B2 patent drawing
  • US8269782B2 patent drawing
  • US8269782B2 patent drawing

AI summary

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