Server Graphics Processing via Guest Shim Layer

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current computing systems, including client-server and cloud platforms, are limited in running multiple graphics-intensive applications simultaneously due to full screen mode restrictions, which hinder efficient graphics processing across multiple instances or applications.

Innovation Solution

A server-based graphics processing method that utilizes a runtime application programming interface (API) and a guest shim layer to manage graphics commands, creating communication channels between guest and host display device interfaces, allowing multiple rendering contexts and enabling concurrent execution of graphics-intensive applications without full screen mode limitations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If full screen mode is used for graphics intensive applications, then application performance is improved, but only one application can run at a time

Engineering Contradiction:
Improveapplication execution capabilityVSAvoidmulti-application concurrency
Core Design Contradiction:
ProductivityVSAdaptability or versatility

Solution Approach 1:

The patent segments the full-screen display output into multiple virtual channels, allowing multiple applications to render to separate frame buffers that are then compositeed together. Each application believes it has exclusive full-screen access, but the system divides the physical display output into segments assigned to different virtual machines or applications.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a display compositor and virtual machine monitor as intermediary components between the applications and the physical display. The compositor receives frame buffers from multiple applications, manages their composition, and outputs to the physical display, while the VM monitor coordinates resource allocation and communication between guest and host systems.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Power

If multiple graphics processing units are provided on a server, then graphics processing capacity is increased, but full screen mode restrictions still prevent multiple applications from running simultaneously

Engineering Contradiction:
Improvegraphics processing capacityVSAvoidconcurrent application execution
Core Design Contradiction:
PowerVSProductivity

Solution Approach 1:

The patent makes the graphics processing system universal by allowing a single GPU to serve multiple virtual machines and applications simultaneously through virtualization. The display compositor and channel management system enable one graphics hardware resource to fulfill multiple functions and serve multiple users or applications at once, rather than requiring dedicated hardware for each application.

Inventive Principle:
Principle #6Universality (Multi-functionality)

3Adaptability or versatility

If virtual machine implementation is used, then system resource sharing is enabled, but full screen mode still blocks other applications from outputting display frames

Engineering Contradiction:
Improvesystem resource sharingVSAvoiddisplay frame output capability
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent adds a temporal and logical dimension to display output by implementing frame buffer sharing and time-multiplexed rendering. Instead of spatial division only, the system allows multiple applications to write to shared frame buffers in coordinated time slots, with the compositor managing the temporal arrangement of frames from different sources before displaying them.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

Data Source

PatentUS9311169B2Server based graphics processing techniques
Publication Date: 2016.04.12 NVIDIA CORP
  • US9311169B2 patent drawing
  • US9311169B2 patent drawing
  • US9311169B2 patent drawing

AI summary

The server based graphics processing techniques, describer herein, include passing graphics commands from a shim layer to a guest display device interface, wherein the shim layer and the guest display device interface (DDI) are executing in a given instance of a guest virtual machine (VM). The guest DDI calls back to the shim layer with corresponding function calls. The function calls are passed from the shim layer to a host DDI through a communication channel of a host-guest communication manager (HGCM), wherein the host display device interface and host-guest communication manager are executing in a host virtual machine manager (VMM).