Merge branch 'glsl2'
[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 Cell
11 ^^^^
12
13 Simple driver for the IBM Cell architecture. Runs faster than :ref:`softpipe`
14 on Cell-based machines.
15
16 Failover
17 ^^^^^^^^
18
19 Broken and deprecated.
20
21 Intel i915
22 ^^^^^^^^^^
23
24 Driver for Intel i915 and i945 chipsets.
25
26 Intel i965
27 ^^^^^^^^^^
28
29 Highly experimental driver for Intel i965 chipsets.
30
31 Identity
32 ^^^^^^^^
33
34 Wrapper driver. The identity driver is a simple skeleton that passes through
35 all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context
36 and Screen, and as such, it is an excellent starting point for new drivers.
37
38 LLVM Softpipe
39 ^^^^^^^^^^^^^
40
41 A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to
42 dynamically generate optimized rasterizing pipelines.
43
44 nVidia nvfx
45 ^^^^^^^^^^^
46
47 Driver for the nVidia nv30 and nv40 families of GPUs.
48
49 nVidia nv50
50 ^^^^^^^^^^^
51
52 Driver for the nVidia nv50 family of GPUs.
53
54 VMware SVGA
55 ^^^^^^^^^^^
56
57 Driver for VMware virtualized guest operating system graphics processing.
58
59 ATI r300
60 ^^^^^^^^
61
62 Driver for the ATI/AMD r300, r400, and r500 families of GPUs.
63
64 .. _softpipe:
65
66 Softpipe
67 ^^^^^^^^
68
69 Reference software rasterizer. Slow but accurate.
70
71 Trace
72 ^^^^^
73
74 Wrapper driver. Trace dumps an XML record of the calls made to the
75 :ref:`Context` and :ref:`Screen` objects that it wraps.
76
77 Rbug
78 ^^^^
79
80 Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui.
81
82 State Trackers
83 --------------
84
85 .. _dri:
86
87 Direct Rendering Infrastructure
88 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
89
90 Tracker that implements the client-side DRI protocol, for providing direct
91 acceleration services to X11 servers with the DRI extension. Supports DRI1
92 and DRI2. Only GL is supported.
93
94 .. _egl:
95
96 EGL
97 ^^^
98
99 Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
100 without extra knowledge of the underlying windowing system.
101
102 GLX
103 ^^^
104
105 MesaGL
106 ^^^^^^
107
108 Tracker implementing a GL state machine. Not usable as a standalone tracker;
109 Mesa should be built with another state tracker, such as :ref:`DRI` or
110 :ref:`EGL`.
111
112 Python
113 ^^^^^^
114
115 OpenVG
116 ^^^^^^
117
118 WGL
119 ^^^
120
121 Xorg/XFree86 DDX
122 ^^^^^^^^^^^^^^^^
123
124 Tracker for XFree86 and Xorg X11 servers. Provides device-dependent
125 modesetting and acceleration as a DDX driver.
126
127 Auxiliary
128 ---------
129
130 OS
131 ^^
132
133 The OS module contains the abstractions for basic operating system services:
134
135 * memory allocation
136 * simple message logging
137 * obtaining run-time configuration option
138 * threading primitives
139
140 This is the bare minimum required to port Gallium to a new platform.
141
142 The OS module already provides the implementations of these abstractions for
143 the most common platforms. When targeting an embedded platform no
144 implementation will be provided -- these must be provided separately.
145
146 CSO Cache
147 ^^^^^^^^^
148
149 The CSO cache is used to accelerate preparation of state by saving
150 driver-specific state structures for later use.
151
152 .. _draw:
153
154 Draw
155 ^^^^
156
157 Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
158 or other essential parts of pre-rasterization vertex preparation.
159
160 Gallivm
161 ^^^^^^^
162
163 Indices
164 ^^^^^^^
165
166 Indices provides tools for translating or generating element indices for
167 use with element-based rendering.
168
169 Pipe Buffer Managers
170 ^^^^^^^^^^^^^^^^^^^^
171
172 Each of these managers provides various services to drivers that are not
173 fully utilizing a memory manager.
174
175 Remote Debugger
176 ^^^^^^^^^^^^^^^
177
178 Runtime Assembly Emission
179 ^^^^^^^^^^^^^^^^^^^^^^^^^
180
181 TGSI
182 ^^^^
183
184 The TGSI auxiliary module provides basic utilities for manipulating TGSI
185 streams.
186
187 Translate
188 ^^^^^^^^^
189
190 Util
191 ^^^^
192