6
This state controls the format of the input attributes contained in
7
pipe_vertex_buffers. There is one pipe_vertex_element array member for each
13
Gallium supports a diverse range of formats for vertex data. Drivers are
14
guaranteed to support 32-bit floating-point vectors of one to four components.
15
Additionally, they may support the following formats:
17
* Integers, signed or unsigned, normalized or non-normalized, 8, 16, or 32
19
* Floating-point, 16, 32, or 64 bits wide
21
At this time, support for varied vertex data formats is limited by driver
22
deficiencies. It is planned to support a single uniform set of formats for all
23
Gallium drivers at some point.
25
Rather than attempt to specify every small nuance of behavior, Gallium uses a
26
very simple set of rules for padding out unspecified components. If an input
27
uses less than four components, it will be padded out with the constant vector
30
Fog, point size, the facing bit, and edgeflags, all are in the standard format
31
of ``(x, 0, 0, 1)``, and so only the first component of those inputs is used.
36
Vertex position may be specified with two to four components. Using less than
37
two components is not allowed.
42
Colors, both front- and back-facing, may omit the alpha component, only using
43
three components. Using less than three components is not allowed.
49
The byte offset of the attribute in the buffer given by
50
vertex_buffer_index for the first vertex.
52
The instance data rate divisor, used for instancing.
53
0 means this is per-vertex data, n means per-instance data used for
54
n consecutive instances (n > 0).
56
The vertex buffer this attribute lives in. Several attributes may
57
live in the same vertex buffer.
59
The format of the attribute data. One of the PIPE_FORMAT tokens.