Remote Rendering
On Windows 7, Direct3D 10 improvements enable an application that is running on a server to render content remotely on a networked client with optimal performance and quality. By using Direct3D 10.1 remote rendering, applications can optimize rendering performance in terms of frames per second, network bandwidth usage, and scalable visual displays on the remote client.
On Windows Vista, Terminal Server remoting protocols support the transfer of bitmaps that contain display data for generic Direct3D applications and GDI primitives for GDI applications. Although an application that transfers bitmaps can remotely render by using any API, its performance is severely limited and the rendering quality cannot satisfy the Direct3D user scenarios that current graphics hardware supports.
Windows 7 supports these scenarios with significantly better performance and rendering quality. Direct3D 10.1 applications that are running on the server can issue commands to be executed remotely on rich clients and can use Direct3D 10.1 hardware acceleration on the client GPU.
Unlike the traditional bitmap remote display, Direct3D 10.1 remote rendering does not require any server graphics hardware. Application developers can optimize the display experience for varying network bandwidths and rich client machine capabilities. These benefits also apply to the Direct2D API, which is based on Direct3D 10.
As such, Microsoft is encouraging system manufacturers to adopt DirectX 10 or higher GPUs, which support these Windows 7 features. Applications that update large amounts of content by using limited API commands and resources consume much less network bandwidth, and thus result in better user experience when multiple clients are connected to the server. In addition, the server’s GPU capacity is not a bottleneck for multiple client connections because the client machines perform the graphics processing.
Direct2D API
Windows 7 also introduces the Direct2D API which enables applications to render 2D graphics with better performance and quality than GDI or GDI+. Direct2D is a new user-mode library that is based on the Direct3D 10.1 API, and it interoperates easily with other Windows technologies, including the Windows Imaging Component (WIC), Direct3D 10, and the Windows Color System (WCS).
As shown in the figure on the right, the Direct2D API is layered over the Direct3D 10 API and the DirectX Graphics Infrastructure (DXGI). These components enable Direct2D applications to run on Direct3D 10 hardware directly or on Direct3D 9 hardware by using the Direct3D 10-level-9 driver.
To achieve the best performance, Direct2D requires a WDDM v 1.1 driver. Such drivers support DirectX 10 hardware and the blue-green-red-alpha (BGRA) color format. If a WDDM v1.1 driver is not available, Direct2D uses Direct3D 10-Level-9.
Direct2D is built using the Direct3D 10.1 API, which supports hardware-accelerated rendering on DirectX 10 GPUs. On Direct3D 9 hardware, Direct2D uses Direct3D 10-level-9 rendering to achieve hardware acceleration. This combination provides excellent performance on the graphics hardware on most Windows PCs.
Direct2D includes a high-performance software rasterizer for use when hardware acceleration is either not possible or not required. Applications that use Direct2D instead of GDI+ to render in software perform much better with similar visual quality.
Applications that render content by using Direct2D can display the content remotely by using the Remote Desktop Protocol infrastructure in Windows 7. Developers can select whether to render remotely in the GPU on the client computer or locally and then transmit the content as bitmaps. This choice can be made based on required fill-rate and primitive count characteristics of the content being rendered. If the display computer is running a version of Windows earlier than Windows 7, Direct2D performs remote display rendering by transmitting bitmaps over the network.
Support Tech ARP!
If you like our work, you can help support out work by visiting our sponsors, participate in the Tech ARP Forums, or even donate to our fund. Any help you can render is greatly appreciated!
<<< Desktop Windows Manager, DirectX 10-Level-9 : Previous Page | Next Page : Direct3D 11 Introduction, Compute Shader >>>