Enterprise Mobility and Security Blog


Hi everyone! Today we’re excited to share the improvements we’ve made to the RemoteFX virtual graphics processing unit (vGPU) in Windows Server 2012 R2. There are four improvements we invested in, specifically:

1. Improving DirectX API coverage

2. Support for higher monitor resolutions and higher default monitor resolutions

3. Exposing higher VRAM to RemoteFX vGPU-enabled virtual machines

4. Higher scale by leveraging NUMA in Windows Server 2012 R2

Let’s review each improvement in detail.

DirectX 11.1 (DX11.1) support

In Windows 8.1 the RemoteFX vGPU becomes fully DX11.1 capable, an improvement from Windows 8, which was only capable of DX11.0. Deployments that use a DX11.1-capable GPU can run applications that take advantage of DX11.1 capabilities such as double precision calculations.

The RemoteFX vGPU still supports DX11.0, allowing support for both DX11.0 and DX11.1 physical GPUs (the list of RemoteFX supported GPUs can be found here).


Increased default resolution

The default resolution that vGPU-enabled virtual machines support is now 1920 x 1200. This change allows a majority of end users to start out in a full-screen session when connecting to a vGPU-enabled virtual machine—preventing windowed sessions or users manually changing the default resolution to get to a full-screen session.

The RemoteFX vGPU also has a larger range of resolutions and number of monitors supported in Windows 8 and Windows 8.1.

Range of resolutions supported by RemoteFX vGPU on Windows 8.1 and Windows 8


Maximum resolution and number of monitors supported on Windows 8.1 and Windows 8


Improvements to VRAM allocation

Graphics intensive applications and experiences typically have higher VRAM requirements. To improve application compatibility in RemoteFX vGPU virtual machines, Windows 8.1 now supports an increased amount of VRAM. The VRAM changes can be observed by running dxdiag within a virtual machine and clicking the display tab to view the Approx. Total Memory value.

The best way to understand this is by reviewing what Windows 8 supported for the maximum amount of VRAM exposed in a vGPU-enabled virtual machine:

Windows 8: Total VRAM exposed (in MB)


Windows 8.1: Total VRAM exposed (in MB)

In Windows 8.1 the maximum VRAM allocation is dynamic and depends on the minimum amount of system memory that the virtual machine starts with.

In Windows 8.1, the dedicated VRAM is either 128 MB or 256 MB depending on the resolution and number of monitors assigned to the virtual machine. The shared VRAM allocated varies between 64 MB and 1 GB depending on the minimum amount of system memory that is assigned to the virtual machine when it starts. The formula used to determine the amount of shared memory is here.

TotalSystemMemoryAvailableForGraphics = MAX(((TotalSystemMemory – 512) / 2), 64MB)

To elaborate on this, consider the table below that depicts virtual machines started with a minimum of 512 MB. They get the minimum of 64 MB of shared memory and will expose the following total VRAM:

Windows 8.1: Total (dedicated + shared) VRAM exposed (in MB)


On the other hand, virtual machines that start with a minimum of 2512 MB of system memory will get the maximum of 1 GB of shared memory and will expose the following total VRAM:

Windows 8.1: Total (dedicated + shared) VRAM exposed (in MB)



The VRAM exposed within a vGPU-enabled virtual machine does not map directly to the physical GPU VRAM. The RemoteFX vGPU dynamically manages VRAM on the physical GPU and users can end up consuming more or less VRAM on the physical GPU than what is exposed within the virtual machine.

Scale improvements for NUMA systems

Windows 8.1 includes optimizations for non-uniform memory access and as such servers with NUMA will observe significant increases in scaling vGPU-enabled deployments. Our testing on a NUMA system shows an increase in the number of users that can be hosted on such systems.

To test the RemoteFX vGPU improvements, download Windows Server 2012 R2.