Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/mesa
Path: blob/21.2-virgl/src/gallium/frontends/nine/nine_dump.c
4561 views
1
2
#include "nine_debug.h"
3
#include "nine_pipe.h"
4
5
#include <stdio.h>
6
#include "util/u_memory.h"
7
#include "util/u_math.h"
8
9
#include "nine_dump.h"
10
11
#if defined(DEBUG) || !defined(NDEBUG)
12
13
static char __thread tls[128];
14
15
const char *nine_D3DDEVTYPE_to_str(D3DDEVTYPE type)
16
{
17
switch (type) {
18
case D3DDEVTYPE_HAL: return "HAL";
19
case D3DDEVTYPE_NULLREF: return "NULLREF";
20
case D3DDEVTYPE_REF: return "REF";
21
case D3DDEVTYPE_SW: return "SW";
22
default:
23
return "(D3DDEVTYPE_?)";
24
}
25
}
26
27
const char *nine_D3DPOOL_to_str(D3DPOOL pool)
28
{
29
switch (pool) {
30
case D3DPOOL_DEFAULT: return "DEFAULT";
31
case D3DPOOL_MANAGED: return "MANAGED";
32
case D3DPOOL_SYSTEMMEM: return "SYSTEMMEM";
33
case D3DPOOL_SCRATCH: return "SCRATCH";
34
default:
35
return "(D3DPOOL_?)";
36
}
37
}
38
39
const char *nine_D3DSAMP_to_str(DWORD samp)
40
{
41
switch (samp) {
42
case D3DSAMP_ADDRESSU: return "ADDRESSU";
43
case D3DSAMP_ADDRESSV: return "ADDRESSV";
44
case D3DSAMP_ADDRESSW: return "ADDRESSW";
45
case D3DSAMP_BORDERCOLOR: return "BORDERCOLOR";
46
case D3DSAMP_MAGFILTER: return "MAGFILTER";
47
case D3DSAMP_MINFILTER: return "MINFILTER";
48
case D3DSAMP_MIPFILTER: return "MIPFILTER";
49
case D3DSAMP_MIPMAPLODBIAS: return "MIPMAPLODBIAS";
50
case D3DSAMP_MAXMIPLEVEL: return "MAXMIPLEVEL";
51
case D3DSAMP_MAXANISOTROPY: return "MAXANISOTROPY";
52
case D3DSAMP_SRGBTEXTURE: return "SRGBTEXTURE";
53
case D3DSAMP_ELEMENTINDEX: return "ELEMENTINDEX";
54
case D3DSAMP_DMAPOFFSET: return "DMAPOFFSET";
55
default:
56
return "(D3DSAMP_?)";
57
}
58
}
59
60
#define C2S(n,s) \
61
do { \
62
if (usage & D3DUSAGE_##n) p += snprintf(&tls[p], sizeof(tls) - p, s); \
63
} while(0)
64
const char *nine_D3DUSAGE_to_str(DWORD usage)
65
{
66
int p = 0;
67
tls[0] = 0;
68
C2S(AUTOGENMIPMAP, "MIPGEN");
69
C2S(WRITEONLY, "WO");
70
C2S(DYNAMIC, "DYNAMIC");
71
C2S(DEPTHSTENCIL, "DS");
72
C2S(RENDERTARGET, "RT");
73
C2S(SOFTWAREPROCESSING, "SW");
74
C2S(DONOTCLIP, "NOCLIP");
75
C2S(POINTS, "POINTS");
76
C2S(DMAP, "DMAP");
77
C2S(NPATCHES, "NPATCHES");
78
C2S(RTPATCHES, "RTPATCHES");
79
C2S(TEXTAPI, "TEXTAPI");
80
C2S(NONSECURE, "NONSECURE");
81
C2S(RESTRICTED_CONTENT, "RESTRICTED_CONTENT");
82
C2S(RESTRICT_SHARED_RESOURCE, "RESTRICT_SHARED_RESOURCE");
83
C2S(RESTRICT_SHARED_RESOURCE_DRIVER, "RESTRICT_SHARED_RESOURCE_DRIVER");
84
return tls;
85
}
86
#undef C2S
87
88
#define C2S(n) \
89
do { \
90
if (flags & D3DPRESENTFLAG_##n) \
91
p += snprintf(&tls[p], sizeof(tls) - p, #n); \
92
} while(0)
93
const char *nine_D3DPRESENTFLAG_to_str(DWORD flags)
94
{
95
int p = 0;
96
tls[0] = 0;
97
C2S(DEVICECLIP);
98
C2S(DISCARD_DEPTHSTENCIL);
99
C2S(LOCKABLE_BACKBUFFER);
100
C2S(NOAUTOROTATE);
101
C2S(UNPRUNEDMODE);
102
C2S(VIDEO);
103
C2S(OVERLAY_LIMITEDRGB);
104
C2S(OVERLAY_YCbCr_BT709);
105
C2S(OVERLAY_YCbCr_xvYCC);
106
C2S(RESTRICTED_CONTENT);
107
C2S(RESTRICT_SHARED_RESOURCE_DRIVER);
108
return tls;
109
}
110
#undef C2S
111
112
#define C2S(n) \
113
do { \
114
if (lock & D3DLOCK_##n) p += snprintf(&tls[p], sizeof(tls) - p, #n"|"); \
115
} while(0)
116
const char *nine_D3DLOCK_to_str(DWORD lock)
117
{
118
int p = 0;
119
tls[0] = 0;
120
C2S(DISCARD);
121
C2S(DONOTWAIT);
122
C2S(NO_DIRTY_UPDATE);
123
C2S(NOOVERWRITE);
124
C2S(NOSYSLOCK);
125
C2S(READONLY);
126
return tls;
127
}
128
#undef C2S
129
130
const char *nine_D3DRTYPE_to_str(D3DRESOURCETYPE type)
131
{
132
switch (type) {
133
case D3DRTYPE_SURFACE: return "SURFACE";
134
case D3DRTYPE_VOLUME: return "VOLUME";
135
case D3DRTYPE_TEXTURE: return "TEXTURE";
136
case D3DRTYPE_VOLUMETEXTURE: return "VOLUMETEXTURE";
137
case D3DRTYPE_CUBETEXTURE: return "CUBETEXTURE";
138
case D3DRTYPE_VERTEXBUFFER: return "VERTEXBUFFER";
139
case D3DRTYPE_INDEXBUFFER: return "INDEXBUFFER";
140
default:
141
return "(D3DRTYPE_?)";
142
}
143
}
144
145
const char *nine_D3DQUERYTYPE_to_str(D3DQUERYTYPE type)
146
{
147
switch (type) {
148
case D3DQUERYTYPE_VCACHE: return "VCACHE";
149
case D3DQUERYTYPE_RESOURCEMANAGER: return "RESOURCEMANAGER";
150
case D3DQUERYTYPE_VERTEXSTATS: return "VERTEXSTATS";
151
case D3DQUERYTYPE_EVENT: return "EVENT";
152
case D3DQUERYTYPE_OCCLUSION: return "OCCLUSION";
153
case D3DQUERYTYPE_TIMESTAMP: return "TIMESTAMP";
154
case D3DQUERYTYPE_TIMESTAMPDISJOINT: return "TIMESTAMPDISJOINT";
155
case D3DQUERYTYPE_TIMESTAMPFREQ: return "TIMESTAMPFREQ";
156
case D3DQUERYTYPE_PIPELINETIMINGS: return "PIPELINETIMINGS";
157
case D3DQUERYTYPE_INTERFACETIMINGS: return "INTERFACETIMINGS";
158
case D3DQUERYTYPE_VERTEXTIMINGS: return "VERTEXTIMINGS";
159
case D3DQUERYTYPE_PIXELTIMINGS: return "PIXELTIMINGS";
160
case D3DQUERYTYPE_BANDWIDTHTIMINGS: return "BANDWIDTHTIMINGS";
161
case D3DQUERYTYPE_CACHEUTILIZATION: return "CACHEUTILIZATION";
162
default:
163
return "(D3DQUERYTYPE_?)";
164
}
165
}
166
167
const char *nine_D3DTSS_to_str(D3DTEXTURESTAGESTATETYPE type)
168
{
169
switch (type) {
170
case D3DTSS_COLOROP: return "COLOROP";
171
case D3DTSS_ALPHAOP: return "ALPHAOP";
172
case D3DTSS_COLORARG0: return "COLORARG0";
173
case D3DTSS_COLORARG1: return "COLORARG1";
174
case D3DTSS_COLORARG2: return "COLORARG2";
175
case D3DTSS_ALPHAARG0: return "ALPHAARG0";
176
case D3DTSS_ALPHAARG1: return "ALPHAARG1";
177
case D3DTSS_ALPHAARG2: return "ALPHAARG2";
178
case D3DTSS_RESULTARG: return "RESULTARG";
179
case D3DTSS_BUMPENVMAT00: return "BUMPENVMAT00";
180
case D3DTSS_BUMPENVMAT01: return "BUMPENVMAT01";
181
case D3DTSS_BUMPENVMAT10: return "BUMPENVMAT10";
182
case D3DTSS_BUMPENVMAT11: return "BUMPENVMAT11";
183
case D3DTSS_BUMPENVLSCALE: return "BUMPENVLSCALE";
184
case D3DTSS_BUMPENVLOFFSET: return "BUMPENVLOFFSET";
185
case D3DTSS_TEXCOORDINDEX: return "TEXCOORDINDEX";
186
case D3DTSS_TEXTURETRANSFORMFLAGS: return "TEXTURETRANSFORMFLAGS";
187
case D3DTSS_CONSTANT: return "CONSTANT";
188
default:
189
return "(D3DTSS_?)";
190
}
191
}
192
193
#define D3DTOP_TO_STR_CASE(n) case D3DTOP_##n: return #n
194
const char *nine_D3DTOP_to_str(D3DTEXTUREOP top)
195
{
196
switch (top) {
197
D3DTOP_TO_STR_CASE(DISABLE);
198
D3DTOP_TO_STR_CASE(SELECTARG1);
199
D3DTOP_TO_STR_CASE(SELECTARG2);
200
D3DTOP_TO_STR_CASE(MODULATE);
201
D3DTOP_TO_STR_CASE(MODULATE2X);
202
D3DTOP_TO_STR_CASE(MODULATE4X);
203
D3DTOP_TO_STR_CASE(ADD);
204
D3DTOP_TO_STR_CASE(ADDSIGNED);
205
D3DTOP_TO_STR_CASE(ADDSIGNED2X);
206
D3DTOP_TO_STR_CASE(SUBTRACT);
207
D3DTOP_TO_STR_CASE(ADDSMOOTH);
208
D3DTOP_TO_STR_CASE(BLENDDIFFUSEALPHA);
209
D3DTOP_TO_STR_CASE(BLENDTEXTUREALPHA);
210
D3DTOP_TO_STR_CASE(BLENDFACTORALPHA);
211
D3DTOP_TO_STR_CASE(BLENDTEXTUREALPHAPM);
212
D3DTOP_TO_STR_CASE(BLENDCURRENTALPHA);
213
D3DTOP_TO_STR_CASE(PREMODULATE);
214
D3DTOP_TO_STR_CASE(MODULATEALPHA_ADDCOLOR);
215
D3DTOP_TO_STR_CASE(MODULATECOLOR_ADDALPHA);
216
D3DTOP_TO_STR_CASE(MODULATEINVALPHA_ADDCOLOR);
217
D3DTOP_TO_STR_CASE(MODULATEINVCOLOR_ADDALPHA);
218
D3DTOP_TO_STR_CASE(BUMPENVMAP);
219
D3DTOP_TO_STR_CASE(BUMPENVMAPLUMINANCE);
220
D3DTOP_TO_STR_CASE(DOTPRODUCT3);
221
D3DTOP_TO_STR_CASE(MULTIPLYADD);
222
D3DTOP_TO_STR_CASE(LERP);
223
default:
224
return "(D3DTOP_?)";
225
}
226
}
227
228
static const char *
229
nine_D3DLIGHTTYPE_to_str(D3DLIGHTTYPE type)
230
{
231
switch (type) {
232
case D3DLIGHT_POINT: return "POINT";
233
case D3DLIGHT_SPOT: return "SPOT";
234
case D3DLIGHT_DIRECTIONAL: return "DIRECTIONAL";
235
default:
236
return "(D3DLIGHT_?)";
237
}
238
}
239
240
static const char *
241
nine_D3DTA_to_str(DWORD value)
242
{
243
switch (value & D3DTA_SELECTMASK) {
244
case D3DTA_DIFFUSE: return "DIFFUSE";
245
case D3DTA_CURRENT: return "CURRENT";
246
case D3DTA_TEXTURE: return "TEXTURE";
247
case D3DTA_TFACTOR: return "TFACTOR";
248
case D3DTA_SPECULAR: return "SPECULAR";
249
case D3DTA_TEMP: return "TEMP";
250
case D3DTA_CONSTANT: return "CONSTANT";
251
default:
252
return "(D3DTA_?)";
253
}
254
}
255
256
static const char *
257
nine_D3DTSS_TCI_to_str(DWORD value)
258
{
259
switch (value & 0xf0000) {
260
case D3DTSS_TCI_PASSTHRU: return "PASSTHRU";
261
case D3DTSS_TCI_CAMERASPACENORMAL: return "CAMERASPACENORMAL";
262
case D3DTSS_TCI_CAMERASPACEPOSITION: return "CAMERASPACEPOSITION";
263
case D3DTSS_TCI_CAMERASPACEREFLECTIONVECTOR:
264
return "CAMERASPACEREFLECTIONVECTOR";
265
case D3DTSS_TCI_SPHEREMAP: return "SPHEREMAP";
266
default:
267
return "(D3DTSS_TCI_?)";
268
}
269
}
270
271
static const char *
272
nine_D3DTTFF_to_str(DWORD value)
273
{
274
switch (value) {
275
case D3DTTFF_DISABLE: return "DISABLE";
276
case D3DTTFF_COUNT1: return "COUNT1";
277
case D3DTTFF_COUNT2: return "COUNT2";
278
case D3DTTFF_COUNT3: return "COUNT3";
279
case D3DTTFF_COUNT4: return "COUNT4";
280
case D3DTTFF_PROJECTED: return "PROJECTED";
281
default:
282
return "(D3DTTFF_?)";
283
}
284
}
285
286
void
287
nine_dump_D3DLIGHT9(unsigned ch, const D3DLIGHT9 *lit)
288
{
289
DBG_FLAG(ch, "D3DLIGHT9(%p):\n"
290
"Type: %s\n"
291
"Diffuse: (%f %f %f %f)\n"
292
"Specular: (%f %f %f %f)\n"
293
"Ambient: (%f %f %f %f)\n"
294
"Position: (%f %f %f)\n"
295
"Direction: (%f %f %f)\n"
296
"Range: %f\n"
297
"Falloff: %f\n"
298
"Attenuation: %f + %f * d + %f * d^2\n"
299
"Theta: %f deg\n"
300
"Phi: %f deg\n", lit,
301
nine_D3DLIGHTTYPE_to_str(lit->Type),
302
lit->Diffuse.r,lit->Diffuse.r,lit->Diffuse.g,lit->Diffuse.a,
303
lit->Specular.r,lit->Specular.r,lit->Specular.g,lit->Specular.a,
304
lit->Ambient.r,lit->Ambient.r,lit->Ambient.g,lit->Ambient.a,
305
lit->Position.x,lit->Position.y,lit->Position.z,
306
lit->Direction.x,lit->Direction.y,lit->Direction.z,
307
lit->Range,lit->Falloff,
308
lit->Attenuation0,lit->Attenuation1,lit->Attenuation2,
309
lit->Theta * 360.0f / M_PI,lit->Phi * 360.0f / M_PI);
310
}
311
312
void
313
nine_dump_D3DMATERIAL9(unsigned ch, const D3DMATERIAL9 *mat)
314
{
315
DBG_FLAG(ch, "D3DMATERIAL9(%p):\n"
316
"Diffuse: (%f %f %f %f)\n"
317
"Specular: (%f %f %f %f)\n"
318
"Ambient: (%f %f %f %f)\n"
319
"Emissive: (%f %f %f %f)\n"
320
"Power: %f\n", mat,
321
mat->Diffuse.r,mat->Diffuse.r,mat->Diffuse.g,mat->Diffuse.a,
322
mat->Specular.r,mat->Specular.r,mat->Specular.g,mat->Specular.a,
323
mat->Ambient.r,mat->Ambient.r,mat->Ambient.g,mat->Ambient.a,
324
mat->Emissive.r,mat->Emissive.r,mat->Emissive.g,mat->Emissive.a,
325
mat->Power);
326
}
327
328
void
329
nine_dump_D3DTSS_value(unsigned ch, D3DTEXTURESTAGESTATETYPE type, DWORD value)
330
{
331
float rgba[4];
332
333
switch (type) {
334
case D3DTSS_COLOROP:
335
case D3DTSS_ALPHAOP:
336
DBG_FLAG(ch, "D3DTSS_%s = %s\n",
337
nine_D3DTSS_to_str(type), nine_D3DTOP_to_str(value));
338
break;
339
case D3DTSS_COLORARG0:
340
case D3DTSS_COLORARG1:
341
case D3DTSS_COLORARG2:
342
case D3DTSS_ALPHAARG0:
343
case D3DTSS_ALPHAARG1:
344
case D3DTSS_ALPHAARG2:
345
case D3DTSS_RESULTARG:
346
DBG_FLAG(ch, "D3DTSS_%s = %s%s%s\n",
347
nine_D3DTSS_to_str(type),
348
(value & D3DTA_COMPLEMENT) ? "COMPLEMENT " : "",
349
(value & D3DTA_ALPHAREPLICATE) ? "ALPHAREPLICATE " : "",
350
nine_D3DTA_to_str(value));
351
break;
352
case D3DTSS_BUMPENVMAT00:
353
case D3DTSS_BUMPENVMAT01:
354
case D3DTSS_BUMPENVMAT10:
355
case D3DTSS_BUMPENVMAT11:
356
case D3DTSS_BUMPENVLSCALE:
357
case D3DTSS_BUMPENVLOFFSET:
358
DBG_FLAG(ch, "D3DTSS_%s = %f\n",
359
nine_D3DTSS_to_str(type), asfloat(value));
360
break;
361
case D3DTSS_TEXCOORDINDEX:
362
DBG_FLAG(ch, "D3DTSS_TEXCOORDINDEX = %s %u\n",
363
nine_D3DTSS_TCI_to_str(value),
364
value & 0xffff);
365
break;
366
case D3DTSS_TEXTURETRANSFORMFLAGS:
367
DBG_FLAG(ch, "D3DTSS_TEXTURETRANSFORMFLAGS = %s\n",
368
nine_D3DTTFF_to_str(value));
369
break;
370
case D3DTSS_CONSTANT:
371
d3dcolor_to_rgba(rgba, value);
372
DBG_FLAG(ch, "D3DTSS_CONSTANT = %f %f %f %F\n",
373
rgba[0],rgba[1],rgba[2],rgba[3]);
374
break;
375
default:
376
DBG_FLAG(ch, "D3DTSS_? = 0x%08x\n", value);
377
break;
378
}
379
}
380
381
void
382
nine_dump_D3DADAPTER_IDENTIFIER9(unsigned ch, const D3DADAPTER_IDENTIFIER9 *id)
383
{
384
DBG_FLAG(ch, "D3DADAPTER_IDENTIFIER9(%p):\n"
385
"Driver: %s\n"
386
"Description: %s\n"
387
"DeviceName: %s\n"
388
"DriverVersion: %08x.%08x\n"
389
"VendorId: %x\n"
390
"DeviceId: %x\n"
391
"SubSysId: %x\n"
392
"Revision: %u\n"
393
"GUID: %08x.%04x.%04x.%02x.%02x.%02x.%02x.%02x.%02x.%02x.%02x\n"
394
"WHQLLevel: %u\n", id, id->Driver, id->Description,
395
id->DeviceName,
396
id->DriverVersionLowPart, id->DriverVersionHighPart,
397
id->VendorId, id->DeviceId, id->SubSysId,
398
id->Revision,
399
id->DeviceIdentifier.Data1,
400
id->DeviceIdentifier.Data2,
401
id->DeviceIdentifier.Data3,
402
id->DeviceIdentifier.Data4[0],
403
id->DeviceIdentifier.Data4[1],
404
id->DeviceIdentifier.Data4[2],
405
id->DeviceIdentifier.Data4[3],
406
id->DeviceIdentifier.Data4[4],
407
id->DeviceIdentifier.Data4[5],
408
id->DeviceIdentifier.Data4[6],
409
id->DeviceIdentifier.Data4[7],
410
id->WHQLLevel);
411
}
412
413
#define C2S(args...) p += snprintf(&s[p],c-p,args)
414
415
#define CAP_CASE(m,p,n) \
416
do { \
417
if (caps->m & p##_##n) \
418
C2S(" "#n); \
419
else \
420
C2S(" ("#n")"); \
421
} while(0)
422
423
void
424
nine_dump_D3DCAPS9(unsigned ch, const D3DCAPS9 *caps)
425
{
426
const int c = 1 << 17;
427
int p = 0;
428
char *s = (char *)MALLOC(c);
429
430
if (!s) {
431
DBG_FLAG(ch, "D3DCAPS9(%p): (out of memory)\n", caps);
432
return;
433
}
434
435
C2S("DeviceType: %s\n", nine_D3DDEVTYPE_to_str(caps->DeviceType));
436
437
C2S("AdapterOrdinal: %u\nCaps:", caps->AdapterOrdinal);
438
if (caps->Caps & 0x20000)
439
C2S(" READ_SCANLINE");
440
if (caps->Caps & ~0x20000)
441
C2S(" %x", caps->Caps & ~0x20000);
442
443
C2S("\nCaps2:");
444
CAP_CASE(Caps2, D3DCAPS2, CANAUTOGENMIPMAP);
445
CAP_CASE(Caps2, D3DCAPS2, CANCALIBRATEGAMMA);
446
CAP_CASE(Caps2, D3DCAPS2, CANSHARERESOURCE);
447
CAP_CASE(Caps2, D3DCAPS2, CANMANAGERESOURCE);
448
CAP_CASE(Caps2, D3DCAPS2, DYNAMICTEXTURES);
449
CAP_CASE(Caps2, D3DCAPS2, FULLSCREENGAMMA);
450
451
C2S("\nCaps3:");
452
CAP_CASE(Caps3, D3DCAPS3, ALPHA_FULLSCREEN_FLIP_OR_DISCARD);
453
CAP_CASE(Caps3, D3DCAPS3, COPY_TO_VIDMEM);
454
CAP_CASE(Caps3, D3DCAPS3, COPY_TO_SYSTEMMEM);
455
CAP_CASE(Caps3, D3DCAPS3, DXVAHD);
456
CAP_CASE(Caps3, D3DCAPS3, LINEAR_TO_SRGB_PRESENTATION);
457
458
C2S("\nPresentationIntervals:");
459
CAP_CASE(PresentationIntervals, D3DPRESENT_INTERVAL, ONE);
460
CAP_CASE(PresentationIntervals, D3DPRESENT_INTERVAL, TWO);
461
CAP_CASE(PresentationIntervals, D3DPRESENT_INTERVAL, THREE);
462
CAP_CASE(PresentationIntervals, D3DPRESENT_INTERVAL, FOUR);
463
CAP_CASE(PresentationIntervals, D3DPRESENT_INTERVAL, IMMEDIATE);
464
465
C2S("\nCursorCaps:");
466
CAP_CASE(CursorCaps, D3DCURSORCAPS, COLOR);
467
CAP_CASE(CursorCaps, D3DCURSORCAPS, LOWRES);
468
469
C2S("\nDevCaps:");
470
CAP_CASE(DevCaps, D3DDEVCAPS, CANBLTSYSTONONLOCAL);
471
CAP_CASE(DevCaps, D3DDEVCAPS, CANRENDERAFTERFLIP);
472
CAP_CASE(DevCaps, D3DDEVCAPS, DRAWPRIMITIVES2);
473
CAP_CASE(DevCaps, D3DDEVCAPS, DRAWPRIMITIVES2EX);
474
CAP_CASE(DevCaps, D3DDEVCAPS, DRAWPRIMTLVERTEX);
475
CAP_CASE(DevCaps, D3DDEVCAPS, EXECUTESYSTEMMEMORY);
476
CAP_CASE(DevCaps, D3DDEVCAPS, EXECUTEVIDEOMEMORY);
477
CAP_CASE(DevCaps, D3DDEVCAPS, HWRASTERIZATION);
478
CAP_CASE(DevCaps, D3DDEVCAPS, HWTRANSFORMANDLIGHT);
479
CAP_CASE(DevCaps, D3DDEVCAPS, NPATCHES);
480
CAP_CASE(DevCaps, D3DDEVCAPS, PUREDEVICE);
481
CAP_CASE(DevCaps, D3DDEVCAPS, QUINTICRTPATCHES);
482
CAP_CASE(DevCaps, D3DDEVCAPS, RTPATCHES);
483
CAP_CASE(DevCaps, D3DDEVCAPS, RTPATCHHANDLEZERO);
484
CAP_CASE(DevCaps, D3DDEVCAPS, SEPARATETEXTUREMEMORIES);
485
CAP_CASE(DevCaps, D3DDEVCAPS, TEXTURENONLOCALVIDMEM);
486
CAP_CASE(DevCaps, D3DDEVCAPS, TEXTURESYSTEMMEMORY);
487
CAP_CASE(DevCaps, D3DDEVCAPS, TEXTUREVIDEOMEMORY);
488
CAP_CASE(DevCaps, D3DDEVCAPS, TLVERTEXSYSTEMMEMORY);
489
CAP_CASE(DevCaps, D3DDEVCAPS, TLVERTEXVIDEOMEMORY);
490
491
C2S("\nPrimitiveMiscCaps:");
492
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, MASKZ);
493
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, CULLNONE);
494
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, CULLCW);
495
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, CULLCCW);
496
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, COLORWRITEENABLE);
497
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, CLIPPLANESCALEDPOINTS);
498
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, CLIPTLVERTS);
499
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, TSSARGTEMP);
500
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, BLENDOP);
501
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, NULLREFERENCE);
502
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, INDEPENDENTWRITEMASKS);
503
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, PERSTAGECONSTANT);
504
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, POSTBLENDSRGBCONVERT);
505
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, FOGANDSPECULARALPHA);
506
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, SEPARATEALPHABLEND);
507
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, MRTINDEPENDENTBITDEPTHS);
508
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, MRTPOSTPIXELSHADERBLENDING);
509
CAP_CASE(PrimitiveMiscCaps, D3DPMISCCAPS, FOGVERTEXCLAMPED);
510
511
C2S("\nRasterCaps:");
512
CAP_CASE(RasterCaps, D3DPRASTERCAPS, ANISOTROPY);
513
CAP_CASE(RasterCaps, D3DPRASTERCAPS, COLORPERSPECTIVE);
514
CAP_CASE(RasterCaps, D3DPRASTERCAPS, DITHER);
515
CAP_CASE(RasterCaps, D3DPRASTERCAPS, DEPTHBIAS);
516
CAP_CASE(RasterCaps, D3DPRASTERCAPS, FOGRANGE);
517
CAP_CASE(RasterCaps, D3DPRASTERCAPS, FOGTABLE);
518
CAP_CASE(RasterCaps, D3DPRASTERCAPS, FOGVERTEX);
519
CAP_CASE(RasterCaps, D3DPRASTERCAPS, MIPMAPLODBIAS);
520
CAP_CASE(RasterCaps, D3DPRASTERCAPS, MULTISAMPLE_TOGGLE);
521
CAP_CASE(RasterCaps, D3DPRASTERCAPS, SCISSORTEST);
522
CAP_CASE(RasterCaps, D3DPRASTERCAPS, SLOPESCALEDEPTHBIAS);
523
CAP_CASE(RasterCaps, D3DPRASTERCAPS, WBUFFER);
524
CAP_CASE(RasterCaps, D3DPRASTERCAPS, WFOG);
525
CAP_CASE(RasterCaps, D3DPRASTERCAPS, ZBUFFERLESSHSR);
526
CAP_CASE(RasterCaps, D3DPRASTERCAPS, ZFOG);
527
CAP_CASE(RasterCaps, D3DPRASTERCAPS, ZTEST);
528
529
C2S("\nZCmpCaps:");
530
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, ALWAYS);
531
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, EQUAL);
532
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, GREATER);
533
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, GREATEREQUAL);
534
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, LESS);
535
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, LESSEQUAL);
536
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, NEVER);
537
CAP_CASE(ZCmpCaps, D3DPCMPCAPS, NOTEQUAL);
538
539
C2S("\nSrcBlendCaps");
540
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, BLENDFACTOR);
541
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, BOTHINVSRCALPHA);
542
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, BOTHSRCALPHA);
543
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, DESTALPHA);
544
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, DESTCOLOR);
545
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, INVDESTALPHA);
546
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, INVDESTCOLOR);
547
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, INVSRCALPHA);
548
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, INVSRCCOLOR);
549
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, INVSRCCOLOR2);
550
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, ONE);
551
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, SRCALPHA);
552
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, SRCALPHASAT);
553
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, SRCCOLOR);
554
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, SRCCOLOR2);
555
CAP_CASE(SrcBlendCaps, D3DPBLENDCAPS, ZERO);
556
557
C2S("\nDestBlendCaps");
558
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, BLENDFACTOR);
559
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, BOTHINVSRCALPHA);
560
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, BOTHSRCALPHA);
561
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, DESTALPHA);
562
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, DESTCOLOR);
563
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, INVDESTALPHA);
564
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, INVDESTCOLOR);
565
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, INVSRCALPHA);
566
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, INVSRCCOLOR);
567
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, INVSRCCOLOR2);
568
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, ONE);
569
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, SRCALPHA);
570
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, SRCALPHASAT);
571
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, SRCCOLOR);
572
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, SRCCOLOR2);
573
CAP_CASE(DestBlendCaps, D3DPBLENDCAPS, ZERO);
574
575
C2S("\nAlphaCmpCaps:");
576
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, ALWAYS);
577
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, EQUAL);
578
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, GREATER);
579
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, GREATEREQUAL);
580
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, LESS);
581
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, LESSEQUAL);
582
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, NEVER);
583
CAP_CASE(AlphaCmpCaps, D3DPCMPCAPS, NOTEQUAL);
584
585
C2S("\nShadeCaps:");
586
CAP_CASE(ShadeCaps, D3DPSHADECAPS, ALPHAGOURAUDBLEND);
587
CAP_CASE(ShadeCaps, D3DPSHADECAPS, COLORGOURAUDRGB);
588
CAP_CASE(ShadeCaps, D3DPSHADECAPS, FOGGOURAUD);
589
CAP_CASE(ShadeCaps, D3DPSHADECAPS, SPECULARGOURAUDRGB);
590
591
C2S("\nTextureCaps:");
592
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, ALPHA);
593
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, ALPHAPALETTE);
594
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, CUBEMAP);
595
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, CUBEMAP_POW2);
596
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, MIPCUBEMAP);
597
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, MIPMAP);
598
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, MIPVOLUMEMAP);
599
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, NONPOW2CONDITIONAL);
600
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, NOPROJECTEDBUMPENV);
601
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, PERSPECTIVE);
602
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, POW2);
603
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, PROJECTED);
604
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, SQUAREONLY);
605
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, TEXREPEATNOTSCALEDBYSIZE);
606
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, VOLUMEMAP);
607
CAP_CASE(TextureCaps, D3DPTEXTURECAPS, VOLUMEMAP_POW2);
608
609
C2S("\nTextureFilterCaps:");
610
/* CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, CONVOLUTIONMONO); */
611
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MAGFPOINT);
612
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MAGFLINEAR);
613
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MAGFANISOTROPIC);
614
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MAGFPYRAMIDALQUAD);
615
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MAGFGAUSSIANQUAD);
616
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MINFPOINT);
617
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MINFLINEAR);
618
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MINFANISOTROPIC);
619
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MINFPYRAMIDALQUAD);
620
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MINFGAUSSIANQUAD);
621
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MIPFPOINT);
622
CAP_CASE(TextureFilterCaps, D3DPTFILTERCAPS, MIPFLINEAR);
623
624
C2S("\nCubeTextureFilterCaps:");
625
/* CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, CONVOLUTIONMONO); */
626
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MAGFPOINT);
627
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MAGFLINEAR);
628
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MAGFANISOTROPIC);
629
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MAGFPYRAMIDALQUAD);
630
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MAGFGAUSSIANQUAD);
631
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MINFPOINT);
632
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MINFLINEAR);
633
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MINFANISOTROPIC);
634
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MINFPYRAMIDALQUAD);
635
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MINFGAUSSIANQUAD);
636
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MIPFPOINT);
637
CAP_CASE(CubeTextureFilterCaps, D3DPTFILTERCAPS, MIPFLINEAR);
638
639
C2S("\nVolumeTextureFilterCaps:");
640
/* CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, CONVOLUTIONMONO); */
641
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MAGFPOINT);
642
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MAGFLINEAR);
643
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MAGFANISOTROPIC);
644
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MAGFPYRAMIDALQUAD);
645
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MAGFGAUSSIANQUAD);
646
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MINFPOINT);
647
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MINFLINEAR);
648
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MINFANISOTROPIC);
649
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MINFPYRAMIDALQUAD);
650
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MINFGAUSSIANQUAD);
651
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MIPFPOINT);
652
CAP_CASE(VolumeTextureFilterCaps, D3DPTFILTERCAPS, MIPFLINEAR);
653
654
C2S("\nTextureAddressCaps:");
655
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, BORDER);
656
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, CLAMP);
657
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, INDEPENDENTUV);
658
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, MIRROR);
659
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, MIRRORONCE);
660
CAP_CASE(TextureAddressCaps, D3DPTADDRESSCAPS, WRAP);
661
662
C2S("\nVolumeTextureAddressCaps:");
663
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, BORDER);
664
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, CLAMP);
665
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, INDEPENDENTUV);
666
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, MIRROR);
667
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, MIRRORONCE);
668
CAP_CASE(VolumeTextureAddressCaps, D3DPTADDRESSCAPS, WRAP);
669
670
C2S("\nLineCaps:");
671
CAP_CASE(LineCaps, D3DLINECAPS, ALPHACMP);
672
CAP_CASE(LineCaps, D3DLINECAPS, ANTIALIAS);
673
CAP_CASE(LineCaps, D3DLINECAPS, BLEND);
674
CAP_CASE(LineCaps, D3DLINECAPS, FOG);
675
CAP_CASE(LineCaps, D3DLINECAPS, TEXTURE);
676
CAP_CASE(LineCaps, D3DLINECAPS, ZTEST);
677
678
C2S("\nMaxTextureWidth: %u", caps->MaxTextureWidth);
679
C2S("\nMaxTextureHeight: %u", caps->MaxTextureHeight);
680
C2S("\nMaxVolumeExtent: %u", caps->MaxVolumeExtent);
681
C2S("\nMaxTextureRepeat: %u", caps->MaxTextureRepeat);
682
C2S("\nMaxTextureAspectRatio: %u", caps->MaxTextureAspectRatio);
683
C2S("\nMaxAnisotropy: %u", caps->MaxAnisotropy);
684
C2S("\nMaxVertexW: %f", caps->MaxVertexW);
685
686
C2S("\nGuardBandLef,Top,Right,Bottom: %f %f %f %f",
687
caps->GuardBandLeft, caps->GuardBandTop,
688
caps->GuardBandRight, caps->GuardBandBottom);
689
690
C2S("\nExtentsAdjust: %f", caps->ExtentsAdjust);
691
692
C2S("\nStencilCaps:");
693
CAP_CASE(StencilCaps, D3DSTENCILCAPS, KEEP);
694
CAP_CASE(StencilCaps, D3DSTENCILCAPS, ZERO);
695
CAP_CASE(StencilCaps, D3DSTENCILCAPS, REPLACE);
696
CAP_CASE(StencilCaps, D3DSTENCILCAPS, INCRSAT);
697
CAP_CASE(StencilCaps, D3DSTENCILCAPS, DECRSAT);
698
CAP_CASE(StencilCaps, D3DSTENCILCAPS, INVERT);
699
CAP_CASE(StencilCaps, D3DSTENCILCAPS, INCR);
700
CAP_CASE(StencilCaps, D3DSTENCILCAPS, DECR);
701
CAP_CASE(StencilCaps, D3DSTENCILCAPS, TWOSIDED);
702
703
C2S("\nFVFCaps:");
704
CAP_CASE(FVFCaps, D3DFVFCAPS, DONOTSTRIPELEMENTS);
705
CAP_CASE(FVFCaps, D3DFVFCAPS, PSIZE);
706
CAP_CASE(FVFCaps, D3DFVFCAPS, TEXCOORDCOUNTMASK);
707
708
C2S("\nTextureOpCaps:");
709
CAP_CASE(TextureOpCaps, D3DTEXOPCAPS, ADD);
710
CAP_CASE(TextureOpCaps, D3DTEXOPCAPS, ADDSIGNED);
711
C2S(" ...");
712
713
C2S("\nMaxTextureBlendStages: %u", caps->MaxTextureBlendStages);
714
C2S("\nMaxSimultaneousTextures: %u", caps->MaxTextureBlendStages);
715
716
C2S("\nVertexProcessingCaps:");
717
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, DIRECTIONALLIGHTS);
718
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, LOCALVIEWER);
719
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, MATERIALSOURCE7);
720
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, NO_TEXGEN_NONLOCALVIEWER);
721
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, POSITIONALLIGHTS);
722
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, TEXGEN);
723
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, TEXGEN_SPHEREMAP);
724
CAP_CASE(VertexProcessingCaps, D3DVTXPCAPS, TWEENING);
725
726
C2S("\nMaxActiveLights: %u", caps->MaxActiveLights);
727
C2S("\nMaxUserClipPlanes: %u", caps->MaxUserClipPlanes);
728
C2S("\nMaxVertexBlendMatrices: %u", caps->MaxVertexBlendMatrices);
729
C2S("\nMaxVertexBlendMatrixIndex: %u", caps->MaxVertexBlendMatrixIndex);
730
C2S("\nMaxPointSize: %f", caps->MaxPointSize);
731
C2S("\nMaxPrimitiveCount: 0x%x", caps->MaxPrimitiveCount);
732
C2S("\nMaxVertexIndex: 0x%x", caps->MaxVertexIndex);
733
C2S("\nMaxStreams: %u", caps->MaxStreams);
734
C2S("\nMaxStreamStride: 0x%x", caps->MaxStreamStride);
735
736
C2S("\nVertexShaderVersion: %08x", caps->VertexShaderVersion);
737
C2S("\nMaxVertexShaderConst: %u", caps->MaxVertexShaderConst);
738
C2S("\nPixelShaderVersion: %08x", caps->PixelShaderVersion);
739
C2S("\nPixelShader1xMaxValue: %f", caps->PixelShader1xMaxValue);
740
741
DBG_FLAG(ch, "D3DCAPS9(%p) part 1:\n%s\n", caps, s);
742
p = 0;
743
744
C2S("DevCaps2:");
745
CAP_CASE(DevCaps2, D3DDEVCAPS2, ADAPTIVETESSRTPATCH);
746
CAP_CASE(DevCaps2, D3DDEVCAPS2, ADAPTIVETESSNPATCH);
747
CAP_CASE(DevCaps2, D3DDEVCAPS2, CAN_STRETCHRECT_FROM_TEXTURES);
748
CAP_CASE(DevCaps2, D3DDEVCAPS2, DMAPNPATCH);
749
CAP_CASE(DevCaps2, D3DDEVCAPS2, PRESAMPLEDDMAPNPATCH);
750
CAP_CASE(DevCaps2, D3DDEVCAPS2, STREAMOFFSET);
751
CAP_CASE(DevCaps2, D3DDEVCAPS2, VERTEXELEMENTSCANSHARESTREAMOFFSET);
752
753
C2S("\nMasterAdapterOrdinal: %u", caps->MasterAdapterOrdinal);
754
C2S("\nAdapterOrdinalInGroup: %u", caps->AdapterOrdinalInGroup);
755
C2S("\nNumberOfAdaptersInGroup: %u", caps->NumberOfAdaptersInGroup);
756
757
C2S("\nDeclTypes:");
758
CAP_CASE(DeclTypes, D3DDTCAPS, UBYTE4);
759
CAP_CASE(DeclTypes, D3DDTCAPS, UBYTE4N);
760
CAP_CASE(DeclTypes, D3DDTCAPS, SHORT2N);
761
CAP_CASE(DeclTypes, D3DDTCAPS, SHORT4N);
762
CAP_CASE(DeclTypes, D3DDTCAPS, USHORT2N);
763
CAP_CASE(DeclTypes, D3DDTCAPS, USHORT4N);
764
CAP_CASE(DeclTypes, D3DDTCAPS, UDEC3);
765
CAP_CASE(DeclTypes, D3DDTCAPS, DEC3N);
766
CAP_CASE(DeclTypes, D3DDTCAPS, FLOAT16_2);
767
CAP_CASE(DeclTypes, D3DDTCAPS, FLOAT16_4);
768
769
C2S("\nNumSimultaneousRTs: %u", caps->NumSimultaneousRTs);
770
771
C2S("\nStretchRectFilterCaps:");
772
CAP_CASE(StretchRectFilterCaps, D3DPTFILTERCAPS, MINFPOINT);
773
CAP_CASE(StretchRectFilterCaps, D3DPTFILTERCAPS, MINFLINEAR);
774
CAP_CASE(StretchRectFilterCaps, D3DPTFILTERCAPS, MAGFPOINT);
775
CAP_CASE(StretchRectFilterCaps, D3DPTFILTERCAPS, MAGFLINEAR);
776
777
C2S("\nVS20Caps.Caps: Predication=%s", caps->VS20Caps.Caps ? "yes" : "no");
778
C2S("\nVS20Caps.DynamicFlowControlDepth: %u", caps->VS20Caps.DynamicFlowControlDepth);
779
C2S("\nVS20Caps.NumTemps: %u", caps->VS20Caps.NumTemps);
780
C2S("\nVS20Caps.StaticFlowControlDepth: %u", caps->VS20Caps.StaticFlowControlDepth);
781
782
C2S("\nPS20Caps.Caps: Predication=%s", caps->VS20Caps.Caps ? "yes" : "no");
783
C2S("\nPS20Caps.DynamicFlowControlDepth: %u", caps->PS20Caps.DynamicFlowControlDepth);
784
C2S("\nPS20Caps.NumTemps: %u", caps->PS20Caps.NumTemps);
785
C2S("\nPS20Caps.StaticFlowControlDepth: %u", caps->PS20Caps.StaticFlowControlDepth);
786
C2S("\nPS20Caps.NumInstructionSlots: %u", caps->PS20Caps.NumInstructionSlots);
787
788
C2S("\nVertexTextureFilterCaps");
789
/* CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, CONVOLUTIONMONO); */
790
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MAGFPOINT);
791
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MAGFLINEAR);
792
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MAGFANISOTROPIC);
793
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MAGFPYRAMIDALQUAD);
794
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MAGFGAUSSIANQUAD);
795
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MINFPOINT);
796
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MINFLINEAR);
797
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MINFANISOTROPIC);
798
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MINFPYRAMIDALQUAD);
799
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MINFGAUSSIANQUAD);
800
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MIPFPOINT);
801
CAP_CASE(VertexTextureFilterCaps, D3DPTFILTERCAPS, MIPFLINEAR);
802
803
C2S("\nMaxVShaderInstructionsExecuted: %u", caps->MaxVShaderInstructionsExecuted);
804
C2S("\nMaxPShaderInstructionsExecuted: %u", caps->MaxPShaderInstructionsExecuted);
805
C2S("\nMaxVertexShader30InstructionSlots: %u >= 512", caps->MaxVertexShader30InstructionSlots);
806
C2S("\nMaxPixelShader30InstructionSlots: %u >= 512", caps->MaxPixelShader30InstructionSlots);
807
808
DBG_FLAG(ch, "D3DCAPS9(%p) part 2:\n%s\n", caps, s);
809
810
FREE(s);
811
}
812
813
#endif /* DEBUG || !NDEBUG */
814
815