Object Tree Update Traversal for Multiprocessor Graphics Rendering

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current multiprocessor systems face inefficiencies in graphics rendering due to the need for 'on the fly' data conversion when using specialized processing units like GPUs, which can slow down the rendering process.

Innovation Solution

The creation of optimized object trees and graphics rendering trees, where data is converted to formats that maximize GPU efficiency, and the use of 'dirty' bits to propagate changes efficiently through an update traversal process, ensuring that only necessary commands are executed to synchronize changes between the object tree and graphics rendering tree.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If data is converted on the fly during graphics rendering, then the system can maintain flexibility in data formats, but the rendering speed decreases due to conversion overhead

Engineering Contradiction:
Improverendering speedVSAvoiddata conversion complexity
Core Design Contradiction:
SpeedVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by converting data to GPU-optimized formats in advance during object tree creation, rather than converting during rendering. The CPU creates an object tree with data in formats optimized for GPU processing, eliminating the need for on-the-fly conversions and thereby improving rendering speed while reducing conversion overhead.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If all objects in the object tree are updated during traversal, then data consistency is maintained, but processing time increases due to unnecessary updates

Engineering Contradiction:
Improvedata consistencyVSAvoidupdate traversal time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies local quality by using dirty bits to identify only those specific objects within the object tree that have actually changed. During update traversal, the system checks dirty bits and processes only the local subset of modified objects rather than updating all objects uniformly, thereby maintaining data consistency for changed objects while reducing unnecessary processing time for unchanged objects.

Inventive Principle:
Principle #3Local quality

3Ease of operation

If data is stored in CPU-optimized formats, then ease of manipulation is improved, but GPU processing efficiency decreases

Engineering Contradiction:
Improvedata manipulation easeVSAvoidGPU processing efficiency
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent resolves this contradiction by performing preliminary data format conversion during object tree creation. The CPU creates objects in easily manipulable formats, then converts them to GPU-optimized formats and stores them in the object tree. This preliminary action allows the CPU to work with flexible data structures while the GPU receives data in formats optimized for its architecture, thereby improving GPU processing efficiency without sacrificing CPU-side ease of operation.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS8890879B1Update traversal of object trees for multiprocessor systems
Publication Date: 2014.11.18 MATHWORKS INC
  • US8890879B1 patent drawing
  • US8890879B1 patent drawing
  • US8890879B1 patent drawing

AI summary

A system may include a processor and memory that stores instructions to cause the processor to create a first set of objects in a first structure based on first data, where the first set of objects describes a graphical scene specified by the first data. The processor may add a command for at least one object, of the first set of objects, to a composite command that includes commands for the graphical scene and create a second set of objects in a second structure based on the first set of objects in the first structure and the composite command. The processor may receive second data, change one or more objects of the first set of objects based on the second data, and change one or more objects of the second set of objects based on the changes to the one or more objects of the first set of objects. The processor may further provide the changed second set of objects to a browser for rendering a new graphical scene.