Remote Shader Translation for GPU Emulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing solutions for running applications across different platforms with graphics processing units (GPUs) face challenges due to the need for shader translation and resource processing at runtime, which consumes significant processor and memory resources, affecting performance.

Innovation Solution

Implementing a system where one or more server computers perform asynchronous shader translation and resource processing remotely, aggregating resources from multiple computers, and redistributing translated shaders as updates to emulated platforms, allowing for efficient caching and reduced load on end-user computers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If shader translation and resource processing are performed at runtime on end-user computers, then applications can be executed on emulated platforms, but processor and memory resources are significantly consumed, affecting performance

Engineering Contradiction:
Improveplatform compatibilityVSAvoidapplication performance
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The patent extracts the shader translation and resource processing functions from the end-user computer emulator and relocates them to a remote server system. The server receives shader code from multiple clients, performs the translation to target GPU code, and returns the translated shaders to clients for caching. This separation removes the computational burden from end-user devices while maintaining platform compatibility through centralized translation services.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent introduces a server system as an intermediary between the emulator and the GPU resources. This server acts as a mediator that receives shader translation requests from multiple client computers, aggregates the translation work, and distributes translated shaders back to clients. The intermediary server enables platform compatibility without requiring high processing power on end-user devices.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If multiple computers perform independent shader translation, then each computer can run emulated applications, but redundant processing occurs consuming unnecessary resources

Engineering Contradiction:
Improveindependent execution capabilityVSAvoidredundant computational resources
Core Design Contradiction:
Ease of operationVSLoss of energy

Solution Approach 1:

The patent merges the shader translation functionality of multiple independent client computers into a single centralized server system. Instead of each client performing independent translation of the same shaders, the server consolidates translation requests from multiple clients and performs the translation work once, then serves the translated shaders to all requesting clients. This combining approach maintains independent execution capability while eliminating redundant processing.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent enables multiple client computers to copy translated shaders from the central server rather than creating their own translations. The server produces a master copy of translated shaders that can be distributed to multiple clients, who then use these copied versions locally. This copying mechanism preserves the ability of each computer to run applications independently while avoiding the energy waste of redundant translation operations.

Inventive Principle:
Principle #26Copying

3Speed

If shaders are translated and cached locally on each computer, then translation speed improves for subsequent use, but initial translation consumes significant resources and time

Engineering Contradiction:
Improveshader access speedVSAvoidinitial translation time
Core Design Contradiction:
SpeedVSLoss of time

Solution Approach 1:

The patent implements preliminary shader translation by having the server translate shaders in advance and make them available for distribution before clients need them. When a client requests a shader, the server checks if it has already been translated and can immediately provide the translated version or translate it beforehand for future requests. This preliminary action by the server eliminates the initial translation delay that would otherwise occur on each client device.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent enables the server to serve translated shaders to multiple clients simultaneously, allowing clients to quickly access translated shaders without performing their own translation. The server maintains a cache of translated shaders and automatically serves them to requesting clients, providing self-service translation that improves access speed while minimizing the initial translation time experienced by individual clients.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9881351B2Remote translation, aggregation and distribution of computer program resources in graphics processing unit emulation
Publication Date: 2018.01.30 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9881351B2 patent drawing
  • US9881351B2 patent drawing
  • US9881351B2 patent drawing

AI summary

Resource processing, such as shader translation, during run time of an application on an emulated platform, can be performed asynchronously from emulation of the application. One or more server computers can be configured to perform such processing remotely from the computers executing the emulation. The one or more server computers can receive resources for processing from multiple computers. The one or more server computers aggregate the resources received from the multiple computers for different applications and process those resources. For example, multiple shaders, discovered from multiple different emulations of an application on multiple computers, are translated and organized by the one or more server computers. The translated shaders can be packaged as an update to the application and redistributed to the computers using the application. Such an update can be installed on the computers as a set of translated shaders for use in the emulation of the application.