Using RemoteFX
Windows 2008 R2 Service Pack 1 introduced two huge technologies. The first was
Dynamic Memory, and the second was RemoteFX, which was aimed squarely at VDI
environments. The goal of RemoteFX was to provide a consistent experience to end-
user devices no matter what the capabilities of that device actually were.
Normally, the Remote Desktop Protocol leverages client-side capabilities for Windows
Media playback, such as WMV files, and for desktop composition, such as Aero Glass
and Flip 3D (which are now gone from Windows 8 and beyond). If the client device
does not support media redirection, the user experience is very basic. Additionally,
because the remote operating system is in a virtual machine with no graphical
hardware, many types of application technologies cannot run or run as a software-
based emulator, such as DirectX, Silverlight, Flash, and so on. This also limited the
use of many types of business applications such as videoconferencing.
RemoteFX originally consisted of three technologies: GPU virtualization, enhanced
codec, and USB port-level redirection. The technologies associated with RemoteFX
have grown since Windows Server 2008 R2, but together they give a great desktop
experience remotely. In Windows Server 2008 R2 SP1, the RemoteFX technology was
supported only in LAN environments, but this has been extended to WAN scenarios in
Windows Server 2012. (There are obvious limitations to graphical fidelity if the
connection is too slow.) RemoteFX has been enhanced over new versions to include
capabilities such as Multi-Touch, Adaptive Graphics, WAN support, and Media
Redirection. I will focus on the original core capabilities, however, especially as they
relate to GPU virtualization.
The virtualization of the GPU (known as para-virtualization) in the server allows
virtual GPUs to be made available to the virtual machines running on the Hyper-V
server. The virtual GPUs can be leveraged by Windows 7 SP1 Enterprise/Ultimate,
Windows 8/8.1 Enterprise, and Windows 10 Enterprise guest operating systems
running in those virtual machines. Windows Server 2016 can also leverage virtual
GPUs, which is a new capability for server operating systems when running on
Windows Server 2016 Hyper-V hosts. Windows 7 SP1 and beyond included the
updated integration services, which allows the guest OS to see the virtualized GPU and
use it without additional software installation. The virtual client operating system
guest now sees a fully featured GPU, which allows advanced graphics to be rendered
on the server side. Then the screen output is sent to the RDP client for display, which
includes server-side rendering of rich graphical interface effects, multimedia, and
other types of media and applications not previously possible, such as Flash,
Silverlight, DirectX applications, and with Windows Server 2016 and Windows 10,
Open GL and Open CL applications as well as enhanced capabilities in applications
such as PowerPoint and Internet Explorer. Because all of the rendering is performed
on the Hyper-V server within the VM, the client capabilities do not matter anymore.