Server VDA with vGPU hangs when the default hybrid mode graphics (GDI + Direct3D)

Server VDA with vGPU hangs when the default hybrid mode graphics (GDI + Direct3D)

book

Article ID: CTX273317

calendar_today

Updated On:

Description

On a VDA running on Windows Server 2016, the OS could get into a hung state in a scenario when it is used as a double-hop to other resources and a vGPU is available. This will be observed when wfica32.exe attempts to use GDI + Direct3D rendering (called Hybrid mode). The issue was identified as part of OS graphics subsystem where Citrix components would try leverage DirectX11. This was communicated to our partner Microsoft. The capability to leverage DirectX11 for rendering was introduced in Receiver 4.10, since called WorkspaceApp. There is no solution or ETA at this moment for a fix from Microsoft.

Environment

Caution! Using Registry Editor incorrectly can cause serious problems that might require you to reinstall your operating system. Citrix cannot guarantee that problems resulting from the incorrect use of Registry Editor can be solved. Use Registry Editor at your own risk. Be sure to back up the registry before you edit it.

Resolution

To work around one of these strategies can be employed: 

1. Enable the GPU acceleration on Windows 2016 Server by following the steps documented in the link below, namely, by enabling MS policy Use the hardware default graphics adapter for all Remote Desktop Services sessions setting in the group policy Local Computer Policy > Computer Configuration > Administrative Templates > Windows Components > Remote Desktop Services > Remote Desktop Session Host > Remote Session Environment.

This will improve the user experience and should prevent such hangs since GDI rendering should not be used by wfica32.exe in this scenario, only Direct3D rendering will be used.

Note: Enabling this policy will reduce the VM density per hypervisor significantly due to extra resources consumed by this feature. The exact numbers depend on hypervisor and GPU profiles used for the individual VM's. As well this GPO will expose the GPU to other applications, not just Workspace App wfica32.exe process. Meaning an increase in vGPU utilisation can be observed.

2. Disable the hybrid mode feature by creating the following registry changes:

(For 64 bit): HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\GfxRender\UseD3DHybrid to value 0

(For 32 bit OS): HKEY_LOCAL_MACHINE\SOFTWARE\Citrix\ICA Client\Engine\Configuration\Advanced\Modules\GfxRender)

Add the registry value "UseD3DHybrid" should be of the value DWORD.

For setting to take effect the system needs to be restarted. 


Problem Cause

The issue is due to a Microsoft bug in Direct3D exposed by the introduction of Hybrid Mode in Receiver 4.10 (Workspace App)