Embarrassing status and solutions of RemoteFX vGPU

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:

  1. 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.
  2. 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.
  3. 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

Get-VMRemoteFXPhysicalVideoAdapter

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               : 25.20.100.6519
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               : 25.21.14.1917
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.

 

Original: https://zhuanlan.zhihu.com/p/59086305

Tags: win10 windows10

Posted by timc37 on Sun, 15 May 2022 09:29:04 +0300