docs: Add 8.0.4 release notes
[mesa.git] / docs / vmware-guest.html
1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
2 <html lang="en">
3 <head>
4 <meta http-equiv="content-type" content="text/html; charset=utf-8">
5 <title>VMware guest GL driver</title>
6 <link rel="stylesheet" type="text/css" href="mesa.css">
7 </head>
8 <body>
9
10 <h1>VMware guest GL driver</h1>
11
12 <p>
13 This page describes how to build, install and use the
14 <a href="http://www.vmware.com/" target="_parent">VMware</a> guest GL driver
15 (aka the SVGA or SVGA3D driver) for Linux using the latest source code.
16 This driver gives a Linux virtual machine access to the host's GPU for
17 hardware-accelerated 3D.
18 VMware Workstation running on Linux or Windows and VMware Fusion running on
19 MacOS are all supported.
20 </p>
21
22 <p>
23 End users shouldn't have to go through all these steps once the driver is
24 included in newer Linux distributions.
25 </p>
26
27 <p>
28 For more information about the X components see these wiki pages at x.org:
29 </p>
30 <ul>
31 <li><a href="http://wiki.x.org/wiki/vmware" target="_parent">
32 Driver Overview</a>
33 <li><a href="http://wiki.x.org/wiki/vmware/vmware3D" target="_parent">
34 xf86-video-vmware Details</a>
35 </ul>
36
37
38 <h2>Components</h2>
39
40 The components involved in this include:
41 <ul>
42 <li>Linux kernel module: vmwgfx
43 <li>X server 2D driver: xf86-video-vmware
44 <li>User-space libdrm library
45 <li>Mesa/gallium OpenGL driver: "svga"
46 </ul>
47
48
49 <h2>Prerequisites</h2>
50
51 <ul>
52 <li>Kernel version at least 2.6.25
53 <li>Xserver version at least 1.7
54 <li>Ubuntu: For ubuntu you need to install a number of build dependencies.
55 <pre>
56 sudo apt-get install git-core
57 sudo apt-get install automake libtool libpthread-stubs0-dev
58 sudo apt-get install xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev
59 sudo apt-get install libxcb-glx0-dev libxrender-dev
60 sudo apt-get build-dep libgl1-mesa-dri libxcb-glx0-dev
61 </pre>
62 <li>Fedora: For Fedora you also need to install a number of build dependencies.
63 <pre>
64 sudo yum install mesa-libGL-devel xorg-x11-server-devel xorg-x11-util-macros
65 sudo yum install libXrender-devel.i686
66 sudo yum install automake gcc libtool expat-devel kernel-devel git-core
67 sudo yum install makedepend flex bison
68 </pre>
69 </ul>
70
71 <p>
72 Depending on your Linux distro, other packages may be needed.
73 The configure scripts should tell you what's missing.
74 </p>
75
76
77
78 <h2>Getting the Latest Source Code</h2>
79
80 Begin by saving your current directory location:
81 <pre>
82 export TOP=$PWD
83 </pre>
84
85 <ul>
86 <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.
87 <pre>
88 git clone git://anongit.freedesktop.org/git/mesa/mesa
89 </pre>
90 <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.
91 <pre>
92 git clone git://anongit.freedesktop.org/git/mesa/vmwgfx
93 </pre>
94
95 <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:
96 <pre>
97 git clone git://anongit.freedesktop.org/git/mesa/drm
98 </pre>
99 <li>xf86-video-vmware. The chainloading driver, vmware_drv.so, the legacy driver vmwlegacy_drv.so, and the vmwgfx driver vmwgfx_drv.so.
100 <pre>
101 git clone git://anongit.freedesktop.org/git/xorg/driver/xf86-video-vmware
102 </pre>
103 </ul>
104
105
106 <h2>Building the Code</h2>
107
108 <ul>
109 <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.
110 <pre>
111 cd $TOP/drm
112 ./autogen.sh --prefix=/usr --enable-vmwgfx-experimental-api --libdir=/usr/lib64
113 make
114 sudo make install
115 </pre>
116 <li>Build Mesa and the vmwgfx_dri.so driver, the vmwgfx_drv.so xorg driver, the X acceleration library libxatracker.
117 The vmwgfx_dri.so is used by the OpenGL libraries during direct rendering,
118 and by the Xorg server during accelerated indirect GL rendering.
119 The libxatracker library is used exclusively by the X server to do render,
120 copy and video acceleration:
121 <br>
122 The following configure options doesn't build the EGL system.
123 <br>
124 As before, if you're on a 32-bit system, you should skip the --libdir
125 configure option.
126 <pre>
127 cd $TOP/mesa
128 ./autogen.sh --prefix=/usr --libdir=/usr/lib64 --with-gallium-drivers=svga --with-dri-drivers= --enable-xa
129 make
130 sudo make install
131 </pre>
132
133 Note that you may have to install other packages that Mesa depends upon
134 if they're not installed in your system. You should be told what's missing.
135 <br>
136 <br>
137
138 <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.
139 <pre>
140 cd $TOP/xf86-video-vmware
141 ./autogen.sh --prefix=/usr --libdir=/usr/lib64
142 make
143 sudo make install
144 </pre>
145 <li>vmwgfx kernel module. First make sure that any old version of this kernel module is removed from the system by issuing
146 <pre>
147 sudo rm /lib/modules/`uname -r`/kernel/drivers/gpu/drm/vmwgfx.ko*
148 </pre>
149 Then
150 <pre>
151 cd $TOP/vmwgfx
152 make
153 sudo make install
154 sudo cp 00-vmwgfx.rules /etc/udev/rules.d
155 sudo depmod -ae
156 </pre>
157 </ul>
158
159
160 Now try to load the kernel module by issuing
161 <pre>
162 sudo modprobe vmwgfx</pre>
163 Then type
164 <pre>
165 dmesg</pre>
166 to watch the debug output. It should contain a number of lines prefixed with "[vmwgfx]".
167
168 <p>
169 Then restart the Xserver (or reboot).
170 The lines starting with "vmwlegacy" or "VMWARE" in the file /var/log/Xorg.0.log
171 should now have been replaced with lines starting with "vmwgfx", indicating that
172 the new Xorg driver is in use.
173 </p>
174
175
176 <h2>Running OpenGL Programs</h2>
177
178 <p>
179 In a shell, run 'glxinfo' and look for the following to verify that the
180 driver is working:
181 </p>
182
183 <pre>
184 OpenGL vendor string: VMware, Inc.
185 OpenGL renderer string: Gallium 0.4 on SVGA3D; build: RELEASE;
186 OpenGL version string: 2.1 Mesa 8.0
187 </pre>
188
189 <p>
190 If you don't see this, try setting this environment variable:
191 <pre>
192 export LIBGL_DEBUG=verbose</pre>
193 <p>
194 then rerun glxinfo and examine the output for error messages.
195 </p>
196
197 </body>
198 </html>