winter4w
Contributor
Contributor

Make VMWare Workstation use my Nvidia card?

Jump to solution

So today I was testing my VM for gaming and came across something interesting. So I have a GTX 960 and Intel HD 4600. I have two monitors, the main one plugged into the GTX 960 other in the onboard graphics.

Now while I try to game in my VM with onboard graphics enabled in my host bios, the games lag and I get 20FPS if not less, however when I disabled the onboard graphics in the bios and ran the VM I was getting 50-150 FPS and everything was smooth however my 2nd monitor did not work. My only guess is when onboard graphics are enabled VMWare Workstation runs the Graphics off that and not my GTX 960? If I'm correct is there a way I can make VMWare Workstation run off my main GPU without disabling the onboard graphics?

1 Solution

Accepted Solutions
bluefirestorm
Champion
Champion

Try this as a possible workaround:

  1. keep the Intel HD graphics enabled in the EFI/BIOS, so that you get to keep 2 displays booting up
  2. BEFORE you start the VM, disable the HD 4600 from the Device Manager
  3. AFTER VM boot up has completed, re-enable the HD 4600

Hopefully the result is your VM instance is using Nvidia and you get to keep your dual display configuration.

Under the hood, Workstation 12.5 for Windows is using DirectX 11; unless it is disabled in the vmx configuration.

It looks like it just creates a DX11 device context on whatever the first render device Windows gives it. When I switched Nvidia control panel to use Intel graphics as the preferred, it came first and Workstation simply created DX11 device context and sure enough the VM wasn't using the Nvidia GPU.

You will likely see something similar in your VM vmware.log that it just sees the Intel graphics first and simply just creates a DX11 device. So if the workaround is successful, your VM log should not show an Intel HD 4600.

This is the from the two different vmware log of VM startup.

Intel graphics as preferred

2017-05-02T07:03:38.386+08:00| mks| I125: MKS-RenderMain: Collecting RenderOps caps from DX11Renderer

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: Enumerating adapter 0

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: `Intel(R) HD Graphics 530` vendor=0x8086 device=0x191b revision=6

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: video=128MB system=0MB shared=8123MB

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: Successfully created a device

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: Enumerating adapter 1

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: `NVIDIA GeForce GTX 960M` vendor=0x10de device=0x139b revision=162

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: video=4065MB system=0MB shared=8123MB

Nvidia graphics as preferred

2017-05-02T07:09:50.545+08:00| mks| I125: MKS-RenderMain: Collecting RenderOps caps from DX11Renderer

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: Enumerating adapter 0

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: `NVIDIA GeForce GTX 960M` vendor=0x10de device=0x139b revision=162

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: video=4065MB system=0MB shared=8123MB

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: Successfully created a device

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: Enumerating adapter 1

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: `Intel(R) HD Graphics 530` vendor=0x8086 device=0x191b revision=6

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: video=128MB system=0MB shared=8123MB

View solution in original post

14 Replies
bluefirestorm
Champion
Champion

There is a setting in Nvidia Control Panel as to which graphics card is the default to use globally or when running particular applications.

pastedImage_2.png

pastedImage_0.png

winter4w
Contributor
Contributor

I don't have that option in my settings 😕

Settings.PNG

0 Kudos
bluefirestorm
Champion
Champion

You can update your Nvidia software. I suppose you do play games so your Nvidia drivers would be updated, too.

The Nvidia Control Panel version that I have is 8.1.920.0.

I think Nvidia introduced this option to set in the preferred graphics processors in the Control Panel for over a year now.

0 Kudos
winter4w
Contributor
Contributor

Are you on a laptop? I have 8.1.940.0 installed. My PC is a desktop so the features may be different there.

0 Kudos
bluefirestorm
Champion
Champion

Yes. I am on laptop. But I don't think that this feature would be limited to laptops.

Do you the Nvidia GPU Activity icon in the System Tray? The red/green square on the right of the image below. The icon will be white if no program is using Nvidia.

pastedImage_0.png

I remember seeing this last year for the first time on a desktop that I had just installed a GTX 950 with i7-4770 with HD 4600 enabled. I no longer have that desktop.

How about on right-click of the VMware Workstation desktop short cut? Do you see an option to "Run with graphics processor"?

Perhaps you have to install the Nvidia software with the HD 4600 enabled; most desktops that come with dedicated graphics usually have the Intel GPU disabled.

0 Kudos
winter4w
Contributor
Contributor

Yep, I do see that icon, however, I don't see the VMWare Workstation exe in there. Also looking into that dropdown thing it seems like it is only available to laptops/mobile users

0 Kudos
winter4w
Contributor
Contributor

Is anyone else haveing this issue or know of a fix? When I run the VM and look in the NVIDIA GPU Activity screen I don't see any of the VMWare Programs running. Is there a way I can set VMWare workstation to run on that GPU. Shouldn't I be seeing vmware-vmx.exe in the GPU Activity?

0 Kudos
bluefirestorm
Champion
Champion

Try this as a possible workaround:

  1. keep the Intel HD graphics enabled in the EFI/BIOS, so that you get to keep 2 displays booting up
  2. BEFORE you start the VM, disable the HD 4600 from the Device Manager
  3. AFTER VM boot up has completed, re-enable the HD 4600

Hopefully the result is your VM instance is using Nvidia and you get to keep your dual display configuration.

Under the hood, Workstation 12.5 for Windows is using DirectX 11; unless it is disabled in the vmx configuration.

It looks like it just creates a DX11 device context on whatever the first render device Windows gives it. When I switched Nvidia control panel to use Intel graphics as the preferred, it came first and Workstation simply created DX11 device context and sure enough the VM wasn't using the Nvidia GPU.

You will likely see something similar in your VM vmware.log that it just sees the Intel graphics first and simply just creates a DX11 device. So if the workaround is successful, your VM log should not show an Intel HD 4600.

This is the from the two different vmware log of VM startup.

Intel graphics as preferred

2017-05-02T07:03:38.386+08:00| mks| I125: MKS-RenderMain: Collecting RenderOps caps from DX11Renderer

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: Enumerating adapter 0

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: `Intel(R) HD Graphics 530` vendor=0x8086 device=0x191b revision=6

2017-05-02T07:03:38.386+08:00| mks| W115: DX11Renderer: video=128MB system=0MB shared=8123MB

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: Successfully created a device

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: Enumerating adapter 1

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: `NVIDIA GeForce GTX 960M` vendor=0x10de device=0x139b revision=162

2017-05-02T07:03:38.402+08:00| mks| W115: DX11Renderer: video=4065MB system=0MB shared=8123MB

Nvidia graphics as preferred

2017-05-02T07:09:50.545+08:00| mks| I125: MKS-RenderMain: Collecting RenderOps caps from DX11Renderer

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: Enumerating adapter 0

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: `NVIDIA GeForce GTX 960M` vendor=0x10de device=0x139b revision=162

2017-05-02T07:09:50.545+08:00| mks| W115: DX11Renderer: video=4065MB system=0MB shared=8123MB

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: Successfully created a device

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: Enumerating adapter 1

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: `Intel(R) HD Graphics 530` vendor=0x8086 device=0x191b revision=6

2017-05-02T07:09:50.889+08:00| mks| W115: DX11Renderer: video=128MB system=0MB shared=8123MB

winter4w
Contributor
Contributor

SWEET! Yes, that seems to have fixed the issue! I am now getting around 100FPS in my VM. What I have done to keep my 2nd display always working, I got a Display to VGA adapter and plugged it in my GPU display port. I went to Device Manager and disabled the intel driver. I figured to keep it enabled in the bios in case my GPU dies I can still get in my PC. :smileygrin:

0 Kudos
TracyHuang
Enthusiast
Enthusiast

Thanks for the posting.

There're options you can set in VM vmx file to specific the vendor GPU. If you want use Nvidia GTX 960, you may add lines in vmx file like below:

mks.dx11.driverType = "unknown"
mks.dx11.vendorID = 0x10de

After the setting, you may boot the VM to see if it works.

bluefirestorm
Champion
Champion

Thanks, Tracy.

I tried the other way around.

mks.dx11.vendorID = "0x8086"

And the DX11 device context was created only after the Intel HD 530 was found even though the preferred graphics device was Nvidia in the Nvidia control panel.

I had a suspicion that there has to be configuration because the log doesn't stop listing other graphic devices even though the DX11 device was shown to be created.

Now for people who go for the red AMD team instead of green Nvidia team; AMD vendor ID is 0x1002.

TracyHuang
Enthusiast
Enthusiast

Thanks for the trying bluefirestorm!

Yes, for Intel GPU, venderID is 0x8086, and for AMD vender ID is 0x1022.

0 Kudos
AAKLebanon
Contributor
Contributor

Hi, I have VMWare Player 14 and I set it to use the nvidia graphic card from the control panel like you said. however it seem that this have no effect (it have effect on other apps but not on vmware) and when I open the NVidia GPU activity, it will be empty. any idea ?

0 Kudos
armansamimi
Contributor
Contributor

hey guys? does it work for VMware workstation Pro 15?

 

I have a python project  which uses GPU by default. but in  "VMware workstation Pro 15" my graphic card does not detected, so the project runs on CPU which is too slow.

How can I use my GPU in  "VMware workstation Pro 15".

I've installed a windows 10 on my VM. 

0 Kudos