blob: 0089b28ee0a5470ac68ae6f5f96614d1f8831a4d [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
70Trace
71^^^^^
72
Corbin Simpsone7d05f12010-06-16 16:52:52 -070073Wrapper driver. Trace dumps an XML record of the calls made to the
74:ref:`Context` and :ref:`Screen` objects that it wraps.
Corbin Simpsonacb80732009-12-24 01:53:48 -080075
Jakob Bornecrantzfe199352010-08-15 00:57:18 +010076Rbug
77^^^^
78
79Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui.
80
Jakob Bornecrantzd377abd2010-08-20 02:28:36 +010081.. _galahad:
82
83Galahad
84^^^^^^^
85
86Wrapper driver. Sanity checker for the internal gallium state. Normally
87a driver should n't have to sanity check the input it gets from a state
88tracker. Any wrong state received should be perceived as a state tracker bug.
89
Corbin Simpsonacb80732009-12-24 01:53:48 -080090State Trackers
91--------------
92
Andreas Boll0ce21662012-10-14 13:30:21 +020093Clover
94^^^^^^
95
96Tracker that implements the Khronos OpenCL standard.
97
Corbin Simpsone7d05f12010-06-16 16:52:52 -070098.. _dri:
99
Corbin Simpsonacb80732009-12-24 01:53:48 -0800100Direct Rendering Infrastructure
101^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
102
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700103Tracker that implements the client-side DRI protocol, for providing direct
104acceleration services to X11 servers with the DRI extension. Supports DRI1
105and DRI2. Only GL is supported.
106
107.. _egl:
108
Corbin Simpsonacb80732009-12-24 01:53:48 -0800109EGL
110^^^
111
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700112Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
113without extra knowledge of the underlying windowing system.
114
Corbin Simpsonacb80732009-12-24 01:53:48 -0800115GLX
116^^^
117
118MesaGL
119^^^^^^
120
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700121Tracker implementing a GL state machine. Not usable as a standalone tracker;
122Mesa should be built with another state tracker, such as :ref:`DRI` or
123:ref:`EGL`.
124
Corbin Simpsonacb80732009-12-24 01:53:48 -0800125OpenVG
126^^^^^^
127
Andreas Boll0ce21662012-10-14 13:30:21 +0200128Tracker that implements the Khronos OpenVG standard.
129
130VDPAU
131^^^^^
132
133Tracker for Video Decode and Presentation API for Unix.
134
Corbin Simpsonacb80732009-12-24 01:53:48 -0800135WGL
136^^^
137
Andreas Boll0ce21662012-10-14 13:30:21 +0200138Xorg DDX
139^^^^^^^^
Corbin Simpsonacb80732009-12-24 01:53:48 -0800140
Andreas Boll0ce21662012-10-14 13:30:21 +0200141Tracker for Xorg X11 servers. Provides device-dependent
Corbin Simpsone7d05f12010-06-16 16:52:52 -0700142modesetting and acceleration as a DDX driver.
143
Andreas Boll0ce21662012-10-14 13:30:21 +0200144XvMC
145^^^^
146
147Tracker for X-Video Motion Compensation.
148
Corbin Simpsonacb80732009-12-24 01:53:48 -0800149Auxiliary
150---------
151
José Fonseca976afaf2010-02-03 15:56:36 +0000152OS
153^^
154
155The 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
162This is the bare minimum required to port Gallium to a new platform.
163
164The OS module already provides the implementations of these abstractions for
165the most common platforms. When targeting an embedded platform no
166implementation will be provided -- these must be provided separately.
167
Corbin Simpsonacb80732009-12-24 01:53:48 -0800168CSO Cache
169^^^^^^^^^
170
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800171The CSO cache is used to accelerate preparation of state by saving
172driver-specific state structures for later use.
173
Corbin Simpson2598f002010-01-18 17:12:13 -0800174.. _draw:
175
Corbin Simpsonacb80732009-12-24 01:53:48 -0800176Draw
177^^^^
178
Corbin Simpson2b4ad022010-01-18 16:40:39 -0800179Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800180or other essential parts of pre-rasterization vertex preparation.
181
Corbin Simpsonacb80732009-12-24 01:53:48 -0800182Gallivm
183^^^^^^^
184
185Indices
186^^^^^^^
187
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800188Indices provides tools for translating or generating element indices for
189use with element-based rendering.
Corbin Simpson6a2936b2010-01-13 20:46:53 -0800190
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800191Pipe Buffer Managers
192^^^^^^^^^^^^^^^^^^^^
193
194Each of these managers provides various services to drivers that are not
195fully utilizing a memory manager.
Corbin Simpsonacb80732009-12-24 01:53:48 -0800196
197Remote Debugger
198^^^^^^^^^^^^^^^
199
200Runtime Assembly Emission
201^^^^^^^^^^^^^^^^^^^^^^^^^
202
Corbin Simpsonacb80732009-12-24 01:53:48 -0800203TGSI
204^^^^
205
Corbin Simpson4f52dfe2010-01-18 15:24:51 -0800206The TGSI auxiliary module provides basic utilities for manipulating TGSI
207streams.
Corbin Simpson6a2936b2010-01-13 20:46:53 -0800208
Corbin Simpsonacb80732009-12-24 01:53:48 -0800209Translate
210^^^^^^^^^
211
212Util
213^^^^
214