diff options
Diffstat (limited to 'docs/vmware-guest.html')
-rw-r--r-- | docs/vmware-guest.html | 321 |
1 files changed, 0 insertions, 321 deletions
diff --git a/docs/vmware-guest.html b/docs/vmware-guest.html deleted file mode 100644 index 378b9c5797c..00000000000 --- a/docs/vmware-guest.html +++ /dev/null @@ -1,321 +0,0 @@ -<!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 SVGA3D Guest Driver</title> - <link rel="stylesheet" type="text/css" href="mesa.css"> -</head> -<body> - -<div class="header"> - The Mesa 3D Graphics Library -</div> - -<iframe src="contents.html"></iframe> -<div class="content"> - -<h1>VMware SVGA3D Guest Driver</h1> - -<p> -This page describes how to build, install and use the -<a href="https://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> -With the August 2015 Workstation 12 / Fusion 8 releases, OpenGL 3.3 -is supported in the guest. -This requires: -</p> -<ul> -<li>The VM is configured for virtual hardware version 12. -<li>The host OS, GPU and graphics driver supports DX11 (Windows) or - OpenGL 4.0 (Linux, Mac) -<li>On Linux, the vmwgfx kernel module must be version 2.9.0 or later. -<li>A recent version of Mesa with the updated svga gallium driver. -</ul> - -<p> -Otherwise, OpenGL 2.1 is supported. -</p> - -<p> -With the Fall 2018 Workstation 15 / Fusion 11 releases, additional -features are supported in the driver: -<ul> -<li>Multisample antialiasing (2x, 4x) -<li>GL_ARB/AMD_draw_buffers_blend -<li>GL_ARB_sample_shading -<li>GL_ARB_texture_cube_map_array -<li>GL_ARB_texture_gather -<li>GL_ARB_texture_query_lod -<li>GL_EXT/OES_draw_buffers_indexed -</ul> -<p> -This requires version 2.15.0 or later of the vmwgfx kernel module and -the VM must be configured for hardware version 16 or later. -</p> - -<p> -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). -</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="https://wiki.x.org/wiki/vmware"> -Driver Overview</a> -<li><a href="https://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="https://www.vmware.com/products/workstation/">Workstation</a> or -<a href="https://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 ninja-build meson 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 ninja-build meson gcc 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. -Meson 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 https://gitlab.freedesktop.org/mesa/mesa.git - </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 https://gitlab.freedesktop.org/mesa/drm.git - </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> -<p> -Determine where the GL-related libraries reside on your system and set -the LIBDIR environment variable accordingly. -</p> -For 32-bit Ubuntu systems: -<pre> -export LIBDIR=/usr/lib/i386-linux-gnu -</pre> -For 64-bit Ubuntu systems: -<pre> -export LIBDIR=/usr/lib/x86_64-linux-gnu -</pre> -For 32-bit Fedora systems: -<pre> -export LIBDIR=/usr/lib -</pre> -For 64-bit Fedora systems: -<pre> -export LIBDIR=/usr/lib64 -</pre> - -</li> - -<li>Build libdrm: - <pre> -cd $TOP/drm -meson builddir --prefix=/usr --libdir=${LIBDIR} -ninja -C builddir -sudo ninja -C builddir install - </pre> -<li> -<p>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: -</p> - -The following configure options doesn't build the EGL system. - <pre> -cd $TOP/mesa -meson builddir --prefix=/usr --libdir=${LIBDIR} -Dgallium-drivers=svga -Ddri-drivers=swrast -Dgallium-xa=true -Ddri3=false -ninja -C builddir -sudo ninja -C builddir install - </pre> - -<p> -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. -</p> - -<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. - <pre> -cd $TOP/xf86-video-vmware -./autogen.sh --prefix=/usr --libdir=${LIBDIR} -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> -Build and install: -<pre> -cd $TOP/vmwgfx -make -sudo make install -sudo depmod -a -</pre> -If you're using a Ubuntu OS: -<pre> -sudo update-initramfs -u -</pre> -If you're using a Fedora OS: -<pre> -sudo dracut --force -</pre> -Add 'vmwgfx' to the /etc/modules file: -<pre> -echo vmwgfx | sudo tee -a /etc/modules -</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> - -<p> -If OpenGL 3.3 is not working (you only get OpenGL 2.1): -</p> -<ul> -<li>Make sure the VM uses hardware version 12. -<li>Make sure the vmwgfx kernel module is version 2.9.0 or later. -<li>Check the vmware.log file for errors. -<li>Run 'dmesg | grep vmwgfx' and look for "DX: yes". -</ul> - -</div> -</body> -</html> |