Direct3D Remoting Architecture for Client-Side Graphics Rendering
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current graphics remoting technologies face limitations in scalability, stability, and user experience due to architectural constraints, particularly when rendering high-end graphics applications over remote sessions, as they often rely on server-side GPU rendering, which can lead to poor performance and frame rate control issues.
Innovation Solution
Implementing a Direct3D remoting architecture that shifts the rendering of 3D graphics from the server to the client, using a D3D abstraction module to abstract commands and objects into data streams sent over the network, allowing the client's GPU to execute and render graphics, along with techniques for frame rate control and progressive texture rendering.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If graphics applications are run remotely on server computers using traditional remoting technologies, then remote session access is enabled, but scalability and stability deteriorate due to lack of graphics acceleration support
Solution Approach 1:
The patent introduces a Virtualization Graphics Adapter (VGA) as an intermediary component that sits between the remote graphics applications and the physical graphics hardware. The VGA virtualizes graphics acceleration resources, allowing multiple remote sessions to access graphics hardware simultaneously through virtualization. This mediator enables remote sessions to obtain graphics acceleration support while maintaining system stability and scalability.
Solution Approach 2:
The patent creates virtual copies of graphics acceleration resources through the VGA layer. Instead of providing direct access to physical graphics cards, the system creates virtual instances of graphics adapters that can be allocated to multiple virtual machines and remote sessions. This copying approach allows scalable distribution of graphics resources while maintaining isolation and stability between different remote users.
2Use of energy by moving object
If server-side GPU rendering is used for remote graphics applications, then graphics acceleration is provided, but frame rate control and scalability worsen due to architectural limitations
Solution Approach 1:
The patent segments the graphics rendering pipeline by separating the virtualization layer (VGA) from the physical graphics hardware. This segmentation allows independent optimization of each layer - the VGA handles resource management and virtualization tasks, while the physical GPU focuses on rendering operations. This division enables better frame rate control and scalability by allowing multiple virtual sessions to share the physical hardware efficiently.
Solution Approach 2:
The patent implements dynamic resource allocation through the VGA, which can dynamically adjust graphics resource distribution based on session requirements and system load. The virtualization layer dynamically manages memory allocation, command routing, and hardware access, enabling flexible frame rate control and adaptive scalability that static server-side rendering architectures cannot achieve.
3Device complexity
If traditional remoting architecture is used without graphics virtualization, then system complexity is reduced, but adaptability worsens due to inability to support multiple user connections and window scaling
Solution Approach 1:
The patent makes the graphics subsystem universal by designing the VGA to serve multiple functions: it virtualizes graphics hardware for multiple users, provides window scaling support, enables high-DPI rendering, and manages resource allocation across different virtual machines. This single universal virtualization layer replaces multiple specialized components, increasing adaptability while actually reducing overall system complexity through consolidation.
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Systems and methods to implement a graphics remoting architecture for rendering graphics images at remote clients are disclosed. In one implementation, when a D3D application hosted on a remote server is used by a remote client, the graphics associated with the D3D application are created and rendered at the remote client. For this, the D3D commands and D3D objects corresponding to the graphics are abstracted into data streams at the remote server. The data streams are then sent to the remote client. At the remote client, the D3D commands and D3D objects are extracted from the data streams and executed to create the graphics images. The graphics images are then rendered and displayed using output devices at the remote client.