<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <title>VMware guest GL driver</title>
  <link rel="stylesheet" type="text/css" href="mesa.css">
</head>
<body>

<h1>VMware guest GL driver</h1>

<p>
This page describes how to build, install and use the
<a href="http://www.vmware.com/" target="_parent">VMware</a> 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.
VMware Workstation running on Linux or Windows and VMware Fusion running on
MacOS are all supported.
</p>

<p>
End users shouldn't have to go through all these steps once the driver is
included in newer Linux distributions.
</p>

<p>
For more information about the X components see these wiki pages at x.org:
</p>
<ul>
<li><a href="http://wiki.x.org/wiki/vmware" target="_parent">
Driver Overview</a>
<li><a href="http://wiki.x.org/wiki/vmware/vmware3D" target="_parent">
xf86-video-vmware Details</a>
</ul>


<h2>Components</h2>

The components involved in this include:
<ul>
<li>Linux kernel module: vmwgfx
<li>X server 2D driver: xf86-video-vmware
<li>User-space libdrm library
<li>Mesa/gallium OpenGL driver: "svga"
</ul>


<h2>Prerequisites</h2>

<ul>
<li>Kernel version at least 2.6.25 
<li>Xserver version at least 1.7 
<li>Ubuntu: For ubuntu you need to install a number of build dependencies. 
  <pre>
  sudo apt-get install git-core
  sudo apt-get install automake libtool libpthread-stubs0-dev
  sudo apt-get install xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev
  sudo apt-get install libxcb-glx0-dev libxrender-dev
  sudo apt-get build-dep libgl1-mesa-dri libxcb-glx0-dev
  </pre>
<li>Fedora: For Fedora you also need to install a number of build dependencies. 
  <pre>
  sudo yum install mesa-libGL-devel xorg-x11-server-devel xorg-x11-util-macros
  sudo yum install libXrender-devel.i686
  sudo yum install automake gcc libtool expat-devel kernel-devel git-core
  sudo yum install makedepend flex bison
  </pre>
</ul>

<p>
Depending on your Linux distro, other packages may be needed.
The configure scripts should tell you what's missing.
</p>



<h2>Getting the Latest Source Code</h2>

Begin by saving your current directory location:
  <pre>
  export TOP=$PWD
  </pre>

<ul>
<li>Mesa/Gallium master branch. This code is used to build libGL, and the direct rendering svga driver for libGL, vmwgfx_dri.so, and the X acceleration library libxatracker.so.x.x.x. 
  <pre>
  git clone git://anongit.freedesktop.org/git/mesa/mesa
  </pre>
<li>VMware Linux guest kernel module. Note that this repo contains the complete DRM and TTM code. The vmware-specific driver is really only the files prefixed with vmwgfx. 
  <pre>
  git clone git://anongit.freedesktop.org/git/mesa/vmwgfx
  </pre>

<li>libdrm, A user-space library that interfaces with drm. Most distros ship with this driver. Safest bet is really to replace the system one. Optionally you can point LIBDRM_CFLAGS and LIBDRM_LIBS to the libdrm-2.4.22 package in toolchain. But here, we replace: 
  <pre>
  git clone git://anongit.freedesktop.org/git/mesa/drm
  </pre>
<li>xf86-video-vmware. The chainloading driver, vmware_drv.so, the legacy driver vmwlegacy_drv.so, and the vmwgfx driver vmwgfx_drv.so. 
  <pre>
  git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vmware
  </pre>
</ul>


<h2>Building the Code</h2>

<ul>
<li>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. 
  <pre>
  cd $TOP/drm
  ./autogen.sh --prefix=/usr --enable-vmwgfx-experimental-api --libdir=/usr/lib64
  make
  sudo make install
  </pre>
<li>Build Mesa and the vmwgfx_dri.so driver, the vmwgfx_drv.so xorg driver, the X acceleration library libxatracker.
The vmwgfx_dri.so is used by the OpenGL libraries during direct rendering,
and by the Xorg server during accelerated indirect GL rendering.
The libxatracker library is used exclusively by the X server to do render,
copy and video acceleration:
<br>
The following configure options doesn't build the EGL system.
<br>
As before, if you're on a 32-bit system, you should skip the --libdir
configure option.
  <pre>
  cd $TOP/mesa
  ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa
  make
  sudo make install
  </pre>

Note that you may have to install other packages that Mesa depends upon
if they're not installed in your system.  You should be told what's missing.
<br>
<br>

<li>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. 
  <pre>
  cd $TOP/xf86-video-vmware
  ./autogen.sh --prefix=/usr --libdir=/usr/lib64
  make
  sudo make install
  </pre>
<li>vmwgfx kernel module. First make sure that any old version of this kernel module is removed from the system by issuing
  <pre>
  sudo rm /lib/modules/`uname -r`/kernel/drivers/gpu/drm/vmwgfx.ko*
  </pre>
Then 
  <pre>
  cd $TOP/vmwgfx
  make
  sudo make install
  sudo cp 00-vmwgfx.rules /etc/udev/rules.d
  sudo depmod -ae
  </pre>
</ul>


Now try to load the kernel module by issuing
  <pre>
  sudo modprobe vmwgfx</pre>
Then type 
  <pre>
  dmesg</pre>
to watch the debug output. It should contain a number of lines prefixed with "[vmwgfx]". 

<p>
Then restart the Xserver (or reboot).
The lines starting with "vmwlegacy" or "VMWARE" in the file /var/log/Xorg.0.log
should now have been replaced with lines starting with "vmwgfx", indicating that
the new Xorg driver is in use. 
</p>


<h2>Running OpenGL Programs</h2>

<p>
In a shell, run 'glxinfo' and look for the following to verify that the
driver is working:
</p>

<pre>
OpenGL vendor string: VMware, Inc.
OpenGL renderer string: Gallium 0.4 on SVGA3D; build: RELEASE;
OpenGL version string: 2.1 Mesa 8.0
</pre>

<p>
If you don't see this, try setting this environment variable:
  <pre>
  export LIBGL_DEBUG=verbose</pre>
<p>
then rerun glxinfo and examine the output for error messages.
</p>

</body>
</html>
