p_config.h: Rely on glibc endianness definitions when available
[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 .. _galahad:
83
84 Galahad
85 ^^^^^^^
86
87 Wrapper driver. Sanity checker for the internal gallium state. Normally
88 a driver should n't have to sanity check the input it gets from a state
89 tracker. Any wrong state received should be perceived as a state tracker bug.
90
91 State Trackers
92 --------------
93
94 .. _dri:
95
96 Direct Rendering Infrastructure
97 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
98
99 Tracker that implements the client-side DRI protocol, for providing direct
100 acceleration services to X11 servers with the DRI extension. Supports DRI1
101 and DRI2. Only GL is supported.
102
103 .. _egl:
104
105 EGL
106 ^^^
107
108 Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
109 without extra knowledge of the underlying windowing system.
110
111 GLX
112 ^^^
113
114 MesaGL
115 ^^^^^^
116
117 Tracker implementing a GL state machine. Not usable as a standalone tracker;
118 Mesa should be built with another state tracker, such as :ref:`DRI` or
119 :ref:`EGL`.
120
121 Python
122 ^^^^^^
123
124 OpenVG
125 ^^^^^^
126
127 WGL
128 ^^^
129
130 Xorg/XFree86 DDX
131 ^^^^^^^^^^^^^^^^
132
133 Tracker for XFree86 and Xorg X11 servers. Provides device-dependent
134 modesetting and acceleration as a DDX driver.
135
136 Auxiliary
137 ---------
138
139 OS
140 ^^
141
142 The OS module contains the abstractions for basic operating system services:
143
144 * memory allocation
145 * simple message logging
146 * obtaining run-time configuration option
147 * threading primitives
148
149 This is the bare minimum required to port Gallium to a new platform.
150
151 The OS module already provides the implementations of these abstractions for
152 the most common platforms. When targeting an embedded platform no
153 implementation will be provided -- these must be provided separately.
154
155 CSO Cache
156 ^^^^^^^^^
157
158 The CSO cache is used to accelerate preparation of state by saving
159 driver-specific state structures for later use.
160
161 .. _draw:
162
163 Draw
164 ^^^^
165
166 Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
167 or other essential parts of pre-rasterization vertex preparation.
168
169 Gallivm
170 ^^^^^^^
171
172 Indices
173 ^^^^^^^
174
175 Indices provides tools for translating or generating element indices for
176 use with element-based rendering.
177
178 Pipe Buffer Managers
179 ^^^^^^^^^^^^^^^^^^^^
180
181 Each of these managers provides various services to drivers that are not
182 fully utilizing a memory manager.
183
184 Remote Debugger
185 ^^^^^^^^^^^^^^^
186
187 Runtime Assembly Emission
188 ^^^^^^^^^^^^^^^^^^^^^^^^^
189
190 TGSI
191 ^^^^
192
193 The TGSI auxiliary module provides basic utilities for manipulating TGSI
194 streams.
195
196 Translate
197 ^^^^^^^^^
198
199 Util
200 ^^^^
201