Windows Server 2012 introduces some significant improvements to RemoteFX™. One feature – RemoteFX vGPU - already present in Windows Server 2008 R2 is the ability to use a physical graphic adapter (GPU) in the Hyper-V host to accelerate the host-side rendering of display content. This guide describes the configuration steps to leverage RemoteFX vGPU in Windows Server 2012. For Windows Server 2012 R2 changes please see the following RDS blog post:RemoteFX vGPU Improvements in Windows Server 2012 R2 Jump

 

Table of Contents

 
 

 

 


What is RemoteFX?

RemoteFX in Windows Server 2012 is a suite of improvements to the Microsoft Remote Display Protocol (RDP). It optimizes the display experience for remote users, even on constraint networks. Additionally, RemoteFX improves access to peripheral devices attached to the client, e.g. via USB.

The vGPU feature of RemoteFX makes it possible for multiple virtual machines to share a physical graphics adapter. The virtual machines are able to offload rendering of graphic information from the processor to the dedicated graphics adapter. This will decrease the CPU load and improve the scalability for graphic intense workloads that run in the VDI virtual machines.

 


Requirements for RemoteFX vGPU

To off-load graphically intense workloads from the CPU to a physical GPU in Windows Server 2012 the following hardware is required:

 


Checking the requirements

SLAT CPU Support

Before enabling the Hyper-V role on the server, the following tools can be used to find out whether the server CPU supports SLAT:

System info

On an elevated command prompt run the command:

C:\systeminfo.exe

At the very end of the output information this text should appear on a system with SLAT capable CPU:

 

Coreinfo

The free tool can be downloaded from the Sysinternals pages on Technet (http://technet.microsoft.com/en-us/sysinternals/cc835722.aspx Jump ). It has to be run before installing Hyper-V on an elevated command prompt.

C:\coreinfo.exe –accepteula –v

If the CPU meets the requirements, both lines are marked with a star symbol (*).

DirectX 11 compatible graphic adapter

Hardware vendor web page

In order to verify whether the GPU is DirectX 11 ready you can use the web page of the manufacturer of the graphic adapter.

 

Microsoft Windows Server Catalog

To leverage RemoteFX vGPU in an enterprise environment it is recommended to use a graphic adapter listed on the Windows Server Catalog. Windows Server 2012 certified GPUs are listed here Jump .

 

DirectX Diagnostic Tool (DXDiag.exe)

Run this command at an elevated command prompt:

C:\dxdiag.exe

The DirectX Diagnostic Tool will be displayed. Check the line “DirectX Version” for DirectX 11.

In addition to that, please verify the Feature Level information at the "Display" tab of DXdiag. The GPU Feature Level has to be at least 11.0 for RemoteFX vGPU in Windows Server 2012.

 

WDDM 1.2 compatible driver

Use the DXdiag tool to verify driver for the graphics adapter on the Windows Server 2012 is Windows Device Driver Model (WDDM) 1.2 compatible (NOTE: ensure you are logged on to the physical server, do not use a Remote Desktop connection since it will not display the graphics properties):

 


Installation and configuration of RemoteFX vGPU

  1. Install Windows Server 2012 on the server.
  2. Verify SLAT-support of the CPU using Systeminfo or Coreinfo.
  3. Install Windows Updates.
  4. Install the latest available display driver which at least supports WDDM 1.2 and DirectX 11 from the manufacturer of the graphic adapter.
  5. Verify DirectX 11 with Dxdiag.
  6. Verify the Windows SKU running inside the virtual machine is “Windows 8 Enterprise” or “Windows 7 Enterprise“, which is required for RemoteFX vGPU support.
  7. Install Hyper-V Role using Server Manager and reboot the server.

  8. Install the Remote Desktop Virtualization Host Role using Server Manager or use the Remote Desktop Standard Deployment Wizard for a full setup of all Remote Desktop Services Roles. For the isolated installation of the role you have to select “Roles- and Feature based installation“. After the role setup is completed, the server must be restarted.
  9. Open Hyper-V Manager and select the physical GPU support in Hyper-V Settings.

  10. Add or import the Windows 8 Enterprise or Windows 7 Enterprise virtual machines onto the Windows Server 2012 virtual machine.
  11. Add the RemoteFX 3D Graphics adapter to the Window 8 Enterprise or Windows 7 Enterprise virtual machine by navigating to the virtual machine settings and select “Add Hardware”.
  12. Select “RemoteFX 3D Video Adapter” and click “Add”

  13. Navigate to the properties of the added “RemoteFX 3D Video Adapter” and configure the maximum number of monitors and resolution that will be used by the Remote Desktop clients that will connect to this virtual machine.

  14. Commit the changes to the properties of the virtual machine and launch the virtual machine to configure the Windows 8 or Windows 7 Sp1 Enterprise client.

     

      Note
    Certain steps must be applied to allow Remote Desktop Connections for Windows 7 with SP1 Enterprise client

     

    1. Hyper-V Integrated Services must be updated
    2. Allow Remote Desktop to communicate through Windows Firewall

    3. Optional: Add the local Administrator account to the Remote Desktop Users Group. This enables the local Administrator remote access. Any Domain Administrators added to Administrators Group will have access by default.
    4. When using Remote Desktop Connection, change the Performance Experience to LAN. This enables the RemoteFX Adapter to function correctly in the virtual machine

    5. After the virtual machine restarts, you will see a black screen on the virtual machine console with the message “Video Remoting was disconnected. The virtual machine is using the 3D video adaptor, which is not supported by the Virtual Machine Connection console.” This is expected, and you will not be able to log on to the virtual machine from the Virtual Machine Connection. You will be able to remotely log on to the virtual machine by using an account that is a member of the Remote Desktop Users group on the virtual machine.

  15. After configuring the virtual machine, check the Device Manager in the virtual machine to verify that the “Microsoft RemoteFX Graphics Device – WDDM“ is recognized as a display adapter when using the Remote Desktop Client to connect

  16. DXDiag can also be used to verify the display adapter. Within the virtual machine using a Remote Desktop Session, launch the DXDiag tool and confirm on the display tab that in fact the “Microsoft RemoteFX Graphics Device – WDDM” has been enabled.

  17. RemoteFX vGPU is now configured and the virtual machines can be leveraged in a VDI Deployment.

 

  Note
RemoteFX vGPU can only be leveraged with Windows 8 and Windows 7 with SP1 Enterprise clients. Virtual machines with Windows Server 2012 acting as Remote Desktop Session Host (session virtualization) cannot use RemoteFX vGPU. An overview of all supported features for the various operating system platforms is provided in the blog article:http://blogs.msdn.com/b/rds/archive/2012/11/26/remotefx-features-for-windows-8-and-windows-server-2012.aspx Jump

To use RemoteFX vGPU in an enterprise environment with several virtual machines it is recommended to use a professional graphics adapter that is certified for Windows Server 2012, listed Jump in the Windows Server Catalog. Only these graphics adapters offer the required scalability and specially tested drivers for those scenarios. As illustrated in the screenshots, consumer graphics adapter AMD Radeon HD6870 was used to demonstrate the installation and configuration. This is only recommended for test and demo purposes.

 

Finally, it is important to use the scenario-based deployment option in Server Manager to setup and configure a Remote Desktop Services infrastructure. Only this option will install the other required roles like RD Licensing, RD Web Access and RD Connection broker to enable end user access to the virtual machines.

Have fun with RemoteFX and the Remote Desktop Services in Windows Server 2012!


Frequently Asked Questions

What are the requirements to use RemoteFX graphics acceleration by using the vGPU?

  • Hyper-V running on Full Installation of Windows Server 2008 R2 SP1 or Windows Server 2012
  • DX11 vGPU with WDDM v1.2 driver
  • SLAT-Capable processor
  • Remote Desktop Virtualization Host role service must be installed (to enable RemoteFX vGPU)
  • Hyper-V must have Physical GPUs enabled for use with RemoteFX vGPU
  • The virtual machine must have the “RemoteFX 3D Video Adapter” added
  • The Windows SKU running inside the virtual machine must be “Windows 8 Enterprise” or “Windows 7 Enterprise”

 

How can I determine if my system has a SLAT supported processor?

To use RemoteFX/vGPU with Hyper-V a SLAT supported processor must be present.

1) The CoreInfo utility from Sysinternals.com can be used to verify the processor is SLAT supported:http://technet.microsoft.com/en-us/sysinternals/cc835722 Jump

2) Open the command prompt as an administrator on the server host

3) Run the following commands:

Pushd \\live.sysinternals.com

  • A temporary drive letter will appear

Coreinfo –accepteula –v

  • The output should return results for the following: Hypervisor, and EPT. The EPT parameter should have a “*” indicating it supports Intel extended page tables (SLAT)

 

What types of vGPU are supported with RemoteFX?

When running Windows Server 2012 with the RemoteFX vGPU, the host must have a DX11.1 (WDDM 1.2) capable graphics card and driver. DX9 / DX 10 only capable GPUs are no longer supported for use with the RemoteFX vGPU on Windows Server 2012.

Note: The above statement applies to both Windows 7 with SP1 virtual machines and Windows 8 virtual machines that leverage the RemoteFX vGPU on Windows Server 2012. See the following blog article for more information including links to list of supported cards from Nvidia and AMD:http://blogs.msdn.com/b/rds/archive/2012/06/13/richvgpu.aspx Jump

 

Can I use multiple types of GPUs?

No, if more than one GPU is installed, the GPU’s need to be identical. The GPU must have sufficient dedicated memory that is separate from system memory.

What versions of Windows are supported inside a virtual machine to use the vGPU?

Not every version of Windows enables use of the vGPU, even if the vGPU is enabled in Hyper-V for the given virtual machine you are connecting to. Ensure that you are running Enterprise version of Windows client.

You can use one of these options to verify you are running enterprise version:

  • Navigate to licensing options / system info
  • Open a command prompt and run the the “Systeminfo” command, one of the returned parameters (“OS Name”) will show the version of Windows you are running.

 

How can I determine the RemoteFX vGPU is utilized in a RemoteFX/RDP session?

  1. Confirm the device connecting supports RDP 7.1 (RemoteFX Codec) or RDP 8.
  2. Confirm the virtual machine is configured to use RemoteFX with the vGPU:a. On the Hyper-V host system launch the Hyper-V Manager and go to “Hyper-V Settings” (right click on the host).

    b. Confirm the Physical GPU is present and the “Use this GPU with RemoteFX” is enabled.

    c. Navigate to the Windows 8 virtual machine. Then navigate to the properties of the virtual machine and confirm the “RemoteFX 3D Video Adapter” is in the hardware list. If it is not in the list, use the “Add Hardware” option to add the “RemoteFX 3D Video Adapter” to the virtual machine.

  • In the Windows 8 virtual machine itself confirm the “Microsoft RemoteFX Graphics Device – WDDM” video adapter is there:

  • When connecting to the session confirm if RemoteFX/vGPU is enabled in the virtual machine you are connecting to review the Windows Eventlog on the Windows 8 virtual machine:
  1. Launch eventvwr.exe.
  2. In the eventviewer look for the following in the tree on the left:

    “Applications and Services Logs” > “RemoteDesktopServices-RdpCoreTS” > “Operational”

  3. In the listview in the middle look for event ID 34:
  4. The detail of the event should show “Remote Desktop Protocol will use the RemoteFX host mode module to connect to the computer.”:

  5. If you see event ID 33 then it means the vGPU is not enabled, for example when connecting to a virtual machine running RDSH.
  6. For an RD Session Host on Windows Server 2008 R2 the RemoteFX RDP 7.1 Codec can be forced using the following online documentation: http://technet.microsoft.com/en-us/library/ff817595(v=ws.10).aspx

Are there any performance tests I can run to show the benefit of vGPU?

From a performance point of view you can use the following example to compare the Frame rate between a virtual machine without vGPU enabled in Hyper-V and virtual machine enabled with vGPU:

  1. Fishbowl (for example set 100 fish and compare side by side with virtual machine that does not have vGPU enabled)

    http://ie.microsoft.com/testdrive/Performance/FishBowl/Default.html Jump

  2. Particle Acceleration

    http://ie.microsoft.com/testdrive/Performance/ParticleAcceleration/ Jump

 

I don’t see a difference between the vGPU and non-vGPU virtual machine?

When you do not notice any difference between a virtual machine with vGPU enabled and a virtual machine without vGPU enabled then confirm the following:

  1. Which version (Enterprise or Pro) of windows 8 is the vGPU enabled virtual machine running? The RemoteFX vGPU hardware acceleration is only supported on the Enterprise version of Windows.
  2. RD Session Host does not support the vGPU, however with RD Session Host you will still have the benefits of software emulation of the GPU on the Windows Server 2012 RD Session Host server.

 

What performance counters are available to determine RemoteFX performance issues?

The following performance counters are available for RemoteFX Graphics on Windows 8 / Windows Server 2012:

  1. RemoteFX Graphics:

    a) Average Encoding Time

    b) Frames Skipped/Second – Insufficient Client Resources

  2. RemoteFX Network:

    a) Insufficient Network Resources b) Insufficient Server resources

If the bottleneck is encoding speed, 1a and 2b will be high. If the bottleneck is bandwidth, 2b will be high. If bottleneck is client speed, 1b will be high.

 

  Note
That Frames-per-Second measured inside a virtual machine may in-itself not be a good measure as there are other factors like bandwidth, server resources which may all play a factor.

 

I am seeing a blank screen when connecting to a Windows 8 Enterprise virtual machine with vGPU enabled?

Verify the server running Hyper-V is running the same version / build as the version running in the virtual machine. For example if the Windows 8 virtual machine is running build 9200 and the RD Virtualization Host server a prerelease build 8400 then the Hyper-V drivers are not compatible and a black screen will displayed. Ensure the same build is used to resolve the problem. Also check if you are running the enterprise SKU that has support for RemoteFX vGPU (e.g. either Windows 8 Enterprise or Windows 7 Enterprise with SP1).

 

What monitor configurations are supported when connecting to a Windows 8 Pro or Windows 7 with Service Pack 1 virtual machine with RemoteFX vGPU enabled?

Maximum monitor resolutions in Windows 8 Enterprise or Windows 7 Enterprise with SP1 virtual machines:

Maximum resolution

Supported maximum monitors per RemoteFX vGPU Enabled virtual machine

Windows 7 Enterprise with SP1 on Windows Server 2008 R2 SP1 Hyper-V or Windows Server 2012

Windows 8 Enterprise on Windows Server 2012 Hyper-V

1024 x 768

4

8

1280 x 1024

4

8

1600 x 1200

3

4

1920 x 1200

2

4

2560 x 1600

-

2

Monitor resolutions that can be in landscape and portrait modes:

Resolutions

640 x 480

1280 x 800

1600 x 1200

2048 x 1536

800 x 600

1280 x 1024

1600 x 1050

2560 x 1440

1024 x 768

1366 x 768

1920 x 1080

2560 x 1600

1280 x 720 1440 x 900 1920 x 1200  

1280 x 768

1400 x 1050

2048 x 1080

 

 

Physical GPU in Windows Server 2012 Hyper-V settings is unavailable post domain join?

When a Windows Server 2012 Remote Desktop Virtualization Host is added to a domain and the default domain policy is applied, the option to select a physical GPU used for Remote FX (within Hyper-V settings) is unavailable. There is a known issue which has been addressed in Windows Server 2012 R2. For more information on the root cause and how to address on Windows Server 2012, please see KB2878821 Jump