~ubuntu-branches/ubuntu/raring/mesa/raring-proposed

« back to all changes in this revision

Viewing changes to src/gallium/drivers/nv50/nv50_formats.c

  • Committer: Bazaar Package Importer
  • Author(s): Cyril Brulebois
  • Date: 2011-06-19 21:26:00 UTC
  • mfrom: (1.6.1 upstream) (3.3.18 sid)
  • mto: (3.3.20 sid)
  • mto: This revision was merged to the branch mainline in revision 145.
  • Revision ID: james.westby@ubuntu.com-20110619212600-rleaapdmnbtstekb
Tags: 7.11~0-2
Thank you sbuild for giving a green light when that's not actually the
case. Fix missing Pre-Depends for the libegl1-mesa-drivers package
(multiarch-support).

Show diffs side-by-side

added added

removed removed

Lines of Context:
21
21
 */
22
22
 
23
23
#include "nv50_screen.h"
24
 
#include "nv50_texture.h"
25
 
#include "nv50_reg.h"
 
24
#include "nv50_texture.xml.h"
 
25
#include "nv50_defs.xml.h"
 
26
#include "nv50_3d.xml.h"
26
27
#include "pipe/p_defines.h"
27
28
 
28
 
#define A_(cr, cg, cb, ca, t0, t1, t2, t3, sz, r)           \
29
 
   NV50TIC_0_0_MAPR_##cr | NV50TIC_0_0_TYPER_##t0 |         \
30
 
   NV50TIC_0_0_MAPG_##cg | NV50TIC_0_0_TYPEG_##t1 |         \
31
 
   NV50TIC_0_0_MAPB_##cb | NV50TIC_0_0_TYPEB_##t2 |         \
32
 
   NV50TIC_0_0_MAPA_##ca | NV50TIC_0_0_TYPEA_##t3 |         \
33
 
   NV50TIC_0_0_FMT_##sz,                                    \
34
 
   NV50TCL_VERTEX_ARRAY_ATTRIB_FORMAT_##sz |                \
35
 
   NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_##t0 |                  \
36
 
   (NV50TCL_VERTEX_ARRAY_ATTRIB_TYPE_##t0 << 3) | (r << 31)
 
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
   NV50_3D_VERTEX_ARRAY_ATTRIB_FORMAT_##sz |         \
 
40
   NV50_3D_VERTEX_ARRAY_ATTRIB_TYPE_##t0 | (r << 31)
37
41
 
38
 
#define B_(cr, cg, cb, ca, t0, t1, t2, t3, sz, r)   \
39
 
   NV50TIC_0_0_MAPR_##cr | NV50TIC_0_0_TYPER_##t0 | \
40
 
   NV50TIC_0_0_MAPG_##cg | NV50TIC_0_0_TYPEG_##t1 | \
41
 
   NV50TIC_0_0_MAPB_##cb | NV50TIC_0_0_TYPEB_##t2 | \
42
 
   NV50TIC_0_0_MAPA_##ca | NV50TIC_0_0_TYPEA_##t3 | \
43
 
   NV50TIC_0_0_FMT_##sz, 0
 
42
#define B_(cr, cg, cb, ca, t0, t1, t2, t3, sz, r)    \
 
43
   (NV50_TIC_MAP_##cr << NV50_TIC_0_MAPR__SHIFT) |   \
 
44
   (NV50_TIC_TYPE_##t0 << NV50_TIC_0_TYPE0__SHIFT) | \
 
45
   (NV50_TIC_MAP_##cg << NV50_TIC_0_MAPG__SHIFT) |   \
 
46
   (NV50_TIC_TYPE_##t1 << NV50_TIC_0_TYPE1__SHIFT) | \
 
47
   (NV50_TIC_MAP_##cb << NV50_TIC_0_MAPB__SHIFT) |   \
 
48
   (NV50_TIC_TYPE_##t2 << NV50_TIC_0_TYPE2__SHIFT) | \
 
49
   (NV50_TIC_MAP_##ca << NV50_TIC_0_MAPA__SHIFT) |   \
 
50
   (NV50_TIC_TYPE_##t3 << NV50_TIC_0_TYPE3__SHIFT) | \
 
51
   NV50_TIC_0_FMT_##sz, 0
44
52
 
45
53
#define VERTEX_BUFFER PIPE_BIND_VERTEX_BUFFER
46
54
#define SAMPLER_VIEW  PIPE_BIND_SAMPLER_VIEW
49
57
#define SCANOUT       PIPE_BIND_SCANOUT
50
58
 
51
59
/* for vertex buffers: */
52
 
#define NV50TIC_0_0_FMT_8_8_8 NV50TIC_0_0_FMT_8_8_8_8
53
 
#define NV50TIC_0_0_FMT_16_16_16 NV50TIC_0_0_FMT_16_16_16_16
54
 
#define NV50TIC_0_0_FMT_32_32_32 NV50TIC_0_0_FMT_32_32_32_32
55
 
 
56
 
/* NOTE: using NV50_2D_DST_FORMAT for substitute formats used with 2D engine */
 
60
#define NV50_TIC_0_FMT_8_8_8 NV50_TIC_0_FMT_8_8_8_8
 
61
#define NV50_TIC_0_FMT_16_16_16 NV50_TIC_0_FMT_16_16_16_16
 
62
#define NV50_TIC_0_FMT_32_32_32 NV50_TIC_0_FMT_32_32_32_32
57
63
 
58
64
const struct nv50_format nv50_format_table[PIPE_FORMAT_COUNT] =
59
65
{
60
66
   /* COMMON FORMATS */
61
67
 
62
 
   [PIPE_FORMAT_B8G8R8A8_UNORM] = { NV50TCL_RT_FORMAT_A8R8G8B8_UNORM,
63
 
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
64
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
65
 
 
66
 
   [PIPE_FORMAT_B8G8R8X8_UNORM] = { NV50TCL_RT_FORMAT_X8R8G8B8_UNORM,
67
 
    A_(C2, C1, C0, ONE, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
68
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
69
 
 
70
 
   [PIPE_FORMAT_B8G8R8A8_SRGB] = { NV50TCL_RT_FORMAT_A8R8G8B8_SRGB,
71
 
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
72
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
73
 
 
74
 
   [PIPE_FORMAT_B8G8R8X8_SRGB] = { NV50TCL_RT_FORMAT_X8R8G8B8_SRGB,
75
 
    A_(C2, C1, C0, ONE, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
76
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
77
 
 
78
 
   [PIPE_FORMAT_B5G6R5_UNORM] = { NV50TCL_RT_FORMAT_R5G6B5_UNORM,
79
 
    B_(C2, C1, C0, ONE, UNORM, UNORM, UNORM, UNORM, 5_6_5, 1),
 
68
   [PIPE_FORMAT_B8G8R8A8_UNORM] = { NV50_SURFACE_FORMAT_A8R8G8B8_UNORM,
 
69
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
 
70
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
 
71
 
 
72
   [PIPE_FORMAT_B8G8R8X8_UNORM] = { NV50_SURFACE_FORMAT_X8R8G8B8_UNORM,
 
73
    A_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
 
74
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
 
75
 
 
76
   [PIPE_FORMAT_B8G8R8A8_SRGB] = { NV50_SURFACE_FORMAT_A8R8G8B8_SRGB,
 
77
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
 
78
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
79
 
 
80
   [PIPE_FORMAT_B8G8R8X8_SRGB] = { NV50_SURFACE_FORMAT_X8R8G8B8_SRGB,
 
81
    A_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 1),
 
82
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
83
 
 
84
   [PIPE_FORMAT_B5G6R5_UNORM] = { NV50_SURFACE_FORMAT_R5G6B5_UNORM,
 
85
    B_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 5_6_5, 1),
80
86
    SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
81
87
 
82
 
   [PIPE_FORMAT_B5G5R5A1_UNORM] = { NV50TCL_RT_FORMAT_A1R5G5B5_UNORM,
 
88
   [PIPE_FORMAT_B5G5R5A1_UNORM] = { NV50_SURFACE_FORMAT_A1R5G5B5_UNORM,
83
89
    B_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 1_5_5_5, 1),
84
90
    SAMPLER_VIEW | RENDER_TARGET | SCANOUT },
85
91
 
86
 
   [PIPE_FORMAT_B4G4R4A4_UNORM] = { NV50_2D_DST_FORMAT_R16_UNORM,
 
92
   [PIPE_FORMAT_B4G4R4A4_UNORM] = { 0,
87
93
    B_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 4_4_4_4, 1),
88
94
    SAMPLER_VIEW },
89
95
 
90
 
   [PIPE_FORMAT_R10G10B10A2_UNORM] = { NV50TCL_RT_FORMAT_A2B10G10R10_UNORM,
 
96
   [PIPE_FORMAT_B4G4R4X4_UNORM] = { 0,
 
97
    B_(C2, C1, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 4_4_4_4, 1),
 
98
    SAMPLER_VIEW },
 
99
 
 
100
   [PIPE_FORMAT_R10G10B10A2_UNORM] = { NV50_SURFACE_FORMAT_A2B10G10R10_UNORM,
91
101
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 2_10_10_10, 0),
92
102
    SAMPLER_VIEW | RENDER_TARGET | VERTEX_BUFFER | SCANOUT },
93
103
 
94
 
   [PIPE_FORMAT_B10G10R10A2_UNORM] = { NV50TCL_RT_FORMAT_A2R10G10B10_UNORM,
 
104
   [PIPE_FORMAT_B10G10R10A2_UNORM] = { NV50_SURFACE_FORMAT_A2R10G10B10_UNORM,
95
105
    A_(C2, C1, C0, C3, UNORM, UNORM, UNORM, UNORM, 2_10_10_10, 1),
96
106
    SAMPLER_VIEW | RENDER_TARGET | VERTEX_BUFFER },
97
107
 
98
108
   /* DEPTH/STENCIL FORMATS */
99
109
 
100
 
   [PIPE_FORMAT_Z16_UNORM] = { NV50TCL_ZETA_FORMAT_Z16_UNORM,
101
 
    B_(C0, C0, C0, ONE, UNORM, UINT, UINT, UINT, 16_DEPTH, 0),
102
 
    SAMPLER_VIEW | DEPTH_STENCIL },
103
 
 
104
 
   [PIPE_FORMAT_Z24_UNORM_S8_USCALED] = { NV50TCL_ZETA_FORMAT_S8Z24_UNORM,
105
 
    B_(C0, C0, C0, ONE, UNORM, UINT, UINT, UINT, 8_24, 0),
106
 
    SAMPLER_VIEW | DEPTH_STENCIL },
107
 
 
108
 
   [PIPE_FORMAT_Z24X8_UNORM] = { NV50TCL_ZETA_FORMAT_X8Z24_UNORM,
109
 
    B_(C0, C0, C0, ONE, UNORM, UINT, UINT, UINT, 8_24, 0),
110
 
    SAMPLER_VIEW | DEPTH_STENCIL },
111
 
 
112
 
   [PIPE_FORMAT_S8_USCALED_Z24_UNORM] = { NV50TCL_ZETA_FORMAT_S8Z24_UNORM,
113
 
    B_(C1, C1, C1, ONE, UINT, UNORM, UINT, UINT, 24_8, 0),
114
 
    SAMPLER_VIEW | DEPTH_STENCIL },
115
 
 
116
 
   [PIPE_FORMAT_Z32_FLOAT] = { NV50TCL_ZETA_FORMAT_Z32_FLOAT,
117
 
    B_(C0, C0, C0, ONE, FLOAT, UINT, UINT, UINT, 32_DEPTH, 0),
 
110
   [PIPE_FORMAT_Z16_UNORM] = { NV50_ZETA_FORMAT_Z16_UNORM,
 
111
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, Z16, 0),
 
112
    SAMPLER_VIEW | DEPTH_STENCIL },
 
113
 
 
114
   [PIPE_FORMAT_Z24_UNORM_S8_USCALED] = { NV50_ZETA_FORMAT_S8Z24_UNORM,
 
115
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, S8Z24, 0),
 
116
    SAMPLER_VIEW | DEPTH_STENCIL },
 
117
 
 
118
   [PIPE_FORMAT_Z24X8_UNORM] = { NV50_ZETA_FORMAT_X8Z24_UNORM,
 
119
    B_(C0, C0, C0, ONE_FLOAT, UNORM, UINT, UINT, UINT, X8Z24, 0),
 
120
    SAMPLER_VIEW | DEPTH_STENCIL },
 
121
 
 
122
   [PIPE_FORMAT_S8_USCALED_Z24_UNORM] = { NV50_ZETA_FORMAT_Z24S8_UNORM,
 
123
    B_(C1, C1, C1, ONE_FLOAT, UINT, UNORM, UINT, UINT, Z24S8, 0),
 
124
    SAMPLER_VIEW | DEPTH_STENCIL },
 
125
 
 
126
   [PIPE_FORMAT_Z32_FLOAT] = { NV50_ZETA_FORMAT_Z32_FLOAT,
 
127
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, Z32, 0),
118
128
    SAMPLER_VIEW | DEPTH_STENCIL },
119
129
 
120
130
   [PIPE_FORMAT_Z32_FLOAT_S8X24_USCALED] = {
121
 
    NV50TCL_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM,
122
 
    B_(C0, C0, C0, ONE, FLOAT, UINT, UINT, UINT, 32_8, 0),
 
131
    NV50_ZETA_FORMAT_Z32_FLOAT_X24S8_UNORM,
 
132
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, UINT, UINT, UINT, X24S8Z32, 0),
123
133
    SAMPLER_VIEW | DEPTH_STENCIL },
124
134
 
125
135
   /* LUMINANCE, ALPHA, INTENSITY */
126
136
 
127
 
   [PIPE_FORMAT_L8_UNORM] = { NV50_2D_DST_FORMAT_R8_UNORM,
128
 
    A_(C0, C0, C0, ONE, UNORM, UNORM, UNORM, UNORM, 8, 0),
129
 
    SAMPLER_VIEW },
130
 
 
131
 
   [PIPE_FORMAT_L8_SRGB] = { NV50_2D_DST_FORMAT_R8_UNORM,
132
 
    A_(C0, C0, C0, ONE, UNORM, UNORM, UNORM, UNORM, 8, 0),
133
 
    SAMPLER_VIEW },
134
 
 
135
 
   [PIPE_FORMAT_I8_UNORM] = { NV50_2D_DST_FORMAT_R8_UNORM,
 
137
   [PIPE_FORMAT_L8_UNORM] = { NV50_SURFACE_FORMAT_R8_UNORM,
 
138
    A_(C0, C0, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
 
139
    SAMPLER_VIEW | RENDER_TARGET },
 
140
 
 
141
   [PIPE_FORMAT_L8_SRGB] = { NV50_SURFACE_FORMAT_R8_UNORM,
 
142
    A_(C0, C0, C0, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
 
143
    SAMPLER_VIEW | RENDER_TARGET },
 
144
 
 
145
   [PIPE_FORMAT_L16_SNORM] = { NV50_SURFACE_FORMAT_R16_SNORM,
 
146
    B_(C0, C0, C0, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16, 0),
 
147
    SAMPLER_VIEW | RENDER_TARGET },
 
148
 
 
149
   [PIPE_FORMAT_L16_FLOAT] = { NV50_SURFACE_FORMAT_R16_FLOAT,
 
150
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
 
151
    SAMPLER_VIEW | RENDER_TARGET },
 
152
 
 
153
   [PIPE_FORMAT_L32_FLOAT] = { NV50_SURFACE_FORMAT_R32_FLOAT,
 
154
    B_(C0, C0, C0, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
 
155
    SAMPLER_VIEW | RENDER_TARGET },
 
156
 
 
157
   [PIPE_FORMAT_I8_UNORM] = { 0,
136
158
    A_(C0, C0, C0, C0, UNORM, UNORM, UNORM, UNORM, 8, 0),
137
159
    SAMPLER_VIEW },
138
160
 
139
 
   [PIPE_FORMAT_A8_UNORM] = { NV50TCL_RT_FORMAT_A8_UNORM,
 
161
   [PIPE_FORMAT_I16_UNORM] = { NV50_SURFACE_FORMAT_R16_UNORM,
 
162
    A_(C0, C0, C0, C0, UNORM, UNORM, UNORM, UNORM, 16, 0),
 
163
    SAMPLER_VIEW },
 
164
 
 
165
   [PIPE_FORMAT_I16_SNORM] = { NV50_SURFACE_FORMAT_R16_SNORM,
 
166
    B_(C0, C0, C0, C0, SNORM, SNORM, SNORM, SNORM, 16, 0),
 
167
    SAMPLER_VIEW },
 
168
 
 
169
   [PIPE_FORMAT_I16_FLOAT] = { NV50_SURFACE_FORMAT_R16_FLOAT,
 
170
    B_(C0, C0, C0, C0, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
 
171
    SAMPLER_VIEW },
 
172
 
 
173
   [PIPE_FORMAT_I32_FLOAT] = { NV50_SURFACE_FORMAT_R32_FLOAT,
 
174
    B_(C0, C0, C0, C0, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
 
175
    SAMPLER_VIEW },
 
176
 
 
177
   [PIPE_FORMAT_A8_UNORM] = { NV50_SURFACE_FORMAT_A8_UNORM,
140
178
    A_(ZERO, ZERO, ZERO, C0, UNORM, UNORM, UNORM, UNORM, 8, 0),
141
179
    SAMPLER_VIEW | RENDER_TARGET },
142
180
 
143
 
   [PIPE_FORMAT_L8A8_UNORM] = { NV50_2D_DST_FORMAT_R16_UNORM,
 
181
   [PIPE_FORMAT_A8_SNORM] = { 0,
 
182
    A_(ZERO, ZERO, ZERO, C0, SNORM, SNORM, SNORM, SNORM, 8, 0),
 
183
    SAMPLER_VIEW },
 
184
 
 
185
   [PIPE_FORMAT_A16_UNORM] = { 0,
 
186
    A_(ZERO, ZERO, ZERO, C0, UNORM, UNORM, UNORM, UNORM, 16, 0),
 
187
    SAMPLER_VIEW },
 
188
 
 
189
   [PIPE_FORMAT_A16_SNORM] = { 0,
 
190
    A_(ZERO, ZERO, ZERO, C0, SNORM, SNORM, SNORM, SNORM, 16, 0),
 
191
    SAMPLER_VIEW },
 
192
 
 
193
   [PIPE_FORMAT_A16_FLOAT] = { 0,
 
194
    B_(ZERO, ZERO, ZERO, C0, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
 
195
    SAMPLER_VIEW },
 
196
 
 
197
   [PIPE_FORMAT_A32_FLOAT] = { 0,
 
198
    B_(ZERO, ZERO, ZERO, C0, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
 
199
    SAMPLER_VIEW },
 
200
 
 
201
   [PIPE_FORMAT_L8A8_UNORM] = { 0,
144
202
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
145
203
    SAMPLER_VIEW },
146
204
 
148
206
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
149
207
    SAMPLER_VIEW },
150
208
 
 
209
   [PIPE_FORMAT_L16A16_UNORM] = { 0,
 
210
    A_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 16_16, 0),
 
211
    SAMPLER_VIEW },
 
212
 
 
213
   [PIPE_FORMAT_L16A16_SNORM] = { 0,
 
214
    A_(C0, C0, C0, C1, SNORM, SNORM, SNORM, SNORM, 16_16, 0),
 
215
    SAMPLER_VIEW },
 
216
 
 
217
   [PIPE_FORMAT_L16A16_FLOAT] = { 0,
 
218
    B_(C0, C0, C0, C1, FLOAT, FLOAT, FLOAT, FLOAT, 16_16, 0),
 
219
    SAMPLER_VIEW },
 
220
 
 
221
   [PIPE_FORMAT_L32A32_FLOAT] = { 0,
 
222
    B_(C0, C0, C0, C1, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
 
223
    SAMPLER_VIEW },
 
224
 
 
225
   [PIPE_FORMAT_L4A4_UNORM] = { 0,
 
226
    B_(C0, C0, C0, C1, UNORM, UNORM, UNORM, UNORM, 4_4, 0),
 
227
    SAMPLER_VIEW },
 
228
 
151
229
   /* DXT, RGTC */
152
230
 
153
231
   [PIPE_FORMAT_DXT1_RGB] = { 0,
154
 
    B_(C0, C1, C2, ONE, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
 
232
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
155
233
    SAMPLER_VIEW },
156
234
 
157
235
   [PIPE_FORMAT_DXT1_RGBA] = { 0,
166
244
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT5, 0),
167
245
    SAMPLER_VIEW },
168
246
 
 
247
   [PIPE_FORMAT_DXT1_SRGB] = { 0,
 
248
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
 
249
    SAMPLER_VIEW },
 
250
 
 
251
   [PIPE_FORMAT_DXT1_SRGBA] = { 0,
 
252
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT1, 0),
 
253
    SAMPLER_VIEW },
 
254
 
 
255
   [PIPE_FORMAT_DXT3_SRGBA] = { 0,
 
256
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT3, 0),
 
257
    SAMPLER_VIEW },
 
258
 
 
259
   [PIPE_FORMAT_DXT5_SRGBA] = { 0,
 
260
    B_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, DXT5, 0),
 
261
    SAMPLER_VIEW },
 
262
 
169
263
   [PIPE_FORMAT_RGTC1_UNORM] = { 0,
170
 
    B_(C0, ZERO, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, RGTC1, 0),
 
264
    B_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, RGTC1, 0),
171
265
    SAMPLER_VIEW },
172
266
 
173
267
   [PIPE_FORMAT_RGTC1_SNORM] = { 0,
174
 
    B_(C0, ZERO, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, RGTC1, 0),
 
268
    B_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, RGTC1, 0),
175
269
    SAMPLER_VIEW },
176
270
 
177
271
   [PIPE_FORMAT_RGTC2_UNORM] = { 0,
178
 
    B_(C0, C1, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, RGTC2, 0),
 
272
    B_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, RGTC2, 0),
179
273
    SAMPLER_VIEW },
180
274
 
181
275
   [PIPE_FORMAT_RGTC2_SNORM] = { 0,
182
 
    B_(C0, C1, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, RGTC2, 0),
 
276
    B_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, RGTC2, 0),
183
277
    SAMPLER_VIEW },
184
278
 
185
279
   /* FLOAT 16 */
186
280
 
187
 
   [PIPE_FORMAT_R16G16B16A16_FLOAT] = { NV50TCL_RT_FORMAT_R16G16B16A16_FLOAT,
 
281
   [PIPE_FORMAT_R16G16B16A16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16B16A16_FLOAT,
188
282
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 16_16_16_16, 0),
189
283
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
190
284
 
191
 
   [PIPE_FORMAT_R16G16B16_FLOAT] = { NV50TCL_RT_FORMAT_R16G16B16X16_FLOAT,
192
 
    A_(C0, C1, C2, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 16_16_16, 0),
193
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
194
 
 
195
 
   [PIPE_FORMAT_R16G16_FLOAT] = { NV50TCL_RT_FORMAT_R16G16_FLOAT,
196
 
    A_(C0, C1, ZERO, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 16_16, 0),
197
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
198
 
 
199
 
   [PIPE_FORMAT_R16_FLOAT] = { NV50TCL_RT_FORMAT_R16_FLOAT,
200
 
    A_(C0, ZERO, ZERO, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
 
285
   [PIPE_FORMAT_R16G16B16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16B16X16_FLOAT,
 
286
    A_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16_16_16, 0),
 
287
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
288
 
 
289
   [PIPE_FORMAT_R16G16_FLOAT] = { NV50_SURFACE_FORMAT_R16G16_FLOAT,
 
290
    A_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16_16, 0),
 
291
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
292
 
 
293
   [PIPE_FORMAT_R16_FLOAT] = { NV50_SURFACE_FORMAT_R16_FLOAT,
 
294
    A_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 16, 0),
201
295
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
202
296
 
203
297
   /* FLOAT 32 */
204
298
 
205
 
   [PIPE_FORMAT_R32G32B32A32_FLOAT] = { NV50TCL_RT_FORMAT_R32G32B32A32_FLOAT,
 
299
   [PIPE_FORMAT_R32G32B32A32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32B32A32_FLOAT,
206
300
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
207
301
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
208
302
 
209
 
   [PIPE_FORMAT_R32G32B32_FLOAT] = { NV50TCL_RT_FORMAT_R32G32B32X32_FLOAT,
210
 
    A_(C0, C1, C2, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32, 0),
211
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
212
 
 
213
 
   [PIPE_FORMAT_R32G32_FLOAT] = { NV50TCL_RT_FORMAT_R32G32_FLOAT,
214
 
    A_(C0, C1, ZERO, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
215
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
216
 
 
217
 
   [PIPE_FORMAT_R32_FLOAT] = { NV50TCL_RT_FORMAT_R32_FLOAT,
218
 
    A_(C0, ZERO, ZERO, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
 
303
   [PIPE_FORMAT_R32G32B32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32B32X32_FLOAT,
 
304
    A_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32, 0),
 
305
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
306
 
 
307
   [PIPE_FORMAT_R32G32_FLOAT] = { NV50_SURFACE_FORMAT_R32G32_FLOAT,
 
308
    A_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
 
309
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
310
 
 
311
   [PIPE_FORMAT_R32_FLOAT] = { NV50_SURFACE_FORMAT_R32_FLOAT,
 
312
    A_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
219
313
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
220
314
 
221
315
   /* ODD FORMATS */
222
316
 
223
 
   [PIPE_FORMAT_R11G11B10_FLOAT] = { NV50TCL_RT_FORMAT_B10G11R11_FLOAT,
224
 
    B_(C0, C1, C2, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 10_11_11, 0),
 
317
   [PIPE_FORMAT_R11G11B10_FLOAT] = { NV50_SURFACE_FORMAT_B10G11R11_FLOAT,
 
318
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 10_11_11, 0),
225
319
    SAMPLER_VIEW | RENDER_TARGET },
226
320
 
227
321
   [PIPE_FORMAT_R9G9B9E5_FLOAT] = { 0,
228
 
    B_(C0, C1, C2, ONE, FLOAT, FLOAT, FLOAT, FLOAT, 5_9_9_9, 0),
 
322
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, E5_9_9_9, 0),
229
323
    SAMPLER_VIEW },
230
324
 
231
325
   /* SNORM 32 */
232
326
 
233
327
   [PIPE_FORMAT_R32G32B32A32_SNORM] = { 0,
234
 
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
 
328
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 32_32_32_32, 0),
235
329
    VERTEX_BUFFER | SAMPLER_VIEW },
236
330
 
237
331
   [PIPE_FORMAT_R32G32B32_SNORM] = { 0,
238
 
    A_(C0, C1, C2, ONE, SNORM, SNORM, SNORM, SNORM, 32_32_32, 0),
 
332
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32_32_32, 0),
239
333
    VERTEX_BUFFER | SAMPLER_VIEW },
240
334
 
241
335
   [PIPE_FORMAT_R32G32_SNORM] = { 0,
242
 
    A_(C0, C1, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, 32_32, 0),
 
336
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32_32, 0),
243
337
    VERTEX_BUFFER | SAMPLER_VIEW },
244
338
 
245
339
   [PIPE_FORMAT_R32_SNORM] = { 0,
246
 
    A_(C0, ZERO, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, 32, 0),
 
340
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 32, 0),
247
341
    VERTEX_BUFFER | SAMPLER_VIEW },
248
342
 
249
343
   /* UNORM 32 */
250
344
 
251
345
   [PIPE_FORMAT_R32G32B32A32_UNORM] = { 0,
252
 
    A_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
 
346
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 32_32_32_32, 0),
253
347
    VERTEX_BUFFER | SAMPLER_VIEW },
254
348
 
255
349
   [PIPE_FORMAT_R32G32B32_UNORM] = { 0,
256
 
    A_(C0, C1, C2, ONE, UNORM, UNORM, UNORM, UNORM, 32_32_32, 0),
 
350
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32_32_32, 0),
257
351
    VERTEX_BUFFER | SAMPLER_VIEW },
258
352
 
259
353
   [PIPE_FORMAT_R32G32_UNORM] = { 0,
260
 
    A_(C0, C1, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, 32_32, 0),
 
354
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32_32, 0),
261
355
    VERTEX_BUFFER | SAMPLER_VIEW },
262
356
 
263
357
   [PIPE_FORMAT_R32_UNORM] = { 0,
264
 
    A_(C0, ZERO, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, 32, 0),
 
358
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 32, 0),
265
359
    VERTEX_BUFFER | SAMPLER_VIEW },
266
360
 
267
361
   /* SNORM 16 */
268
362
 
269
 
   [PIPE_FORMAT_R16G16B16A16_SNORM] = { NV50TCL_RT_FORMAT_R16G16B16A16_SNORM,
 
363
   [PIPE_FORMAT_R16G16B16A16_SNORM] = { NV50_SURFACE_FORMAT_R16G16B16A16_SNORM,
270
364
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 16_16_16_16, 0),
271
365
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
272
366
 
273
367
   [PIPE_FORMAT_R16G16B16_SNORM] = { 0,
274
 
    A_(C0, C1, C2, ONE, SNORM, SNORM, SNORM, SNORM, 16_16_16, 0),
 
368
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16_16_16, 0),
275
369
    VERTEX_BUFFER | SAMPLER_VIEW },
276
370
 
277
 
   [PIPE_FORMAT_R16G16_SNORM] = { NV50TCL_RT_FORMAT_R16G16_SNORM,
278
 
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 16_16, 0),
 
371
   [PIPE_FORMAT_R16G16_SNORM] = { NV50_SURFACE_FORMAT_R16G16_SNORM,
 
372
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16_16, 0),
279
373
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
280
374
 
281
 
   [PIPE_FORMAT_R16_SNORM] = { NV50TCL_RT_FORMAT_R16_SNORM,
282
 
    A_(C0, ZERO, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, 16, 0),
 
375
   [PIPE_FORMAT_R16_SNORM] = { NV50_SURFACE_FORMAT_R16_SNORM,
 
376
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 16, 0),
283
377
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
284
378
 
285
379
   /* UNORM 16 */
286
380
 
287
 
   [PIPE_FORMAT_R16G16B16A16_UNORM] = { NV50TCL_RT_FORMAT_R16G16B16A16_UNORM,
 
381
   [PIPE_FORMAT_R16G16B16A16_UNORM] = { NV50_SURFACE_FORMAT_R16G16B16A16_UNORM,
288
382
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 16_16_16_16, 0),
289
383
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
290
384
 
291
385
   [PIPE_FORMAT_R16G16B16_UNORM] = { 0,
292
 
    A_(C0, C1, C2, ONE, UNORM, UNORM, UNORM, UNORM, 16_16_16, 0),
 
386
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16_16_16, 0),
293
387
    VERTEX_BUFFER | SAMPLER_VIEW },
294
388
 
295
 
   [PIPE_FORMAT_R16G16_UNORM] = { NV50TCL_RT_FORMAT_R16G16_UNORM,
296
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 16_16, 0),
 
389
   [PIPE_FORMAT_R16G16_UNORM] = { NV50_SURFACE_FORMAT_R16G16_UNORM,
 
390
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16_16, 0),
297
391
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
298
392
 
299
 
   [PIPE_FORMAT_R16_UNORM] = { NV50TCL_RT_FORMAT_R16_UNORM,
300
 
    A_(C0, ZERO, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, 16, 0),
 
393
   [PIPE_FORMAT_R16_UNORM] = { NV50_SURFACE_FORMAT_R16_UNORM,
 
394
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 16, 0),
301
395
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
302
396
 
303
397
   /* SNORM 8 */
304
398
 
305
 
   [PIPE_FORMAT_R8G8B8A8_SNORM] = { NV50TCL_RT_FORMAT_A8B8G8R8_SNORM,
 
399
   [PIPE_FORMAT_R8G8B8A8_SNORM] = { NV50_SURFACE_FORMAT_A8B8G8R8_SNORM,
306
400
    A_(C0, C1, C2, C3, SNORM, SNORM, SNORM, SNORM, 8_8_8_8, 0),
307
401
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
308
402
 
309
403
   [PIPE_FORMAT_R8G8B8_SNORM] = { 0,
310
 
    A_(C0, C1, C2, ONE, SNORM, SNORM, SNORM, SNORM, 8_8_8, 0),
 
404
    A_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8_8_8, 0),
311
405
    VERTEX_BUFFER | SAMPLER_VIEW },
312
406
 
313
 
   [PIPE_FORMAT_R8G8_SNORM] = { NV50TCL_RT_FORMAT_R8G8_SNORM,
314
 
    A_(C0, C1, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, 8_8, 0),
 
407
   [PIPE_FORMAT_R8G8_SNORM] = { NV50_SURFACE_FORMAT_R8G8_SNORM,
 
408
    A_(C0, C1, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8_8, 0),
315
409
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
316
410
 
317
 
   [PIPE_FORMAT_R8_SNORM] = { NV50TCL_RT_FORMAT_R8_SNORM,
318
 
    A_(C0, ZERO, ZERO, ONE, SNORM, SNORM, SNORM, SNORM, 8, 0),
 
411
   [PIPE_FORMAT_R8_SNORM] = { NV50_SURFACE_FORMAT_R8_SNORM,
 
412
    A_(C0, ZERO, ZERO, ONE_FLOAT, SNORM, SNORM, SNORM, SNORM, 8, 0),
319
413
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
320
414
 
321
415
   /* UNORM 8 */
322
416
 
323
 
   [PIPE_FORMAT_R8G8B8A8_UNORM] = { NV50TCL_RT_FORMAT_A8B8G8R8_UNORM,
324
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
325
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
326
 
 
327
 
   [PIPE_FORMAT_R8G8B8A8_SRGB] = { NV50TCL_RT_FORMAT_A8B8G8R8_SRGB,
328
 
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
329
 
    SAMPLER_VIEW | RENDER_TARGET },
330
 
 
331
 
   [PIPE_FORMAT_R8G8B8_UNORM] = { NV50TCL_RT_FORMAT_X8B8G8R8_UNORM,
332
 
    A_(C0, C1, C2, ONE, UNORM, UNORM, UNORM, UNORM, 8_8_8, 0),
333
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
334
 
 
335
 
   [PIPE_FORMAT_R8G8B8_SRGB] = { NV50TCL_RT_FORMAT_X8B8G8R8_SRGB,
336
 
    A_(C0, C1, C2, ONE, UNORM, UNORM, UNORM, UNORM, 8_8_8, 0),
337
 
    SAMPLER_VIEW | RENDER_TARGET },
338
 
 
339
 
   [PIPE_FORMAT_R8G8_UNORM] = { NV50TCL_RT_FORMAT_R8G8_UNORM,
340
 
    A_(C0, C1, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
341
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
342
 
 
343
 
   [PIPE_FORMAT_R8_UNORM] = { NV50TCL_RT_FORMAT_R8_UNORM,
344
 
    A_(C0, ZERO, ZERO, ONE, UNORM, UNORM, UNORM, UNORM, 8, 0),
345
 
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
346
 
 
347
 
   /* SSCALED 32 */
 
417
   [PIPE_FORMAT_R8G8B8A8_UNORM] = { NV50_SURFACE_FORMAT_A8B8G8R8_UNORM,
 
418
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
 
419
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
420
 
 
421
   [PIPE_FORMAT_R8G8B8A8_SRGB] = { NV50_SURFACE_FORMAT_A8B8G8R8_SRGB,
 
422
    A_(C0, C1, C2, C3, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
 
423
    SAMPLER_VIEW | RENDER_TARGET },
 
424
 
 
425
   [PIPE_FORMAT_R8G8B8_UNORM] = { NV50_SURFACE_FORMAT_X8B8G8R8_UNORM,
 
426
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8, 0),
 
427
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
428
 
 
429
   [PIPE_FORMAT_R8G8B8_SRGB] = { NV50_SURFACE_FORMAT_X8B8G8R8_SRGB,
 
430
    A_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8_8, 0),
 
431
    SAMPLER_VIEW | RENDER_TARGET },
 
432
 
 
433
   [PIPE_FORMAT_R8G8_UNORM] = { NV50_SURFACE_FORMAT_R8G8_UNORM,
 
434
    A_(C0, C1, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8_8, 0),
 
435
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
436
 
 
437
   [PIPE_FORMAT_R8_UNORM] = { NV50_SURFACE_FORMAT_R8_UNORM,
 
438
    A_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, 8, 0),
 
439
    VERTEX_BUFFER | SAMPLER_VIEW | RENDER_TARGET },
 
440
 
 
441
   /* SSCALED 32 (not integer, data is converted to float !) */
348
442
 
349
443
   [PIPE_FORMAT_R32G32B32A32_SSCALED] = { 0,
350
444
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 32_32_32_32, 0),
351
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
445
    VERTEX_BUFFER },
352
446
 
353
447
   [PIPE_FORMAT_R32G32B32_SSCALED] = { 0,
354
 
    A_(C0, C1, C2, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 32_32_32, 0),
355
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
448
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32_32_32, 0),
 
449
    VERTEX_BUFFER },
356
450
 
357
451
   [PIPE_FORMAT_R32G32_SSCALED] = { 0,
358
 
    A_(C0, C1, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 32_32, 0),
359
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
452
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32_32, 0),
 
453
    VERTEX_BUFFER },
360
454
 
361
455
   [PIPE_FORMAT_R32_SSCALED] = { 0,
362
 
    A_(C0, ZERO, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 32, 0),
363
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
456
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 32, 0),
 
457
    VERTEX_BUFFER },
364
458
 
365
459
   /* USCALED 32 */
366
460
 
367
461
   [PIPE_FORMAT_R32G32B32A32_USCALED] = { 0,
368
462
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 32_32_32_32, 0),
369
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
463
    VERTEX_BUFFER },
370
464
 
371
465
   [PIPE_FORMAT_R32G32B32_USCALED] = { 0,
372
 
    A_(C0, C1, C2, ONE, USCALED, USCALED, USCALED, USCALED, 32_32_32, 0),
373
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
466
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32_32_32, 0),
 
467
    VERTEX_BUFFER },
374
468
 
375
469
   [PIPE_FORMAT_R32G32_USCALED] = { 0,
376
 
    A_(C0, C1, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 32_32, 0),
377
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
470
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32_32, 0),
 
471
    VERTEX_BUFFER },
378
472
 
379
473
   [PIPE_FORMAT_R32_USCALED] = { 0,
380
 
    A_(C0, ZERO, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 32, 0),
381
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
474
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 32, 0),
 
475
    VERTEX_BUFFER },
382
476
 
383
477
   /* SSCALED 16 */
384
478
 
385
479
   [PIPE_FORMAT_R16G16B16A16_SSCALED] = { 0,
386
480
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 16_16_16_16, 0),
387
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
481
    VERTEX_BUFFER },
388
482
 
389
483
   [PIPE_FORMAT_R16G16B16_SSCALED] = { 0,
390
 
    A_(C0, C1, C2, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 16_16_16, 0),
391
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
484
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16_16_16, 0),
 
485
    VERTEX_BUFFER },
392
486
 
393
487
   [PIPE_FORMAT_R16G16_SSCALED] = { 0,
394
 
    A_(C0, C1, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 16_16, 0),
395
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
488
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16_16, 0),
 
489
    VERTEX_BUFFER },
396
490
 
397
491
   [PIPE_FORMAT_R16_SSCALED] = { 0,
398
 
    A_(C0, ZERO, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 16, 0),
399
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
492
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 16, 0),
 
493
    VERTEX_BUFFER },
400
494
 
401
495
   /* USCALED 16 */
402
496
 
403
497
   [PIPE_FORMAT_R16G16B16A16_USCALED] = { 0,
404
498
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 16_16_16_16, 0),
405
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
499
    VERTEX_BUFFER },
406
500
 
407
501
   [PIPE_FORMAT_R16G16B16_USCALED] = { 0,
408
 
    A_(C0, C1, C2, ONE, USCALED, USCALED, USCALED, USCALED, 16_16_16, 0),
409
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
502
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16_16_16, 0),
 
503
    VERTEX_BUFFER },
410
504
 
411
505
   [PIPE_FORMAT_R16G16_USCALED] = { 0,
412
 
    A_(C0, C1, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 16_16, 0),
413
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
506
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16_16, 0),
 
507
    VERTEX_BUFFER },
414
508
 
415
509
   [PIPE_FORMAT_R16_USCALED] = { 0,
416
 
    A_(C0, ZERO, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 16, 0),
417
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
510
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 16, 0),
 
511
    VERTEX_BUFFER },
418
512
 
419
513
   /* SSCALED 8 */
420
514
 
421
515
   [PIPE_FORMAT_R8G8B8A8_SSCALED] = { 0,
422
516
    A_(C0, C1, C2, C3, SSCALED, SSCALED, SSCALED, SSCALED, 8_8_8_8, 0),
423
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
517
    VERTEX_BUFFER },
424
518
 
425
519
   [PIPE_FORMAT_R8G8B8_SSCALED] = { 0,
426
 
    A_(C0, C1, C2, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 8_8_8, 0),
427
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
520
    A_(C0, C1, C2, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8_8_8, 0),
 
521
    VERTEX_BUFFER },
428
522
 
429
523
   [PIPE_FORMAT_R8G8_SSCALED] = { 0,
430
 
    A_(C0, C1, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 8_8, 0),
431
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
524
    A_(C0, C1, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8_8, 0),
 
525
    VERTEX_BUFFER },
432
526
 
433
527
   [PIPE_FORMAT_R8_SSCALED] = { 0,
434
 
    A_(C0, ZERO, ZERO, ONE, SSCALED, SSCALED, SSCALED, SSCALED, 8, 0),
435
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
528
    A_(C0, ZERO, ZERO, ONE_FLOAT, SSCALED, SSCALED, SSCALED, SSCALED, 8, 0),
 
529
    VERTEX_BUFFER },
436
530
 
437
531
   /* USCALED 8 */
438
532
 
439
533
   [PIPE_FORMAT_R8G8B8A8_USCALED] = { 0,
440
534
    A_(C0, C1, C2, C3, USCALED, USCALED, USCALED, USCALED, 8_8_8_8, 0),
441
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
535
    VERTEX_BUFFER },
442
536
 
443
537
   [PIPE_FORMAT_R8G8B8_USCALED] = { 0,
444
 
    A_(C0, C1, C2, ONE, USCALED, USCALED, USCALED, USCALED, 8_8_8, 0),
445
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
538
    A_(C0, C1, C2, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8_8_8, 0),
 
539
    VERTEX_BUFFER },
446
540
 
447
541
   [PIPE_FORMAT_R8G8_USCALED] = { 0,
448
 
    A_(C0, C1, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 8_8, 0),
449
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
542
    A_(C0, C1, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8_8, 0),
 
543
    VERTEX_BUFFER },
450
544
 
451
545
   [PIPE_FORMAT_R8_USCALED] = { 0,
452
 
    A_(C0, ZERO, ZERO, ONE, USCALED, USCALED, USCALED, USCALED, 8, 0),
453
 
    VERTEX_BUFFER | SAMPLER_VIEW },
 
546
    A_(C0, ZERO, ZERO, ONE_FLOAT, USCALED, USCALED, USCALED, USCALED, 8, 0),
 
547
    VERTEX_BUFFER },
 
548
 
 
549
   /* OTHER FORMATS */
 
550
 
 
551
   [PIPE_FORMAT_R8G8_B8G8_UNORM] = { 0,
 
552
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, C1_C2_C1_C0, 0),
 
553
    SAMPLER_VIEW },
 
554
 
 
555
   [PIPE_FORMAT_G8R8_G8B8_UNORM] = { 0,
 
556
    B_(C0, C1, C2, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, C2_C1_C0_C1, 0),
 
557
    SAMPLER_VIEW },
 
558
 
 
559
   [PIPE_FORMAT_R8SG8SB8UX8U_NORM] = { 0,
 
560
    B_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 8_8_8_8, 0),
 
561
    SAMPLER_VIEW },
 
562
 
 
563
   [PIPE_FORMAT_R5SG5SB6U_NORM] = { 0,
 
564
    B_(C0, C1, C2, ONE_FLOAT, SNORM, SNORM, UNORM, UNORM, 6_5_5, 0),
 
565
    SAMPLER_VIEW },
 
566
 
 
567
   [PIPE_FORMAT_R1_UNORM] = { 0,
 
568
    B_(C0, ZERO, ZERO, ONE_FLOAT, UNORM, UNORM, UNORM, UNORM, BITMAP_8X8, 0),
 
569
    SAMPLER_VIEW },
 
570
 
 
571
   [PIPE_FORMAT_A8B8G8R8_UNORM] = { 0,
 
572
    B_(C3, C2, C1, C0, UNORM, UNORM, UNORM, UNORM, 8_8_8_8, 0),
 
573
    SAMPLER_VIEW },
 
574
 
 
575
   /* FIXED FORMATS - hw doesn't support these, convert on vbo push for now */
 
576
 
 
577
   [PIPE_FORMAT_R32G32B32A32_FIXED] = { 0,
 
578
    B_(C0, C1, C2, C3, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32_32, 0),
 
579
    VERTEX_BUFFER },
 
580
 
 
581
   [PIPE_FORMAT_R32G32B32_FIXED] = { 0,
 
582
    B_(C0, C1, C2, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32_32, 0),
 
583
    VERTEX_BUFFER },
 
584
 
 
585
   [PIPE_FORMAT_R32G32_FIXED] = { 0,
 
586
    B_(C0, C1, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32_32, 0),
 
587
    VERTEX_BUFFER },
 
588
 
 
589
   [PIPE_FORMAT_R32_FIXED] = { 0,
 
590
    B_(C0, ZERO, ZERO, ONE_FLOAT, FLOAT, FLOAT, FLOAT, FLOAT, 32, 0),
 
591
    VERTEX_BUFFER },
454
592
};