Graphics Engine Command Grouping for Real-Time Rendering Latency

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing graphics processing systems face latency issues when rendering graphics that are not pre-known or pre-determined, as they require multiple rendering passes and significant CPU work, leading to inefficiencies and increased power consumption.

Innovation Solution

The system breaks down rendering tasks into command statements, groups them by GPU state vectors for efficient processing, and submits them to the GPU in an optimized order to minimize CPU work and GPU state changes, using a high-level graphics framework to analyze and sort graphics requests for efficient execution.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If multiple rendering passes are employed to render graphics that are not pre-known, then rendering completeness is improved, but latency increases

Engineering Contradiction:
Improverendering completenessVSAvoidlatency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by pre-determining the universe of displayable graphics in advance (during application load or level load), storing them in a pre-rendered cache. When graphics are requested at runtime, the system checks the cache first and retrieves pre-rendered graphics if available, avoiding the need for multiple rendering passes at runtime and thereby reducing latency while maintaining rendering completeness.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If multiple rendering passes are employed to render graphics that are not pre-known, then rendering completeness is improved, but CPU workload increases

Engineering Contradiction:
Improverendering completenessVSAvoidCPU workload
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system performs preliminary actions by pre-determining the universe of displayable graphics in advance (during application load or level load), storing them in a pre-rendered cache. When graphics are requested at runtime, the system checks the cache first and retrieves pre-rendered graphics if available, avoiding the need for multiple rendering passes at runtime and thereby reducing CPU workload while maintaining rendering completeness.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system introduces a pre-rendered cache as an intermediary between the application and the rendering pipeline. This cache stores pre-determined graphics that can be quickly retrieved and composited, reducing the need for complex real-time rendering operations and thereby lowering CPU workload while ensuring rendering completeness.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If graphics are pre-rendered and cached, then runtime rendering speed is improved, but memory usage increases

Engineering Contradiction:
Improveruntime rendering speedVSAvoidmemory usage
Core Design Contradiction:
ProductivityVSQuantity of substance

Solution Approach 1:

The system applies local quality by organizing the pre-rendered cache into distinct data structures (universe cache, frame cache, command buffers) with different retention policies and access patterns. The universe cache stores frequently accessed graphics data indefinitely, while the frame cache stores more recent frame data for shorter periods, optimizing memory usage based on local access patterns and importance.

Inventive Principle:
Principle #3Local quality

4Productivity

If command statements are grouped by GPU state vectors, then processing efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveprocessing efficiencyVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system applies segmentation by dividing command statements into distinct command buffers grouped by GPU state vectors. Each command buffer contains a subset of commands that can be executed with a consistent GPU state, reducing the frequency of state changes and improving processing efficiency. The system maintains multiple command buffers (e.g., command buffer 525, 535, 540, 545) organized by different GPU states.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system applies parameter changes by dynamically adjusting GPU state vectors and organizing commands based on these state parameters. The high-level graphics framework analyzes graphics requests and sorts them into groups that share common GPU state characteristics, optimizing the rendering process by minimizing state changes while maintaining processing efficiency.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10445043B2Graphics engine and environment for efficient real time rendering of graphics that are not pre-known
Publication Date: 2019.10.15 APPLE INC
  • US10445043B2 patent drawing
  • US10445043B2 patent drawing
  • US10445043B2 patent drawing

AI summary

This disclosure pertains to the operation of graphics systems and to a variety of architectures for design and/or operation of a graphics system spanning from the output of an application program and extending to the presentation of visual content in the form of pixels or otherwise. In general, many embodiments of the invention contemplate a high level graphics framework to receive graphic requests from an application. The graphics request is analyzed by the high-level framework and sorted into groups of command statements for execution. The command statements are sorted to cause the most efficient processing by the underlying hardware and the groups are submitted separately to a GPU using a low-level standard library that facilitates close control of the hardware functionality.