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