VMware guest GL driver
This page describes how to build, install and use the -VMware guest GL driver +VMware guest GL driver (aka the SVGA or SVGA3D driver) for Linux using the latest source code. This driver gives a Linux virtual machine access to the host's GPU for hardware-accelerated 3D. @@ -20,17 +27,44 @@ MacOS are all supported.
-End users shouldn't have to go through all these steps once the driver is -included in newer Linux distributions. +With the August 2015 Workstation 12 / Fusion 8 releases, OpenGL 3.3 +is supported in the guest. +This requires: +
-
+
- The VM is configured for virtual hardware version 12. +
- The host OS, GPU and graphics driver supports DX11 (Windows) or + OpenGL 4.0 (Linux, Mac) +
- On Linux, the vmwgfx kernel module must be version 2.9.0 or later. +
- A recent version of Mesa with the updated svga gallium driver. +
+Otherwise, OpenGL 2.1 is supported. +
+ ++OpenGL 3.3 support can be disabled by setting the environment variable +SVGA_VGPU10=0. +You will then have OpenGL 2.1 support. +This may be useful to work around application bugs (such as incorrect use +of the OpenGL 3.x core profile). +
+ ++Most modern Linux distros include the SVGA3D driver so end users shouldn't +be concerned with this information. +But if your distro lacks the driver or you want to update to the latest code +these instructions explain what to do.
For more information about the X components see these wiki pages at x.org:
@@ -45,6 +79,13 @@ The components involved in this include:+All of these components reside in the guest Linux virtual machine. +On the host, all you're doing is running VMware +Workstation or +Fusion. +
+Prerequisites
@@ -91,8 +132,9 @@ Begin by saving your current directory location:git clone git://anongit.freedesktop.org/git/mesa/vmwgfx- -
git clone git://anongit.freedesktop.org/git/mesa/drm@@ -106,10 +148,33 @@ Begin by saving your current directory location:
Building the Code
-
-
- Build libdrm: If you're on a 32-bit system, you should skip the --libdir configure option. Note also the comment about toolchain libdrm above. +
-
+Determine where the GL-related libraries reside on your system and set
+the LIBDIR environment variable accordingly.
+
+For 32-bit Ubuntu systems: ++ export LIBDIR=/usr/lib/i386-linux-gnu +
+For 64-bit Ubuntu systems: ++ export LIBDIR=/usr/lib/x86_64-linux-gnu +
+For 32-bit Fedora systems: ++ export LIBDIR=/usr/lib +
+For 64-bit Fedora systems: ++ export LIBDIR=/usr/lib64 +
+ +
+
+ - Build libdrm:
cd $TOP/drm - ./autogen.sh --prefix=/usr --enable-vmwgfx-experimental-api --libdir=/usr/lib64 + ./autogen.sh --prefix=/usr --libdir=${LIBDIR} make sudo make install
@@ -120,12 +185,9 @@ The libxatracker library is used exclusively by the X server to do render, copy and video acceleration:
The following configure options doesn't build the EGL system. -
-As before, if you're on a 32-bit system, you should skip the --libdir -configure option.cd $TOP/mesa - ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa + ./autogen.sh --prefix=/usr --libdir=${LIBDIR} --with-gallium-drivers=svga --with-dri-drivers=swrast --enable-xa --disable-dri3 --enable-glx-tls make sudo make install
@@ -135,25 +197,55 @@ if they're not installed in your system. You should be told what's missing.
- - xf86-video-vmware: Now, once libxatracker is installed, we proceed with building and replacing the current Xorg driver. First check if your system is 32- or 64-bit. If you're building for a 32-bit system, you will not be needing the --libdir=/usr/lib64 option to autogen. +
- xf86-video-vmware: Now, once libxatracker is installed, we proceed with
+building and replacing the current Xorg driver.
+First check if your system is 32- or 64-bit.
cd $TOP/xf86-video-vmware - ./autogen.sh --prefix=/usr --libdir=/usr/lib64 + ./autogen.sh --prefix=/usr --libdir=${LIBDIR} make sudo make install
+ - vmwgfx kernel module. First make sure that any old version of this kernel module is removed from the system by issuing
-
+
+If you're using a Ubuntu OS: +sudo rm /lib/modules/`uname -r`/kernel/drivers/gpu/drm/vmwgfx.ko* -
-Then -+
+Build and install: +cd $TOP/vmwgfx make sudo make install - sudo cp 00-vmwgfx.rules /etc/udev/rules.d - sudo depmod -ae -
+ sudo depmod -a ++ sudo update-initramfs -u +
+If you're using a Fedora OS: ++ sudo dracut --force +
+Add 'vmwgfx' to the /etc/modules file: ++ echo vmwgfx | sudo tee -a /etc/modules +
+ +Note: some distros put DRM kernel drivers in different directories. +For example, sometimes vmwgfx.ko might be found in +/lib/modules/{version}/extra/vmwgfx.ko
or in +/lib/modules/{version}/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko
. ++After installing vmwgfx.ko you might want to run the following command to +check that the new kernel module is in the expected place: +
+ find /lib/modules -name vmwgfx.ko -exec ls -l '{}' \; +
+If you see the kernel module listed in more than one place, you may need to +move things around. ++Finally, if you update your kernel you'll probably have to rebuild and +reinstall the vmwgfx.ko module again.
+If OpenGL 3.3 is not working (you only get OpenGL 2.1): +
+-
+
- Make sure the VM uses hardware version 12. +
- Make sure the vmwgfx kernel module is version 2.9.0 or later. +
- Check the vmware.log file for errors. +
- Run 'dmesg | grep vmwgfx' and look for "DX: yes". + + +