Remote Shader Translation for GPU Emulation
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Ease of operation
If multiple computers perform independent shader translation, then each computer can run emulated applications, but redundant processing occurs consuming unnecessary resources
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.
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.
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
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.
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.
Data Source
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.


