blob: d69c1860345c4bb8c190441182c8d30edb523c6b [file] [log] [blame]
Corbin Simpsonacb80732009-12-24 01:53:48 -08001Distribution
2============
3
4Along with the interface definitions, the following drivers, state trackers,
5and auxiliary modules are shipped in the standard Gallium distribution.
6
7Drivers
8-------
9
Corbin Simpsonacb80732009-12-24 01:53:48 -080010Intel i915
11^^^^^^^^^^
12
Corbin Simpsone7d05f12010-06-16 16:52:52 -070013Driver for Intel i915 and i945 chipsets.
14
Corbin Simpsonacb80732009-12-24 01:53:48 -080015Identity
16^^^^^^^^
17
Corbin Simpsone7d05f12010-06-16 16:52:52 -070018Wrapper driver. The identity driver is a simple skeleton that passes through
19all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context
20and Screen, and as such, it is an excellent starting point for new drivers.
Corbin Simpsonacb80732009-12-24 01:53:48 -080021
22LLVM Softpipe
23^^^^^^^^^^^^^
24
Corbin Simpsone7d05f12010-06-16 16:52:52 -070025A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to
26dynamically generate optimized rasterizing pipelines.
27
Andreas Boll0ce21662012-10-14 13:30:21 +020028nVidia nv30
Corbin Simpsonacb80732009-12-24 01:53:48 -080029^^^^^^^^^^^
30
Corbin Simpsone7d05f12010-06-16 16:52:52 -070031Driver for the nVidia nv30 and nv40 families of GPUs.
Corbin Simpsonacb80732009-12-24 01:53:48 -080032
33nVidia nv50
34^^^^^^^^^^^
35
Corbin Simpsone7d05f12010-06-16 16:52:52 -070036Driver for the nVidia nv50 family of GPUs.
37
Andreas Boll0ce21662012-10-14 13:30:21 +020038nVidia nvc0
39^^^^^^^^^^^
40
41Driver for the nVidia nvc0 / fermi family of GPUs.
42
Corbin Simpson0a663bb2010-07-27 16:34:57 -070043VMware SVGA
Corbin Simpsonacb80732009-12-24 01:53:48 -080044^^^^^^^^^^^
45
Corbin Simpson0a663bb2010-07-27 16:34:57 -070046Driver for VMware virtualized guest operating system graphics processing.
Corbin Simpsone7d05f12010-06-16 16:52:52 -070047
Corbin Simpsonacb80732009-12-24 01:53:48 -080048ATI r300
49^^^^^^^^
50
Corbin Simpsone7d05f12010-06-16 16:52:52 -070051Driver for the ATI/AMD r300, r400, and r500 families of GPUs.
52
Andreas Boll0ce21662012-10-14 13:30:21 +020053ATI/AMD r600
54^^^^^^^^^^^^
55
56Driver for the ATI/AMD r600, r700, Evergreen and Northern Islands families of GPUs.
57
58AMD radeonsi
59^^^^^^^^^^^^
60
61Driver for the AMD Southern Islands family of GPUs.
62
Corbin Simpsone7d05f12010-06-16 16:52:52 -070063.. _softpipe:
Corbin Simpsonacb80732009-12-24 01:53:48 -080064
65Softpipe
66^^^^^^^^
67
Corbin Simpsone7d05f12010-06-16 16:52:52 -070068Reference software rasterizer. Slow but accurate.
Corbin Simpsonacb80732009-12-24 01:53:48 -080069
Ilia Mirkin05d02232014-03-31 18:08:07 -040070.. _trace:
71
Corbin Simpsonacb80732009-12-24 01:53:48 -080072Trace
73^^^^^
74
Corbin Simpsone7d05f12010-06-16 16:52:52 -070075Wrapper driver. Trace dumps an XML record of the calls made to the
76:ref:`Context` and :ref:`Screen` objects that it wraps.
Corbin Simpsonacb80732009-12-24 01:53:48 -080077
Jakob Bornecrantzfe199352010-08-15 00:57:18 +010078Rbug
79^^^^
80
81Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui.
82
Jakob Bornecrantzd377abd2010-08-20 02:28:36 +010083.. _galahad:
84
85Galahad
86^^^^^^^
87
88Wrapper driver. Sanity checker for the internal gallium state. Normally
89a driver should n't have to sanity check the input it gets from a state
90tracker. Any wrong state received should be perceived as a state tracker bug.
91
Corbin Simpsonacb80732009-12-24 01:53:48 -080092State Trackers
93--------------
94
Andreas Boll0ce21662012-10-14 13:30:21 +020095Clover
96^^^^^^
97
98Tracker that implements the Khronos OpenCL standard.
99
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700100.. _dri:
101
Corbin Simpsonacb80732009-12-24 01:53:48 -0800102Direct Rendering Infrastructure
103^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
104
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700105Tracker that implements the client-side DRI protocol, for providing direct
106acceleration services to X11 servers with the DRI extension. Supports DRI1
107and DRI2. Only GL is supported.
108
109.. _egl:
110
Corbin Simpsonacb80732009-12-24 01:53:48 -0800111EGL
112^^^
113
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700114Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
115without extra knowledge of the underlying windowing system.
116
Corbin Simpsonacb80732009-12-24 01:53:48 -0800117GLX
118^^^
119
120MesaGL
121^^^^^^
122
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700123Tracker implementing a GL state machine. Not usable as a standalone tracker;
124Mesa should be built with another state tracker, such as :ref:`DRI` or
125:ref:`EGL`.
126
Corbin Simpsonacb80732009-12-24 01:53:48 -0800127OpenVG
128^^^^^^
129
Andreas Boll0ce21662012-10-14 13:30:21 +0200130Tracker that implements the Khronos OpenVG standard.
131
132VDPAU
133^^^^^
134
135Tracker for Video Decode and Presentation API for Unix.
136
Corbin Simpsonacb80732009-12-24 01:53:48 -0800137WGL
138^^^
139
Andreas Boll0ce21662012-10-14 13:30:21 +0200140Xorg DDX
141^^^^^^^^
Corbin Simpsonacb80732009-12-24 01:53:48 -0800142
Andreas Boll0ce21662012-10-14 13:30:21 +0200143Tracker for Xorg X11 servers. Provides device-dependent
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700144modesetting and acceleration as a DDX driver.
145
Andreas Boll0ce21662012-10-14 13:30:21 +0200146XvMC
147^^^^
148
149Tracker for X-Video Motion Compensation.
150
Corbin Simpsonacb80732009-12-24 01:53:48 -0800151Auxiliary
152---------
153
José Fonseca976afaf2010-02-03 15:56:36 +0000154OS
155^^
156
157The 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
164This is the bare minimum required to port Gallium to a new platform.
165
166The OS module already provides the implementations of these abstractions for
167the most common platforms. When targeting an embedded platform no
168implementation will be provided -- these must be provided separately.
169
Corbin Simpsonacb80732009-12-24 01:53:48 -0800170CSO Cache
171^^^^^^^^^
172
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800173The CSO cache is used to accelerate preparation of state by saving
174driver-specific state structures for later use.
175
Corbin Simpson2598f002010-01-18 17:12:13 -0800176.. _draw:
177
Corbin Simpsonacb80732009-12-24 01:53:48 -0800178Draw
179^^^^
180
Corbin Simpson2b4ad022010-01-18 16:40:39 -0800181Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800182or other essential parts of pre-rasterization vertex preparation.
183
Corbin Simpsonacb80732009-12-24 01:53:48 -0800184Gallivm
185^^^^^^^
186
187Indices
188^^^^^^^
189
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800190Indices provides tools for translating or generating element indices for
191use with element-based rendering.
Corbin Simpson6a2936b2010-01-13 20:46:53 -0800192
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800193Pipe Buffer Managers
194^^^^^^^^^^^^^^^^^^^^
195
196Each of these managers provides various services to drivers that are not
197fully utilizing a memory manager.
Corbin Simpsonacb80732009-12-24 01:53:48 -0800198
199Remote Debugger
200^^^^^^^^^^^^^^^
201
202Runtime Assembly Emission
203^^^^^^^^^^^^^^^^^^^^^^^^^
204
Corbin Simpsonacb80732009-12-24 01:53:48 -0800205TGSI
206^^^^
207
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800208The TGSI auxiliary module provides basic utilities for manipulating TGSI
209streams.
Corbin Simpson6a2936b2010-01-13 20:46:53 -0800210
Corbin Simpsonacb80732009-12-24 01:53:48 -0800211Translate
212^^^^^^^^^
213
214Util
215^^^^
216