1/**********************************************************
2 * Copyright 2008-2021 VMware, Inc.
3 * SPDX-License-Identifier: GPL-2.0 OR MIT
4 *
5 * Permission is hereby granted, free of charge, to any person
6 * obtaining a copy of this software and associated documentation
7 * files (the "Software"), to deal in the Software without
8 * restriction, including without limitation the rights to use, copy,
9 * modify, merge, publish, distribute, sublicense, and/or sell copies
10 * of the Software, and to permit persons to whom the Software is
11 * furnished to do so, subject to the following conditions:
12 *
13 * The above copyright notice and this permission notice shall be
14 * included in all copies or substantial portions of the Software.
15 *
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
20 * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
21 * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
22 * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
23 * SOFTWARE.
24 *
25 **********************************************************/
26
27/*
28 * svga3d_surfacedefs.h --
29 *
30 * Surface definitions for SVGA3d.
31 */
32
33
34
35#ifndef _SVGA3D_SURFACEDEFS_H_
36#define _SVGA3D_SURFACEDEFS_H_
37
38#include "svga3d_types.h"
39
40#ifdef __cplusplus
41extern "C" {
42#endif
43
44struct SVGAUseCaps;
45
46#if defined(_WIN32) && !defined(__GNUC__)
47
48#define STATIC_CONST __declspec(selectany) extern const
49#else
50#define STATIC_CONST static const
51#endif
52
53typedef enum SVGA3dBlockDesc {
54
55 SVGA3DBLOCKDESC_NONE = 0,
56
57 SVGA3DBLOCKDESC_BLUE = 1 << 0,
58 SVGA3DBLOCKDESC_W = 1 << 0,
59 SVGA3DBLOCKDESC_BUMP_L = 1 << 0,
60
61 SVGA3DBLOCKDESC_GREEN = 1 << 1,
62 SVGA3DBLOCKDESC_V = 1 << 1,
63
64 SVGA3DBLOCKDESC_RED = 1 << 2,
65 SVGA3DBLOCKDESC_U = 1 << 2,
66 SVGA3DBLOCKDESC_LUMINANCE = 1 << 2,
67
68 SVGA3DBLOCKDESC_ALPHA = 1 << 3,
69 SVGA3DBLOCKDESC_Q = 1 << 3,
70
71 SVGA3DBLOCKDESC_BUFFER = 1 << 4,
72
73 SVGA3DBLOCKDESC_COMPRESSED = 1 << 5,
74
75 SVGA3DBLOCKDESC_FP = 1 << 6,
76
77 SVGA3DBLOCKDESC_PLANAR_YUV = 1 << 7,
78
79 SVGA3DBLOCKDESC_2PLANAR_YUV = 1 << 8,
80
81 SVGA3DBLOCKDESC_3PLANAR_YUV = 1 << 9,
82
83 SVGA3DBLOCKDESC_STENCIL = 1 << 11,
84
85 SVGA3DBLOCKDESC_TYPELESS = 1 << 12,
86
87 SVGA3DBLOCKDESC_SINT = 1 << 13,
88
89 SVGA3DBLOCKDESC_UINT = 1 << 14,
90
91 SVGA3DBLOCKDESC_NORM = 1 << 15,
92
93 SVGA3DBLOCKDESC_SRGB = 1 << 16,
94
95 SVGA3DBLOCKDESC_EXP = 1 << 17,
96
97 SVGA3DBLOCKDESC_COLOR = 1 << 18,
98
99 SVGA3DBLOCKDESC_DEPTH = 1 << 19,
100
101 SVGA3DBLOCKDESC_BUMP = 1 << 20,
102
103 SVGA3DBLOCKDESC_YUV_VIDEO = 1 << 21,
104
105 SVGA3DBLOCKDESC_MIXED = 1 << 22,
106
107 SVGA3DBLOCKDESC_CX = 1 << 23,
108
109 SVGA3DBLOCKDESC_BC1 = 1 << 24,
110 SVGA3DBLOCKDESC_BC2 = 1 << 25,
111 SVGA3DBLOCKDESC_BC3 = 1 << 26,
112 SVGA3DBLOCKDESC_BC4 = 1 << 27,
113 SVGA3DBLOCKDESC_BC5 = 1 << 28,
114 SVGA3DBLOCKDESC_BC6H = 1 << 29,
115 SVGA3DBLOCKDESC_BC7 = 1 << 30,
116 SVGA3DBLOCKDESC_COMPRESSED_MASK =
117 SVGA3DBLOCKDESC_BC1 | SVGA3DBLOCKDESC_BC2 |
118 SVGA3DBLOCKDESC_BC3 | SVGA3DBLOCKDESC_BC4 |
119 SVGA3DBLOCKDESC_BC5 | SVGA3DBLOCKDESC_BC6H |
120 SVGA3DBLOCKDESC_BC7,
121
122 SVGA3DBLOCKDESC_A_UINT = SVGA3DBLOCKDESC_ALPHA | SVGA3DBLOCKDESC_UINT |
123 SVGA3DBLOCKDESC_COLOR,
124 SVGA3DBLOCKDESC_A_UNORM = SVGA3DBLOCKDESC_A_UINT | SVGA3DBLOCKDESC_NORM,
125 SVGA3DBLOCKDESC_R_UINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_UINT |
126 SVGA3DBLOCKDESC_COLOR,
127 SVGA3DBLOCKDESC_R_UNORM = SVGA3DBLOCKDESC_R_UINT | SVGA3DBLOCKDESC_NORM,
128 SVGA3DBLOCKDESC_R_SINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_SINT |
129 SVGA3DBLOCKDESC_COLOR,
130 SVGA3DBLOCKDESC_R_SNORM = SVGA3DBLOCKDESC_R_SINT | SVGA3DBLOCKDESC_NORM,
131 SVGA3DBLOCKDESC_G_UINT = SVGA3DBLOCKDESC_GREEN | SVGA3DBLOCKDESC_UINT |
132 SVGA3DBLOCKDESC_COLOR,
133 SVGA3DBLOCKDESC_RG_UINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
134 SVGA3DBLOCKDESC_UINT | SVGA3DBLOCKDESC_COLOR,
135 SVGA3DBLOCKDESC_RG_UNORM =
136 SVGA3DBLOCKDESC_RG_UINT | SVGA3DBLOCKDESC_NORM,
137 SVGA3DBLOCKDESC_RG_SINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
138 SVGA3DBLOCKDESC_SINT | SVGA3DBLOCKDESC_COLOR,
139 SVGA3DBLOCKDESC_RG_SNORM =
140 SVGA3DBLOCKDESC_RG_SINT | SVGA3DBLOCKDESC_NORM,
141 SVGA3DBLOCKDESC_RGB_UINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
142 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_UINT |
143 SVGA3DBLOCKDESC_COLOR,
144 SVGA3DBLOCKDESC_RGB_SINT = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
145 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_SINT |
146 SVGA3DBLOCKDESC_COLOR,
147 SVGA3DBLOCKDESC_RGB_UNORM =
148 SVGA3DBLOCKDESC_RGB_UINT | SVGA3DBLOCKDESC_NORM,
149 SVGA3DBLOCKDESC_RGB_UNORM_SRGB =
150 SVGA3DBLOCKDESC_RGB_UNORM | SVGA3DBLOCKDESC_SRGB,
151 SVGA3DBLOCKDESC_RGBA_UINT =
152 SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
153 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_ALPHA |
154 SVGA3DBLOCKDESC_UINT | SVGA3DBLOCKDESC_COLOR,
155 SVGA3DBLOCKDESC_RGBA_UNORM =
156 SVGA3DBLOCKDESC_RGBA_UINT | SVGA3DBLOCKDESC_NORM,
157 SVGA3DBLOCKDESC_RGBA_UNORM_SRGB =
158 SVGA3DBLOCKDESC_RGBA_UNORM | SVGA3DBLOCKDESC_SRGB,
159 SVGA3DBLOCKDESC_RGBA_SINT =
160 SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
161 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_ALPHA |
162 SVGA3DBLOCKDESC_SINT | SVGA3DBLOCKDESC_COLOR,
163 SVGA3DBLOCKDESC_RGBA_SNORM =
164 SVGA3DBLOCKDESC_RGBA_SINT | SVGA3DBLOCKDESC_NORM,
165 SVGA3DBLOCKDESC_RGBA_FP = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
166 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_ALPHA |
167 SVGA3DBLOCKDESC_FP | SVGA3DBLOCKDESC_COLOR,
168 SVGA3DBLOCKDESC_UV =
169 SVGA3DBLOCKDESC_U | SVGA3DBLOCKDESC_V | SVGA3DBLOCKDESC_BUMP,
170 SVGA3DBLOCKDESC_UVL = SVGA3DBLOCKDESC_UV | SVGA3DBLOCKDESC_BUMP_L |
171 SVGA3DBLOCKDESC_MIXED | SVGA3DBLOCKDESC_BUMP,
172 SVGA3DBLOCKDESC_UVW =
173 SVGA3DBLOCKDESC_UV | SVGA3DBLOCKDESC_W | SVGA3DBLOCKDESC_BUMP,
174 SVGA3DBLOCKDESC_UVWA = SVGA3DBLOCKDESC_UVW | SVGA3DBLOCKDESC_ALPHA |
175 SVGA3DBLOCKDESC_MIXED | SVGA3DBLOCKDESC_BUMP,
176 SVGA3DBLOCKDESC_UVWQ = SVGA3DBLOCKDESC_U | SVGA3DBLOCKDESC_V |
177 SVGA3DBLOCKDESC_W | SVGA3DBLOCKDESC_Q |
178 SVGA3DBLOCKDESC_BUMP,
179 SVGA3DBLOCKDESC_L_UNORM = SVGA3DBLOCKDESC_LUMINANCE |
180 SVGA3DBLOCKDESC_UINT | SVGA3DBLOCKDESC_NORM |
181 SVGA3DBLOCKDESC_COLOR,
182 SVGA3DBLOCKDESC_LA_UNORM = SVGA3DBLOCKDESC_LUMINANCE |
183 SVGA3DBLOCKDESC_ALPHA |
184 SVGA3DBLOCKDESC_UINT | SVGA3DBLOCKDESC_NORM |
185 SVGA3DBLOCKDESC_COLOR,
186 SVGA3DBLOCKDESC_R_FP = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_FP |
187 SVGA3DBLOCKDESC_COLOR,
188 SVGA3DBLOCKDESC_RG_FP = SVGA3DBLOCKDESC_R_FP | SVGA3DBLOCKDESC_GREEN |
189 SVGA3DBLOCKDESC_COLOR,
190 SVGA3DBLOCKDESC_RGB_FP = SVGA3DBLOCKDESC_RG_FP | SVGA3DBLOCKDESC_BLUE |
191 SVGA3DBLOCKDESC_COLOR,
192 SVGA3DBLOCKDESC_YUV = SVGA3DBLOCKDESC_YUV_VIDEO | SVGA3DBLOCKDESC_COLOR,
193 SVGA3DBLOCKDESC_AYUV = SVGA3DBLOCKDESC_ALPHA |
194 SVGA3DBLOCKDESC_YUV_VIDEO |
195 SVGA3DBLOCKDESC_COLOR,
196 SVGA3DBLOCKDESC_RGB_EXP = SVGA3DBLOCKDESC_RED | SVGA3DBLOCKDESC_GREEN |
197 SVGA3DBLOCKDESC_BLUE | SVGA3DBLOCKDESC_EXP |
198 SVGA3DBLOCKDESC_COLOR,
199
200 SVGA3DBLOCKDESC_COMP_TYPELESS =
201 SVGA3DBLOCKDESC_COMPRESSED | SVGA3DBLOCKDESC_TYPELESS,
202 SVGA3DBLOCKDESC_COMP_UNORM =
203 SVGA3DBLOCKDESC_COMPRESSED | SVGA3DBLOCKDESC_UINT |
204 SVGA3DBLOCKDESC_NORM | SVGA3DBLOCKDESC_COLOR,
205 SVGA3DBLOCKDESC_COMP_SNORM =
206 SVGA3DBLOCKDESC_COMPRESSED | SVGA3DBLOCKDESC_SINT |
207 SVGA3DBLOCKDESC_NORM | SVGA3DBLOCKDESC_COLOR,
208 SVGA3DBLOCKDESC_COMP_UNORM_SRGB =
209 SVGA3DBLOCKDESC_COMP_UNORM | SVGA3DBLOCKDESC_SRGB,
210 SVGA3DBLOCKDESC_BC1_COMP_TYPELESS =
211 SVGA3DBLOCKDESC_BC1 | SVGA3DBLOCKDESC_COMP_TYPELESS,
212 SVGA3DBLOCKDESC_BC1_COMP_UNORM =
213 SVGA3DBLOCKDESC_BC1 | SVGA3DBLOCKDESC_COMP_UNORM,
214 SVGA3DBLOCKDESC_BC1_COMP_UNORM_SRGB =
215 SVGA3DBLOCKDESC_BC1_COMP_UNORM | SVGA3DBLOCKDESC_SRGB,
216 SVGA3DBLOCKDESC_BC2_COMP_TYPELESS =
217 SVGA3DBLOCKDESC_BC2 | SVGA3DBLOCKDESC_COMP_TYPELESS,
218 SVGA3DBLOCKDESC_BC2_COMP_UNORM =
219 SVGA3DBLOCKDESC_BC2 | SVGA3DBLOCKDESC_COMP_UNORM,
220 SVGA3DBLOCKDESC_BC2_COMP_UNORM_SRGB =
221 SVGA3DBLOCKDESC_BC2_COMP_UNORM | SVGA3DBLOCKDESC_SRGB,
222 SVGA3DBLOCKDESC_BC3_COMP_TYPELESS =
223 SVGA3DBLOCKDESC_BC3 | SVGA3DBLOCKDESC_COMP_TYPELESS,
224 SVGA3DBLOCKDESC_BC3_COMP_UNORM =
225 SVGA3DBLOCKDESC_BC3 | SVGA3DBLOCKDESC_COMP_UNORM,
226 SVGA3DBLOCKDESC_BC3_COMP_UNORM_SRGB =
227 SVGA3DBLOCKDESC_BC3_COMP_UNORM | SVGA3DBLOCKDESC_SRGB,
228 SVGA3DBLOCKDESC_BC4_COMP_TYPELESS =
229 SVGA3DBLOCKDESC_BC4 | SVGA3DBLOCKDESC_COMP_TYPELESS,
230 SVGA3DBLOCKDESC_BC4_COMP_UNORM =
231 SVGA3DBLOCKDESC_BC4 | SVGA3DBLOCKDESC_COMP_UNORM,
232 SVGA3DBLOCKDESC_BC4_COMP_SNORM =
233 SVGA3DBLOCKDESC_BC4 | SVGA3DBLOCKDESC_COMP_SNORM,
234 SVGA3DBLOCKDESC_BC5_COMP_TYPELESS =
235 SVGA3DBLOCKDESC_BC5 | SVGA3DBLOCKDESC_COMP_TYPELESS,
236 SVGA3DBLOCKDESC_BC5_COMP_UNORM =
237 SVGA3DBLOCKDESC_BC5 | SVGA3DBLOCKDESC_COMP_UNORM,
238 SVGA3DBLOCKDESC_BC5_COMP_SNORM =
239 SVGA3DBLOCKDESC_BC5 | SVGA3DBLOCKDESC_COMP_SNORM,
240 SVGA3DBLOCKDESC_BC6H_COMP_TYPELESS =
241 SVGA3DBLOCKDESC_BC6H | SVGA3DBLOCKDESC_COMP_TYPELESS,
242 SVGA3DBLOCKDESC_BC6H_COMP_UF16 =
243 SVGA3DBLOCKDESC_BC6H | SVGA3DBLOCKDESC_COMPRESSED,
244 SVGA3DBLOCKDESC_BC6H_COMP_SF16 =
245 SVGA3DBLOCKDESC_BC6H | SVGA3DBLOCKDESC_COMPRESSED,
246 SVGA3DBLOCKDESC_BC7_COMP_TYPELESS =
247 SVGA3DBLOCKDESC_BC7 | SVGA3DBLOCKDESC_COMP_TYPELESS,
248 SVGA3DBLOCKDESC_BC7_COMP_UNORM =
249 SVGA3DBLOCKDESC_BC7 | SVGA3DBLOCKDESC_COMP_UNORM,
250 SVGA3DBLOCKDESC_BC7_COMP_UNORM_SRGB =
251 SVGA3DBLOCKDESC_BC7_COMP_UNORM | SVGA3DBLOCKDESC_SRGB,
252
253 SVGA3DBLOCKDESC_NV12 =
254 SVGA3DBLOCKDESC_YUV_VIDEO | SVGA3DBLOCKDESC_PLANAR_YUV |
255 SVGA3DBLOCKDESC_2PLANAR_YUV | SVGA3DBLOCKDESC_COLOR,
256 SVGA3DBLOCKDESC_YV12 =
257 SVGA3DBLOCKDESC_YUV_VIDEO | SVGA3DBLOCKDESC_PLANAR_YUV |
258 SVGA3DBLOCKDESC_3PLANAR_YUV | SVGA3DBLOCKDESC_COLOR,
259
260 SVGA3DBLOCKDESC_DEPTH_UINT =
261 SVGA3DBLOCKDESC_DEPTH | SVGA3DBLOCKDESC_UINT,
262 SVGA3DBLOCKDESC_DEPTH_UNORM =
263 SVGA3DBLOCKDESC_DEPTH_UINT | SVGA3DBLOCKDESC_NORM,
264 SVGA3DBLOCKDESC_DS = SVGA3DBLOCKDESC_DEPTH | SVGA3DBLOCKDESC_STENCIL,
265 SVGA3DBLOCKDESC_DS_UINT = SVGA3DBLOCKDESC_DEPTH |
266 SVGA3DBLOCKDESC_STENCIL |
267 SVGA3DBLOCKDESC_UINT,
268 SVGA3DBLOCKDESC_DS_UNORM =
269 SVGA3DBLOCKDESC_DS_UINT | SVGA3DBLOCKDESC_NORM,
270 SVGA3DBLOCKDESC_DEPTH_FP = SVGA3DBLOCKDESC_DEPTH | SVGA3DBLOCKDESC_FP,
271
272 SVGA3DBLOCKDESC_UV_UINT = SVGA3DBLOCKDESC_UV | SVGA3DBLOCKDESC_UINT,
273 SVGA3DBLOCKDESC_UV_SNORM = SVGA3DBLOCKDESC_UV | SVGA3DBLOCKDESC_SINT |
274 SVGA3DBLOCKDESC_NORM,
275 SVGA3DBLOCKDESC_UVCX_SNORM =
276 SVGA3DBLOCKDESC_UV_SNORM | SVGA3DBLOCKDESC_CX,
277 SVGA3DBLOCKDESC_UVWQ_SNORM = SVGA3DBLOCKDESC_UVWQ |
278 SVGA3DBLOCKDESC_SINT |
279 SVGA3DBLOCKDESC_NORM,
280} SVGA3dBlockDesc;
281
282typedef struct SVGA3dChannelDef {
283 union {
284 uint8 blue;
285 uint8 w_bump;
286 uint8 l_bump;
287 uint8 uv_video;
288 uint8 u_video;
289 };
290 union {
291 uint8 green;
292 uint8 stencil;
293 uint8 v_bump;
294 uint8 v_video;
295 };
296 union {
297 uint8 red;
298 uint8 u_bump;
299 uint8 luminance;
300 uint8 y_video;
301 uint8 depth;
302 uint8 data;
303 };
304 union {
305 uint8 alpha;
306 uint8 q_bump;
307 uint8 exp;
308 };
309} SVGA3dChannelDef;
310
311typedef struct SVGA3dSurfaceDesc {
312 SVGA3dSurfaceFormat format;
313 SVGA3dBlockDesc blockDesc;
314
315 SVGA3dSize blockSize;
316 uint32 bytesPerBlock;
317 uint32 pitchBytesPerBlock;
318
319 SVGA3dChannelDef bitDepth;
320 SVGA3dChannelDef bitOffset;
321} SVGA3dSurfaceDesc;
322
323STATIC_CONST SVGA3dSurfaceDesc g_SVGA3dSurfaceDescs[] = {
324 { SVGA3D_FORMAT_INVALID,
325 SVGA3DBLOCKDESC_NONE,
326 { .width: 1, .height: 1, .depth: 1 },
327 0,
328 0,
329 { { 0 }, { 0 }, { 0 }, { 0 } },
330 { { 0 }, { 0 }, { 0 }, { 0 } } },
331
332 { SVGA3D_X8R8G8B8,
333 SVGA3DBLOCKDESC_RGB_UNORM,
334 { 1, 1, 1 },
335 4,
336 4,
337 { { 8 }, { 8 }, { 8 }, { 0 } },
338 { { 0 }, { 8 }, { 16 }, { 24 } } },
339
340 { SVGA3D_A8R8G8B8,
341 SVGA3DBLOCKDESC_RGBA_UNORM,
342 { 1, 1, 1 },
343 4,
344 4,
345 { { 8 }, { 8 }, { 8 }, { 8 } },
346 { { 0 }, { 8 }, { 16 }, { 24 } } },
347
348 { SVGA3D_R5G6B5,
349 SVGA3DBLOCKDESC_RGB_UNORM,
350 { 1, 1, 1 },
351 2,
352 2,
353 { { 5 }, { 6 }, { 5 }, { 0 } },
354 { { 0 }, { 5 }, { 11 }, { 0 } } },
355
356 { SVGA3D_X1R5G5B5,
357 SVGA3DBLOCKDESC_RGB_UNORM,
358 { 1, 1, 1 },
359 2,
360 2,
361 { { 5 }, { 5 }, { 5 }, { 0 } },
362 { { 0 }, { 5 }, { 10 }, { 0 } } },
363
364 { SVGA3D_A1R5G5B5,
365 SVGA3DBLOCKDESC_RGBA_UNORM,
366 { 1, 1, 1 },
367 2,
368 2,
369 { { 5 }, { 5 }, { 5 }, { 1 } },
370 { { 0 }, { 5 }, { 10 }, { 15 } } },
371
372 { SVGA3D_A4R4G4B4,
373 SVGA3DBLOCKDESC_RGBA_UNORM,
374 { 1, 1, 1 },
375 2,
376 2,
377 { { 4 }, { 4 }, { 4 }, { 4 } },
378 { { 0 }, { 4 }, { 8 }, { 12 } } },
379
380 { SVGA3D_Z_D32,
381 SVGA3DBLOCKDESC_DEPTH_UNORM,
382 { 1, 1, 1 },
383 4,
384 4,
385 { { 0 }, { 0 }, { 32 }, { 0 } },
386 { { 0 }, { 0 }, { 0 }, { 0 } } },
387
388 { SVGA3D_Z_D16,
389 SVGA3DBLOCKDESC_DEPTH_UNORM,
390 { 1, 1, 1 },
391 2,
392 2,
393 { { 0 }, { 0 }, { 16 }, { 0 } },
394 { { 0 }, { 0 }, { 0 }, { 0 } } },
395
396 { SVGA3D_Z_D24S8,
397 SVGA3DBLOCKDESC_DS_UNORM,
398 { 1, 1, 1 },
399 4,
400 4,
401 { { 0 }, { 8 }, { 24 }, { 0 } },
402 { { 0 }, { 0 }, { 8 }, { 0 } } },
403
404 { SVGA3D_Z_D15S1,
405 SVGA3DBLOCKDESC_DS_UNORM,
406 { 1, 1, 1 },
407 2,
408 2,
409 { { 0 }, { 1 }, { 15 }, { 0 } },
410 { { 0 }, { 0 }, { 1 }, { 0 } } },
411
412 { SVGA3D_LUMINANCE8,
413 SVGA3DBLOCKDESC_L_UNORM,
414 { 1, 1, 1 },
415 1,
416 1,
417 { { 0 }, { 0 }, { 8 }, { 0 } },
418 { { 0 }, { 0 }, { 0 }, { 0 } } },
419
420 { SVGA3D_LUMINANCE4_ALPHA4,
421 SVGA3DBLOCKDESC_LA_UNORM,
422 { 1, 1, 1 },
423 1,
424 1,
425 { { 0 }, { 0 }, { 4 }, { 4 } },
426 { { 0 }, { 0 }, { 0 }, { 4 } } },
427
428 { SVGA3D_LUMINANCE16,
429 SVGA3DBLOCKDESC_L_UNORM,
430 { 1, 1, 1 },
431 2,
432 2,
433 { { 0 }, { 0 }, { 16 }, { 0 } },
434 { { 0 }, { 0 }, { 0 }, { 0 } } },
435
436 { SVGA3D_LUMINANCE8_ALPHA8,
437 SVGA3DBLOCKDESC_LA_UNORM,
438 { 1, 1, 1 },
439 2,
440 2,
441 { { 0 }, { 0 }, { 8 }, { 8 } },
442 { { 0 }, { 0 }, { 0 }, { 8 } } },
443
444 { SVGA3D_DXT1,
445 SVGA3DBLOCKDESC_BC1_COMP_UNORM,
446 { 4, 4, 1 },
447 8,
448 8,
449 { { 0 }, { 0 }, { 64 }, { 0 } },
450 { { 0 }, { 0 }, { 0 }, { 0 } } },
451
452 { SVGA3D_DXT2,
453 SVGA3DBLOCKDESC_BC2_COMP_UNORM,
454 { 4, 4, 1 },
455 16,
456 16,
457 { { 0 }, { 0 }, { 128 }, { 0 } },
458 { { 0 }, { 0 }, { 0 }, { 0 } } },
459
460 { SVGA3D_DXT3,
461 SVGA3DBLOCKDESC_BC2_COMP_UNORM,
462 { 4, 4, 1 },
463 16,
464 16,
465 { { 0 }, { 0 }, { 128 }, { 0 } },
466 { { 0 }, { 0 }, { 0 }, { 0 } } },
467
468 { SVGA3D_DXT4,
469 SVGA3DBLOCKDESC_BC3_COMP_UNORM,
470 { 4, 4, 1 },
471 16,
472 16,
473 { { 0 }, { 0 }, { 128 }, { 0 } },
474 { { 0 }, { 0 }, { 0 }, { 0 } } },
475
476 { SVGA3D_DXT5,
477 SVGA3DBLOCKDESC_BC3_COMP_UNORM,
478 { 4, 4, 1 },
479 16,
480 16,
481 { { 0 }, { 0 }, { 128 }, { 0 } },
482 { { 0 }, { 0 }, { 0 }, { 0 } } },
483
484 { SVGA3D_BUMPU8V8,
485 SVGA3DBLOCKDESC_UV_SNORM,
486 { 1, 1, 1 },
487 2,
488 2,
489 { { 0 }, { 8 }, { 8 }, { 0 } },
490 { { 0 }, { 8 }, { 0 }, { 0 } } },
491
492 { SVGA3D_BUMPL6V5U5,
493 SVGA3DBLOCKDESC_UVL,
494 { 1, 1, 1 },
495 2,
496 2,
497 { { 6 }, { 5 }, { 5 }, { 0 } },
498 { { 10 }, { 5 }, { 0 }, { 0 } } },
499
500 { SVGA3D_BUMPX8L8V8U8,
501 SVGA3DBLOCKDESC_UVL,
502 { 1, 1, 1 },
503 4,
504 4,
505 { { 8 }, { 8 }, { 8 }, { 0 } },
506 { { 16 }, { 8 }, { 0 }, { 0 } } },
507
508 { SVGA3D_FORMAT_DEAD1,
509 SVGA3DBLOCKDESC_NONE,
510 { 1, 1, 1 },
511 3,
512 3,
513 { { 8 }, { 8 }, { 8 }, { 0 } },
514 { { 16 }, { 8 }, { 0 }, { 0 } } },
515
516 { SVGA3D_ARGB_S10E5,
517 SVGA3DBLOCKDESC_RGBA_FP,
518 { 1, 1, 1 },
519 8,
520 8,
521 { { 16 }, { 16 }, { 16 }, { 16 } },
522 { { 32 }, { 16 }, { 0 }, { 48 } } },
523
524 { SVGA3D_ARGB_S23E8,
525 SVGA3DBLOCKDESC_RGBA_FP,
526 { 1, 1, 1 },
527 16,
528 16,
529 { { 32 }, { 32 }, { 32 }, { 32 } },
530 { { 64 }, { 32 }, { 0 }, { 96 } } },
531
532 { SVGA3D_A2R10G10B10,
533 SVGA3DBLOCKDESC_RGBA_UNORM,
534 { 1, 1, 1 },
535 4,
536 4,
537 { { 10 }, { 10 }, { 10 }, { 2 } },
538 { { 0 }, { 10 }, { 20 }, { 30 } } },
539
540 { SVGA3D_V8U8,
541 SVGA3DBLOCKDESC_UV_SNORM,
542 { 1, 1, 1 },
543 2,
544 2,
545 { { 0 }, { 8 }, { 8 }, { 0 } },
546 { { 0 }, { 8 }, { 0 }, { 0 } } },
547
548 { SVGA3D_Q8W8V8U8,
549 SVGA3DBLOCKDESC_UVWQ_SNORM,
550 { 1, 1, 1 },
551 4,
552 4,
553 { { 8 }, { 8 }, { 8 }, { 8 } },
554 { { 16 }, { 8 }, { 0 }, { 24 } } },
555
556 { SVGA3D_CxV8U8,
557 SVGA3DBLOCKDESC_UVCX_SNORM,
558 { 1, 1, 1 },
559 2,
560 2,
561 { { 0 }, { 8 }, { 8 }, { 0 } },
562 { { 0 }, { 8 }, { 0 }, { 0 } } },
563
564 { SVGA3D_X8L8V8U8,
565 SVGA3DBLOCKDESC_UVL,
566 { 1, 1, 1 },
567 4,
568 4,
569 { { 8 }, { 8 }, { 8 }, { 0 } },
570 { { 16 }, { 8 }, { 0 }, { 0 } } },
571
572 { SVGA3D_A2W10V10U10,
573 SVGA3DBLOCKDESC_UVWA,
574 { 1, 1, 1 },
575 4,
576 4,
577 { { 10 }, { 10 }, { 10 }, { 2 } },
578 { { 20 }, { 10 }, { 0 }, { 30 } } },
579
580 { SVGA3D_ALPHA8,
581 SVGA3DBLOCKDESC_A_UNORM,
582 { 1, 1, 1 },
583 1,
584 1,
585 { { 0 }, { 0 }, { 0 }, { 8 } },
586 { { 0 }, { 0 }, { 0 }, { 0 } } },
587
588 { SVGA3D_R_S10E5,
589 SVGA3DBLOCKDESC_R_FP,
590 { 1, 1, 1 },
591 2,
592 2,
593 { { 0 }, { 0 }, { 16 }, { 0 } },
594 { { 0 }, { 0 }, { 0 }, { 0 } } },
595
596 { SVGA3D_R_S23E8,
597 SVGA3DBLOCKDESC_R_FP,
598 { 1, 1, 1 },
599 4,
600 4,
601 { { 0 }, { 0 }, { 32 }, { 0 } },
602 { { 0 }, { 0 }, { 0 }, { 0 } } },
603
604 { SVGA3D_RG_S10E5,
605 SVGA3DBLOCKDESC_RG_FP,
606 { 1, 1, 1 },
607 4,
608 4,
609 { { 0 }, { 16 }, { 16 }, { 0 } },
610 { { 0 }, { 16 }, { 0 }, { 0 } } },
611
612 { SVGA3D_RG_S23E8,
613 SVGA3DBLOCKDESC_RG_FP,
614 { 1, 1, 1 },
615 8,
616 8,
617 { { 0 }, { 32 }, { 32 }, { 0 } },
618 { { 0 }, { 32 }, { 0 }, { 0 } } },
619
620 { SVGA3D_BUFFER,
621 SVGA3DBLOCKDESC_BUFFER,
622 { 1, 1, 1 },
623 1,
624 1,
625 { { 0 }, { 0 }, { 8 }, { 0 } },
626 { { 0 }, { 0 }, { 0 }, { 0 } } },
627
628 { SVGA3D_Z_D24X8,
629 SVGA3DBLOCKDESC_DEPTH_UNORM,
630 { 1, 1, 1 },
631 4,
632 4,
633 { { 0 }, { 0 }, { 24 }, { 0 } },
634 { { 0 }, { 0 }, { 8 }, { 0 } } },
635
636 { SVGA3D_V16U16,
637 SVGA3DBLOCKDESC_UV_SNORM,
638 { 1, 1, 1 },
639 4,
640 4,
641 { { 0 }, { 16 }, { 16 }, { 0 } },
642 { { 0 }, { 16 }, { 0 }, { 0 } } },
643
644 { SVGA3D_G16R16,
645 SVGA3DBLOCKDESC_RG_UNORM,
646 { 1, 1, 1 },
647 4,
648 4,
649 { { 0 }, { 16 }, { 16 }, { 0 } },
650 { { 0 }, { 16 }, { 0 }, { 0 } } },
651
652 { SVGA3D_A16B16G16R16,
653 SVGA3DBLOCKDESC_RGBA_UNORM,
654 { 1, 1, 1 },
655 8,
656 8,
657 { { 16 }, { 16 }, { 16 }, { 16 } },
658 { { 32 }, { 16 }, { 0 }, { 48 } } },
659
660 { SVGA3D_UYVY,
661 SVGA3DBLOCKDESC_YUV,
662 { 2, 1, 1 },
663 4,
664 4,
665 { { 8 }, { 0 }, { 8 }, { 0 } },
666 { { 0 }, { 0 }, { 8 }, { 0 } } },
667
668 { SVGA3D_YUY2,
669 SVGA3DBLOCKDESC_YUV,
670 { 2, 1, 1 },
671 4,
672 4,
673 { { 8 }, { 0 }, { 8 }, { 0 } },
674 { { 8 }, { 0 }, { 0 }, { 0 } } },
675
676 { SVGA3D_NV12,
677 SVGA3DBLOCKDESC_NV12,
678 { 2, 2, 1 },
679 6,
680 2,
681 { { 0 }, { 0 }, { 48 }, { 0 } },
682 { { 0 }, { 0 }, { 0 }, { 0 } } },
683
684 { SVGA3D_FORMAT_DEAD2,
685 SVGA3DBLOCKDESC_NONE,
686 { 1, 1, 1 },
687 4,
688 4,
689 { { 8 }, { 8 }, { 8 }, { 8 } },
690 { { 0 }, { 8 }, { 16 }, { 24 } } },
691
692 { SVGA3D_R32G32B32A32_TYPELESS,
693 SVGA3DBLOCKDESC_TYPELESS,
694 { 1, 1, 1 },
695 16,
696 16,
697 { { 32 }, { 32 }, { 32 }, { 32 } },
698 { { 64 }, { 32 }, { 0 }, { 96 } } },
699
700 { SVGA3D_R32G32B32A32_UINT,
701 SVGA3DBLOCKDESC_RGBA_UINT,
702 { 1, 1, 1 },
703 16,
704 16,
705 { { 32 }, { 32 }, { 32 }, { 32 } },
706 { { 64 }, { 32 }, { 0 }, { 96 } } },
707
708 { SVGA3D_R32G32B32A32_SINT,
709 SVGA3DBLOCKDESC_RGBA_SINT,
710 { 1, 1, 1 },
711 16,
712 16,
713 { { 32 }, { 32 }, { 32 }, { 32 } },
714 { { 64 }, { 32 }, { 0 }, { 96 } } },
715
716 { SVGA3D_R32G32B32_TYPELESS,
717 SVGA3DBLOCKDESC_TYPELESS,
718 { 1, 1, 1 },
719 12,
720 12,
721 { { 32 }, { 32 }, { 32 }, { 0 } },
722 { { 64 }, { 32 }, { 0 }, { 0 } } },
723
724 { SVGA3D_R32G32B32_FLOAT,
725 SVGA3DBLOCKDESC_RGB_FP,
726 { 1, 1, 1 },
727 12,
728 12,
729 { { 32 }, { 32 }, { 32 }, { 0 } },
730 { { 64 }, { 32 }, { 0 }, { 0 } } },
731
732 { SVGA3D_R32G32B32_UINT,
733 SVGA3DBLOCKDESC_RGB_UINT,
734 { 1, 1, 1 },
735 12,
736 12,
737 { { 32 }, { 32 }, { 32 }, { 0 } },
738 { { 64 }, { 32 }, { 0 }, { 0 } } },
739
740 { SVGA3D_R32G32B32_SINT,
741 SVGA3DBLOCKDESC_RGB_SINT,
742 { 1, 1, 1 },
743 12,
744 12,
745 { { 32 }, { 32 }, { 32 }, { 0 } },
746 { { 64 }, { 32 }, { 0 }, { 0 } } },
747
748 { SVGA3D_R16G16B16A16_TYPELESS,
749 SVGA3DBLOCKDESC_TYPELESS,
750 { 1, 1, 1 },
751 8,
752 8,
753 { { 16 }, { 16 }, { 16 }, { 16 } },
754 { { 32 }, { 16 }, { 0 }, { 48 } } },
755
756 { SVGA3D_R16G16B16A16_UINT,
757 SVGA3DBLOCKDESC_RGBA_UINT,
758 { 1, 1, 1 },
759 8,
760 8,
761 { { 16 }, { 16 }, { 16 }, { 16 } },
762 { { 32 }, { 16 }, { 0 }, { 48 } } },
763
764 { SVGA3D_R16G16B16A16_SNORM,
765 SVGA3DBLOCKDESC_RGBA_SNORM,
766 { 1, 1, 1 },
767 8,
768 8,
769 { { 16 }, { 16 }, { 16 }, { 16 } },
770 { { 32 }, { 16 }, { 0 }, { 48 } } },
771
772 { SVGA3D_R16G16B16A16_SINT,
773 SVGA3DBLOCKDESC_RGBA_SINT,
774 { 1, 1, 1 },
775 8,
776 8,
777 { { 16 }, { 16 }, { 16 }, { 16 } },
778 { { 32 }, { 16 }, { 0 }, { 48 } } },
779
780 { SVGA3D_R32G32_TYPELESS,
781 SVGA3DBLOCKDESC_TYPELESS,
782 { 1, 1, 1 },
783 8,
784 8,
785 { { 0 }, { 32 }, { 32 }, { 0 } },
786 { { 0 }, { 32 }, { 0 }, { 0 } } },
787
788 { SVGA3D_R32G32_UINT,
789 SVGA3DBLOCKDESC_RG_UINT,
790 { 1, 1, 1 },
791 8,
792 8,
793 { { 0 }, { 32 }, { 32 }, { 0 } },
794 { { 0 }, { 32 }, { 0 }, { 0 } } },
795
796 { SVGA3D_R32G32_SINT,
797 SVGA3DBLOCKDESC_RG_SINT,
798 { 1, 1, 1 },
799 8,
800 8,
801 { { 0 }, { 32 }, { 32 }, { 0 } },
802 { { 0 }, { 32 }, { 0 }, { 0 } } },
803
804 { SVGA3D_R32G8X24_TYPELESS,
805 SVGA3DBLOCKDESC_TYPELESS,
806 { 1, 1, 1 },
807 8,
808 8,
809 { { 0 }, { 8 }, { 32 }, { 0 } },
810 { { 0 }, { 32 }, { 0 }, { 0 } } },
811
812 { SVGA3D_D32_FLOAT_S8X24_UINT,
813 SVGA3DBLOCKDESC_DS,
814 { 1, 1, 1 },
815 8,
816 8,
817 { { 0 }, { 8 }, { 32 }, { 0 } },
818 { { 0 }, { 32 }, { 0 }, { 0 } } },
819
820 { SVGA3D_R32_FLOAT_X8X24,
821 SVGA3DBLOCKDESC_R_FP,
822 { 1, 1, 1 },
823 8,
824 8,
825 { { 0 }, { 0 }, { 32 }, { 0 } },
826 { { 0 }, { 0 }, { 0 }, { 0 } } },
827
828 { SVGA3D_X32_G8X24_UINT,
829 SVGA3DBLOCKDESC_G_UINT,
830 { 1, 1, 1 },
831 8,
832 8,
833 { { 0 }, { 8 }, { 0 }, { 0 } },
834 { { 0 }, { 32 }, { 0 }, { 0 } } },
835
836 { SVGA3D_R10G10B10A2_TYPELESS,
837 SVGA3DBLOCKDESC_TYPELESS,
838 { 1, 1, 1 },
839 4,
840 4,
841 { { 10 }, { 10 }, { 10 }, { 2 } },
842 { { 20 }, { 10 }, { 0 }, { 30 } } },
843
844 { SVGA3D_R10G10B10A2_UINT,
845 SVGA3DBLOCKDESC_RGBA_UINT,
846 { 1, 1, 1 },
847 4,
848 4,
849 { { 10 }, { 10 }, { 10 }, { 2 } },
850 { { 20 }, { 10 }, { 0 }, { 30 } } },
851
852 { SVGA3D_R11G11B10_FLOAT,
853 SVGA3DBLOCKDESC_RGB_FP,
854 { 1, 1, 1 },
855 4,
856 4,
857 { { 10 }, { 11 }, { 11 }, { 0 } },
858 { { 22 }, { 11 }, { 0 }, { 0 } } },
859
860 { SVGA3D_R8G8B8A8_TYPELESS,
861 SVGA3DBLOCKDESC_TYPELESS,
862 { 1, 1, 1 },
863 4,
864 4,
865 { { 8 }, { 8 }, { 8 }, { 8 } },
866 { { 16 }, { 8 }, { 0 }, { 24 } } },
867
868 { SVGA3D_R8G8B8A8_UNORM,
869 SVGA3DBLOCKDESC_RGBA_UNORM,
870 { 1, 1, 1 },
871 4,
872 4,
873 { { 8 }, { 8 }, { 8 }, { 8 } },
874 { { 16 }, { 8 }, { 0 }, { 24 } } },
875
876 { SVGA3D_R8G8B8A8_UNORM_SRGB,
877 SVGA3DBLOCKDESC_RGBA_UNORM_SRGB,
878 { 1, 1, 1 },
879 4,
880 4,
881 { { 8 }, { 8 }, { 8 }, { 8 } },
882 { { 16 }, { 8 }, { 0 }, { 24 } } },
883
884 { SVGA3D_R8G8B8A8_UINT,
885 SVGA3DBLOCKDESC_RGBA_UINT,
886 { 1, 1, 1 },
887 4,
888 4,
889 { { 8 }, { 8 }, { 8 }, { 8 } },
890 { { 16 }, { 8 }, { 0 }, { 24 } } },
891
892 { SVGA3D_R8G8B8A8_SINT,
893 SVGA3DBLOCKDESC_RGBA_SINT,
894 { 1, 1, 1 },
895 4,
896 4,
897 { { 8 }, { 8 }, { 8 }, { 8 } },
898 { { 16 }, { 8 }, { 0 }, { 24 } } },
899
900 { SVGA3D_R16G16_TYPELESS,
901 SVGA3DBLOCKDESC_TYPELESS,
902 { 1, 1, 1 },
903 4,
904 4,
905 { { 0 }, { 16 }, { 16 }, { 0 } },
906 { { 0 }, { 16 }, { 0 }, { 0 } } },
907
908 { SVGA3D_R16G16_UINT,
909 SVGA3DBLOCKDESC_RG_UINT,
910 { 1, 1, 1 },
911 4,
912 4,
913 { { 0 }, { 16 }, { 16 }, { 0 } },
914 { { 0 }, { 16 }, { 0 }, { 0 } } },
915
916 { SVGA3D_R16G16_SINT,
917 SVGA3DBLOCKDESC_RG_SINT,
918 { 1, 1, 1 },
919 4,
920 4,
921 { { 0 }, { 16 }, { 16 }, { 0 } },
922 { { 0 }, { 16 }, { 0 }, { 0 } } },
923
924 { SVGA3D_R32_TYPELESS,
925 SVGA3DBLOCKDESC_TYPELESS,
926 { 1, 1, 1 },
927 4,
928 4,
929 { { 0 }, { 0 }, { 32 }, { 0 } },
930 { { 0 }, { 0 }, { 0 }, { 0 } } },
931
932 { SVGA3D_D32_FLOAT,
933 SVGA3DBLOCKDESC_DEPTH_FP,
934 { 1, 1, 1 },
935 4,
936 4,
937 { { 0 }, { 0 }, { 32 }, { 0 } },
938 { { 0 }, { 0 }, { 0 }, { 0 } } },
939
940 { SVGA3D_R32_UINT,
941 SVGA3DBLOCKDESC_R_UINT,
942 { 1, 1, 1 },
943 4,
944 4,
945 { { 0 }, { 0 }, { 32 }, { 0 } },
946 { { 0 }, { 0 }, { 0 }, { 0 } } },
947
948 { SVGA3D_R32_SINT,
949 SVGA3DBLOCKDESC_R_SINT,
950 { 1, 1, 1 },
951 4,
952 4,
953 { { 0 }, { 0 }, { 32 }, { 0 } },
954 { { 0 }, { 0 }, { 0 }, { 0 } } },
955
956 { SVGA3D_R24G8_TYPELESS,
957 SVGA3DBLOCKDESC_TYPELESS,
958 { 1, 1, 1 },
959 4,
960 4,
961 { { 0 }, { 8 }, { 24 }, { 0 } },
962 { { 0 }, { 24 }, { 0 }, { 0 } } },
963
964 { SVGA3D_D24_UNORM_S8_UINT,
965 SVGA3DBLOCKDESC_DS_UNORM,
966 { 1, 1, 1 },
967 4,
968 4,
969 { { 0 }, { 8 }, { 24 }, { 0 } },
970 { { 0 }, { 24 }, { 0 }, { 0 } } },
971
972 { SVGA3D_R24_UNORM_X8,
973 SVGA3DBLOCKDESC_R_UNORM,
974 { 1, 1, 1 },
975 4,
976 4,
977 { { 0 }, { 0 }, { 24 }, { 0 } },
978 { { 0 }, { 0 }, { 0 }, { 0 } } },
979
980 { SVGA3D_X24_G8_UINT,
981 SVGA3DBLOCKDESC_G_UINT,
982 { 1, 1, 1 },
983 4,
984 4,
985 { { 0 }, { 8 }, { 0 }, { 0 } },
986 { { 0 }, { 24 }, { 0 }, { 0 } } },
987
988 { SVGA3D_R8G8_TYPELESS,
989 SVGA3DBLOCKDESC_TYPELESS,
990 { 1, 1, 1 },
991 2,
992 2,
993 { { 0 }, { 8 }, { 8 }, { 0 } },
994 { { 0 }, { 8 }, { 0 }, { 0 } } },
995
996 { SVGA3D_R8G8_UNORM,
997 SVGA3DBLOCKDESC_RG_UNORM,
998 { 1, 1, 1 },
999 2,
1000 2,
1001 { { 0 }, { 8 }, { 8 }, { 0 } },
1002 { { 0 }, { 8 }, { 0 }, { 0 } } },
1003
1004 { SVGA3D_R8G8_UINT,
1005 SVGA3DBLOCKDESC_RG_UINT,
1006 { 1, 1, 1 },
1007 2,
1008 2,
1009 { { 0 }, { 8 }, { 8 }, { 0 } },
1010 { { 0 }, { 8 }, { 0 }, { 0 } } },
1011
1012 { SVGA3D_R8G8_SINT,
1013 SVGA3DBLOCKDESC_RG_SINT,
1014 { 1, 1, 1 },
1015 2,
1016 2,
1017 { { 0 }, { 8 }, { 8 }, { 0 } },
1018 { { 0 }, { 8 }, { 0 }, { 0 } } },
1019
1020 { SVGA3D_R16_TYPELESS,
1021 SVGA3DBLOCKDESC_TYPELESS,
1022 { 1, 1, 1 },
1023 2,
1024 2,
1025 { { 0 }, { 0 }, { 16 }, { 0 } },
1026 { { 0 }, { 0 }, { 0 }, { 0 } } },
1027
1028 { SVGA3D_R16_UNORM,
1029 SVGA3DBLOCKDESC_R_UNORM,
1030 { 1, 1, 1 },
1031 2,
1032 2,
1033 { { 0 }, { 0 }, { 16 }, { 0 } },
1034 { { 0 }, { 0 }, { 0 }, { 0 } } },
1035
1036 { SVGA3D_R16_UINT,
1037 SVGA3DBLOCKDESC_R_UINT,
1038 { 1, 1, 1 },
1039 2,
1040 2,
1041 { { 0 }, { 0 }, { 16 }, { 0 } },
1042 { { 0 }, { 0 }, { 0 }, { 0 } } },
1043
1044 { SVGA3D_R16_SNORM,
1045 SVGA3DBLOCKDESC_R_SNORM,
1046 { 1, 1, 1 },
1047 2,
1048 2,
1049 { { 0 }, { 0 }, { 16 }, { 0 } },
1050 { { 0 }, { 0 }, { 0 }, { 0 } } },
1051
1052 { SVGA3D_R16_SINT,
1053 SVGA3DBLOCKDESC_R_SINT,
1054 { 1, 1, 1 },
1055 2,
1056 2,
1057 { { 0 }, { 0 }, { 16 }, { 0 } },
1058 { { 0 }, { 0 }, { 0 }, { 0 } } },
1059
1060 { SVGA3D_R8_TYPELESS,
1061 SVGA3DBLOCKDESC_TYPELESS,
1062 { 1, 1, 1 },
1063 1,
1064 1,
1065 { { 0 }, { 0 }, { 8 }, { 0 } },
1066 { { 0 }, { 0 }, { 0 }, { 0 } } },
1067
1068 { SVGA3D_R8_UNORM,
1069 SVGA3DBLOCKDESC_R_UNORM,
1070 { 1, 1, 1 },
1071 1,
1072 1,
1073 { { 0 }, { 0 }, { 8 }, { 0 } },
1074 { { 0 }, { 0 }, { 0 }, { 0 } } },
1075
1076 { SVGA3D_R8_UINT,
1077 SVGA3DBLOCKDESC_R_UINT,
1078 { 1, 1, 1 },
1079 1,
1080 1,
1081 { { 0 }, { 0 }, { 8 }, { 0 } },
1082 { { 0 }, { 0 }, { 0 }, { 0 } } },
1083
1084 { SVGA3D_R8_SNORM,
1085 SVGA3DBLOCKDESC_R_SNORM,
1086 { 1, 1, 1 },
1087 1,
1088 1,
1089 { { 0 }, { 0 }, { 8 }, { 0 } },
1090 { { 0 }, { 0 }, { 0 }, { 0 } } },
1091
1092 { SVGA3D_R8_SINT,
1093 SVGA3DBLOCKDESC_R_SINT,
1094 { 1, 1, 1 },
1095 1,
1096 1,
1097 { { 0 }, { 0 }, { 8 }, { 0 } },
1098 { { 0 }, { 0 }, { 0 }, { 0 } } },
1099
1100 { SVGA3D_P8,
1101 SVGA3DBLOCKDESC_NONE,
1102 { 1, 1, 1 },
1103 1,
1104 1,
1105 { { 0 }, { 0 }, { 8 }, { 0 } },
1106 { { 0 }, { 0 }, { 0 }, { 0 } } },
1107
1108 { SVGA3D_R9G9B9E5_SHAREDEXP,
1109 SVGA3DBLOCKDESC_RGB_EXP,
1110 { 1, 1, 1 },
1111 4,
1112 4,
1113 { { 9 }, { 9 }, { 9 }, { 5 } },
1114 { { 18 }, { 9 }, { 0 }, { 27 } } },
1115
1116 { SVGA3D_R8G8_B8G8_UNORM,
1117 SVGA3DBLOCKDESC_NONE,
1118 { 2, 1, 1 },
1119 4,
1120 4,
1121 { { 0 }, { 8 }, { 8 }, { 0 } },
1122 { { 0 }, { 0 }, { 8 }, { 0 } } },
1123
1124 { SVGA3D_G8R8_G8B8_UNORM,
1125 SVGA3DBLOCKDESC_NONE,
1126 { 2, 1, 1 },
1127 4,
1128 4,
1129 { { 0 }, { 8 }, { 8 }, { 0 } },
1130 { { 0 }, { 8 }, { 0 }, { 0 } } },
1131
1132 { SVGA3D_BC1_TYPELESS,
1133 SVGA3DBLOCKDESC_BC1_COMP_TYPELESS,
1134 { 4, 4, 1 },
1135 8,
1136 8,
1137 { { 0 }, { 0 }, { 64 }, { 0 } },
1138 { { 0 }, { 0 }, { 0 }, { 0 } } },
1139
1140 { SVGA3D_BC1_UNORM_SRGB,
1141 SVGA3DBLOCKDESC_BC1_COMP_UNORM_SRGB,
1142 { 4, 4, 1 },
1143 8,
1144 8,
1145 { { 0 }, { 0 }, { 64 }, { 0 } },
1146 { { 0 }, { 0 }, { 0 }, { 0 } } },
1147
1148 { SVGA3D_BC2_TYPELESS,
1149 SVGA3DBLOCKDESC_BC2_COMP_TYPELESS,
1150 { 4, 4, 1 },
1151 16,
1152 16,
1153 { { 0 }, { 0 }, { 128 }, { 0 } },
1154 { { 0 }, { 0 }, { 0 }, { 0 } } },
1155
1156 { SVGA3D_BC2_UNORM_SRGB,
1157 SVGA3DBLOCKDESC_BC2_COMP_UNORM_SRGB,
1158 { 4, 4, 1 },
1159 16,
1160 16,
1161 { { 0 }, { 0 }, { 128 }, { 0 } },
1162 { { 0 }, { 0 }, { 0 }, { 0 } } },
1163
1164 { SVGA3D_BC3_TYPELESS,
1165 SVGA3DBLOCKDESC_BC3_COMP_TYPELESS,
1166 { 4, 4, 1 },
1167 16,
1168 16,
1169 { { 0 }, { 0 }, { 128 }, { 0 } },
1170 { { 0 }, { 0 }, { 0 }, { 0 } } },
1171
1172 { SVGA3D_BC3_UNORM_SRGB,
1173 SVGA3DBLOCKDESC_BC3_COMP_UNORM_SRGB,
1174 { 4, 4, 1 },
1175 16,
1176 16,
1177 { { 0 }, { 0 }, { 128 }, { 0 } },
1178 { { 0 }, { 0 }, { 0 }, { 0 } } },
1179
1180 { SVGA3D_BC4_TYPELESS,
1181 SVGA3DBLOCKDESC_BC4_COMP_TYPELESS,
1182 { 4, 4, 1 },
1183 8,
1184 8,
1185 { { 0 }, { 0 }, { 64 }, { 0 } },
1186 { { 0 }, { 0 }, { 0 }, { 0 } } },
1187
1188 { SVGA3D_ATI1,
1189 SVGA3DBLOCKDESC_BC4_COMP_UNORM,
1190 { 4, 4, 1 },
1191 8,
1192 8,
1193 { { 0 }, { 0 }, { 64 }, { 0 } },
1194 { { 0 }, { 0 }, { 0 }, { 0 } } },
1195
1196 { SVGA3D_BC4_SNORM,
1197 SVGA3DBLOCKDESC_BC4_COMP_SNORM,
1198 { 4, 4, 1 },
1199 8,
1200 8,
1201 { { 0 }, { 0 }, { 64 }, { 0 } },
1202 { { 0 }, { 0 }, { 0 }, { 0 } } },
1203
1204 { SVGA3D_BC5_TYPELESS,
1205 SVGA3DBLOCKDESC_BC5_COMP_TYPELESS,
1206 { 4, 4, 1 },
1207 16,
1208 16,
1209 { { 0 }, { 0 }, { 128 }, { 0 } },
1210 { { 0 }, { 0 }, { 0 }, { 0 } } },
1211
1212 { SVGA3D_ATI2,
1213 SVGA3DBLOCKDESC_BC5_COMP_UNORM,
1214 { 4, 4, 1 },
1215 16,
1216 16,
1217 { { 0 }, { 0 }, { 128 }, { 0 } },
1218 { { 0 }, { 0 }, { 0 }, { 0 } } },
1219
1220 { SVGA3D_BC5_SNORM,
1221 SVGA3DBLOCKDESC_BC5_COMP_SNORM,
1222 { 4, 4, 1 },
1223 16,
1224 16,
1225 { { 0 }, { 0 }, { 128 }, { 0 } },
1226 { { 0 }, { 0 }, { 0 }, { 0 } } },
1227
1228 { SVGA3D_R10G10B10_XR_BIAS_A2_UNORM,
1229 SVGA3DBLOCKDESC_RGBA_UNORM,
1230 { 1, 1, 1 },
1231 4,
1232 4,
1233 { { 10 }, { 10 }, { 10 }, { 2 } },
1234 { { 20 }, { 10 }, { 0 }, { 30 } } },
1235
1236 { SVGA3D_B8G8R8A8_TYPELESS,
1237 SVGA3DBLOCKDESC_TYPELESS,
1238 { 1, 1, 1 },
1239 4,
1240 4,
1241 { { 8 }, { 8 }, { 8 }, { 8 } },
1242 { { 0 }, { 8 }, { 16 }, { 24 } } },
1243
1244 { SVGA3D_B8G8R8A8_UNORM_SRGB,
1245 SVGA3DBLOCKDESC_RGBA_UNORM_SRGB,
1246 { 1, 1, 1 },
1247 4,
1248 4,
1249 { { 8 }, { 8 }, { 8 }, { 8 } },
1250 { { 0 }, { 8 }, { 16 }, { 24 } } },
1251
1252 { SVGA3D_B8G8R8X8_TYPELESS,
1253 SVGA3DBLOCKDESC_TYPELESS,
1254 { 1, 1, 1 },
1255 4,
1256 4,
1257 { { 8 }, { 8 }, { 8 }, { 0 } },
1258 { { 0 }, { 8 }, { 16 }, { 24 } } },
1259
1260 { SVGA3D_B8G8R8X8_UNORM_SRGB,
1261 SVGA3DBLOCKDESC_RGB_UNORM_SRGB,
1262 { 1, 1, 1 },
1263 4,
1264 4,
1265 { { 8 }, { 8 }, { 8 }, { 0 } },
1266 { { 0 }, { 8 }, { 16 }, { 24 } } },
1267
1268 { SVGA3D_Z_DF16,
1269 SVGA3DBLOCKDESC_DEPTH_UNORM,
1270 { 1, 1, 1 },
1271 2,
1272 2,
1273 { { 0 }, { 0 }, { 16 }, { 0 } },
1274 { { 0 }, { 0 }, { 0 }, { 0 } } },
1275
1276 { SVGA3D_Z_DF24,
1277 SVGA3DBLOCKDESC_DEPTH_UNORM,
1278 { 1, 1, 1 },
1279 4,
1280 4,
1281 { { 0 }, { 0 }, { 24 }, { 0 } },
1282 { { 0 }, { 0 }, { 8 }, { 0 } } },
1283
1284 { SVGA3D_Z_D24S8_INT,
1285 SVGA3DBLOCKDESC_DS_UNORM,
1286 { 1, 1, 1 },
1287 4,
1288 4,
1289 { { 0 }, { 8 }, { 24 }, { 0 } },
1290 { { 0 }, { 0 }, { 8 }, { 0 } } },
1291
1292 { SVGA3D_YV12,
1293 SVGA3DBLOCKDESC_YV12,
1294 { 2, 2, 1 },
1295 6,
1296 2,
1297 { { 0 }, { 0 }, { 48 }, { 0 } },
1298 { { 0 }, { 0 }, { 0 }, { 0 } } },
1299
1300 { SVGA3D_R32G32B32A32_FLOAT,
1301 SVGA3DBLOCKDESC_RGBA_FP,
1302 { 1, 1, 1 },
1303 16,
1304 16,
1305 { { 32 }, { 32 }, { 32 }, { 32 } },
1306 { { 64 }, { 32 }, { 0 }, { 96 } } },
1307
1308 { SVGA3D_R16G16B16A16_FLOAT,
1309 SVGA3DBLOCKDESC_RGBA_FP,
1310 { 1, 1, 1 },
1311 8,
1312 8,
1313 { { 16 }, { 16 }, { 16 }, { 16 } },
1314 { { 32 }, { 16 }, { 0 }, { 48 } } },
1315
1316 { SVGA3D_R16G16B16A16_UNORM,
1317 SVGA3DBLOCKDESC_RGBA_UNORM,
1318 { 1, 1, 1 },
1319 8,
1320 8,
1321 { { 16 }, { 16 }, { 16 }, { 16 } },
1322 { { 32 }, { 16 }, { 0 }, { 48 } } },
1323
1324 { SVGA3D_R32G32_FLOAT,
1325 SVGA3DBLOCKDESC_RG_FP,
1326 { 1, 1, 1 },
1327 8,
1328 8,
1329 { { 0 }, { 32 }, { 32 }, { 0 } },
1330 { { 0 }, { 32 }, { 0 }, { 0 } } },
1331
1332 { SVGA3D_R10G10B10A2_UNORM,
1333 SVGA3DBLOCKDESC_RGBA_UNORM,
1334 { 1, 1, 1 },
1335 4,
1336 4,
1337 { { 10 }, { 10 }, { 10 }, { 2 } },
1338 { { 20 }, { 10 }, { 0 }, { 30 } } },
1339
1340 { SVGA3D_R8G8B8A8_SNORM,
1341 SVGA3DBLOCKDESC_RGBA_SNORM,
1342 { 1, 1, 1 },
1343 4,
1344 4,
1345 { { 8 }, { 8 }, { 8 }, { 8 } },
1346 { { 16 }, { 8 }, { 0 }, { 24 } } },
1347
1348 { SVGA3D_R16G16_FLOAT,
1349 SVGA3DBLOCKDESC_RG_FP,
1350 { 1, 1, 1 },
1351 4,
1352 4,
1353 { { 0 }, { 16 }, { 16 }, { 0 } },
1354 { { 0 }, { 16 }, { 0 }, { 0 } } },
1355
1356 { SVGA3D_R16G16_UNORM,
1357 SVGA3DBLOCKDESC_RG_UNORM,
1358 { 1, 1, 1 },
1359 4,
1360 4,
1361 { { 0 }, { 16 }, { 16 }, { 0 } },
1362 { { 0 }, { 16 }, { 0 }, { 0 } } },
1363
1364 { SVGA3D_R16G16_SNORM,
1365 SVGA3DBLOCKDESC_RG_SNORM,
1366 { 1, 1, 1 },
1367 4,
1368 4,
1369 { { 0 }, { 16 }, { 16 }, { 0 } },
1370 { { 0 }, { 16 }, { 0 }, { 0 } } },
1371
1372 { SVGA3D_R32_FLOAT,
1373 SVGA3DBLOCKDESC_R_FP,
1374 { 1, 1, 1 },
1375 4,
1376 4,
1377 { { 0 }, { 0 }, { 32 }, { 0 } },
1378 { { 0 }, { 0 }, { 0 }, { 0 } } },
1379
1380 { SVGA3D_R8G8_SNORM,
1381 SVGA3DBLOCKDESC_RG_SNORM,
1382 { 1, 1, 1 },
1383 2,
1384 2,
1385 { { 0 }, { 8 }, { 8 }, { 0 } },
1386 { { 0 }, { 8 }, { 0 }, { 0 } } },
1387
1388 { SVGA3D_R16_FLOAT,
1389 SVGA3DBLOCKDESC_R_FP,
1390 { 1, 1, 1 },
1391 2,
1392 2,
1393 { { 0 }, { 0 }, { 16 }, { 0 } },
1394 { { 0 }, { 0 }, { 0 }, { 0 } } },
1395
1396 { SVGA3D_D16_UNORM,
1397 SVGA3DBLOCKDESC_DEPTH_UNORM,
1398 { 1, 1, 1 },
1399 2,
1400 2,
1401 { { 0 }, { 0 }, { 16 }, { 0 } },
1402 { { 0 }, { 0 }, { 0 }, { 0 } } },
1403
1404 { SVGA3D_A8_UNORM,
1405 SVGA3DBLOCKDESC_A_UNORM,
1406 { 1, 1, 1 },
1407 1,
1408 1,
1409 { { 0 }, { 0 }, { 0 }, { 8 } },
1410 { { 0 }, { 0 }, { 0 }, { 0 } } },
1411
1412 { SVGA3D_BC1_UNORM,
1413 SVGA3DBLOCKDESC_BC1_COMP_UNORM,
1414 { 4, 4, 1 },
1415 8,
1416 8,
1417 { { 0 }, { 0 }, { 64 }, { 0 } },
1418 { { 0 }, { 0 }, { 0 }, { 0 } } },
1419
1420 { SVGA3D_BC2_UNORM,
1421 SVGA3DBLOCKDESC_BC2_COMP_UNORM,
1422 { 4, 4, 1 },
1423 16,
1424 16,
1425 { { 0 }, { 0 }, { 128 }, { 0 } },
1426 { { 0 }, { 0 }, { 0 }, { 0 } } },
1427
1428 { SVGA3D_BC3_UNORM,
1429 SVGA3DBLOCKDESC_BC3_COMP_UNORM,
1430 { 4, 4, 1 },
1431 16,
1432 16,
1433 { { 0 }, { 0 }, { 128 }, { 0 } },
1434 { { 0 }, { 0 }, { 0 }, { 0 } } },
1435
1436 { SVGA3D_B5G6R5_UNORM,
1437 SVGA3DBLOCKDESC_RGB_UNORM,
1438 { 1, 1, 1 },
1439 2,
1440 2,
1441 { { 5 }, { 6 }, { 5 }, { 0 } },
1442 { { 0 }, { 5 }, { 11 }, { 0 } } },
1443
1444 { SVGA3D_B5G5R5A1_UNORM,
1445 SVGA3DBLOCKDESC_RGBA_UNORM,
1446 { 1, 1, 1 },
1447 2,
1448 2,
1449 { { 5 }, { 5 }, { 5 }, { 1 } },
1450 { { 0 }, { 5 }, { 10 }, { 15 } } },
1451
1452 { SVGA3D_B8G8R8A8_UNORM,
1453 SVGA3DBLOCKDESC_RGBA_UNORM,
1454 { 1, 1, 1 },
1455 4,
1456 4,
1457 { { 8 }, { 8 }, { 8 }, { 8 } },
1458 { { 0 }, { 8 }, { 16 }, { 24 } } },
1459
1460 { SVGA3D_B8G8R8X8_UNORM,
1461 SVGA3DBLOCKDESC_RGB_UNORM,
1462 { 1, 1, 1 },
1463 4,
1464 4,
1465 { { 8 }, { 8 }, { 8 }, { 0 } },
1466 { { 0 }, { 8 }, { 16 }, { 24 } } },
1467
1468 { SVGA3D_BC4_UNORM,
1469 SVGA3DBLOCKDESC_BC4_COMP_UNORM,
1470 { 4, 4, 1 },
1471 8,
1472 8,
1473 { { 0 }, { 0 }, { 64 }, { 0 } },
1474 { { 0 }, { 0 }, { 0 }, { 0 } } },
1475
1476 { SVGA3D_BC5_UNORM,
1477 SVGA3DBLOCKDESC_BC5_COMP_UNORM,
1478 { 4, 4, 1 },
1479 16,
1480 16,
1481 { { 0 }, { 0 }, { 128 }, { 0 } },
1482 { { 0 }, { 0 }, { 0 }, { 0 } } },
1483
1484 { SVGA3D_B4G4R4A4_UNORM,
1485 SVGA3DBLOCKDESC_RGBA_UNORM,
1486 { 1, 1, 1 },
1487 2,
1488 2,
1489 { { 4 }, { 4 }, { 4 }, { 4 } },
1490 { { 0 }, { 4 }, { 8 }, { 12 } } },
1491
1492 { SVGA3D_BC6H_TYPELESS,
1493 SVGA3DBLOCKDESC_BC6H_COMP_TYPELESS,
1494 { 4, 4, 1 },
1495 16,
1496 16,
1497 { { 0 }, { 0 }, { 128 }, { 0 } },
1498 { { 0 }, { 0 }, { 0 }, { 0 } } },
1499
1500 { SVGA3D_BC6H_UF16,
1501 SVGA3DBLOCKDESC_BC6H_COMP_UF16,
1502 { 4, 4, 1 },
1503 16,
1504 16,
1505 { { 0 }, { 0 }, { 128 }, { 0 } },
1506 { { 0 }, { 0 }, { 0 }, { 0 } } },
1507
1508 { SVGA3D_BC6H_SF16,
1509 SVGA3DBLOCKDESC_BC6H_COMP_SF16,
1510 { 4, 4, 1 },
1511 16,
1512 16,
1513 { { 0 }, { 0 }, { 128 }, { 0 } },
1514 { { 0 }, { 0 }, { 0 }, { 0 } } },
1515
1516 { SVGA3D_BC7_TYPELESS,
1517 SVGA3DBLOCKDESC_BC7_COMP_TYPELESS,
1518 { 4, 4, 1 },
1519 16,
1520 16,
1521 { { 0 }, { 0 }, { 128 }, { 0 } },
1522 { { 0 }, { 0 }, { 0 }, { 0 } } },
1523
1524 { SVGA3D_BC7_UNORM,
1525 SVGA3DBLOCKDESC_BC7_COMP_UNORM,
1526 { 4, 4, 1 },
1527 16,
1528 16,
1529 { { 0 }, { 0 }, { 128 }, { 0 } },
1530 { { 0 }, { 0 }, { 0 }, { 0 } } },
1531
1532 { SVGA3D_BC7_UNORM_SRGB,
1533 SVGA3DBLOCKDESC_BC7_COMP_UNORM_SRGB,
1534 { 4, 4, 1 },
1535 16,
1536 16,
1537 { { 0 }, { 0 }, { 128 }, { 0 } },
1538 { { 0 }, { 0 }, { 0 }, { 0 } } },
1539
1540 { SVGA3D_AYUV,
1541 SVGA3DBLOCKDESC_AYUV,
1542 { 1, 1, 1 },
1543 4,
1544 4,
1545 { { 8 }, { 8 }, { 8 }, { 8 } },
1546 { { 0 }, { 8 }, { 16 }, { 24 } } },
1547
1548 { SVGA3D_R11G11B10_TYPELESS,
1549 SVGA3DBLOCKDESC_TYPELESS,
1550 { 1, 1, 1 },
1551 4,
1552 4,
1553 { { 10 }, { 11 }, { 11 }, { 0 } },
1554 { { 22 }, { 11 }, { 0 }, { 0 } } },
1555};
1556
1557#ifdef __cplusplus
1558}
1559#endif
1560
1561#endif
1562

source code of linux/drivers/gpu/drm/vmwgfx/device_include/svga3d_surfacedefs.h