Virtual Surface Rendering for Resource-Constrained Devices

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional display techniques developed for resource-rich devices are not well-suited for resource-constrained devices, leading to inefficiencies in rendering large visuals and managing dynamic content on various computing configurations.

Innovation Solution

The implementation of virtual surface techniques, including initialization and batching of updates, use of lookaside lists, gutters, blending and BLT operations, surface optimization methods like push down and clumping, mesh usage, and occlusion management, to efficiently allocate and manage rendering surfaces.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional display techniques are used on resource-constrained devices, then device compatibility is improved, but resource efficiency deteriorates

Engineering Contradiction:
Improvedevice compatibilityVSAvoidresource efficiency
Core Design Contradiction:
Adaptability or versatilityVSUse of energy by moving object

Solution Approach 1:

The display surface is divided into multiple virtual surfaces or tiles that can be independently managed and rendered. This segmentation allows the system to only allocate and process the portions of the display that are currently visible or needed, reducing overall memory and computational resource usage on constrained devices while maintaining full display functionality across different device configurations.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The virtual surface allocation and management system dynamically adjusts resource allocation based on current display needs, device capabilities, and content requirements. Rather than statically allocating resources for all possible scenarios, the system adapts in real-time to optimize performance on resource-constrained devices while ensuring compatibility across various computing configurations.

Inventive Principle:
Principle #15Dynamics

2Use of energy by moving object

If virtual surface techniques are implemented, then resource efficiency is improved, but system complexity increases

Engineering Contradiction:
Improveresource efficiencyVSAvoidsystem complexity
Core Design Contradiction:
Use of energy by moving objectVSDevice complexity

Solution Approach 1:

A virtual surface management system acts as an intermediary layer between the application layer and the physical display hardware. This mediator handles the complexity of dynamic resource allocation, surface composition, and memory management, shielding applications from low-level resource constraints while optimizing resource usage. The intermediary abstracts complex operations into simplified interfaces that maintain ease of use despite underlying system complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If dynamic content rendering is enhanced, then display quality is improved, but memory usage increases

Engineering Contradiction:
Improvedisplay qualityVSAvoidmemory usage
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The system pre-allocates and prepares virtual surfaces and rendering resources in advance based on predicted display needs and content characteristics. By performing preliminary actions such as pre-rendering visible tiles, pre-allocating memory for anticipated content, and pre-establishing surface compositions, the system ensures high display quality for dynamic content while avoiding excessive memory usage through careful advance planning and resource management.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9959668B2Virtual surface compaction
Publication Date: 2018.05.01 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9959668B2 patent drawing
  • US9959668B2 patent drawing
  • US9959668B2 patent drawing

AI summary

Virtual surface update and composition techniques are described. These techniques include support of initialization and batching of updates, use of updates and lookaside lists, use of gutters, blending and BLT operations, surface optimization techniques such as push down as well as enumeration and clumping, mesh usage, and occlusion management techniques.