I recently came across an issue where high CPU utilization of the vmware-remotemks.exe process was seen with nested Horizon apps. Nested, meaning a Horizon published application is running within a Horizon desktop session. This issue began happening during the move to Horizon 8, and seemed to specifically begin happening when the desktop agent was at 2111 or higher. Horizon Client or RDSH/nested agent version did not seem to make a difference.

The issue manifests itself when the user is actually utilizing the nested application – click around, scrolling through menus seemed to not only spike CPU 80+%, but there would be noticeable lag within the application as well. When dealing with hundreds or thousands of VDI sessions where vCPU:pCPU ratios are dense, this can cause some fairly noticeable CPU hits on the ESXi hosts!

The vmware-remotemks.exe process is seen spiking when clicking around in nested app

To make things more complicated, this issue is not seen when VMware Tools SVGA driver is installed prior to the Horizon Agent. This likely narrows it down to the new Indirect Display Driver introduced with Horizon Agent 2111.

After some troubleshooting with GSS and engineering teams, we narrowed it down to the Horizon Client being rendered in DX11, starting with Horizon 2111 when the new IDD is utilized. To get around this, you can rollback the rendering of the nested session to DX9 by adding this line into the virtual desktop session user’s config.ini file, located in C:\Users\<username>\AppData\Roaming\VMware\config.ini :

viewClient.enableD3D11=FALSE

This can be placed in the default profile of your image(s), deployed with DEM, etc., and it will immediately take effect. Just completely close out of the Horizon Client and re-launch the nested session with the config file in place to test! You will immediately see CPU relief if you are impacted by this.

Hope this helps – feel free to reach out if you have any questions or comments!