VMware Communities
anirayny
Contributor
Contributor

Workstation Player 12: Chrome does not render tabs on Windows 10 guest

Chrome does not render the tab controls in any of its windows. The Chrome window's title bar where those buttons should be is just all white. Only the 3 window buttons are visible.

Though when I right click somewhere on the title bar it shows the proper menus as if the tab is there but I just don't see it.

In an incognito tab it looks like this:

pastedImage_0.png

It's most likely a problem with how chrome renders its GUI and how VMware player accelerates rendering on GPU because when I go to the VM settings and uncheck "Accelerate 3D graphics" chrome renders normally again.

I didn't have this problem initially when creating this VM, it just appeared someday.

Gues OS:

Win10 x64, 4G RAM, 4 Cores

Host OS:

Win10 x64, 16G RAM, i7 6700K (4c/8t), GTX 1070 8G (driver 384.94)

Ultimately, I really don't want to reinstall my guest because of this annoying bug. Can something else be done?

10 Replies
bluefirestorm
Champion
Champion

When 3D acceleration is checked and the HW compatibility is set at version 12, VMware Workstation/Player 12.x/12.5.x will use DX11 of the Windows host as the render engine.

Is the Intel HD 530 of the i7-6700K also enabled? With desktops, Nvidia Control Panel does not seem to provide a mechanism to select the "Preferred graphics processor", so VMware Player might be using the HD 530 (if it is enabled) instead of the GTX 1070. A visual cue whether Nvidia is used as the DX11 device when the VM is running is at the Nvidia GPU Activity icon in the System Tray. You should see a vmware-vmx.exe in the list when the VM is running. If you don't see vmware-vmx.exe in the list while the VM is running, that means it isn't using the GTX 1070.

If it is not using the GTX 1070, either disable the HD 530 temporarily (either in EFI/BIOS or Device Manager), or add this line to the vmx configuration file of the VM.

mks.dx11.vendorID = "0x10de"

Make sure also that the latest VMware Tools is also installed and the VM is using the latest SVGA 3D driver (8.15.1.50, I don't know if there is any version higher).

EDIT: On the other hand, if the blank incognito tab problem persists, you could try forcing VMware Player to use the HD 530 (ensure it is enabled in the EFI/BIOS and Device Manager) as the render engine by setting the vmx vendor ID as 0x8086. I don't think you would necessarily require a display attached to the HD 530 DP/HDMI ports. However, since the GFLOPs specs of the HD 530 is much lower than a GTX 1070, you would expect much lower frame rates if your intention is to play games within the VM. Otherwise, for all regular tasks such as internet browsing, email, word processing, spreadsheets, I doubt the difference would be noticeable.

mks.dx11.vendorID = "0x8086"

0 Kudos
anirayny
Contributor
Contributor

Thanks for the quick answer.

I've added mks.dx11.vendorID = "0x10de" to the vmx file, but nothing has changed. Also I'm not sure what system tray icon were you referring to, on host or on guest? I've never seen the vmx-tools icon in the host and I see it all the time in the guest.

The integrated GPU is not explicitly disabled but I have no driver installed for it and it doesn't show up in my host's device manager.

Can I maybe configure VMware to use dx10/9 for rendering?

I could just fall back to using no acceleration but I don't like how the guest's GUI feels without it. Even a browser window scrolls differently without GPU acceleration 😕

0 Kudos
bluefirestorm
Champion
Champion

On the previous desktop system that I had, I had to explicitly go to the EFI to enable the Intel integrated GPU. If it is not appearing the Device Manager, that means it is not enabled as Windows should have detected the HD 530 as a device and automatically installed WHQL drivers for it even if you don't go to the Intel website for the latest drivers.

The Nvidia GPU Activity icon on the System Tray that I was referring to is on the host machine. It is enabled/disabled from the Nvidia Control Panel menu, Desktop - "Display GPU Activity Icon in the Notification Area". (Maybe I should have used the terminology Notification Area instead of System Tray as that is the terminology now for Windows 10). It is the red/green square, to the left of the WiFi icon in the picture below. It would be black/white if no application is using the Nvidia GPU. In between the Bluetooth icon and Nvidia GPU Activity icon is the Intel HD Graphics Control Panel icon.

pastedImage_0.png

And if you click on the Nvidia GPU Activity it would look something like this picture below. Note that vmware-vmx.exe means one VM running is using the Nvidia GPU. For Workstation Pro, as there could be multiple VMs running simultaneously, there could be multiple vmware-vmx.exe in it.

pastedImage_3.png

Alternatively, if you don't have that Nvidia GPU Activity icon (for whatever reason), you could look at the vmware.log, you should see something along these lines if both adapters are enabled. Of course in your case you should see a GTX 1070. And the device that had a "Successfully created a device" immediately after it would be the graphics adapter for the DX11 render engine because the order of the "Enumerating adapter" could be different.

| 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

| mks| W115: DX11Renderer: `Microsoft Basic Render Driver` vendor=0x1414 device=0x008c revision=0

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

Btw, before editing the vmx, the VM has to be powered off (not suspended) for the changes to be effective on the next power up.

0 Kudos
bluefirestorm
Champion
Champion

I should have just simply tried out (I am more of a Firefox person). I also see the same behaviour on Workstation Pro 12.5.7. Blanked out tabs with Chrome 60.0.3112.90 (64-bit) within the VM with 3D acceleration enabled; regardless if it's incognito or not. Without 3D acceleration, the Chrome tabs are fine.

I also tried with the Intel HD 530 graphics the blanked tabs remain with 3D acceleration enabled.

Can I maybe configure VMware to use dx10/9 for rendering?

I tried that too but it's still blank with 3D acceleration acceleration and the Windows VM would just have 9_3 feature level (not 10_0) as reported by dxdiag within the VM.

The odd thing is it's fine on the Windows 10 host. I also tried on a Windows 10 VM with graphics acceleration enabled on macOS 10.12.6 Fusion 8.5.7 and the tabs are also fine.

So it looks for now a combination of the latest Chrome release and VMware Windows (10) VMs with a Windows (10) host that causes the problem as it's fine on a macOS Fusion host (which uses OpenGL instead of DX11).

0 Kudos
bluefirestorm
Champion
Champion

You can use this workaround and keep the "3D acceleration" enabled for the VM.

Under

chrome://settings/system

There is a "Use hardware acceleration when available" that is enabled.

Disable that and relaunch the Chrome browser and the tabs will work fine now and you get to keep the 3D acceleration settings for the VM. Not sure what sort of impact it will have on Chrome though.

There could be more granular control on hardware acceleration settings if you have time and are willing to experiment

chrome://gpu

anirayny
Contributor
Contributor

I honestly didn't expect such a detailed answer and so soon Smiley Happy

I have tried that setting and it's behaving just like if I disabled GPU acceleration for whole VM - pages scroll slower, but at least it's only local to Chrome.

Doesn't seem like chrome://gpu allows changing any of those settings.

I might just try to get an older version of Chrome to work and hope it doesn't just auto-update one day.

Once again, thanks a lot for your effort.

0 Kudos
bluefirestorm
Champion
Champion

For the chrome://gpu I was thinking along the lines to try to enable features that were disabled in chrome://flags but I didn't check whether if they have any one-to-one match.

Anyway, one more thing to try. This one allows you to keep both 3D acceleration enabled on VM display and hardware acceleration setting in Chrome enabled and the tabs are fine. Add the following lines to the vmx file of the VM

mks.enableGLRenderer = "TRUE"

mks.enableDX11Renderer = "FALSE"

This will make the VMware Workstation Pro/Player make use of OpenGL instead of DX11 as the render engine.

On top of the Chrome tabs being fine, if I compare the SVGA 3D capabilities in the log file (using DX11 vs OpenGL), it looks as though using OpenGL will give the Windows 10 guest VM better graphic capabilities.

For example: maximum number of vertex shader textures is 32 vs 16 and a bunch of other features which suggests it has better anti-aliasing capabilities.

On the chrome://gpu you will see that it supports 16 MSAA samples vs just 1 (which pretty much means it can't support MSAA) if VMware was using DX11. I haven't compared yet the other Chrome GPU capabilities.

If I use Intel HD 530 with OpenGL, even Windows logon itself had some white-spots (for example, the Windows logon ID picture). Maybe that is why OpenGL isn't the default render engine in Workstation Pro/Player on Windows platforms as it may not work well across all graphic cards. But since you have a GTX 1070 I think this should work out well for you.

CorenTheChosen
Contributor
Contributor

Hi All,

I am having the exact same problem with Chrome and Workstation 12 using Windows 10 guest OS on a Windows 10 Host.

I've tried adding the lines to the VMX file only to have the VM fail to launch.

mks.enableGLRenderer = "TRUE"

mks.enableDX11Renderer = "FALSE"

With those lines in the file the VM just hangs upon beginning to load windows.

I'm fairly new to this end of using virtualization and am trying to make heads and tails out of it.

For reference my host GPU is a GTX970 and windows isn't seeing any Intel display adapters.

Are there any other things I should look for when adding these lines?  Does location matter?  There is one other mks line in the file (mks.enable3d = "TRUE") and I was placing these lines directly after it.

Thanks again for the work you've both done on this, keeps me from spinning tires on old stuff, allowing them to spin on entirely different reasons for things not working.

0 Kudos
bluefirestorm
Champion
Champion

@CorenTheChosen,

I don't know why your VM isn't starting up after you add those lines. The location of the lines does not matter. I would suggest that you remove those lines (or switch to a backup vmx, if you made a backup before editing) and use the original workaround of disabling the acceleration in the chrome://settings/system

As I mentioned, perhaps it may not work across the board, that is why OpenGL is not the default render engine for Workstation/Player on Windows.

If you want to continue to troubleshoot this problem of using OpenGL instead of DX11 further, perhaps create a new thread and attach the log file, so that the original poster does not get constant notifications of every update.

0 Kudos
s_10
Contributor
Contributor

This work around worked for me. Thank you!!! Smiley Happy

I will see if there are some trouble by deactivating this option.

0 Kudos