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