GPU Command Queue Reordering for FBO Change Optimization

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current 3D graphics rendering technologies consume significant computation and power due to frequent frame buffer object (FBO) changes and inefficient processing of commands, leading to high memory access and computation costs.

Innovation Solution

A method and apparatus that manage FBO change commands by comparing them with the currently processed FBO by the GPU, adjusting the processing order of FBO change commands, and minimizing FBO changes by grouping and sequencing commands to reduce unnecessary flush operations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If FBO change commands are processed as received from the application, then the rendering operations can be executed in the original sequence, but the number of FBO changes increases leading to higher computation and power consumption

Engineering Contradiction:
Improverendering efficiencyVSAvoidpower consumption
Core Design Contradiction:
ProductivityVSUse of energy by moving object

Solution Approach 1:

The patent applies preliminary action by analyzing and reordering FBO change commands in the command queue before they are executed by the GPU. The device driver performs a preliminary pass through the command queue to identify consecutive FBO change commands targeting the same FBO, and reorders them to be executed together. This preliminary reorganization reduces the total number of FBO changes during rendering, thereby reducing computation overhead and power consumption without affecting the final rendering result.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If FBO change commands are executed frequently, then all rendering operations can be performed, but the computation and memory access costs increase

Engineering Contradiction:
Improverendering operation completenessVSAvoidcomputation cost
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies merging by combining multiple consecutive FBO change commands that target the same FBO into a single execution operation. When the command queue contains multiple FBO change commands in sequence for the same FBO, the system merges these into one unified FBO change operation, eliminating redundant changes. This reduces computation cost and memory access overhead while maintaining complete rendering operation execution.

Inventive Principle:
Principle #5Merging (Combining)

3Loss of energy

If the processing order of FBO change commands is adjusted, then unnecessary FBO changes can be minimized, but additional command management overhead is introduced

Engineering Contradiction:
Improveenergy waste from unnecessary FBO changesVSAvoidcommand management complexity
Core Design Contradiction:
Loss of energyVSDevice complexity

Solution Approach 1:

The patent applies self-service by implementing an automatic command reordering mechanism within the device driver that identifies and optimizes FBO change commands without requiring external intervention or complex manual management. The system autonomously analyzes the command queue, detects patterns of consecutive FBO changes to the same target, and automatically reorders these commands to minimize unnecessary changes. This self-organizing approach reduces energy waste while keeping the command management complexity contained within the driver layer.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9984491B2Apparatus and method for managing commands
Publication Date: 2018.05.29 SAMSUNG ELECTRONICS CO LTD
  • US9984491B2 patent drawing
  • US9984491B2 patent drawing
  • US9984491B2 patent drawing

AI summary

Provided is a method of managing commands, which includes receiving a frame buffer object (FBO) change command, comparing an FBO designated by the FBO change command with a FBO currently processed by a graphics processing unit (GPU) to determine whether the two FBOs are the same as each other, and managing the FBO change command or a flush command based on a result of the comparison.