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