1
/**********************************************************
2
* Copyright 2011 VMware, Inc. All rights reserved.
4
* Permission is hereby granted, free of charge, to any person
5
* obtaining a copy of this software and associated documentation
6
* files (the "Software"), to deal in the Software without
7
* restriction, including without limitation the rights to use, copy,
8
* modify, merge, publish, distribute, sublicense, and/or sell copies
9
* of the Software, and to permit persons to whom the Software is
10
* furnished to do so, subject to the following conditions:
12
* The above copyright notice and this permission notice shall be
13
* included in all copies or substantial portions of the Software.
15
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
18
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
19
* BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
20
* ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21
* CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
24
**********************************************************/
27
#include "pipe/p_format.h"
28
#include "util/u_debug.h"
29
#include "util/u_memory.h"
31
#include "svga_winsys.h"
32
#include "svga_screen.h"
33
#include "svga_format.h"
37
* Translate from gallium format to SVGA3D format.
40
svga_translate_format(struct svga_screen *ss,
41
enum pipe_format format,
46
case PIPE_FORMAT_B8G8R8A8_UNORM:
47
return SVGA3D_A8R8G8B8;
48
case PIPE_FORMAT_B8G8R8X8_UNORM:
49
return SVGA3D_X8R8G8B8;
51
/* sRGB required for GL2.1 */
52
case PIPE_FORMAT_B8G8R8A8_SRGB:
53
return SVGA3D_A8R8G8B8;
54
case PIPE_FORMAT_DXT1_SRGB:
55
case PIPE_FORMAT_DXT1_SRGBA:
57
case PIPE_FORMAT_DXT3_SRGBA:
59
case PIPE_FORMAT_DXT5_SRGBA:
62
case PIPE_FORMAT_B5G6R5_UNORM:
64
case PIPE_FORMAT_B5G5R5A1_UNORM:
65
return SVGA3D_A1R5G5B5;
66
case PIPE_FORMAT_B4G4R4A4_UNORM:
67
return SVGA3D_A4R4G4B4;
69
case PIPE_FORMAT_Z16_UNORM:
70
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.z16 : SVGA3D_Z_D16;
71
case PIPE_FORMAT_S8_UINT_Z24_UNORM:
72
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.s8z24 : SVGA3D_Z_D24S8;
73
case PIPE_FORMAT_X8Z24_UNORM:
74
return bind & PIPE_BIND_SAMPLER_VIEW ? ss->depth.x8z24 : SVGA3D_Z_D24X8;
76
case PIPE_FORMAT_A8_UNORM:
78
case PIPE_FORMAT_L8_UNORM:
79
return SVGA3D_LUMINANCE8;
81
case PIPE_FORMAT_DXT1_RGB:
82
case PIPE_FORMAT_DXT1_RGBA:
84
case PIPE_FORMAT_DXT3_RGBA:
86
case PIPE_FORMAT_DXT5_RGBA:
89
/* Float formats (only 1, 2 and 4-component formats supported) */
90
case PIPE_FORMAT_R32_FLOAT:
91
return SVGA3D_R_S23E8;
92
case PIPE_FORMAT_R32G32_FLOAT:
93
return SVGA3D_RG_S23E8;
94
case PIPE_FORMAT_R32G32B32A32_FLOAT:
95
return SVGA3D_ARGB_S23E8;
96
case PIPE_FORMAT_R16_FLOAT:
97
return SVGA3D_R_S10E5;
98
case PIPE_FORMAT_R16G16_FLOAT:
99
return SVGA3D_RG_S10E5;
100
case PIPE_FORMAT_R16G16B16A16_FLOAT:
101
return SVGA3D_ARGB_S10E5;
103
case PIPE_FORMAT_Z32_UNORM:
104
/* SVGA3D_Z_D32 is not yet unsupported */
107
return SVGA3D_FORMAT_INVALID;
113
* Format capability description entry.
116
SVGA3dSurfaceFormat format;
119
* Capability index corresponding to the format.
121
SVGA3dDevCapIndex index;
124
* Mask of supported SVGA3dFormatOp operations, to be inferred when the
125
* capability is not explicitly present.
127
uint32 defaultOperations;
132
* Format capability description table.
134
* Ordererd by increasing SVGA3dSurfaceFormat value, but with gaps.
136
static const struct format_cap format_cap_table[] = {
139
SVGA3D_DEVCAP_SURFACEFMT_X8R8G8B8,
140
SVGA3DFORMAT_OP_TEXTURE |
141
SVGA3DFORMAT_OP_CUBETEXTURE |
142
SVGA3DFORMAT_OP_VOLUMETEXTURE |
143
SVGA3DFORMAT_OP_DISPLAYMODE |
144
SVGA3DFORMAT_OP_3DACCELERATION |
145
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
146
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
147
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
148
SVGA3DFORMAT_OP_SRGBREAD |
149
SVGA3DFORMAT_OP_SRGBWRITE |
150
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
151
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
155
SVGA3D_DEVCAP_SURFACEFMT_A8R8G8B8,
156
SVGA3DFORMAT_OP_TEXTURE |
157
SVGA3DFORMAT_OP_CUBETEXTURE |
158
SVGA3DFORMAT_OP_VOLUMETEXTURE |
159
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
160
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
161
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
162
SVGA3DFORMAT_OP_SRGBREAD |
163
SVGA3DFORMAT_OP_SRGBWRITE |
164
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
165
SVGA3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET |
166
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
170
SVGA3D_DEVCAP_SURFACEFMT_R5G6B5,
171
SVGA3DFORMAT_OP_TEXTURE |
172
SVGA3DFORMAT_OP_CUBETEXTURE |
173
SVGA3DFORMAT_OP_VOLUMETEXTURE |
174
SVGA3DFORMAT_OP_DISPLAYMODE |
175
SVGA3DFORMAT_OP_3DACCELERATION |
176
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
177
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
178
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
179
SVGA3DFORMAT_OP_SRGBREAD |
180
SVGA3DFORMAT_OP_SRGBWRITE |
181
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
182
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
186
SVGA3D_DEVCAP_SURFACEFMT_X1R5G5B5,
187
SVGA3DFORMAT_OP_TEXTURE |
188
SVGA3DFORMAT_OP_CUBETEXTURE |
189
SVGA3DFORMAT_OP_VOLUMETEXTURE |
190
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
191
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
192
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
193
SVGA3DFORMAT_OP_SRGBREAD |
194
SVGA3DFORMAT_OP_SRGBWRITE |
195
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
196
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
200
SVGA3D_DEVCAP_SURFACEFMT_A1R5G5B5,
201
SVGA3DFORMAT_OP_TEXTURE |
202
SVGA3DFORMAT_OP_CUBETEXTURE |
203
SVGA3DFORMAT_OP_VOLUMETEXTURE |
204
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
205
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
206
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
207
SVGA3DFORMAT_OP_SRGBREAD |
208
SVGA3DFORMAT_OP_SRGBWRITE |
209
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
210
SVGA3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET |
211
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
215
SVGA3D_DEVCAP_SURFACEFMT_A4R4G4B4,
216
SVGA3DFORMAT_OP_TEXTURE |
217
SVGA3DFORMAT_OP_CUBETEXTURE |
218
SVGA3DFORMAT_OP_VOLUMETEXTURE |
219
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
220
SVGA3DFORMAT_OP_SRGBREAD |
221
SVGA3DFORMAT_OP_SRGBWRITE |
222
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
223
SVGA3DFORMAT_OP_SAME_FORMAT_UP_TO_ALPHA_RENDERTARGET |
224
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
227
* SVGA3D_Z_D32 is not yet supported, and has no corresponding
232
SVGA3D_DEVCAP_SURFACEFMT_Z_D16,
233
SVGA3DFORMAT_OP_ZSTENCIL |
234
SVGA3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH
238
SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8,
239
SVGA3DFORMAT_OP_ZSTENCIL |
240
SVGA3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH
245
SVGA3DFORMAT_OP_ZSTENCIL |
246
SVGA3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH
250
SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8,
251
SVGA3DFORMAT_OP_TEXTURE |
252
SVGA3DFORMAT_OP_CUBETEXTURE |
253
SVGA3DFORMAT_OP_VOLUMETEXTURE |
254
SVGA3DFORMAT_OP_OFFSCREENPLAIN
257
SVGA3D_LUMINANCE8_ALPHA8,
258
SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE8_ALPHA8,
259
SVGA3DFORMAT_OP_TEXTURE |
260
SVGA3DFORMAT_OP_CUBETEXTURE |
261
SVGA3DFORMAT_OP_VOLUMETEXTURE |
262
SVGA3DFORMAT_OP_OFFSCREENPLAIN
265
* SVGA3D_LUMINANCE4_ALPHA4 is not supported, and has no corresponding
270
SVGA3D_DEVCAP_SURFACEFMT_LUMINANCE16,
271
SVGA3DFORMAT_OP_TEXTURE |
272
SVGA3DFORMAT_OP_CUBETEXTURE |
273
SVGA3DFORMAT_OP_VOLUMETEXTURE |
274
SVGA3DFORMAT_OP_OFFSCREENPLAIN
278
SVGA3D_DEVCAP_SURFACEFMT_DXT1,
279
SVGA3DFORMAT_OP_TEXTURE |
280
SVGA3DFORMAT_OP_SRGBREAD |
281
SVGA3DFORMAT_OP_CUBETEXTURE |
282
SVGA3DFORMAT_OP_OFFSCREENPLAIN
286
SVGA3D_DEVCAP_SURFACEFMT_DXT2,
287
SVGA3DFORMAT_OP_TEXTURE |
288
SVGA3DFORMAT_OP_SRGBREAD |
289
SVGA3DFORMAT_OP_CUBETEXTURE |
290
SVGA3DFORMAT_OP_OFFSCREENPLAIN
294
SVGA3D_DEVCAP_SURFACEFMT_DXT3,
295
SVGA3DFORMAT_OP_TEXTURE |
296
SVGA3DFORMAT_OP_SRGBREAD |
297
SVGA3DFORMAT_OP_CUBETEXTURE |
298
SVGA3DFORMAT_OP_OFFSCREENPLAIN
302
SVGA3D_DEVCAP_SURFACEFMT_DXT4,
303
SVGA3DFORMAT_OP_TEXTURE |
304
SVGA3DFORMAT_OP_SRGBREAD |
305
SVGA3DFORMAT_OP_CUBETEXTURE |
306
SVGA3DFORMAT_OP_OFFSCREENPLAIN
310
SVGA3D_DEVCAP_SURFACEFMT_DXT5,
311
SVGA3DFORMAT_OP_TEXTURE |
312
SVGA3DFORMAT_OP_SRGBREAD |
313
SVGA3DFORMAT_OP_CUBETEXTURE |
314
SVGA3DFORMAT_OP_OFFSCREENPLAIN
318
SVGA3D_DEVCAP_SURFACEFMT_BUMPU8V8,
319
SVGA3DFORMAT_OP_TEXTURE |
320
SVGA3DFORMAT_OP_CUBETEXTURE |
321
SVGA3DFORMAT_OP_VOLUMETEXTURE |
322
SVGA3DFORMAT_OP_BUMPMAP |
323
SVGA3DFORMAT_OP_OFFSCREENPLAIN
326
* SVGA3D_BUMPL6V5U5 is unsupported; it has no corresponding
331
SVGA3D_DEVCAP_SURFACEFMT_BUMPX8L8V8U8,
332
SVGA3DFORMAT_OP_TEXTURE |
333
SVGA3DFORMAT_OP_CUBETEXTURE |
334
SVGA3DFORMAT_OP_BUMPMAP |
335
SVGA3DFORMAT_OP_OFFSCREENPLAIN
338
* SVGA3D_BUMPL8V8U8 is unsupported; it has no corresponding
339
* SVGA3D_DEVCAP_xxx. SVGA3D_BUMPX8L8V8U8 should be used instead.
343
SVGA3D_DEVCAP_SURFACEFMT_ARGB_S10E5,
344
SVGA3DFORMAT_OP_TEXTURE |
345
SVGA3DFORMAT_OP_CUBETEXTURE |
346
SVGA3DFORMAT_OP_VOLUMETEXTURE |
347
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
348
SVGA3DFORMAT_OP_SRGBREAD |
349
SVGA3DFORMAT_OP_SRGBWRITE |
350
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
351
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
355
SVGA3D_DEVCAP_SURFACEFMT_ARGB_S23E8,
356
SVGA3DFORMAT_OP_TEXTURE |
357
SVGA3DFORMAT_OP_CUBETEXTURE |
358
SVGA3DFORMAT_OP_VOLUMETEXTURE |
359
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
360
SVGA3DFORMAT_OP_SRGBREAD |
361
SVGA3DFORMAT_OP_SRGBWRITE |
362
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
363
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
367
SVGA3D_DEVCAP_SURFACEFMT_A2R10G10B10,
368
SVGA3DFORMAT_OP_TEXTURE |
369
SVGA3DFORMAT_OP_CUBETEXTURE |
370
SVGA3DFORMAT_OP_VOLUMETEXTURE |
371
SVGA3DFORMAT_OP_CONVERT_TO_ARGB |
372
SVGA3DFORMAT_OP_MEMBEROFGROUP_ARGB |
373
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
374
SVGA3DFORMAT_OP_SRGBREAD |
375
SVGA3DFORMAT_OP_SRGBWRITE |
376
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
377
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
380
* SVGA3D_V8U8 is unsupported; it has no corresponding
381
* SVGA3D_DEVCAP_xxx. SVGA3D_BUMPU8V8 should be used instead.
385
SVGA3D_DEVCAP_SURFACEFMT_Q8W8V8U8,
386
SVGA3DFORMAT_OP_TEXTURE |
387
SVGA3DFORMAT_OP_CUBETEXTURE |
388
SVGA3DFORMAT_OP_BUMPMAP |
389
SVGA3DFORMAT_OP_OFFSCREENPLAIN
393
SVGA3D_DEVCAP_SURFACEFMT_CxV8U8,
394
SVGA3DFORMAT_OP_TEXTURE |
395
SVGA3DFORMAT_OP_BUMPMAP |
396
SVGA3DFORMAT_OP_OFFSCREENPLAIN
399
* SVGA3D_X8L8V8U8 is unsupported; it has no corresponding
400
* SVGA3D_DEVCAP_xxx. SVGA3D_BUMPX8L8V8U8 should be used instead.
404
SVGA3D_DEVCAP_SURFACEFMT_A2W10V10U10,
405
SVGA3DFORMAT_OP_TEXTURE |
406
SVGA3DFORMAT_OP_BUMPMAP |
407
SVGA3DFORMAT_OP_OFFSCREENPLAIN
411
SVGA3D_DEVCAP_SURFACEFMT_ALPHA8,
412
SVGA3DFORMAT_OP_TEXTURE |
413
SVGA3DFORMAT_OP_CUBETEXTURE |
414
SVGA3DFORMAT_OP_VOLUMETEXTURE |
415
SVGA3DFORMAT_OP_OFFSCREENPLAIN
419
SVGA3D_DEVCAP_SURFACEFMT_R_S10E5,
420
SVGA3DFORMAT_OP_TEXTURE |
421
SVGA3DFORMAT_OP_VOLUMETEXTURE |
422
SVGA3DFORMAT_OP_CUBETEXTURE |
423
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
424
SVGA3DFORMAT_OP_SRGBREAD |
425
SVGA3DFORMAT_OP_SRGBWRITE |
426
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
427
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
431
SVGA3D_DEVCAP_SURFACEFMT_R_S23E8,
432
SVGA3DFORMAT_OP_TEXTURE |
433
SVGA3DFORMAT_OP_VOLUMETEXTURE |
434
SVGA3DFORMAT_OP_CUBETEXTURE |
435
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
436
SVGA3DFORMAT_OP_SRGBREAD |
437
SVGA3DFORMAT_OP_SRGBWRITE |
438
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
439
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
443
SVGA3D_DEVCAP_SURFACEFMT_RG_S10E5,
444
SVGA3DFORMAT_OP_TEXTURE |
445
SVGA3DFORMAT_OP_VOLUMETEXTURE |
446
SVGA3DFORMAT_OP_CUBETEXTURE |
447
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
448
SVGA3DFORMAT_OP_SRGBREAD |
449
SVGA3DFORMAT_OP_SRGBWRITE |
450
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
451
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
455
SVGA3D_DEVCAP_SURFACEFMT_RG_S23E8,
456
SVGA3DFORMAT_OP_TEXTURE |
457
SVGA3DFORMAT_OP_VOLUMETEXTURE |
458
SVGA3DFORMAT_OP_CUBETEXTURE |
459
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
460
SVGA3DFORMAT_OP_SRGBREAD |
461
SVGA3DFORMAT_OP_SRGBWRITE |
462
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
463
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
466
* SVGA3D_BUFFER is a placeholder format for index/vertex buffers.
470
SVGA3D_DEVCAP_SURFACEFMT_Z_D24X8,
471
SVGA3DFORMAT_OP_ZSTENCIL |
472
SVGA3DFORMAT_OP_ZSTENCIL_WITH_ARBITRARY_COLOR_DEPTH
476
SVGA3D_DEVCAP_SURFACEFMT_V16U16,
477
SVGA3DFORMAT_OP_TEXTURE |
478
SVGA3DFORMAT_OP_CUBETEXTURE |
479
SVGA3DFORMAT_OP_VOLUMETEXTURE |
480
SVGA3DFORMAT_OP_BUMPMAP |
481
SVGA3DFORMAT_OP_OFFSCREENPLAIN
485
SVGA3D_DEVCAP_SURFACEFMT_G16R16,
486
SVGA3DFORMAT_OP_TEXTURE |
487
SVGA3DFORMAT_OP_CUBETEXTURE |
488
SVGA3DFORMAT_OP_VOLUMETEXTURE |
489
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
490
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
491
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
495
SVGA3D_DEVCAP_SURFACEFMT_A16B16G16R16,
496
SVGA3DFORMAT_OP_TEXTURE |
497
SVGA3DFORMAT_OP_CUBETEXTURE |
498
SVGA3DFORMAT_OP_VOLUMETEXTURE |
499
SVGA3DFORMAT_OP_OFFSCREENPLAIN |
500
SVGA3DFORMAT_OP_SAME_FORMAT_RENDERTARGET |
501
SVGA3DFORMAT_OP_OFFSCREEN_RENDERTARGET
505
SVGA3D_DEVCAP_SURFACEFMT_UYVY,
510
SVGA3D_DEVCAP_SURFACEFMT_YUY2,
515
SVGA3D_DEVCAP_SURFACEFMT_NV12,
520
SVGA3D_DEVCAP_SURFACEFMT_AYUV,
525
SVGA3D_DEVCAP_SURFACEFMT_BC4_UNORM,
530
SVGA3D_DEVCAP_SURFACEFMT_BC5_UNORM,
535
SVGA3D_DEVCAP_SURFACEFMT_Z_DF16,
540
SVGA3D_DEVCAP_SURFACEFMT_Z_DF24,
545
SVGA3D_DEVCAP_SURFACEFMT_Z_D24S8_INT,
552
* Get format capabilities from the host. It takes in consideration
553
* deprecated/unsupported formats, and formats which are implicitely assumed to
554
* be supported when the host does not provide an explicit capability entry.
557
svga_get_format_cap(struct svga_screen *ss,
558
SVGA3dSurfaceFormat format,
559
SVGA3dSurfaceFormatCaps *caps)
561
const struct format_cap *entry;
563
for (entry = format_cap_table; entry < format_cap_table + Elements(format_cap_table); ++entry) {
564
if (entry->format == format) {
565
struct svga_winsys_screen *sws = ss->sws;
566
SVGA3dDevCapResult result;
568
if (sws->get_cap(sws, entry->index, &result)) {
569
/* Explicitly advertised format */
570
caps->value = result.u;
572
/* Implicitly advertised format -- use default caps */
573
caps->value = entry->defaultOperations;
580
/* Unsupported format */