Para-virtualized vGPU Accessing Domain Hull Geometry Shaders

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Guest software in para-virtualized execution environments is limited in accessing advanced GPU functions, such as domain, hull, and geometry shaders, due to support constraints, leading to performance penalties and potential errors, as they can only utilize GPU functions supported by the legacy rendering framework, even if the physical GPU supports newer features.

Innovation Solution

A virtualized graphics processing unit (vGPU) is presented to guest applications within a child partition, providing device driver interfaces (DDIs) that enable programming of a GPU pipeline, allowing access to physical GPU features like domain, hull, and geometry shaders through a user-mode driver, which schedules commands for execution on the physical GPU.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If a para-virtualized execution environment supports only a legacy rendering framework, then the system maintains compatibility and stability, but guest software cannot access advanced GPU functions (domain, hull, geometry shaders) even if the physical GPU supports them

Engineering Contradiction:
ImproveAccess to advanced GPU functionsVSAvoidExecution environment compatibility
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a translation layer comprising a legacy rendering framework module and a modern rendering framework module that acts as an intermediary between guest software and the physical GPU. The legacy module receives commands from guest software, translates them into modern commands, and forwards them to the GPU, enabling access to advanced functions while maintaining legacy compatibility. This mediator resolves the contradiction by allowing both legacy support and modern GPU feature access simultaneously.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system dynamically changes the rendering framework version parameter exposed to guest software. While the physical GPU operates with modern rendering framework capabilities, the virtualization layer can present either a legacy or modern rendering framework interface depending on the needs of the guest software. This parameter transformation enables guest applications to access advanced GPU functions through the modern framework while the system maintains the option to present legacy interfaces for compatibility scenarios.

Inventive Principle:
Principle #35Parameter changes

2Productivity

If guest software uses a translation layer or inferior GPU functions to access unsupported GPU features, then the software can execute, but performance penalties are incurred

Engineering Contradiction:
ImproveGuest software execution capabilityVSAvoidPerformance overhead
Core Design Contradiction:
ProductivityVSLoss of energy

Solution Approach 1:

The patent creates a virtual GPU device that copies the interface and functionality of a physical GPU but operates within the constraints of the para-virtualized environment. This virtual copy presents a modern rendering framework interface to guest software, allowing direct issuance of advanced GPU commands without translation overhead. The virtual GPU acts as a software model that mirrors the physical GPU's capabilities while being managed by the hypervisor, eliminating performance penalties associated with translation layers.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If the para-virtualized environment presents a modern rendering framework interface, then guest software can access advanced GPU features, but the complexity of the virtualization system increases

Engineering Contradiction:
ImproveGPU feature accessibilityVSAvoidVirtualization system structure
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent segments the rendering framework functionality into distinct modules: a legacy rendering framework module that handles compatibility requirements, a modern rendering framework module that provides access to advanced GPU features, and a translation layer that coordinates between them. This segmentation allows the system to present a modern interface to guest software while maintaining legacy support infrastructure, managing complexity through modular organization rather than monolithic design.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The virtualization system is designed with multi-functional components that can operate in multiple modes. The rendering framework interface can dynamically switch between legacy and modern modes, and the translation layer can adapt its behavior based on the guest software's requirements. This universality allows a single system architecture to serve both legacy compatibility needs and modern GPU feature access, reducing the need for separate specialized systems.

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

Data Source

PatentEP2802982B1Para-virtualized domain, hull, and geometry shaders
Publication Date: 2019.12.04 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2802982B1 patent drawingFigure 1
  • EP2802982B1 patent drawingFigure 2

AI summary

The present invention extends to methods, systems, and computer program products for providing domain, hull, and geometry shaders in a para-virtualized environment. As such, a guest application executing in a child partition is enabled use a programmable GPU pipeline of a physical GPU. A vGPU (executing in the child partition) is presented to the guest application. The vGPU exposes DDIs of a rendering framework. The DDIs enable the guest application to send graphics commands to the vGPU, including commands for utilizing a domain shader, a hull shader, and/or a geometric shader at a physical GPU. A render component (executing within the root partition) receives physical GPU-specific commands from the vGPU, including commands for using the domain shader, the hull shader, and/or the geometric shader. The render component schedules the physical GPU-specific command(s) for execution at the physical GPU.