Graphics Pipeline Emulation via Caching and Translation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Cross-platform virtualization in graphics pipelines faces incompatibilities due to differences in graphics frameworks between host and guest platforms, leading to performance issues and feature support limitations when emulating one graphics pipeline within another.

Innovation Solution

A method is implemented to generate an emulation key for a graphics pipeline, checking for cached pipeline objects, and creating new ones if necessary, to associate them with the host OS, enabling efficient emulation of graphics pipelines across different frameworks like Direct3D and Metal.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If cross-platform virtualization is implemented to run guest OS applications on host platform, then platform compatibility is improved, but graphics framework incompatibility causes performance degradation

Engineering Contradiction:
Improvecross-platform compatibilityVSAvoidgraphics rendering performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent introduces a graphics pipeline emulator as an intermediary layer between the guest OS graphics framework (e.g., Direct3D) and the host OS graphics framework (e.g., Metal). This emulator translates graphics pipeline commands and state objects from the guest framework to the host framework, enabling cross-platform compatibility while maintaining rendering performance by leveraging the host's native graphics capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If graphics pipeline emulation is implemented to support incompatible features, then feature compatibility is improved, but system complexity increases

Engineering Contradiction:
Improvefeature compatibilityVSAvoidemulation system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates cached pipeline objects that are copies of the original graphics pipeline state objects from the guest OS. These cached objects store translated pipeline parameters and state information, allowing the emulator to reuse previously translated pipeline configurations without performing complex real-time translations, thereby reducing system complexity while maintaining feature compatibility.

Inventive Principle:
Principle #26Copying

3Adaptability or versatility

If new graphic pipelines are created for each emulation request, then feature support is improved, but processing time increases

Engineering Contradiction:
Improvefeature supportVSAvoidpipeline creation time
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent implements a caching mechanism that performs preliminary translation of graphics pipeline state objects from the guest framework to the host framework. When a pipeline state object is first encountered, it is translated and stored in a cache with an associated emulation key. Subsequent requests for the same pipeline state can be served directly from the cache, eliminating repeated translation overhead and reducing processing time while maintaining full feature support.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12106417B1Emulation pipeline selection and emulation pipleline parameter prediction
Publication Date: 2024.10.01 PARALLELS INT GMBH
  • US12106417B1 patent drawing
  • US12106417B1 patent drawing
  • US12106417B1 patent drawing

AI summary

Incompatible graphics frameworks present a barrier to emulating applications of one operating system (guest OS) upon a computer system employing a different operating system (host OS) such as occurs with virtual machines. Accordingly, in order to address limitations of emulating guest OS graphic pipelines upon the host OS the inventors have established methodologies for cross-platform graphics pipeline emulation, thus enabling efficient implementations of cross-platform virtualization solutions, through the establishment of emulation keys to support generic and specific graphics pipelines together with caching sets of graphical pipelines for subsequent retrieval and execution.