RemoteFX vGPU was once a very advanced GPU virtualization and remote experience enhancement tool. However, after the 1709 version of windows, RemoteFX has become an "abandonware". Because it is too old (first published in 2010), it is difficult to be well compatible with the current new system components. In the version of Windows 10 1809, they cut off the path of adding RemoteFX vGPU through the GUI, and prompted the user that this technology is no longer supported. After that, Microsoft officially announced the abdication of RemoteFX, and said that a new replacement technology is under development. It is recommended that users use Discrete Device Assignment, that is, separation device assignment.
However, the problem is:
- Only Windows Server Open supports DDA, while Windows Pro / Workstation version cannot be used. And I think it's a little speechless not to give even the Workstation version.
- The enabling of DDA is very troublesome, and after enabling, the client will monopolize the device, and the host will not be able to use it.
- DDA and RemoteFX are two different technology paths. In fact, the suitable scenarios are not exactly the same and cannot be replaced by each other.
Although the RemoteFX we are familiar with has many defects, it is still very convenient for daily use (especially the flow smoothness under high-resolution screen will be much higher than that of pure CPU rendering, and saves a lot of CPU resources for utilization). Therefore, there are the following how-to:
How do I add and enable RemoteFX to a virtual machine?
1) Check the GPU on your host (only if it is compatible)
Open Powershell with administrator privileges and enter
The output is roughly as follows:
Id : pci#ven_8086&dev_5917&subsys_00281414&rev_07#3&11583659&0&10 Name : Intel(R) UHD Graphics 620 GPUID : 32902_22807_2626580_7 TotalVideoMemory : 8684789760 AvailableVideoMemory : 8684789760 DedicatedSystemMemory : 0 DedicatedVideoMemory : 134217728 SharedSystemMemory : 8550572032 Enabled : True CompatibleForVirtualization : True DirectXVersion : 12.1 PixelShaderVersion : 5.0 DriverProvider : Intel Corporation DriverDate : 2019-01-09 08:00:00Z DriverInstalledDate : 2019-01-09 08:00:00Z DriverVersion : 18.104.22.16819 DriverModelVersion : 2.5 CimSession : CimSession: . ComputerName : DESKTOP-AA IsDeleted : False Id : pci#ven_10de&dev_1c20&subsys_00241414&rev_a1#4&3b87fca8&0&00e4 Name : NVIDIA GeForce GTX 1060 GPUID : 4318_7200_2364436_161 TotalVideoMemory : 0 AvailableVideoMemory : 0 DedicatedSystemMemory : 0 DedicatedVideoMemory : 6348079104 SharedSystemMemory : 8550572032 Enabled : False CompatibleForVirtualization : False DirectXVersion : 12.1 PixelShaderVersion : 5.0 DriverProvider : NVIDIA DriverDate : 2019-02-20 08:00:00Z DriverInstalledDate : 2019-02-20 08:00:00Z DriverVersion : 22.214.171.1247 DriverModelVersion : 2.5 CimSession : CimSession: . ComputerName : DESKTOP-AA IsDeleted : False
Note that both Enabled and compatible for virtualization must be True. Otherwise, it is incompatible. Take my machine for example, Intel HD620 is compatible, while GTX 1060 is incompatible.
2) Specifies that a graphics card is enabled as a vGPU
It's also in Powershell
Enable-VMRemoteFXPhysicalVideoAdapter Yours GPU Name, it's in the report above Name term
3) Add RemoteFX vGPU to the virtual machine you specified
Add-VMRemoteFx3dVideoAdapter -VMName Virtual machine name
4) Now you can set the properties of vGPU in the settings of virtual machine, as shown in the figure:
Can't connect to the client after RemoteFX is turned on?
Set "enhanced session mode" as default in Hyper V settings. Enhanced session mode is now inexplicably incompatible with RemoteFX, which makes users feel painful and helpless. But the good thing is that you can turn off this mode and use more traditional display output. My graphics card can be set to 4K output + 200% amplification in the client, which is not different from the enhanced session mode. But the sound still can't be output, which is the biggest decline in the experience.