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?
Try this as a possible workaround:
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
There is a setting in Nvidia Control Panel as to which graphics card is the default to use globally or when running particular applications.
I don't have that option in my settings 😕
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.
Are you on a laptop? I have 8.1.940.0 installed. My PC is a desktop so the features may be different there.
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.
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.
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
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?
Try this as a possible workaround:
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
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:
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.
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.
Thanks for the trying bluefirestorm!
Yes, for Intel GPU, venderID is 0x8086, and for AMD vender ID is 0x1022.
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 ?
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.
Ensure that the following applications are set to High performance NVIDIA graphics (in your VM ware directory):
- vmplayer.exe
- x64/mksSandbox.exe
- x64/tmp2emu.exe
- x64/vmware-vmx.exe
If you are using windows 11 then you will need to apply those settings in the Settings/ Display/ Graphics (Just browse for those desktop apps and change the settings to NVIDIA graphics).
After then in your VM configuration ensure that accelerate graphics is checked under 'Display'.
Launch your VM and test if the GPU on the laptop is being utilized.