aboutsummaryrefslogtreecommitdiffstats
path: root/src/gallium/docs/source/distro.rst
blob: 0089b28ee0a5470ac68ae6f5f96614d1f8831a4d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
Distribution
============

Along with the interface definitions, the following drivers, state trackers,
and auxiliary modules are shipped in the standard Gallium distribution.

Drivers
-------

Intel i915
^^^^^^^^^^

Driver for Intel i915 and i945 chipsets.

Identity
^^^^^^^^

Wrapper driver. The identity driver is a simple skeleton that passes through
all of its :ref:`Context` and :ref:`Screen` methods to an underlying Context
and Screen, and as such, it is an excellent starting point for new drivers.

LLVM Softpipe
^^^^^^^^^^^^^

A version of :ref:`softpipe` that uses the Low-Level Virtual Machine to
dynamically generate optimized rasterizing pipelines.

nVidia nv30
^^^^^^^^^^^

Driver for the nVidia nv30 and nv40 families of GPUs.

nVidia nv50
^^^^^^^^^^^

Driver for the nVidia nv50 family of GPUs.

nVidia nvc0
^^^^^^^^^^^

Driver for the nVidia nvc0 / fermi family of GPUs.

VMware SVGA
^^^^^^^^^^^

Driver for VMware virtualized guest operating system graphics processing.

ATI r300
^^^^^^^^

Driver for the ATI/AMD r300, r400, and r500 families of GPUs.

ATI/AMD r600
^^^^^^^^^^^^

Driver for the ATI/AMD r600, r700, Evergreen and Northern Islands families of GPUs.

AMD radeonsi
^^^^^^^^^^^^

Driver for the AMD Southern Islands family of GPUs.

.. _softpipe:

Softpipe
^^^^^^^^

Reference software rasterizer. Slow but accurate.

Trace
^^^^^

Wrapper driver. Trace dumps an XML record of the calls made to the
:ref:`Context` and :ref:`Screen` objects that it wraps.

Rbug
^^^^

Wrapper driver. :ref:`rbug` driver used with stand alone rbug-gui.

.. _galahad:

Galahad
^^^^^^^

Wrapper driver. Sanity checker for the internal gallium state. Normally
a driver should n't have to sanity check the input it gets from a state
tracker. Any wrong state received should be perceived as a state tracker bug.

State Trackers
--------------

Clover
^^^^^^

Tracker that implements the Khronos OpenCL standard.

.. _dri:

Direct Rendering Infrastructure
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Tracker that implements the client-side DRI protocol, for providing direct
acceleration services to X11 servers with the DRI extension. Supports DRI1
and DRI2. Only GL is supported.

.. _egl:

EGL
^^^

Tracker for the Khronos EGL standard, used to set up GL and GLES contexts
without extra knowledge of the underlying windowing system.

GLX
^^^

MesaGL
^^^^^^

Tracker implementing a GL state machine. Not usable as a standalone tracker;
Mesa should be built with another state tracker, such as :ref:`DRI` or
:ref:`EGL`.

OpenVG
^^^^^^

Tracker that implements the Khronos OpenVG standard.

VDPAU
^^^^^

Tracker for Video Decode and Presentation API for Unix.

WGL
^^^

Xorg DDX
^^^^^^^^

Tracker for Xorg X11 servers. Provides device-dependent
modesetting and acceleration as a DDX driver.

XvMC
^^^^

Tracker for X-Video Motion Compensation.

Auxiliary
---------

OS
^^

The OS module contains the abstractions for basic operating system services:

* memory allocation
* simple message logging
* obtaining run-time configuration option
* threading primitives

This is the bare minimum required to port Gallium to a new platform.

The OS module already provides the implementations of these abstractions for
the most common platforms.  When targeting an embedded platform no
implementation will be provided -- these must be provided separately.

CSO Cache
^^^^^^^^^

The CSO cache is used to accelerate preparation of state by saving
driver-specific state structures for later use.

.. _draw:

Draw
^^^^

Draw is a software :term:`TCL` pipeline for hardware that lacks vertex shaders
or other essential parts of pre-rasterization vertex preparation.

Gallivm
^^^^^^^

Indices
^^^^^^^

Indices provides tools for translating or generating element indices for
use with element-based rendering.

Pipe Buffer Managers
^^^^^^^^^^^^^^^^^^^^

Each of these managers provides various services to drivers that are not
fully utilizing a memory manager.

Remote Debugger
^^^^^^^^^^^^^^^

Runtime Assembly Emission
^^^^^^^^^^^^^^^^^^^^^^^^^

TGSI
^^^^

The TGSI auxiliary module provides basic utilities for manipulating TGSI
streams.

Translate
^^^^^^^^^

Util
^^^^