Primitive Composition for Responsive UI on Limited Resources

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Developing rich, responsive, and fluid user interfaces for devices with limited resources, such as mobile devices and portable computing devices, is challenging due to their limited computing power and stringent power consumption requirements, making it difficult to maintain user interface responsiveness and render high-quality graphics while achieving reliable frame rates.

Innovation Solution

Implementing primitive composition within a user interface (UI) thread, where the UI thread generates static Graphics Processing Unit (GPU) data structures that are reused by a separate composition thread for rendering multiple video frames, reducing the workload and optimizing resource usage.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If rich, responsive, and fluid user interfaces with transparency, animations, and three-dimensional graphics are implemented, then user interface quality and responsiveness are improved, but computing resource consumption and power usage increase

Engineering Contradiction:
Improveuser interface responsivenessVSAvoidpower consumption
Core Design Contradiction:
Ease of operationVSUse of energy by moving object

Solution Approach 1:

The system divides the rendering workload into two distinct threads: a UI thread that generates static GPU data structures representing user interface elements, and a composition thread that reuses these structures for rendering animations and processing input. This segmentation allows each thread to specialize in specific tasks, reducing overall power consumption while maintaining responsive user interface performance.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The UI thread performs preliminary action by generating static GPU data structures in advance that represent user interface elements. These pre-generated structures are then reused by the composition thread for multiple video frames, eliminating the need to regenerate the same structures repeatedly and thereby reducing power consumption while maintaining animation responsiveness.

Inventive Principle:
Principle #10Preliminary action

2Ease of operation

If rich, responsive, and fluid user interfaces with animations and three-dimensional graphics are implemented, then user interface quality is improved, but computing power requirements increase

Engineering Contradiction:
Improveuser interface fluidityVSAvoidcomputing power
Core Design Contradiction:
Ease of operationVSPower

Solution Approach 1:

The rendering system is segmented into two functional threads: the UI thread handles static structure generation and the composition thread handles dynamic rendering. This division of labor reduces the computing power burden on any single thread, enabling fluid animations and responsive interfaces on devices with limited computing resources.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The UI thread generates static GPU data structures that are copied and reused by the composition thread for rendering multiple video frames. This copying and reuse mechanism eliminates redundant computation, reducing the total computing power required while maintaining fluid and responsive user interface performance.

Inventive Principle:
Principle #26Copying

3Reliability

If the composition thread generates GPU data structures for each video frame, then rendering quality is maintained, but the composition thread workload increases

Engineering Contradiction:
Improveframe rate consistencyVSAvoidcomposition thread workload
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The UI thread performs preliminary action by generating static GPU data structures that represent user interface elements. These pre-generated structures are then passed to the composition thread, which can reuse them for rendering multiple video frames without regenerating them, thereby reducing the composition thread's workload while maintaining consistent frame rates.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system discards the need for the composition thread to regenerate static GPU data structures by recovering and reusing them from the UI thread. This reuse mechanism reduces the composition thread's computational burden while maintaining rendering quality and frame rate consistency across multiple video frames.

Inventive Principle:
Principle #34Discarding and recovering

Data Source

PatentUS8872838B2Primitive composition
Publication Date: 2014.10.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8872838B2 patent drawing
  • US8872838B2 patent drawing
  • US8872838B2 patent drawing

AI summary

Performing primitive composition within a user interface thread, enhancing the ability to scale a user interface framework to computing devices having limited resources. In one or more embodiments, a user interface thread walks a user interface hierarchy that describes elements of a program's user interface and directly generates static Graphics Processing Unit (GPU) data structures representing at least a portion of the user interface hierarchy. The user interface thread passes the static GPU data structures to a composition thread, which uses these static GPU data structures during generation of a plurality of video frames. This includes the composition thread, based on the static GPU data structures, sending GPU data and GPU commands for the plurality of video frames to a GPU for rendering.