GPU Rendering Context Priority Management

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Mobile computing devices face performance issues due to competing demands on system resources, particularly with limited GPU resources, when rendering different types of content and user interface elements simultaneously, leading to decreased responsiveness and performance.

Innovation Solution

Implementing a framework that manages multiple rendering contexts, including a lower priority and a higher priority context, where the lower priority context imposes restrictions on block size and processing limitations, while the higher priority context has fewer restrictions, allowing for efficient GPU utilization and maintaining responsiveness.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Speed

If hardware based rendering is used to increase performance, then rendering speed is improved, but GPU resource management becomes problematic and responsiveness decreases

Engineering Contradiction:
Improverendering speedVSAvoidresponsiveness
Core Design Contradiction:
SpeedVSEase of operation

Solution Approach 1:

The patent segments rendering operations into multiple priority levels (high priority and low priority queues). High priority rendering operations (such as user interface updates) are processed separately from low priority operations (such as background content rendering), allowing the system to maintain responsiveness by prioritizing time-sensitive rendering tasks while still utilizing hardware acceleration for all rendering operations.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If multiple drawing systems mix content when compositing frames, then user interface richness is improved, but GPU processing time exceeds allowable limits

Engineering Contradiction:
Improveuser interface richnessVSAvoidGPU processing time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements continuous rendering at a fixed framerate (e.g., 60 frames per second) by pre-computing and queueing rendering operations. The system continuously processes rendering tasks from multiple drawing systems in a time-ordered queue, ensuring that frame composition meets display timing requirements while accommodating content from multiple sources without exceeding GPU time limits.

Inventive Principle:
Principle #20Continuity of useful action

3Productivity

If intensive graphical user interface applications utilize GPU for rendering, then graphical performance is improved, but system responsiveness decreases

Engineering Contradiction:
Improvegraphical performanceVSAvoidsystem responsiveness
Core Design Contradiction:
ProductivityVSEase of operation

Solution Approach 1:

The patent implements dynamic priority assignment for rendering contexts based on application type and user interaction requirements. Rendering contexts are dynamically classified as high priority (for responsive user interface elements) or low priority (for background graphical content), allowing the system to adapt GPU resource allocation in real-time to maintain both graphical performance and responsiveness.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8884974B2Managing multiple GPU-based rendering contexts
Publication Date: 2014.11.11 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8884974B2 patent drawing
  • US8884974B2 patent drawing
  • US8884974B2 patent drawing

AI summary

Content is rendered for display using a plurality of rendering contexts. Rendering is performed, at least in part, using a graphics processing unit (GPU). The plurality of rendering contexts can comprise a lower priority rendering context and a higher priority rendering context. One or more components can be associated with each of the lower priority rendering context and the higher priority rendering context. Different restrictions can be imposed on each rendering context. Restrictions can include a restriction on block size, prioritization of requests for each context, and a restriction on the number of requests in a GPU queue at a time.