3 Replies Latest reply on Dec 6, 2017 10:05 PM by bluefirestorm

    GPU Passthrough in VMware workstation 14.

    t569 Lurker

      I am running 3D application on my guest OS but its not using GPU of my Host machine in other words its using software rendering and not hardware rendering.

      please let me how if i can use GPU of my Host machine into my guest machine (GPU Passthrough or GPU virtualization) ?

       

      Hardware : HP840

      Host OS: Win 10

      VMware: VMware workstation 14

      Guest OS: Win 7 / Win XP

      Graphics card: Nvidia Quadro K2200

      3D acceleration provided from VMware is on.

       

      I have another question. When 3D acceleration is on , will VMWare act as intermideate between GPU and Guest machine? Will it use the GPU and the processed data is provided to Guest Machine or is it using CPU for rendering? How does 3D accelration actually work w.r.t GPU ?

        • 1. Re: GPU Passthrough in VMware workstation 14.
          bluefirestorm Master

          GPU passthrough is currently not supported in Workstation Pro 14.

           

          You can enable 3D acceleration in the VM display settings and Workstation Pro will use the first DX11 capable graphic card in the Windows 10 host to give DX10/OpenGL 3.3 core profile capability in the Windows 7 guest VM. For XP VM, it will be capped at DX9.

           

          Make sure that the hardware compatibility is also set to 14 in case that the VMs were created prior to version 12. Version 12 supports the DX10 in Windows 7/8/10 guest OS.

           

          I am assuming you meant HP Z840 which has a Xeon E5 v3/v4 which does not have integrated graphics. Having integrated graphics in the CPU sometimes causes Workstation to use the weaker Intel GPU instead of discrete Nvidia/AMD in case the Intel GPU is the default.

          • 2. Re: GPU Passthrough in VMware workstation 14.
            t569 Lurker

            Hello bluefirestorm,

             

            Thank you very much for your reply.

             

            I have another question. When 3D acceleration is on , will VMWare act as intermideate between GPU and Guest machine? Will it use the GPU and the processed data is provided to Guest Machine or is it using CPU for rendering? How does 3D accelration actually work w.r.t GPU ?

             

            Thanks in Advance

            • 3. Re: GPU Passthrough in VMware workstation 14.
              bluefirestorm Master

              When 3D acceleration is ON, assuming you didn't edit the VMX configuration file before and the hardware compatibility is at least set to 12, VMware Workstation will use DX11 as the render device.

               

              You can see it in the vmware.log along these lines. I have set Nvidia as the default GPU in the Nvidia Control Panel. I don't think this feature is available in Nvidia desktop version. You can see the "Successfully created a device" follows after it finds the GTX960M. If the default was the Intel HD530, it would have come first in the Enumerating adapter 0 and create a device on HD530; which would mean slower graphics in the VM.

               

              | mks| I125: MKS-RenderMain: RenderMain: PowerOn allowed DX11Renderer MKSBasicOps

              | mks| I125: MKS-RenderMain: Collecting RenderOps caps from DX11Renderer

              | mks| W115: DX11Renderer: Enumerating adapter 0

              | mks| W115: DX11Renderer: `NVIDIA GeForce GTX 960M` vendor=0x10de device=0x139b revision=162

              | mks| W115: DX11Renderer: video=4065MB system=0MB shared=8123MB

              | mks| W115: DX11Renderer: Successfully created a device

              | mks| W115: DX11Renderer: Enumerating adapter 1

              | mks| W115: DX11Renderer: `Intel(R) HD Graphics 530` vendor=0x8086 device=0x191b revision=6

              | mks| W115: DX11Renderer: video=128MB system=0MB shared=8123MB

              | mks| W115: DX11Renderer: Enumerating adapter 2

               

              You can also switch to using OpenGL 4.x instead of DX11 by editing the vmx configuration file with the following

               

              mks.enableDX11Renderer = "FALSE"

              mks.enableGLRenderer = "TRUE"

              mks.enableD3DRenderer = "FALSE"

              mks.enableGLBasicRenderer = "FALSE"

               

              I have done this for one Windows 10 VM. It fixes a problem of Chrome tabs not being rendered properly inside the VM. Switching to use OpenGL instead of DX11, the vmware.log will show something like this instead.

               

              | mks| I125: GLHostWin32: : Created context with GL 2.1, core: 0, robust: 0

              | mks| I125: GLHostWin32: : Created context with GL 4.0, core: 0, robust: 1

              | mks| I125: OpenGL Version: "4.6.0 NVIDIA 388.43" (4.6.0)

              | mks| I125: GLSL Version: "4.60 NVIDIA" (4.60.0)

              | mks| I125: OpenGL Vendor: "NVIDIA Corporation"

              | mks| I125: OpenGL Renderer: "GeForce GTX 960M/PCIe/SSE2"

               

              I am still on Workstation 12.5.7, but I think it should generally still be the same or at least very similar.