~ubuntu-branches/ubuntu/precise/mesa/precise-updates

« back to all changes in this revision

Viewing changes to src/gallium/drivers/nvc0/nvc0_formats.c

  • Committer: Package Import Robot
  • Author(s): Robert Hooker
  • Date: 2012-02-02 12:05:48 UTC
  • mfrom: (1.7.1) (3.3.27 sid)
  • Revision ID: package-import@ubuntu.com-20120202120548-nvkma85jq0h4coix
Tags: 8.0~rc2-0ubuntu4
Drop drisearchdir handling, it is no longer needed with multiarch
and dri-alternates being removed.

Show diffs side-by-side

added added

removed removed

Lines of Context:
26
26
#include "nv50/nv50_texture.xml.h"
27
27
#include "pipe/p_defines.h"
28
28
 
29
 
#define A_(cr, cg, cb, ca, t0, t1, t2, t3, sz, r)     \
30
 
   (NV50_TIC_MAP_##cr << NV50_TIC_0_MAPR__SHIFT) |    \
31
 
   (NV50_TIC_TYPE_##t0 << NV50_TIC_0_TYPE0__SHIFT) |  \
32
 
   (NV50_TIC_MAP_##cg << NV50_TIC_0_MAPG__SHIFT) |    \
33
 
   (NV50_TIC_TYPE_##t1 << NV50_TIC_0_TYPE1__SHIFT) |  \
34
 
   (NV50_TIC_MAP_##cb << NV50_TIC_0_MAPB__SHIFT) |    \
35
 
   (NV50_TIC_TYPE_##t2 << NV50_TIC_0_TYPE2__SHIFT) |  \
36
 
   (NV50_TIC_MAP_##ca << NV50_TIC_0_MAPA__SHIFT) |    \
37
 
   (NV50_TIC_TYPE_##t3 << NV50_TIC_0_TYPE3__SHIFT) |  \
38
 
   NV50_TIC_0_FMT_##sz,                               \
39
 
   NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_##sz |           \
40
 
   NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_##t0 |           \
41
 
   (r << 31)
42
 
 
43
 
#define B_(cr, cg, cb, ca, t0, t1, t2, t3, sz, r)     \
44
 
   (NV50_TIC_MAP_##cr << NV50_TIC_0_MAPR__SHIFT) |    \
45
 
   (NV50_TIC_TYPE_##t0 << NV50_TIC_0_TYPE0__SHIFT) |  \
46
 
   (NV50_TIC_MAP_##cg << NV50_TIC_0_MAPG__SHIFT) |    \
47
 
   (NV50_TIC_TYPE_##t1 << NV50_TIC_0_TYPE1__SHIFT) |  \
48
 
   (NV50_TIC_MAP_##cb << NV50_TIC_0_MAPB__SHIFT) |    \
49
 
   (NV50_TIC_TYPE_##t2 << NV50_TIC_0_TYPE2__SHIFT) |  \
50
 
   (NV50_TIC_MAP_##ca << NV50_TIC_0_MAPA__SHIFT) |    \
51
 
   (NV50_TIC_TYPE_##t3 << NV50_TIC_0_TYPE3__SHIFT) |  \
52
 
   NV50_TIC_0_FMT_##sz, 0
53
 
 
54
 
#define VERTEX_BUFFER PIPE_BIND_VERTEX_BUFFER
55
 
#define SAMPLER_VIEW  PIPE_BIND_SAMPLER_VIEW
56
 
#define RENDER_TARGET PIPE_BIND_RENDER_TARGET
57
 
#define DEPTH_STENCIL PIPE_BIND_DEPTH_STENCIL
58
 
#define SCANOUT       PIPE_BIND_SCANOUT
 
29
/* Abbreviated usage masks:
 
30
 * T: texturing
 
31
 * R: render target
 
32
 * B: render target, blendable
 
33
 * D: scanout/display target, blendable
 
34
 * Z: depth/stencil
 
35
 * V: vertex fetch
 
36
 */
 
37
#define U_V   PIPE_BIND_VERTEX_BUFFER
 
38
#define U_T   PIPE_BIND_SAMPLER_VIEW
 
39
#define U_TR  PIPE_BIND_RENDER_TARGET | U_T
 
40
#define U_TB  PIPE_BIND_BLENDABLE | U_TR
 
41
#define U_TD  PIPE_BIND_SCANOUT | PIPE_BIND_DISPLAY_TARGET | U_TB
 
42
#define U_TZ  PIPE_BIND_DEPTH_STENCIL | U_T
 
43
#define U_TV  U_V | U_T
 
44
#define U_TRV U_V | U_TR
 
45
#define U_TBV U_V | U_TB
 
46
#define U_TDV U_V | U_TD
 
47
 
 
48
#define NV50_SURFACE_FORMAT_NONE 0
59
49
 
60
50
/* for vertex buffers: */
61
51
#define NV50_TIC_0_FMT_8_8_8    NV50_TIC_0_FMT_8_8_8_8
62
52
#define NV50_TIC_0_FMT_16_16_16 NV50_TIC_0_FMT_16_16_16_16
63
53
#define NV50_TIC_0_FMT_32_32_32 NV50_TIC_0_FMT_32_32_32_32
64
54
 
 
55
#define TBLENT_A_(pf, sf, r, g, b, a, t0, t1, t2, t3, sz, u, br)        \
 
56
   [PIPE_FORMAT_##pf] = {                                               \
 
57
      sf,                                                               \
 
58
      (NV50_TIC_MAP_##r << NV50_TIC_0_MAPR__SHIFT) |                    \
 
59
      (NV50_TIC_MAP_##g << NV50_TIC_0_MAPG__SHIFT) |                    \
 
60
      (NV50_TIC_MAP_##b << NV50_TIC_0_MAPB__SHIFT) |                    \
 
61
      (NV50_TIC_MAP_##a << NV50_TIC_0_MAPA__SHIFT) |                    \
 
62
      (NV50_TIC_TYPE_##t0 << NV50_TIC_0_TYPE0__SHIFT) |                 \
 
63
      (NV50_TIC_TYPE_##t1 << NV50_TIC_0_TYPE1__SHIFT) |                 \
 
64
      (NV50_TIC_TYPE_##t2 << NV50_TIC_0_TYPE2__SHIFT) |                 \
 
65
      (NV50_TIC_TYPE_##t3 << NV50_TIC_0_TYPE3__SHIFT) |                 \
 
66
      NV50_TIC_0_FMT_##sz,                                              \
 
67
      NVC0_3D_VERTEX_ATTRIB_FORMAT_SIZE_##sz |                          \
 
68
      NVC0_3D_VERTEX_ATTRIB_FORMAT_TYPE_##t0 | (br << 31),              \
 
69
      U_##u                                                             \
 
70
   }
 
71
 
 
72
#define TBLENT_B_(pf, sf, r, g, b, a, t0, t1, t2, t3, sz, u)            \
 
73
   [PIPE_FORMAT_##pf] = {                                               \
 
74
      sf,                                                               \
 
75
      (NV50_TIC_MAP_##r << NV50_TIC_0_MAPR__SHIFT) |                    \
 
76
      (NV50_TIC_MAP_##g << NV50_TIC_0_MAPG__SHIFT) |                    \
 
77
      (NV50_TIC_MAP_##b << NV50_TIC_0_MAPB__SHIFT) |                    \
 
78
      (NV50_TIC_MAP_##a << NV50_TIC_0_MAPA__SHIFT) |                    \
 
79
      (NV50_TIC_TYPE_##t0 << NV50_TIC_0_TYPE0__SHIFT) |                 \
 
80
      (NV50_TIC_TYPE_##t1 << NV50_TIC_0_TYPE1__SHIFT) |                 \
 
81
      (NV50_TIC_TYPE_##t2 << NV50_TIC_0_TYPE2__SHIFT) |                 \
 
82
      (NV50_TIC_TYPE_##t3 << NV50_TIC_0_TYPE3__SHIFT) |                 \
 
83
      NV50_TIC_0_FMT_##sz, 0, U_##u                                     \
 
84
   }
 
85
 
 
86
#define C4A(p, n, r, g, b, a, t, s, u, br)                              \
 
87
   TBLENT_A_(p, NV50_SURFACE_FORMAT_##n, r, g, b, a, t, t, t, t, s, u, br)
 
88
#define C4B(p, n, r, g, b, a, t, s, u)                                  \
 
89
   TBLENT_B_(p, NV50_SURFACE_FORMAT_##n, r, g, b, a, t, t, t, t, s, u)
 
90
 
 
91
#define ZXB(p, n, r, g, b, a, t, s, u)                                  \
 
92
   TBLENT_B_(p, NV50_ZETA_FORMAT_##n,                                   \
 
93
             r, g, b, ONE_FLOAT, t, UINT, UINT, UINT, s, u)
 
94
#define ZSB(p, n, r, g, b, a, t, s, u)                                  \
 
95
   TBLENT_B_(p, NV50_ZETA_FORMAT_##n,                                   \
 
96
             r, g, b, ONE_FLOAT, t, UINT, UINT, UINT, s, u)
 
97
#define SZB(p, n, r, g, b, a, t, s, u)                                  \
 
98
   TBLENT_B_(p, NV50_ZETA_FORMAT_##n,                                   \
 
99
             r, g, b, ONE_FLOAT, UINT, t, UINT, UINT, s, u)
 
100
 
 
101
#define F3A(p, n, r, g, b, a, t, s, u)          \
 
102
   C4A(p, n, r, g, b, ONE_FLOAT, t, s, u, 0)
 
103
#define I3A(p, n, r, g, b, a, t, s, u)          \
 
104
   C4A(p, n, r, g, b, ONE_INT, t, s, u, 0)
 
105
#define F3B(p, n, r, g, b, a, t, s, u)          \
 
106
   C4B(p, n, r, g, b, ONE_FLOAT, t, s, u)
 
107
#define I3B(p, n, r, g, b, a, t, s, u)          \
 
108
   C4B(p, n, r, g, b, ONE_INT, t, s, u)
 
109
 
 
110
#define F2A(p, n, r, g, b, a, t, s, u)          \
 
111
   C4A(p, n, r, g, ZERO, ONE_FLOAT, t, s, u, 0)
 
112
#define I2A(p, n, r, g, b, a, t, s, u)          \
 
113
   C4A(p, n, r, g, ZERO, ONE_INT, t, s, u, 0)
 
114
#define F2B(p, n, r, g, b, a, t, s, u)          \
 
115
   C4B(p, n, r, g, ZERO, ONE_FLOAT, t, s, u)
 
116
#define I2B(p, n, r, g, b, a, t, s, u)          \
 
117
   C4B(p, n, r, g, ZERO, ONE_INT, t, s, u)
 
118
 
 
119
#define F1A(p, n, r, g, b, a, t, s, u)             \
 
120
   C4A(p, n, r, ZERO, ZERO, ONE_FLOAT, t, s, u, 0)
 
121
#define I1A(p, n, r, g, b, a, t, s, u)             \
 
122
   C4A(p, n, r, ZERO, ZERO, ONE_INT, t, s, u, 0)
 
123
#define F1B(p, n, r, g, b, a, t, s, u)          \
 
124
   C4B(p, n, r, ZERO, ZERO, ONE_FLOAT, t, s, u)
 
125
#define I1B(p, n, r, g, b, a, t, s, u)          \
 
126
   C4B(p, n, r, ZERO, ZERO, ONE_INT, t, s, u)
 
127
 
 
128
#define A1B(p, n, r, g, b, a, t, s, u)          \
 
129
   C4B(p, n, ZERO, ZERO, ZERO, a, t, s, u)
 
130
 
65
131
const struct nvc0_format nvc0_format_table[PIPE_FORMAT_COUNT] =
66
132
{
67
 
   /* COMMON FORMATS */
68
 
 
69
 
   [PIPE_FORMAT_B8G8R8A8_UNORM] = { NV50_SURFACE_FORMAT_A8R8G8B8_UNORM,
70
 
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
71
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
72
 
 
73
 
   [PIPE_FORMAT_B8G8R8X8_UNORM] = { NV50_SURFACE_FORMAT_X8R8G8B8_UNORM,
74
 
    A_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
75
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
76
 
 
77
 
   [PIPE_FORMAT_B8G8R8A8_SRGB] = { NV50_SURFACE_FORMAT_A8R8G8B8_SRGB,
78
 
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
79
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
80
 
 
81
 
   [PIPE_FORMAT_B8G8R8X8_SRGB] = { NV50_SURFACE_FORMAT_X8R8G8B8_SRGB,
82
 
    A_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
83
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
84
 
 
85
 
   [PIPE_FORMAT_B5G6R5_UNORM] = { NV50_SURFACE_FORMAT_R5G6B5_UNORM,
86
 
    B_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 5_6_5, 1),
87
 
    SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
88
 
 
89
 
   [PIPE_FORMAT_B5G5R5A1_UNORM] = { NV50_SURFACE_FORMAT_A1R5G5B5_UNORM,
90
 
    B_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 1_5_5_5, 1),
91
 
    SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
92
 
 
93
 
   [PIPE_FORMAT_B5G5R5X1_UNORM] = { 0,
94
 
    B_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 1_5_5_5, 1),
95
 
    SAMPLER_VIEW | SCANOUT },
96
 
 
97
 
   [PIPE_FORMAT_B4G4R4A4_UNORM] = { 0,
98
 
    B_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 4_4_4_4, 1),
99
 
    SAMPLER_VIEW },
100
 
 
101
 
   [PIPE_FORMAT_B4G4R4X4_UNORM] = { 0,
102
 
    B_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 4_4_4_4, 1),
103
 
    SAMPLER_VIEW },
104
 
 
105
 
   [PIPE_FORMAT_R10G10B10A2_UNORM] = { NV50_SURFACE_FORMAT_A2B10G10R10_UNORM,
106
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 2_10_10_10, 0),
107
 
    SAMPLER_VIEW | RENDER_TARGET | VERTEX_BUFFER | SCANOUT },
108
 
 
109
 
   [PIPE_FORMAT_B10G10R10A2_UNORM] = { NV50_SURFACE_FORMAT_A2R10G10B10_UNORM,
110
 
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 2_10_10_10, 1),
111
 
    SAMPLER_VIEW | RENDER_TARGET | VERTEX_BUFFER },
112
 
 
113
 
   /* DEPTH/STENCIL FORMATS */
114
 
 
115
 
   [PIPE_FORMAT_Z16_UNORM] = { NV50_ZETA_FORMAT_Z16_UNORM,
116
 
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
117
 
    SAMPLER_VIEW | DEPTH_STENCIL },
118
 
 
119
 
   [PIPE_FORMAT_Z24_UNORM_S8_USCALED] = { NV50_ZETA_FORMAT_S8Z24_UNORM,
120
 
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, S8Z24, 0),
121
 
    SAMPLER_VIEW | DEPTH_STENCIL },
122
 
 
123
 
   [PIPE_FORMAT_Z24X8_UNORM] = { NV50_ZETA_FORMAT_X8Z24_UNORM,
124
 
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, X8Z24, 0),
125
 
    SAMPLER_VIEW | DEPTH_STENCIL },
126
 
 
127
 
   [PIPE_FORMAT_S8_USCALED_Z24_UNORM] = { NV50_ZETA_FORMAT_Z24S8_UNORM,
128
 
    B_(C1, C1, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, Z24S8, 0),
129
 
    SAMPLER_VIEW | DEPTH_STENCIL },
130
 
 
131
 
   [PIPE_FORMAT_Z32_FLOAT] = { NV50_ZETA_FORMAT_Z32_FLOAT,
132
 
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
133
 
    SAMPLER_VIEW | DEPTH_STENCIL },
134
 
 
135
 
   [PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED] = {
136
 
    NV50_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM,
137
 
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, X24S8Z32, 0),
138
 
    SAMPLER_VIEW | DEPTH_STENCIL },
139
 
 
140
 
   /* LUMINANCE, ALPHA, INTENSITY */
141
 
 
142
 
   [PIPE_FORMAT_L8_UNORM] = { NV50_SURFACE_FORMAT_R8_UNORM,
143
 
    A_(C0, C0, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
144
 
    SAMPLER_VIEW | RENDER_TARGET },
145
 
 
146
 
   [PIPE_FORMAT_L8_SRGB] = { NV50_SURFACE_FORMAT_R8_UNORM,
147
 
    A_(C0, C0, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
148
 
    SAMPLER_VIEW | RENDER_TARGET },
149
 
 
150
 
   [PIPE_FORMAT_L16_SNORM] = { NV50_SURFACE_FORMAT_R16_SNORM,
151
 
    B_(C0, C0, C0, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16, 0),
152
 
    SAMPLER_VIEW | RENDER_TARGET },
153
 
 
154
 
   [PIPE_FORMAT_L16_FLOAT] = { NV50_SURFACE_FORMAT_R16_FLOAT,
155
 
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
156
 
    SAMPLER_VIEW | RENDER_TARGET },
157
 
 
158
 
   [PIPE_FORMAT_L32_FLOAT] = { NV50_SURFACE_FORMAT_R32_FLOAT,
159
 
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
160
 
    SAMPLER_VIEW | RENDER_TARGET },
161
 
 
162
 
   [PIPE_FORMAT_I8_UNORM] = { 0,
163
 
    A_(C0, C0, C0, C0, UNORM, UNORM, UNORM, UNORM, 8, 0),
164
 
    SAMPLER_VIEW },
165
 
 
166
 
   [PIPE_FORMAT_I16_UNORM] = { 0,
167
 
    A_(C0, C0, C0, C0, UNORM, UNORM, UNORM, UNORM, 16, 0),
168
 
    SAMPLER_VIEW },
169
 
 
170
 
   [PIPE_FORMAT_I16_SNORM] = { 0,
171
 
    B_(C0, C0, C0, C0, SNORM, SNORM, SNORM, SNORM, 16, 0),
172
 
    SAMPLER_VIEW },
173
 
 
174
 
   [PIPE_FORMAT_I16_FLOAT] = { 0,
175
 
    B_(C0, C0, C0, C0, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
176
 
    SAMPLER_VIEW },
177
 
 
178
 
   [PIPE_FORMAT_I32_FLOAT] = { 0,
179
 
    B_(C0, C0, C0, C0, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
180
 
    SAMPLER_VIEW },
181
 
 
182
 
   [PIPE_FORMAT_A8_UNORM] = { NV50_SURFACE_FORMAT_A8_UNORM,
183
 
    A_(ZERO, ZERO, ZERO, C0, UNORM, UNORM, UNORM, UNORM, 8, 0),
184
 
    SAMPLER_VIEW | RENDER_TARGET },
185
 
 
186
 
   [PIPE_FORMAT_A8_SNORM] = { 0,
187
 
    A_(ZERO, ZERO, ZERO, C0, SNORM, SNORM, SNORM, SNORM, 8, 0),
188
 
    SAMPLER_VIEW },
189
 
 
190
 
   [PIPE_FORMAT_A16_UNORM] = { 0,
191
 
    A_(ZERO, ZERO, ZERO, C0, UNORM, UNORM, UNORM, UNORM, 16, 0),
192
 
    SAMPLER_VIEW },
193
 
 
194
 
   [PIPE_FORMAT_A16_SNORM] = { 0,
195
 
    A_(ZERO, ZERO, ZERO, C0, SNORM, SNORM, SNORM, SNORM, 16, 0),
196
 
    SAMPLER_VIEW },
197
 
 
198
 
   [PIPE_FORMAT_A16_FLOAT] = { 0,
199
 
    B_(ZERO, ZERO, ZERO, C0, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
200
 
    SAMPLER_VIEW },
201
 
 
202
 
   [PIPE_FORMAT_A32_FLOAT] = { 0,
203
 
    B_(ZERO, ZERO, ZERO, C0, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
204
 
    SAMPLER_VIEW },
205
 
 
206
 
   [PIPE_FORMAT_L8A8_UNORM] = { 0,
207
 
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
208
 
    SAMPLER_VIEW },
209
 
 
210
 
   [PIPE_FORMAT_L8A8_SRGB] = { 0,
211
 
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
212
 
    SAMPLER_VIEW },
213
 
 
214
 
   [PIPE_FORMAT_L16A16_UNORM] = { 0,
215
 
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 16_16, 0),
216
 
    SAMPLER_VIEW },
217
 
 
218
 
   [PIPE_FORMAT_L16A16_SNORM] = { 0,
219
 
    A_(C0, C0, C0, C1, SNORM, SNORM, SNORM, SNORM, 16_16, 0),
220
 
    SAMPLER_VIEW },
221
 
 
222
 
   [PIPE_FORMAT_L16A16_FLOAT] = { 0,
223
 
    B_(C0, C0, C0, C1, FLOAT, FLOAT, FLOAT, FLOAT, 16_16, 0),
224
 
    SAMPLER_VIEW },
225
 
 
226
 
   [PIPE_FORMAT_L32A32_FLOAT] = { 0,
227
 
    B_(C0, C0, C0, C1, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
228
 
    SAMPLER_VIEW },
229
 
 
230
 
   [PIPE_FORMAT_L4A4_UNORM] = { 0,
231
 
    B_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 4_4, 0),
232
 
    SAMPLER_VIEW },
233
 
 
234
 
   /* DXT, RGTC */
235
 
 
236
 
   [PIPE_FORMAT_DXT1_RGB] = { 0,
237
 
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
238
 
    SAMPLER_VIEW },
239
 
 
240
 
   [PIPE_FORMAT_DXT1_RGBA] = { 0,
241
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
242
 
    SAMPLER_VIEW },
243
 
 
244
 
   [PIPE_FORMAT_DXT3_RGBA] = { 0,
245
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT3, 0),
246
 
    SAMPLER_VIEW },
247
 
 
248
 
   [PIPE_FORMAT_DXT5_RGBA] = { 0,
249
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT5, 0),
250
 
    SAMPLER_VIEW },
251
 
 
252
 
   [PIPE_FORMAT_DXT1_SRGB] = { 0,
253
 
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
254
 
    SAMPLER_VIEW },
255
 
 
256
 
   [PIPE_FORMAT_DXT1_SRGBA] = { 0,
257
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
258
 
    SAMPLER_VIEW },
259
 
 
260
 
   [PIPE_FORMAT_DXT3_SRGBA] = { 0,
261
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT3, 0),
262
 
    SAMPLER_VIEW },
263
 
 
264
 
   [PIPE_FORMAT_DXT5_SRGBA] = { 0,
265
 
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT5, 0),
266
 
    SAMPLER_VIEW },
267
 
 
268
 
   [PIPE_FORMAT_RGTC1_UNORM] = { 0,
269
 
    B_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, RGTC1, 0),
270
 
    SAMPLER_VIEW },
271
 
 
272
 
   [PIPE_FORMAT_RGTC1_SNORM] = { 0,
273
 
    B_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, RGTC1, 0),
274
 
    SAMPLER_VIEW },
275
 
 
276
 
   [PIPE_FORMAT_RGTC2_UNORM] = { 0,
277
 
    B_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, RGTC2, 0),
278
 
    SAMPLER_VIEW },
279
 
 
280
 
   [PIPE_FORMAT_RGTC2_SNORM] = { 0,
281
 
    B_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, RGTC2, 0),
282
 
    SAMPLER_VIEW },
283
 
 
284
 
   /* FLOAT 16 */
285
 
 
286
 
   [PIPE_FORMAT_R16G16B16A16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16B16A16_FLOAT,
287
 
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 16_16_16_16, 0),
288
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
289
 
 
290
 
   [PIPE_FORMAT_R16G16B16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16B16X16_FLOAT,
291
 
    A_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16_16_16, 0),
292
 
    VERTEX_BUFFER },
293
 
 
294
 
   [PIPE_FORMAT_R16G16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16_FLOAT,
295
 
    A_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16_16, 0),
296
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
297
 
 
298
 
   [PIPE_FORMAT_R16_FLOAT] = { NV50_SURFACE_FORMAT_R16_FLOAT,
299
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
300
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
301
 
 
302
 
   /* FLOAT 32 */
303
 
 
304
 
   [PIPE_FORMAT_R32G32B32A32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32B32A32_FLOAT,
305
 
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
306
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
307
 
 
308
 
   [PIPE_FORMAT_R32G32B32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32B32X32_FLOAT,
309
 
    A_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32, 0),
310
 
    VERTEX_BUFFER },
311
 
 
312
 
   [PIPE_FORMAT_R32G32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32_FLOAT,
313
 
    A_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
314
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
315
 
 
316
 
   [PIPE_FORMAT_R32_FLOAT] = { NV50_SURFACE_FORMAT_R32_FLOAT,
317
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
318
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
319
 
 
320
 
   /* ODD FORMATS */
321
 
 
322
 
   [PIPE_FORMAT_R11G11B10_FLOAT] = { NV50_SURFACE_FORMAT_B10G11R11_FLOAT,
323
 
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 10_11_11, 0),
324
 
    SAMPLER_VIEW | RENDER_TARGET | VERTEX_BUFFER },
325
 
 
326
 
   [PIPE_FORMAT_R9G9B9E5_FLOAT] = { 0,
327
 
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, E5_9_9_9, 0),
328
 
    SAMPLER_VIEW },
329
 
 
330
 
   /* SNORM 32 */
331
 
 
332
 
   [PIPE_FORMAT_R32G32B32A32_SNORM] = { 0,
333
 
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 32_32_32_32, 0),
334
 
    VERTEX_BUFFER | SAMPLER_VIEW },
335
 
 
336
 
   [PIPE_FORMAT_R32G32B32_SNORM] = { 0,
337
 
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32_32_32, 0),
338
 
    VERTEX_BUFFER },
339
 
 
340
 
   [PIPE_FORMAT_R32G32_SNORM] = { 0,
341
 
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32_32, 0),
342
 
    VERTEX_BUFFER | SAMPLER_VIEW },
343
 
 
344
 
   [PIPE_FORMAT_R32_SNORM] = { 0,
345
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32, 0),
346
 
    VERTEX_BUFFER | SAMPLER_VIEW },
347
 
 
348
 
   /* UNORM 32 */
349
 
 
350
 
   [PIPE_FORMAT_R32G32B32A32_UNORM] = { 0,
351
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 32_32_32_32, 0),
352
 
    VERTEX_BUFFER | SAMPLER_VIEW },
353
 
 
354
 
   [PIPE_FORMAT_R32G32B32_UNORM] = { 0,
355
 
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32_32_32, 0),
356
 
    VERTEX_BUFFER },
357
 
 
358
 
   [PIPE_FORMAT_R32G32_UNORM] = { 0,
359
 
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32_32, 0),
360
 
    VERTEX_BUFFER | SAMPLER_VIEW },
361
 
 
362
 
   [PIPE_FORMAT_R32_UNORM] = { 0,
363
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32, 0),
364
 
    VERTEX_BUFFER | SAMPLER_VIEW },
365
 
 
366
 
   /* SNORM 16 */
367
 
 
368
 
   [PIPE_FORMAT_R16G16B16A16_SNORM] = { NV50_SURFACE_FORMAT_R16G16B16A16_SNORM,
369
 
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 16_16_16_16, 0),
370
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
371
 
 
372
 
   [PIPE_FORMAT_R16G16B16_SNORM] = { 0,
373
 
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16_16_16, 0),
374
 
    VERTEX_BUFFER },
375
 
 
376
 
   [PIPE_FORMAT_R16G16_SNORM] = { NV50_SURFACE_FORMAT_R16G16_SNORM,
377
 
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16_16, 0),
378
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
379
 
 
380
 
   [PIPE_FORMAT_R16_SNORM] = { NV50_SURFACE_FORMAT_R16_SNORM,
381
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16, 0),
382
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
383
 
 
384
 
   /* UNORM 16 */
385
 
 
386
 
   [PIPE_FORMAT_R16G16B16A16_UNORM] = { NV50_SURFACE_FORMAT_R16G16B16A16_UNORM,
387
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 16_16_16_16, 0),
388
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
389
 
 
390
 
   [PIPE_FORMAT_R16G16B16_UNORM] = { 0,
391
 
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16_16_16, 0),
392
 
    VERTEX_BUFFER },
393
 
 
394
 
   [PIPE_FORMAT_R16G16_UNORM] = { NV50_SURFACE_FORMAT_R16G16_UNORM,
395
 
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16_16, 0),
396
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
397
 
 
398
 
   [PIPE_FORMAT_R16_UNORM] = { NV50_SURFACE_FORMAT_R16_UNORM,
399
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16, 0),
400
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
401
 
 
402
 
   /* SNORM 8 */
403
 
 
404
 
   [PIPE_FORMAT_R8G8B8A8_SNORM] = { NV50_SURFACE_FORMAT_A8B8G8R8_SNORM,
405
 
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 8_8_8_8, 0),
406
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
407
 
 
408
 
   [PIPE_FORMAT_R8G8B8_SNORM] = { 0,
409
 
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8_8_8, 0),
410
 
    VERTEX_BUFFER },
411
 
 
412
 
   [PIPE_FORMAT_R8G8_SNORM] = { NV50_SURFACE_FORMAT_R8G8_SNORM,
413
 
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8_8, 0),
414
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
415
 
 
416
 
   [PIPE_FORMAT_R8_SNORM] = { NV50_SURFACE_FORMAT_R8_SNORM,
417
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8, 0),
418
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
419
 
 
420
 
   /* UNORM 8 */
421
 
 
422
 
   [PIPE_FORMAT_R8G8B8A8_UNORM] = { NV50_SURFACE_FORMAT_A8B8G8R8_UNORM,
423
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
424
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
425
 
 
426
 
   [PIPE_FORMAT_R8G8B8A8_SRGB] = { NV50_SURFACE_FORMAT_A8B8G8R8_SRGB,
427
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
428
 
    SAMPLER_VIEW | RENDER_TARGET },
429
 
 
430
 
   [PIPE_FORMAT_R8G8B8X8_UNORM] = { NV50_SURFACE_FORMAT_X8B8G8R8_UNORM,
431
 
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
432
 
    SAMPLER_VIEW | RENDER_TARGET },
433
 
 
434
 
   [PIPE_FORMAT_R8G8B8_UNORM] = { NV50_SURFACE_FORMAT_X8B8G8R8_UNORM,
435
 
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8, 0),
436
 
    VERTEX_BUFFER },
437
 
 
438
 
   [PIPE_FORMAT_R8G8_UNORM] = { NV50_SURFACE_FORMAT_R8G8_UNORM,
439
 
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
440
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
441
 
 
442
 
   [PIPE_FORMAT_R8_UNORM] = { NV50_SURFACE_FORMAT_R8_UNORM,
443
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
444
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
445
 
 
446
 
   /* SSCALED 32 (not integer, converted to float on fetch !) */
447
 
 
448
 
   [PIPE_FORMAT_R32G32B32A32_SSCALED] = { 0,
449
 
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 32_32_32_32, 0),
450
 
    VERTEX_BUFFER },
451
 
 
452
 
   [PIPE_FORMAT_R32G32B32_SSCALED] = { 0,
453
 
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32_32_32, 0),
454
 
    VERTEX_BUFFER },
455
 
 
456
 
   [PIPE_FORMAT_R32G32_SSCALED] = { 0,
457
 
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32_32, 0),
458
 
    VERTEX_BUFFER },
459
 
 
460
 
   [PIPE_FORMAT_R32_SSCALED] = { 0,
461
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32, 0),
462
 
    VERTEX_BUFFER },
463
 
 
464
 
   /* USCALED 32 */
465
 
 
466
 
   [PIPE_FORMAT_R32G32B32A32_USCALED] = { 0,
467
 
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 32_32_32_32, 0),
468
 
    VERTEX_BUFFER },
469
 
 
470
 
   [PIPE_FORMAT_R32G32B32_USCALED] = { 0,
471
 
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32_32_32, 0),
472
 
    VERTEX_BUFFER },
473
 
 
474
 
   [PIPE_FORMAT_R32G32_USCALED] = { 0,
475
 
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32_32, 0),
476
 
    VERTEX_BUFFER },
477
 
 
478
 
   [PIPE_FORMAT_R32_USCALED] = { 0,
479
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32, 0),
480
 
    VERTEX_BUFFER },
481
 
 
482
 
   /* SSCALED 16 */
483
 
 
484
 
   [PIPE_FORMAT_R16G16B16A16_SSCALED] = { 0,
485
 
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 16_16_16_16, 0),
486
 
    VERTEX_BUFFER },
487
 
 
488
 
   [PIPE_FORMAT_R16G16B16_SSCALED] = { 0,
489
 
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16_16_16, 0),
490
 
    VERTEX_BUFFER },
491
 
 
492
 
   [PIPE_FORMAT_R16G16_SSCALED] = { 0,
493
 
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16_16, 0),
494
 
    VERTEX_BUFFER },
495
 
 
496
 
   [PIPE_FORMAT_R16_SSCALED] = { 0,
497
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16, 0),
498
 
    VERTEX_BUFFER },
499
 
 
500
 
   /* USCALED 16 */
501
 
 
502
 
   [PIPE_FORMAT_R16G16B16A16_USCALED] = { 0,
503
 
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 16_16_16_16, 0),
504
 
    VERTEX_BUFFER },
505
 
 
506
 
   [PIPE_FORMAT_R16G16B16_USCALED] = { 0,
507
 
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16_16_16, 0),
508
 
    VERTEX_BUFFER },
509
 
 
510
 
   [PIPE_FORMAT_R16G16_USCALED] = { 0,
511
 
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16_16, 0),
512
 
    VERTEX_BUFFER },
513
 
 
514
 
   [PIPE_FORMAT_R16_USCALED] = { 0,
515
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16, 0),
516
 
    VERTEX_BUFFER },
517
 
 
518
 
   /* SSCALED 8 */
519
 
 
520
 
   [PIPE_FORMAT_R8G8B8A8_SSCALED] = { 0,
521
 
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 8_8_8_8, 0),
522
 
    VERTEX_BUFFER },
523
 
 
524
 
   [PIPE_FORMAT_R8G8B8_SSCALED] = { 0,
525
 
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8_8_8, 0),
526
 
    VERTEX_BUFFER },
527
 
 
528
 
   [PIPE_FORMAT_R8G8_SSCALED] = { 0,
529
 
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8_8, 0),
530
 
    VERTEX_BUFFER },
531
 
 
532
 
   [PIPE_FORMAT_R8_SSCALED] = { 0,
533
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8, 0),
534
 
    VERTEX_BUFFER },
535
 
 
536
 
   /* USCALED 8 */
537
 
 
538
 
   [PIPE_FORMAT_R8G8B8A8_USCALED] = { 0,
539
 
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 8_8_8_8, 0),
540
 
    VERTEX_BUFFER },
541
 
 
542
 
   [PIPE_FORMAT_R8G8B8_USCALED] = { 0,
543
 
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8_8_8, 0),
544
 
    VERTEX_BUFFER },
545
 
 
546
 
   [PIPE_FORMAT_R8G8_USCALED] = { 0,
547
 
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8_8, 0),
548
 
    VERTEX_BUFFER },
549
 
 
550
 
   [PIPE_FORMAT_R8_USCALED] = { 0,
551
 
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8, 0),
552
 
    VERTEX_BUFFER },
553
 
 
554
 
   /* OTHER FORMATS */
555
 
 
556
 
   [PIPE_FORMAT_R8G8_B8G8_UNORM] = { 0,
557
 
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, C1_C2_C1_C0, 0),
558
 
    SAMPLER_VIEW },
559
 
 
560
 
   [PIPE_FORMAT_G8R8_G8B8_UNORM] = { 0,
561
 
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, C2_C1_C0_C1, 0),
562
 
    SAMPLER_VIEW },
563
 
 
564
 
   [PIPE_FORMAT_R8SG8SB8UX8U_NORM] = { 0,
565
 
    B_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 8_8_8_8, 0),
566
 
    SAMPLER_VIEW },
567
 
 
568
 
   [PIPE_FORMAT_R5SG5SB6U_NORM] = { 0,
569
 
    B_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 6_5_5, 0),
570
 
    SAMPLER_VIEW },
571
 
 
572
 
   [PIPE_FORMAT_R1_UNORM] = { 0,
573
 
    B_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, BITMAP_8X8, 0),
574
 
    SAMPLER_VIEW },
575
 
 
576
 
   [PIPE_FORMAT_A8B8G8R8_UNORM] = { 0,
577
 
    B_(C3, C2, C1, C0, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
578
 
    SAMPLER_VIEW },
579
 
 
580
 
   /* FIXED FORMATS - hw doesn't support these, convert on vbo push for now */
581
 
 
582
 
   [PIPE_FORMAT_R32G32B32A32_FIXED] = { 0,
583
 
    B_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
584
 
    VERTEX_BUFFER },
585
 
 
586
 
   [PIPE_FORMAT_R32G32B32_FIXED] = { 0,
587
 
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32, 0),
588
 
    VERTEX_BUFFER },
589
 
 
590
 
   [PIPE_FORMAT_R32G32_FIXED] = { 0,
591
 
    B_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
592
 
    VERTEX_BUFFER },
593
 
 
594
 
   [PIPE_FORMAT_R32_FIXED] = { 0,
595
 
    B_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
596
 
    VERTEX_BUFFER },
 
133
   C4A(B8G8R8A8_UNORM, BGRA8_UNORM, C2, C1, C0, C3, UNORM, 8_8_8_8, TDV, 1),
 
134
   F3A(B8G8R8X8_UNORM, BGRX8_UNORM, C2, C1, C0, xx, UNORM, 8_8_8_8, TD),
 
135
   C4A(B8G8R8A8_SRGB, BGRA8_SRGB, C2, C1, C0, C3, UNORM, 8_8_8_8, TD, 1),
 
136
   F3A(B8G8R8X8_SRGB, BGRX8_SRGB, C2, C1, C0, xx, UNORM, 8_8_8_8, TD),
 
137
   C4A(R8G8B8A8_UNORM, RGBA8_UNORM, C0, C1, C2, C3, UNORM, 8_8_8_8, TBV, 0),
 
138
   F3A(R8G8B8X8_UNORM, RGBX8_UNORM, C0, C1, C2, xx, UNORM, 8_8_8_8, TB),
 
139
   C4A(R8G8B8A8_SRGB, RGBA8_SRGB, C0, C1, C2, C3, UNORM, 8_8_8_8, TB, 0),
 
140
 
 
141
   ZXB(Z16_UNORM, Z16_UNORM, C0, C0, C0, xx, UNORM, Z16, TZ),
 
142
   ZXB(Z32_FLOAT, Z32_FLOAT, C0, C0, C0, xx, FLOAT, Z32, TZ),
 
143
   ZXB(Z24X8_UNORM, Z24_X8_UNORM, C0, C0, C0, xx, UNORM, Z24_X8, TZ),
 
144
   ZSB(Z24_UNORM_S8_UINT, Z24_S8_UNORM, C0, C1, C0, xx, UNORM, Z24_S8, TZ),
 
145
   SZB(S8_UINT_Z24_UNORM, S8_Z24_UNORM, C1, C0, C1, xx, UNORM, S8_Z24, TZ),
 
146
   ZSB(Z32_FLOAT_S8X24_UINT, Z32_S8_X24_FLOAT, C0, C1, C0, xx, FLOAT,
 
147
       Z32_S8_X24, TZ),
 
148
 
 
149
   F3B(B5G6R5_UNORM, B5G6R5_UNORM, C2, C1, C0, xx, UNORM, 5_6_5, T),
 
150
   C4B(B5G5R5A1_UNORM, BGR5_A1_UNORM, C2, C1, C0, C3, UNORM, 5_5_5_1, TB),
 
151
   F3B(B5G5R5X1_UNORM, BGR5_X1_UNORM, C2, C1, C0, xx, UNORM, 5_5_5_1, TB),
 
152
   C4B(B4G4R4A4_UNORM, NONE, C2, C1, C0, C3, UNORM, 4_4_4_4, T),
 
153
   F3B(B4G4R4X4_UNORM, NONE, C2, C1, C0, xx, UNORM, 4_4_4_4, T),
 
154
   F3B(R9G9B9E5_FLOAT, NONE, C0, C1, C2, xx, FLOAT, 9_9_9_E5, T),
 
155
 
 
156
   C4A(R10G10B10A2_UNORM, RGB10_A2_UNORM, C0, C1, C2, C3, UNORM, 10_10_10_2,
 
157
       TBV, 0),
 
158
   C4A(B10G10R10A2_UNORM, BGR10_A2_UNORM, C2, C1, C0, C3, UNORM, 10_10_10_2,
 
159
       TBV, 1),
 
160
   C4A(R10G10B10A2_SNORM, NONE, C0, C1, C2, C3, SNORM, 10_10_10_2, TV, 0),
 
161
   C4A(B10G10R10A2_SNORM, NONE, C2, C1, C0, C3, SNORM, 10_10_10_2, TV, 1),
 
162
 
 
163
   F3B(R11G11B10_FLOAT, R11G11B10_FLOAT, C0, C1, C2, xx, FLOAT, 11_11_10, TB),
 
164
 
 
165
   F3B(L8_UNORM, R8_UNORM, C0, C0, C0, xx, UNORM, 8, TB),
 
166
   F3B(L8_SRGB, R8_UNORM, C0, C0, C0, xx, UNORM, 8, TB),
 
167
   F3B(L8_SNORM, R8_SNORM, C0, C0, C0, xx, SNORM, 8, TB),
 
168
   F3B(L8_SINT, R8_SINT, C0, C0, C0, xx, SINT, 8, TR),
 
169
   F3B(L8_UINT, R8_UINT, C0, C0, C0, xx, UINT, 8, TR),
 
170
   F3B(L16_UNORM, R16_UNORM, C0, C0, C0, xx, UNORM, 16, TB),
 
171
   F3B(L16_SNORM, R16_SNORM, C0, C0, C0, xx, SNORM, 16, TB),
 
172
   F3B(L16_FLOAT, R16_FLOAT, C0, C0, C0, xx, FLOAT, 16, TB),
 
173
   F3B(L16_SINT, R16_SINT, C0, C0, C0, xx, SINT, 16, TR),
 
174
   F3B(L16_UINT, R16_UINT, C0, C0, C0, xx, UINT, 16, TR),
 
175
   F3B(L32_FLOAT, R32_FLOAT, C0, C0, C0, xx, FLOAT, 32, TB),
 
176
   F3B(L32_SINT, R32_SINT, C0, C0, C0, xx, SINT, 32, TR),
 
177
   F3B(L32_UINT, R32_UINT, C0, C0, C0, xx, UINT, 32, TR),
 
178
 
 
179
   C4B(I8_UNORM, R8_UNORM, C0, C0, C0, C0, UNORM, 8, TR),
 
180
   C4B(I8_SNORM, R8_SNORM, C0, C0, C0, C0, SNORM, 8, TR),
 
181
   C4B(I8_SINT, R8_SINT, C0, C0, C0, C0, SINT, 8, TR),
 
182
   C4B(I8_UINT, R8_UINT, C0, C0, C0, C0, UINT, 8, TR),
 
183
   C4B(I16_UNORM, R16_UNORM, C0, C0, C0, C0, UNORM, 16, TR),
 
184
   C4B(I16_SNORM, R16_SNORM, C0, C0, C0, C0, SNORM, 16, TR),
 
185
   C4B(I16_FLOAT, R16_FLOAT, C0, C0, C0, C0, FLOAT, 16, TR),
 
186
   C4B(I16_SINT, R16_SINT, C0, C0, C0, C0, SINT, 16, TR),
 
187
   C4B(I16_UINT, R16_UINT, C0, C0, C0, C0, UINT, 16, TR),
 
188
   C4B(I32_FLOAT, R32_FLOAT, C0, C0, C0, C0, FLOAT, 32, TR),
 
189
   C4B(I32_SINT, R32_SINT, C0, C0, C0, C0, SINT, 32, TR),
 
190
   C4B(I32_UINT, R32_UINT, C0, C0, C0, C0, UINT, 32, TR),
 
191
 
 
192
   A1B(A8_UNORM, A8_UNORM, xx, xx, xx, C0, UNORM, 8, TB),
 
193
   A1B(A8_SNORM, R8_SNORM, xx, xx, xx, C0, SNORM, 8, T),
 
194
   A1B(A8_SINT, R8_SINT, xx, xx, xx, C0, SINT, 8, T),
 
195
   A1B(A8_UINT, R8_UINT, xx, xx, xx, C0, UINT, 8, T),
 
196
   A1B(A16_UNORM, R16_UNORM, xx, xx, xx, C0, UNORM, 16, T),
 
197
   A1B(A16_SNORM, R16_SNORM, xx, xx, xx, C0, SNORM, 16, T),
 
198
   A1B(A16_FLOAT, R16_FLOAT, xx, xx, xx, C0, FLOAT, 16, T),
 
199
   A1B(A16_SINT, R16_SINT, xx, xx, xx, C0, SINT, 16, T),
 
200
   A1B(A16_UINT, R16_UINT, xx, xx, xx, C0, UINT, 16, T),
 
201
   A1B(A32_FLOAT, R32_FLOAT, xx, xx, xx, C0, FLOAT, 32, T),
 
202
   A1B(A32_SINT, R32_SINT, xx, xx, xx, C0, SINT, 32, T),
 
203
   A1B(A32_UINT, R32_UINT, xx, xx, xx, C0, UINT, 32, T),
 
204
 
 
205
   C4B(L4A4_UNORM, NONE, C0, C0, C0, C1, UNORM, 4_4, T),
 
206
   C4B(L8A8_UNORM, RG8_UNORM, C0, C0, C0, C1, UNORM, 8_8, T),
 
207
   C4B(L8A8_SNORM, RG8_SNORM, C0, C0, C0, C1, SNORM, 8_8, T),
 
208
   C4B(L8A8_SRGB, RG8_UNORM, C0, C0, C0, C1, UNORM, 8_8, T),
 
209
   C4B(L8A8_SINT, RG8_SINT, C0, C0, C0, C1, SINT, 8_8, T),
 
210
   C4B(L8A8_UINT, RG8_UINT, C0, C0, C0, C1, UINT, 8_8, T),
 
211
   C4B(L16A16_UNORM, RG16_UNORM, C0, C0, C0, C1, UNORM, 16_16, T),
 
212
   C4B(L16A16_SNORM, RG16_SNORM, C0, C0, C0, C1, SNORM, 16_16, T),
 
213
   C4B(L16A16_FLOAT, RG16_FLOAT, C0, C0, C0, C1, FLOAT, 16_16, T),
 
214
   C4B(L16A16_SINT, RG16_SINT, C0, C0, C0, C1, SINT, 16_16, T),
 
215
   C4B(L16A16_UINT, RG16_UINT, C0, C0, C0, C1, UINT, 16_16, T),
 
216
   C4B(L32A32_FLOAT, RG32_FLOAT, C0, C0, C0, C1, FLOAT, 32_32, T),
 
217
   C4B(L32A32_SINT, RG32_SINT, C0, C0, C0, C1, SINT, 32_32, T),
 
218
   C4B(L32A32_UINT, RG32_UINT, C0, C0, C0, C1, UINT, 32_32, T),
 
219
 
 
220
   F3B(DXT1_RGB,   NONE, C0, C1, C2, xx, UNORM, DXT1, T),
 
221
   F3B(DXT1_SRGB,  NONE, C0, C1, C2, xx, UNORM, DXT1, T),
 
222
   C4B(DXT1_RGBA,  NONE, C0, C1, C2, C3, UNORM, DXT1, T),
 
223
   C4B(DXT1_SRGBA, NONE, C0, C1, C2, C3, UNORM, DXT1, T),
 
224
   C4B(DXT3_RGBA,  NONE, C0, C1, C2, C3, UNORM, DXT3, T),
 
225
   C4B(DXT3_SRGBA, NONE, C0, C1, C2, C3, UNORM, DXT3, T),
 
226
   C4B(DXT5_RGBA,  NONE, C0, C1, C2, C3, UNORM, DXT5, T),
 
227
   C4B(DXT5_SRGBA, NONE, C0, C1, C2, C3, UNORM, DXT5, T),
 
228
 
 
229
   F1B(RGTC1_UNORM, NONE, C0, xx, xx, xx, UNORM, RGTC1, T),
 
230
   F1B(RGTC1_SNORM, NONE, C0, xx, xx, xx, SNORM, RGTC1, T),
 
231
   F2B(RGTC2_UNORM, NONE, C0, C1, xx, xx, UNORM, RGTC2, T),
 
232
   F2B(RGTC2_SNORM, NONE, C0, C1, xx, xx, SNORM, RGTC2, T),
 
233
   F3B(LATC1_UNORM, NONE, C0, C0, C0, xx, UNORM, RGTC1, T),
 
234
   F3B(LATC1_SNORM, NONE, C0, C0, C0, xx, SNORM, RGTC1, T),
 
235
   C4B(LATC2_UNORM, NONE, C0, C0, C0, C1, UNORM, RGTC2, T),
 
236
   C4B(LATC2_SNORM, NONE, C0, C0, C0, C1, SNORM, RGTC2, T),
 
237
 
 
238
   C4A(R32G32B32A32_FLOAT, RGBA32_FLOAT, C0, C1, C2, C3, FLOAT, 32_32_32_32,
 
239
       TBV, 0),
 
240
   C4A(R32G32B32A32_UNORM, NONE, C0, C1, C2, C3, UNORM, 32_32_32_32, TV, 0),
 
241
   C4A(R32G32B32A32_SNORM, NONE, C0, C1, C2, C3, SNORM, 32_32_32_32, TV, 0),
 
242
   C4A(R32G32B32A32_SINT, RGBA32_SINT, C0, C1, C2, C3, SINT, 32_32_32_32,
 
243
       TRV, 0),
 
244
   C4A(R32G32B32A32_UINT, RGBA32_UINT, C0, C1, C2, C3, UINT, 32_32_32_32,
 
245
       TRV, 0),
 
246
 
 
247
   F2A(R32G32_FLOAT, RG32_FLOAT, C0, C1, xx, xx, FLOAT, 32_32, TBV),
 
248
   F2A(R32G32_UNORM, NONE, C0, C1, xx, xx, UNORM, 32_32, TV),
 
249
   F2A(R32G32_SNORM, NONE, C0, C1, xx, xx, SNORM, 32_32, TV),
 
250
   I2A(R32G32_SINT, RG32_SINT, C0, C1, xx, xx, SINT, 32_32, TRV),
 
251
   I2A(R32G32_UINT, RG32_UINT, C0, C1, xx, xx, UINT, 32_32, TRV),
 
252
 
 
253
   F1A(R32_FLOAT, R32_FLOAT, C0, xx, xx, xx, FLOAT, 32, TBV),
 
254
   F1A(R32_UNORM, NONE, C0, xx, xx, xx, UNORM, 32, TV),
 
255
   F1A(R32_SNORM, NONE, C0, xx, xx, xx, SNORM, 32, TV),
 
256
   I1A(R32_SINT, R32_SINT, C0, xx, xx, xx, SINT, 32, TRV),
 
257
   I1A(R32_UINT, R32_UINT, C0, xx, xx, xx, UINT, 32, TRV),
 
258
 
 
259
   C4A(R16G16B16A16_FLOAT, RGBA16_FLOAT, C0, C1, C2, C3, FLOAT, 16_16_16_16,
 
260
       TBV, 0),
 
261
   C4A(R16G16B16A16_UNORM, RGBA16_UNORM, C0, C1, C2, C3, UNORM, 16_16_16_16,
 
262
       TBV, 0),
 
263
   C4A(R16G16B16A16_SNORM, RGBA16_SNORM, C0, C1, C2, C3, SNORM, 16_16_16_16,
 
264
       TBV, 0),
 
265
   C4A(R16G16B16A16_SINT, RGBA16_SINT, C0, C1, C2, C3, SINT, 16_16_16_16,
 
266
       TRV, 0),
 
267
   C4A(R16G16B16A16_UINT, RGBA16_UINT, C0, C1, C2, C3, UINT, 16_16_16_16,
 
268
       TRV, 0),
 
269
 
 
270
   F2A(R16G16_FLOAT, RG16_FLOAT, C0, C1, xx, xx, FLOAT, 16_16, TBV),
 
271
   F2A(R16G16_UNORM, RG16_UNORM, C0, C1, xx, xx, UNORM, 16_16, TBV),
 
272
   F2A(R16G16_SNORM, RG16_SNORM, C0, C1, xx, xx, SNORM, 16_16, TBV),
 
273
   I2A(R16G16_SINT, RG16_SINT, C0, C1, xx, xx, SINT, 16_16, TRV),
 
274
   I2A(R16G16_UINT, RG16_UINT, C0, C1, xx, xx, UINT, 16_16, TRV),
 
275
 
 
276
   F1A(R16_FLOAT, R16_FLOAT, C0, xx, xx, xx, FLOAT, 16, TBV),
 
277
   F1A(R16_UNORM, R16_UNORM, C0, xx, xx, xx, UNORM, 16, TBV),
 
278
   F1A(R16_SNORM, R16_SNORM, C0, xx, xx, xx, SNORM, 16, TBV),
 
279
   I1A(R16_SINT, R16_SINT, C0, xx, xx, xx, SINT, 16, TRV),
 
280
   I1A(R16_UINT, R16_UINT, C0, xx, xx, xx, UINT, 16, TRV),
 
281
 
 
282
   C4A(R8G8B8A8_SNORM, RGBA8_SNORM, C0, C1, C2, C3, SNORM, 8_8_8_8, TBV, 0),
 
283
   C4A(R8G8B8A8_SINT, RGBA8_SINT, C0, C1, C2, C3, SINT, 8_8_8_8, TRV, 0),
 
284
   C4A(R8G8B8A8_UINT, RGBA8_UINT, C0, C1, C2, C3, UINT, 8_8_8_8, TRV, 0),
 
285
 
 
286
   F2A(R8G8_UNORM, RG8_UNORM, C0, C1, xx, xx, UNORM, 8_8, TBV),
 
287
   F2A(R8G8_SNORM, RG8_SNORM, C0, C1, xx, xx, SNORM, 8_8, TBV),
 
288
   I2A(R8G8_SINT, RG8_SINT, C0, C1, xx, xx, SINT, 8_8, TRV),
 
289
   I2A(R8G8_UINT, RG8_UINT, C0, C1, xx, xx, UINT, 8_8, TRV),
 
290
 
 
291
   F1A(R8_UNORM, R8_UNORM, C0, xx, xx, xx, UNORM, 8, TBV),
 
292
   F1A(R8_SNORM, R8_SNORM, C0, xx, xx, xx, SNORM, 8, TBV),
 
293
   I1A(R8_SINT, R8_SINT, C0, xx, xx, xx, SINT, 8, TRV),
 
294
   I1A(R8_UINT, R8_UINT, C0, xx, xx, xx, UINT, 8, TRV),
 
295
 
 
296
   F3B(R8G8_B8G8_UNORM, NONE, C0, C1, C2, xx, UNORM, U8_YA8_V8_YB8, T),
 
297
   F3B(G8R8_G8B8_UNORM, NONE, C0, C1, C2, xx, UNORM, YA8_U8_YB8_V8, T),
 
298
 
 
299
   F1B(R1_UNORM, BITMAP, C0, xx, xx, xx, UNORM, BITMAP, T),
 
300
 
 
301
   C4B(R4A4_UNORM, NONE, C0, ZERO, ZERO, C1, UNORM, 4_4, T),
 
302
   C4B(R8A8_UNORM, NONE, C0, ZERO, ZERO, C1, UNORM, 8_8, T),
 
303
   C4B(A4R4_UNORM, NONE, C1, ZERO, ZERO, C0, UNORM, 4_4, T),
 
304
   C4B(A8R8_UNORM, NONE, C1, ZERO, ZERO, C0, UNORM, 8_8, T),
 
305
 
 
306
   TBLENT_B_(R8SG8SB8UX8U_NORM, 0,
 
307
             C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 8_8_8_8, T),
 
308
   TBLENT_B_(R5SG5SB6U_NORM, 0,
 
309
             C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 5_5_6, T),
 
310
 
 
311
   /* vertex-only formats: */
 
312
 
 
313
   C4A(R32G32B32A32_SSCALED, NONE, C0, C1, C2, C3, SSCALED, 32_32_32_32, V, 0),
 
314
   C4A(R32G32B32A32_USCALED, NONE, C0, C1, C2, C3, USCALED, 32_32_32_32, V, 0),
 
315
   F3A(R32G32B32_FLOAT, NONE, C0, C1, C2, xx, FLOAT, 32_32_32, V),
 
316
   F3A(R32G32B32_UNORM, NONE, C0, C1, C2, xx, UNORM, 32_32_32, V),
 
317
   F3A(R32G32B32_SNORM, NONE, C0, C1, C2, xx, SNORM, 32_32_32, V),
 
318
   I3A(R32G32B32_SINT, NONE, C0, C1, C2, xx, SINT, 32_32_32, V),
 
319
   I3A(R32G32B32_UINT, NONE, C0, C1, C2, xx, UINT, 32_32_32, V),
 
320
   F3A(R32G32B32_SSCALED, NONE, C0, C1, C2, xx, SSCALED, 32_32_32, V),
 
321
   F3A(R32G32B32_USCALED, NONE, C0, C1, C2, xx, USCALED, 32_32_32, V),
 
322
   F2A(R32G32_SSCALED, NONE, C0, C1, xx, xx, SSCALED, 32_32, V),
 
323
   F2A(R32G32_USCALED, NONE, C0, C1, xx, xx, USCALED, 32_32, V),
 
324
   F1A(R32_SSCALED, NONE, C0, xx, xx, xx, SSCALED, 32, V),
 
325
   F1A(R32_USCALED, NONE, C0, xx, xx, xx, USCALED, 32, V),
 
326
 
 
327
   C4A(R16G16B16A16_SSCALED, NONE, C0, C1, C2, C3, SSCALED, 16_16_16_16, V, 0),
 
328
   C4A(R16G16B16A16_USCALED, NONE, C0, C1, C2, C3, USCALED, 16_16_16_16, V, 0),
 
329
   F3A(R16G16B16_FLOAT, NONE, C0, C1, C2, xx, FLOAT, 16_16_16, V),
 
330
   F3A(R16G16B16_UNORM, NONE, C0, C1, C2, xx, UNORM, 16_16_16, V),
 
331
   F3A(R16G16B16_SNORM, NONE, C0, C1, C2, xx, SNORM, 16_16_16, V),
 
332
   I3A(R16G16B16_SINT, NONE, C0, C1, C2, xx, SINT, 16_16_16, V),
 
333
   I3A(R16G16B16_UINT, NONE, C0, C1, C2, xx, UINT, 16_16_16, V),
 
334
   F3A(R16G16B16_SSCALED, NONE, C0, C1, C2, xx, SSCALED, 16_16_16, V),
 
335
   F3A(R16G16B16_USCALED, NONE, C0, C1, C2, xx, USCALED, 16_16_16, V),
 
336
   F2A(R16G16_SSCALED, NONE, C0, C1, xx, xx, SSCALED, 16_16, V),
 
337
   F2A(R16G16_USCALED, NONE, C0, C1, xx, xx, USCALED, 16_16, V),
 
338
   F1A(R16_SSCALED, NONE, C0, xx, xx, xx, SSCALED, 16, V),
 
339
   F1A(R16_USCALED, NONE, C0, xx, xx, xx, USCALED, 16, V),
 
340
 
 
341
   C4A(R8G8B8A8_SSCALED, NONE, C0, C1, C2, C3, SSCALED, 8_8_8_8, V, 0),
 
342
   C4A(R8G8B8A8_USCALED, NONE, C0, C1, C2, C3, USCALED, 8_8_8_8, V, 0),
 
343
   F3A(R8G8B8_UNORM, NONE, C0, C1, C2, xx, UNORM, 8_8_8, V),
 
344
   F3A(R8G8B8_SNORM, NONE, C0, C1, C2, xx, SNORM, 8_8_8, V),
 
345
   I2A(R8G8B8_SINT, NONE, C0, C1, C2, xx, SINT, 8_8_8, V),
 
346
   I2A(R8G8B8_UINT, NONE, C0, C1, C2, xx, UINT, 8_8_8, V),
 
347
   F3A(R8G8B8_SSCALED, NONE, C0, C1, C2, xx, SSCALED, 8_8_8, V),
 
348
   F3A(R8G8B8_USCALED, NONE, C0, C1, C2, xx, USCALED, 8_8_8, V),
 
349
   F2A(R8G8_SSCALED, NONE, C0, C1, xx, xx, SSCALED, 8_8, V),
 
350
   F2A(R8G8_USCALED, NONE, C0, C1, xx, xx, USCALED, 8_8, V),
 
351
   F1A(R8_SSCALED, NONE, C0, xx, xx, xx, SSCALED, 8, V),
 
352
   F1A(R8_USCALED, NONE, C0, xx, xx, xx, USCALED, 8, V),
 
353
 
 
354
   /* FIXED types: not supported natively, converted on VBO push */
 
355
 
 
356
   C4B(R32G32B32A32_FIXED, NONE, C0, C1, C2, C3, FLOAT, 32_32_32_32, V),
 
357
   F3B(R32G32B32_FIXED, NONE, C0, C1, C2, xx, FLOAT, 32_32_32, V),
 
358
   F2B(R32G32_FIXED, NONE, C0, C1, xx, xx, FLOAT, 32_32, V),
 
359
   F1B(R32_FIXED, NONE, C0, xx, xx, xx, FLOAT, 32, V),
597
360
};