d69c1860345c4bb8c190441182c8d30edb523c6b
[mesa.git] / src / gallium / docs / source / distro.rst
1 Distribution
2 ============
3
4 Along with the interface definitions, the following drivers, state trackers,
5 and auxiliary modules are shipped in the standard Gallium distribution.
6
7 Drivers
8 -------
9
10 Intel i915
11 ^^^^^^^^^^
12
13 Driver for Intel i915 and i945 chipsets.
14
15 Identity
16 ^^^^^^^^
17
18 Wrapper driver. The identity driver is a simple skeleton that passes through
19 all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context
20 and Screen, and as such, it is an excellent starting point for new drivers.
21
22 LLVM Softpipe
23 ^^^^^^^^^^^^^
24
25 A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to
26 dynamically generate optimized rasterizing pipelines.
27
28 nVidia nv30
29 ^^^^^^^^^^^
30
31 Driver for the nVidia nv30 and nv40 families of GPUs.
32
33 nVidia nv50
34 ^^^^^^^^^^^
35
36 Driver for the nVidia nv50 family of GPUs.
37
38 nVidia nvc0
39 ^^^^^^^^^^^
40
41 Driver for the nVidia nvc0 / fermi family of GPUs.
42
43 VMware SVGA
44 ^^^^^^^^^^^
45
46 Driver for VMware virtualized guest operating system graphics processing.
47
48 ATI r300
49 ^^^^^^^^
50
51 Driver for the ATI/AMD r300, r400, and r500 families of GPUs.
52
53 ATI/AMD r600
54 ^^^^^^^^^^^^
55
56 Driver for the ATI/AMD r600, r700, Evergreen and Northern Islands families of GPUs.
57
58 AMD radeonsi
59 ^^^^^^^^^^^^
60
61 Driver for the AMD Southern Islands family of GPUs.
62
63 .. _softpipe:
64
65 Softpipe
66 ^^^^^^^^
67
68 Reference software rasterizer. Slow but accurate.
69
70 .. _trace:
71
72 Trace
73 ^^^^^
74
75 Wrapper driver. Trace dumps an XML record of the calls made to the
76 :ref:`Context` and :ref:`Screen` objects that it wraps.
77
78 Rbug
79 ^^^^
80
81 Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui.
82
83 .. _galahad:
84
85 Galahad
86 ^^^^^^^
87
88 Wrapper driver. Sanity checker for the internal gallium state. Normally
89 a driver should n't have to sanity check the input it gets from a state
90 tracker. Any wrong state received should be perceived as a state tracker bug.
91
92 State Trackers
93 --------------
94
95 Clover
96 ^^^^^^
97
98 Tracker that implements the Khronos OpenCL standard.
99
100 .. _dri:
101
102 Direct Rendering Infrastructure
103 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
104
105 Tracker that implements the client-side DRI protocol, for providing direct
106 acceleration services to X11 servers with the DRI extension. Supports DRI1
107 and DRI2. Only GL is supported.
108
109 .. _egl:
110
111 EGL
112 ^^^
113
114 Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
115 without extra knowledge of the underlying windowing system.
116
117 GLX
118 ^^^
119
120 MesaGL
121 ^^^^^^
122
123 Tracker implementing a GL state machine. Not usable as a standalone tracker;
124 Mesa should be built with another state tracker, such as :ref:`DRI` or
125 :ref:`EGL`.
126
127 OpenVG
128 ^^^^^^
129
130 Tracker that implements the Khronos OpenVG standard.
131
132 VDPAU
133 ^^^^^
134
135 Tracker for Video Decode and Presentation API for Unix.
136
137 WGL
138 ^^^
139
140 Xorg DDX
141 ^^^^^^^^
142
143 Tracker for Xorg X11 servers. Provides device-dependent
144 modesetting and acceleration as a DDX driver.
145
146 XvMC
147 ^^^^
148
149 Tracker for X-Video Motion Compensation.
150
151 Auxiliary
152 ---------
153
154 OS
155 ^^
156
157 The OS module contains the abstractions for basic operating system services:
158
159 * memory allocation
160 * simple message logging
161 * obtaining run-time configuration option
162 * threading primitives
163
164 This is the bare minimum required to port Gallium to a new platform.
165
166 The OS module already provides the implementations of these abstractions for
167 the most common platforms. When targeting an embedded platform no
168 implementation will be provided -- these must be provided separately.
169
170 CSO Cache
171 ^^^^^^^^^
172
173 The CSO cache is used to accelerate preparation of state by saving
174 driver-specific state structures for later use.
175
176 .. _draw:
177
178 Draw
179 ^^^^
180
181 Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
182 or other essential parts of pre-rasterization vertex preparation.
183
184 Gallivm
185 ^^^^^^^
186
187 Indices
188 ^^^^^^^
189
190 Indices provides tools for translating or generating element indices for
191 use with element-based rendering.
192
193 Pipe Buffer Managers
194 ^^^^^^^^^^^^^^^^^^^^
195
196 Each of these managers provides various services to drivers that are not
197 fully utilizing a memory manager.
198
199 Remote Debugger
200 ^^^^^^^^^^^^^^^
201
202 Runtime Assembly Emission
203 ^^^^^^^^^^^^^^^^^^^^^^^^^
204
205 TGSI
206 ^^^^
207
208 The TGSI auxiliary module provides basic utilities for manipulating TGSI
209 streams.
210
211 Translate
212 ^^^^^^^^^
213
214 Util
215 ^^^^
216