May 092024
 
NVIDIA vGPU

You may notice a frozen session or frozen screen with NVIDIA vGPU, Windows 11, and Omnissa Horizon (formerly VMware Horizon) in your VDI environment.

While I’ve mostly observed this issue using non-persistent Instant Clones with vGPU on Windows 11 23H2, I have also noticed issues and anomalies with persistent VMs as well.

I’ve noticed this issue across multiple customer environments, and was able to replicate it in my own environment. I’ll go over the problem and solution below.

The Problem

This issue occurs due to the combination of hardware being used, the VMware SVGA driver, a secondary “Virtual Display”, and the resolution being set during logon and initialization of the VMware Horizon VDI session.

When a user logs on, the resolutions are set across all virtual displays. There is an issue where due to a timeout (observed in log files), the resolution cannot be set, resulting in a session that either appears to be frozen, or if active, the interactive cursor is actually off-set from the visible display (your mouse is somewhere else, other than where it’s being displayed).

The Solution

In my troubleshooting, I’ve identified the following solutions:

Solution #1

To resolve this issue, disable the “VMware SVGA 3D” Display Adapter in the Windows Explorer (as shown below). Simply right-click on “VMware SVGA 3D” and set to Disabled.

After disabling this Display Adapter, you’ll noticed the issue will be resolved, and you’ll also notice your VDI sessions are established very quickly (including initializing the resolutions with vGPU).

If you’re using non-persistent VDI (VMware Horizon Instant Clones), you’ll need to perform this on your base image.

Note: By disabling this adapter, you will lose the ability to use the VMware Console on VMware vSphere vCenter. To gain console access, you’ll either need to enable the VMware SVGA 3D adapter in a VDI session, or remove the vGPU adapter.

Solution #2

Another solution is to force the VDI session to use the VMware Horizon Indirect Display Driver.

  1. Open Windows Registry and navigate to the following location: HKLM\Software\Policies\VMware, Inc.\VMware Blast\Config
  2. Create a new Registry String (REG_SZ) called “PixelProviderForceViddCapture” and set it to: 1

Note: If you force the use of the VMware Horizon Indirect Display Driver as your Primary Display Driver, you may run in to GPU issues with the VMware Horizon Indirect Display Driver where the capabilities of your NVIDIA vGPU may not be detected by your applications that require the features and capabilities that come from an NVIDIA GPU.

  7 Responses to “Frozen screen with NVIDIA vGPU, Windows 11, and Omnissa Horizon”

  1. Nice work, Stephen!

  2. Hi Stephen,

    Using nvidia vgpu on a clean install. SVGA is disabled during the tools install. Horizon agent (2406) installs vmware IDD, but it still shows the Microsoft basic display adapter as well. 3 listed in Device manager. Nvidia+VMwareIDD+MS Basic.

    Getting events 10110 and 10111 DriverFrameworks-UserMode crash. The device VMware Horizon Indirect Display Driver is offline due to a user-mode driver crash.

    Sessions will freeze on the welcome screen, but are fine on the back end. Resizing the window usually resolves it.

    Hopefully you have a tip in this scenario.

  3. Hi Brian,

    The VMware svga adapter should not be omitted from the tools installer.

    For a proper deployment, VMware svga, and horizon IDD, and vGPU should be installed.

    Cheers
    Stephen

  4. Hey Stephen,

    I’m using the newest version accessible of the Omnissa VM Horizon (2412 – 8.14.0) recently waht i’ve seen that when the Cloud I’m using locks itself or I minimize the window it disables my Dispaly Adapor (AMD Radeon RX 6700 XT) both of my monitors turn to black and I have no screen to work on.
    I have to restart my computer at lest twice to be able to work again (one restart to have 1 screen working and the second after I enabled my display adaptor)
    I don’t have any other jsut the one I’ve menitoned above.
    My drivers are up to date as I like to udpate them once a newer version comes out.
    Could you please let me know if there is solution for this?
    Thanks

  5. Hi Patrik,

    I’m not sure if I understand your question. You have a AMD Radeon attached to your VDI VM in you server, or your using NVIDIA vGPU in your server, and the Radeon on the endpoint?

    Cheers

  6. Hi,

    We’ve deployed Solution #1 on our Windows 11 24H2 instant clone golden image. We’re currently using Horizon Agent and Connection Servers version 2312.1. However, we’ve noticed that the NVIDIA driver occasionally crashes after a disconnect and reconnect to the same desktop—though this doesn’t happen consistently. From the end user’s perspective, the screen either freezes or goes black.

    To troubleshoot, we can still access the machine via RDP (which continues to function). Checking the Event Viewer logs, we see that the Desktop Window Manager (DWM) process is failing. Additionally, in Device Manager, the NVIDIA driver displays a yellow exclamation mark.

    The logs show entries like this: “The Desktop Window Manager process has exited. (Process exit code: 0xc00001ad, Restart count: 5, Primary display device ID: VMware Horizon Indirect Display Driver).”

    We aren’t enforcing the Indirect Display Driver (IDD), but to my understanding, it’s still required for the Horizon Client to render the display, even if it’s not mandated.

    Our setup includes vGPU release 16.9 on both the ESXi cluster and the guest VM.

    Any insights into what might be causing this issue?

    Thanks

  7. Hi Fedrik,

    It’s not required, but under normal circumstances it improves the experience, except for when you’re running in to these bugs.

    I noticed that everything works perfect on Horizon 2412, with vGPU 18, and the IDD enabled.

    I’d recommend updating/upgrading, if your environment allows.

    Cheers,
    Stephen

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)