NOTE: I no longer use VMware products, and on good authority this trick no longer works (see comments below).
Facts: VMware Player on Ubuntu 18.04 LTS with the standard Gnome desktop running an AMD WX-2100 graphics card. Both glxinfo and glxgears show 3d acceleration is enabled and working on the host. In addition to VMware Player, the host is also running the qemu-kvm/libvirtd stack from Ubuntu's official repositories. My use case for 3d accelerated graphics in a Windows guest is to occasionally play a Windows-only game.
Issue: Player barks this warning during installation of... anything.
Solution: This askubuntu post, Powered by StackExchange[TM], provides the solution:
-
Make sure 3d graphics is enabled in the guest settings and VMware Tools installed in it.
-
Shut down the Windows VM and exit Player.
-
Edit ~/.vmware/preferences to add...
mks.gl.allowBlacklistedDrivers = "TRUE"
- Start up the guest VM in Player.
NOTES:
-
Why not use qemu-kvm instead of VMware Player? Because there isn't a working Windows driver for virtual 3d accelerated graphics. The virGL project had this as a goal around five years ago (back when I went all-in on qemu-kvm myself), but has yet to deliver for Windows guests.
-
Why not PCI (VFIO) pass-through? Too expensive for me, and I suspect for most ordinary users. If you need 3d graphics on Windows, it's probably justifiable. But then you could put the same money into a second workstation running Windows on bare metal. There's still a frustratingly high learning curve for getting pass-through graphics up and running, and the premium hardware required is very expensive (high-end motherboard and two graphics cards, as well as a spare monitor or a pro KVM switch -- like a Blackbox for reliability and durability).
-
You can't run a VMware and a qemu-kvm guest at the same time, each virtualization system wants exclusive access to the kernel. For desktop use that shouldn't be a problem, but if the host doubles as a virtual lab (as mine does) you're going to have to shut down all your qemu-kvm guests before launching a guest in Player. It's an annoyance, but manageable for me. Note that you do not have to shut down or recycle libvirtd before or after using VMware Player.
Sadly, not surprised. I'm afraid that continuous regression is what we can expect from here on out. I've abandoned VMware at this point. Qemu/kvm's implementation of 3d accel (still Linux only) is persistently disappointing. I've now got an old Thinkpad running Windows to fill the gap. Even the iGPU in an i5-6500 beats any existing emulation. Most of my efforts nowadays are focused on eliminating the need for Windows in my personal life. The trajectory MSFT is on already made that inevitable. Being able to run Windows VMs was always a convenience that benefited my employers more than me. After 30 years at this, I'm ready to move on.