<!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>

<div class="header">
  <h1>The Mesa 3D Graphics Library</h1>
</div>

<iframe src="contents.html"></iframe>
<div class="content">

<h1>VMware guest GL driver</h1>

<p>
This page describes how to build, install and use the
<a href="http://www.vmware.com/">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>
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.
</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">
Driver Overview</a>
<li><a href="http://wiki.x.org/wiki/vmware/vmware3D">
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>

<p>
All of these components reside in the guest Linux virtual machine.
On the host, all you're doing is running VMware
<a href="http://www.vmware.com/products/workstation/">Workstation</a> or
<a href="http://www.vmware.com/products/fusion/">Fusion</a>.
</p>


<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 but it's safest to install a newer version.
To get the latest code from git:
  <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 --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 --disable-dri3
  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>

Note: some distros put DRM kernel drivers in different directories.
For example, sometimes vmwgfx.ko might be found in
<code>/lib/modules/{version}/extra/vmwgfx.ko</code> or in
<code>/lib/modules/{version}/kernel/drivers/gpu/drm/vmwgfx/vmwgfx.ko</code>.
<p>
After installing vmwgfx.ko you might want to run the following command to
check that the new kernel module is in the expected place:
<pre>
  find /lib/modules -name vmwgfx.ko -exec ls -l '{}' \;
</pre>
If you see the kernel module listed in more than one place, you may need to
move things around.
<p>
Finally, if you update your kernel you'll probably have to rebuild and
reinstall the vmwgfx.ko module again.
</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>

</div>
</body>
</html>
