ReactOS 0.4.17-dev-966-gf06eace
utils.c
Go to the documentation of this file.
1/*
2 * Copyright 2008 Stefan Dösinger
3 * Copyright 2009 Matteo Bruni
4 * Copyright 2008-2009 Henri Verbeet for CodeWeavers
5 * Copyright 2010 Rico Schüller
6 * Copyright 2012 Matteo Bruni for CodeWeavers
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Lesser General Public
10 * License as published by the Free Software Foundation; either
11 * version 2.1 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Lesser General Public License for more details.
17 *
18 * You should have received a copy of the GNU Lesser General Public
19 * License along with this library; if not, write to the Free Software
20 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
21 *
22 */
23
24#include <stdio.h>
25
26#include "d3dcompiler_private.h"
27
29
30#define WINE_D3DCOMPILER_TO_STR(x) case x: return #x
31
33{
34 switch (c)
35 {
44 default:
45 FIXME("Unrecognized D3D_SHADER_VARIABLE_CLASS %#x.\n", c);
46 return "unrecognized";
47 }
48}
49
51{
52 switch (t)
53 {
100 default:
101 FIXME("Unrecognized D3D_SHADER_VARIABLE_TYPE %#x.\n", t);
102 return "unrecognized";
103 }
104}
105
107{
108 switch(part)
109 {
123
128 default:
129 FIXME("Unrecognized D3D_BLOB_PART %#x\n", part);
130 return "unrecognized";
131 }
132}
133
135{
136 switch (mod)
137 {
151 default:
152 FIXME("Unrecognized source modifier %#x.\n", mod);
153 return "unrecognized_src_mod";
154 }
155}
156
157#undef WINE_D3DCOMPILER_TO_STR
158
160{
161 switch (mod)
162 {
163 case 0:
164 return "";
166 return "_sat";
168 return "_pp";
170 return "_centroid";
172 return "_sat_pp";
174 return "_sat_centroid";
176 return "_pp_centroid";
178 return "_sat_pp_centroid";
179 default:
180 return "Unexpected modifier\n";
181 }
182}
183
185{
186 static const char * const shiftstrings[] =
187 {
188 "",
189 "_x2",
190 "_x4",
191 "_x8",
192 "_x16",
193 "_x32",
194 "",
195 "",
196 "",
197 "",
198 "",
199 "",
200 "_d16",
201 "_d8",
202 "_d4",
203 "_d2",
204 };
205 return shiftstrings[shift];
206}
207
208static const char *get_regname(const struct shader_reg *reg)
209{
210 switch (reg->type)
211 {
212 case BWRITERSPR_TEMP:
213 return wine_dbg_sprintf("r%u", reg->regnum);
214 case BWRITERSPR_INPUT:
215 return wine_dbg_sprintf("v%u", reg->regnum);
216 case BWRITERSPR_CONST:
217 return wine_dbg_sprintf("c%u", reg->regnum);
218 case BWRITERSPR_ADDR:
219 return wine_dbg_sprintf("a%u", reg->regnum);
221 return wine_dbg_sprintf("t%u", reg->regnum);
223 switch (reg->regnum)
224 {
225 case BWRITERSRO_POSITION: return "oPos";
226 case BWRITERSRO_FOG: return "oFog";
227 case BWRITERSRO_POINT_SIZE: return "oPts";
228 default: return "Unexpected RASTOUT";
229 }
231 return wine_dbg_sprintf("oD%u", reg->regnum);
233 return wine_dbg_sprintf("oT%u", reg->regnum);
235 return wine_dbg_sprintf("o%u", reg->regnum);
237 return wine_dbg_sprintf("i%u", reg->regnum);
239 return wine_dbg_sprintf("oC%u", reg->regnum);
241 return "oDepth";
243 return wine_dbg_sprintf("s%u", reg->regnum);
245 return wine_dbg_sprintf("b%u", reg->regnum);
246 case BWRITERSPR_LOOP:
247 return "aL";
249 switch (reg->regnum)
250 {
251 case 0: return "vPos";
252 case 1: return "vFace";
253 default: return "unexpected misctype";
254 }
255 case BWRITERSPR_LABEL:
256 return wine_dbg_sprintf("l%u", reg->regnum);
258 return wine_dbg_sprintf("p%u", reg->regnum);
259 default:
260 return wine_dbg_sprintf("unknown regname %#x", reg->type);
261 }
262}
263
265{
266 char ret[6];
267 unsigned char pos = 1;
268
269 if(mask == BWRITERSP_WRITEMASK_ALL) return "";
270 ret[0] = '.';
271 if(mask & BWRITERSP_WRITEMASK_0) ret[pos++] = 'x';
272 if(mask & BWRITERSP_WRITEMASK_1) ret[pos++] = 'y';
273 if(mask & BWRITERSP_WRITEMASK_2) ret[pos++] = 'z';
274 if(mask & BWRITERSP_WRITEMASK_3) ret[pos++] = 'w';
275 ret[pos] = 0;
276
277 return wine_dbg_sprintf("%s", ret);
278}
279
281{
282 char ret[6];
283 unsigned int i;
284 uint32_t swizzle[4];
285
286 switch (arg)
287 {
289 return "";
291 return ".x";
293 return ".y";
295 return ".z";
297 return ".w";
298 }
299
300 swizzle[0] = arg & 3;
301 swizzle[1] = (arg >> 2) & 3;
302 swizzle[2] = (arg >> 4) & 3;
303 swizzle[3] = (arg >> 6) & 3;
304
305 ret[0] = '.';
306 for (i = 0; i < 4; ++i)
307 {
308 switch (swizzle[i])
309 {
310 case 0: ret[1 + i] = 'x'; break;
311 case 1: ret[1 + i] = 'y'; break;
312 case 2: ret[1 + i] = 'z'; break;
313 case 3: ret[1 + i] = 'w'; break;
314 }
315 }
316 ret[5] = '\0';
317
318 return wine_dbg_sprintf("%s", ret);
319}
320
321static const char *debug_print_relarg(const struct shader_reg *reg)
322{
323 const char *short_swizzle;
324 if (!reg->rel_reg) return "";
325
326 short_swizzle = debug_print_swizzle(reg->rel_reg->swizzle);
327
328 if (reg->rel_reg->type == BWRITERSPR_ADDR)
329 return wine_dbg_sprintf("[a%u%s]", reg->rel_reg->regnum, short_swizzle);
330 else if(reg->rel_reg->type == BWRITERSPR_LOOP && reg->rel_reg->regnum == 0)
331 return wine_dbg_sprintf("[aL%s]", short_swizzle);
332 else
333 return "Unexpected relative addressing argument";
334}
335
336const char *debug_print_dstreg(const struct shader_reg *reg)
337{
338 return wine_dbg_sprintf("%s%s%s", get_regname(reg),
340 debug_print_writemask(reg->writemask));
341}
342
343const char *debug_print_srcreg(const struct shader_reg *reg)
344{
345 switch (reg->srcmod)
346 {
347 case BWRITERSPSM_NONE:
348 return wine_dbg_sprintf("%s%s%s", get_regname(reg),
350 debug_print_swizzle(reg->swizzle));
351 case BWRITERSPSM_NEG:
352 return wine_dbg_sprintf("-%s%s%s", get_regname(reg),
354 debug_print_swizzle(reg->swizzle));
355 case BWRITERSPSM_BIAS:
356 return wine_dbg_sprintf("%s%s_bias%s", get_regname(reg),
358 debug_print_swizzle(reg->swizzle));
360 return wine_dbg_sprintf("-%s%s_bias%s", get_regname(reg),
362 debug_print_swizzle(reg->swizzle));
363 case BWRITERSPSM_SIGN:
364 return wine_dbg_sprintf("%s%s_bx2%s", get_regname(reg),
366 debug_print_swizzle(reg->swizzle));
368 return wine_dbg_sprintf("-%s%s_bx2%s", get_regname(reg),
370 debug_print_swizzle(reg->swizzle));
371 case BWRITERSPSM_COMP:
372 return wine_dbg_sprintf("1 - %s%s%s", get_regname(reg),
374 debug_print_swizzle(reg->swizzle));
375 case BWRITERSPSM_X2:
376 return wine_dbg_sprintf("%s%s_x2%s", get_regname(reg),
378 debug_print_swizzle(reg->swizzle));
380 return wine_dbg_sprintf("-%s%s_x2%s", get_regname(reg),
382 debug_print_swizzle(reg->swizzle));
383 case BWRITERSPSM_DZ:
384 return wine_dbg_sprintf("%s%s_dz%s", get_regname(reg),
386 debug_print_swizzle(reg->swizzle));
387 case BWRITERSPSM_DW:
388 return wine_dbg_sprintf("%s%s_dw%s", get_regname(reg),
390 debug_print_swizzle(reg->swizzle));
391 case BWRITERSPSM_ABS:
392 return wine_dbg_sprintf("%s%s_abs%s", get_regname(reg),
394 debug_print_swizzle(reg->swizzle));
396 return wine_dbg_sprintf("-%s%s_abs%s", get_regname(reg),
398 debug_print_swizzle(reg->swizzle));
399 case BWRITERSPSM_NOT:
400 return wine_dbg_sprintf("!%s%s%s", get_regname(reg),
402 debug_print_swizzle(reg->swizzle));
403 }
404 return "Unknown modifier";
405}
406
407const char *debug_print_comp(uint32_t comp)
408{
409 switch (comp)
410 {
411 case BWRITER_COMPARISON_NONE: return "";
412 case BWRITER_COMPARISON_GT: return "_gt";
413 case BWRITER_COMPARISON_EQ: return "_eq";
414 case BWRITER_COMPARISON_GE: return "_ge";
415 case BWRITER_COMPARISON_LT: return "_lt";
416 case BWRITER_COMPARISON_NE: return "_ne";
417 case BWRITER_COMPARISON_LE: return "_le";
418 default: return "_unknown";
419 }
420}
421
422const char *debug_print_opcode(uint32_t opcode)
423{
424 switch (opcode)
425 {
426 case BWRITERSIO_NOP: return "nop";
427 case BWRITERSIO_MOV: return "mov";
428 case BWRITERSIO_ADD: return "add";
429 case BWRITERSIO_SUB: return "sub";
430 case BWRITERSIO_MAD: return "mad";
431 case BWRITERSIO_MUL: return "mul";
432 case BWRITERSIO_RCP: return "rcp";
433 case BWRITERSIO_RSQ: return "rsq";
434 case BWRITERSIO_DP3: return "dp3";
435 case BWRITERSIO_DP4: return "dp4";
436 case BWRITERSIO_MIN: return "min";
437 case BWRITERSIO_MAX: return "max";
438 case BWRITERSIO_SLT: return "slt";
439 case BWRITERSIO_SGE: return "sge";
440 case BWRITERSIO_EXP: return "exp";
441 case BWRITERSIO_LOG: return "log";
442 case BWRITERSIO_LIT: return "lit";
443 case BWRITERSIO_DST: return "dst";
444 case BWRITERSIO_LRP: return "lrp";
445 case BWRITERSIO_FRC: return "frc";
446 case BWRITERSIO_M4x4: return "m4x4";
447 case BWRITERSIO_M4x3: return "m4x3";
448 case BWRITERSIO_M3x4: return "m3x4";
449 case BWRITERSIO_M3x3: return "m3x3";
450 case BWRITERSIO_M3x2: return "m3x2";
451 case BWRITERSIO_CALL: return "call";
452 case BWRITERSIO_CALLNZ: return "callnz";
453 case BWRITERSIO_LOOP: return "loop";
454 case BWRITERSIO_RET: return "ret";
455 case BWRITERSIO_ENDLOOP: return "endloop";
456 case BWRITERSIO_LABEL: return "label";
457 case BWRITERSIO_DCL: return "dcl";
458 case BWRITERSIO_POW: return "pow";
459 case BWRITERSIO_CRS: return "crs";
460 case BWRITERSIO_SGN: return "sgn";
461 case BWRITERSIO_ABS: return "abs";
462 case BWRITERSIO_NRM: return "nrm";
463 case BWRITERSIO_SINCOS: return "sincos";
464 case BWRITERSIO_REP: return "rep";
465 case BWRITERSIO_ENDREP: return "endrep";
466 case BWRITERSIO_IF: return "if";
467 case BWRITERSIO_IFC: return "ifc";
468 case BWRITERSIO_ELSE: return "else";
469 case BWRITERSIO_ENDIF: return "endif";
470 case BWRITERSIO_BREAK: return "break";
471 case BWRITERSIO_BREAKC: return "breakc";
472 case BWRITERSIO_MOVA: return "mova";
473 case BWRITERSIO_DEFB: return "defb";
474 case BWRITERSIO_DEFI: return "defi";
475 case BWRITERSIO_TEXCOORD: return "texcoord";
476 case BWRITERSIO_TEXKILL: return "texkill";
477 case BWRITERSIO_TEX: return "tex";
478 case BWRITERSIO_TEXBEM: return "texbem";
479 case BWRITERSIO_TEXBEML: return "texbeml";
480 case BWRITERSIO_TEXREG2AR: return "texreg2ar";
481 case BWRITERSIO_TEXREG2GB: return "texreg2gb";
482 case BWRITERSIO_TEXM3x2PAD: return "texm3x2pad";
483 case BWRITERSIO_TEXM3x2TEX: return "texm3x2tex";
484 case BWRITERSIO_TEXM3x3PAD: return "texm3x3pad";
485 case BWRITERSIO_TEXM3x3TEX: return "texm3x3tex";
486 case BWRITERSIO_TEXM3x3SPEC: return "texm3x3vspec";
487 case BWRITERSIO_TEXM3x3VSPEC: return "texm3x3vspec";
488 case BWRITERSIO_EXPP: return "expp";
489 case BWRITERSIO_LOGP: return "logp";
490 case BWRITERSIO_CND: return "cnd";
491 case BWRITERSIO_DEF: return "def";
492 case BWRITERSIO_TEXREG2RGB: return "texreg2rgb";
493 case BWRITERSIO_TEXDP3TEX: return "texdp3tex";
494 case BWRITERSIO_TEXM3x2DEPTH: return "texm3x2depth";
495 case BWRITERSIO_TEXDP3: return "texdp3";
496 case BWRITERSIO_TEXM3x3: return "texm3x3";
497 case BWRITERSIO_TEXDEPTH: return "texdepth";
498 case BWRITERSIO_CMP: return "cmp";
499 case BWRITERSIO_BEM: return "bem";
500 case BWRITERSIO_DP2ADD: return "dp2add";
501 case BWRITERSIO_DSX: return "dsx";
502 case BWRITERSIO_DSY: return "dsy";
503 case BWRITERSIO_TEXLDD: return "texldd";
504 case BWRITERSIO_SETP: return "setp";
505 case BWRITERSIO_TEXLDL: return "texldl";
506 case BWRITERSIO_BREAKP: return "breakp";
507 case BWRITERSIO_PHASE: return "phase";
508
509 case BWRITERSIO_TEXLDP: return "texldp";
510 case BWRITERSIO_TEXLDB: return "texldb";
511
512 default: return "unknown";
513 }
514}
515
516void skip_u32_unknown(const char **ptr, unsigned int count)
517{
518 unsigned int i;
520
521 FIXME("Skipping %u unknown u32s:\n", count);
522 for (i = 0; i < count; ++i)
523 {
524 u32 = read_u32(ptr);
525 FIXME("\t0x%08x\n", u32);
526 }
527}
528
530{
531 char* buffer;
532 int rc, size;
533
534 if (msg->capacity == 0)
535 {
537 if (msg->string == NULL)
538 {
539 ERR("Error allocating memory for parser messages\n");
540 return;
541 }
543 }
544
545 while (1)
546 {
547 rc = vsnprintf(msg->string + msg->size,
548 msg->capacity - msg->size, fmt, args);
549
550 if (rc < 0 || rc >= msg->capacity - msg->size)
551 {
552 size = msg->capacity * 2;
553 buffer = realloc(msg->string, size);
554 if (buffer == NULL)
555 {
556 ERR("Error reallocating memory for parser messages\n");
557 return;
558 }
559 msg->string = buffer;
560 msg->capacity = size;
561 }
562 else
563 {
564 TRACE("%s", msg->string + msg->size);
565 msg->size += rc;
566 return;
567 }
568 }
569}
std::map< E_MODULE, HMODULE > mod
Definition: LocaleTests.cpp:68
#define vsnprintf
Definition: acwin.h:108
#define msg(x)
Definition: auth_time.c:54
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define FIXME(fmt,...)
Definition: precomp.h:53
#define ERR(fmt,...)
Definition: precomp.h:57
ULONG32 u32
Definition: btrfs.h:14
@ D3D_SVC_VECTOR
Definition: d3dcommon.idl:135
@ D3D_SVC_MATRIX_COLUMNS
Definition: d3dcommon.idl:137
@ D3D_SVC_SCALAR
Definition: d3dcommon.idl:134
@ D3D_SVC_STRUCT
Definition: d3dcommon.idl:139
@ D3D_SVC_MATRIX_ROWS
Definition: d3dcommon.idl:136
@ D3D_SVC_OBJECT
Definition: d3dcommon.idl:138
@ D3D_SVC_INTERFACE_CLASS
Definition: d3dcommon.idl:140
@ D3D_SVC_INTERFACE_POINTER
Definition: d3dcommon.idl:141
enum _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS
@ D3D_SVT_RWSTRUCTURED_BUFFER
Definition: d3dcommon.idl:217
@ D3D_SVT_INT
Definition: d3dcommon.idl:170
@ D3D_SVT_RWBUFFER
Definition: d3dcommon.idl:213
@ D3D_SVT_RWTEXTURE3D
Definition: d3dcommon.idl:212
@ D3D_SVT_BLEND
Definition: d3dcommon.idl:192
@ D3D_SVT_TEXTURECUBEARRAY
Definition: d3dcommon.idl:202
@ D3D_SVT_STRUCTURED_BUFFER
Definition: d3dcommon.idl:216
@ D3D_SVT_DOMAINSHADER
Definition: d3dcommon.idl:204
@ D3D_SVT_DEPTHSTENCILVIEW
Definition: d3dcommon.idl:199
@ D3D_SVT_APPEND_STRUCTURED_BUFFER
Definition: d3dcommon.idl:218
@ D3D_SVT_CBUFFER
Definition: d3dcommon.idl:194
@ D3D_SVT_UINT8
Definition: d3dcommon.idl:188
@ D3D_SVT_TEXTURE1DARRAY
Definition: d3dcommon.idl:196
@ D3D_SVT_RWTEXTURE1D
Definition: d3dcommon.idl:208
@ D3D_SVT_VERTEXSHADER
Definition: d3dcommon.idl:184
@ D3D_SVT_UINT
Definition: d3dcommon.idl:187
@ D3D_SVT_VOID
Definition: d3dcommon.idl:168
@ D3D_SVT_TEXTURE1D
Definition: d3dcommon.idl:174
@ D3D_SVT_FLOAT
Definition: d3dcommon.idl:171
@ D3D_SVT_RWTEXTURE2D
Definition: d3dcommon.idl:210
@ D3D_SVT_TEXTURE2DARRAY
Definition: d3dcommon.idl:197
@ D3D_SVT_DOUBLE
Definition: d3dcommon.idl:207
@ D3D_SVT_BUFFER
Definition: d3dcommon.idl:193
@ D3D_SVT_INTERFACE_POINTER
Definition: d3dcommon.idl:205
@ D3D_SVT_RASTERIZER
Definition: d3dcommon.idl:190
@ D3D_SVT_TEXTURECUBE
Definition: d3dcommon.idl:177
@ D3D_SVT_TEXTURE2D
Definition: d3dcommon.idl:175
@ D3D_SVT_DEPTHSTENCIL
Definition: d3dcommon.idl:191
@ D3D_SVT_RWTEXTURE2DARRAY
Definition: d3dcommon.idl:211
@ D3D_SVT_STRING
Definition: d3dcommon.idl:172
@ D3D_SVT_TEXTURE
Definition: d3dcommon.idl:173
@ D3D_SVT_BOOL
Definition: d3dcommon.idl:169
@ D3D_SVT_TEXTURE2DMS
Definition: d3dcommon.idl:200
@ D3D_SVT_BYTEADDRESS_BUFFER
Definition: d3dcommon.idl:214
@ D3D_SVT_SAMPLER
Definition: d3dcommon.idl:178
@ D3D_SVT_TEXTURE3D
Definition: d3dcommon.idl:176
@ D3D_SVT_TEXTURE2DMSARRAY
Definition: d3dcommon.idl:201
@ D3D_SVT_HULLSHADER
Definition: d3dcommon.idl:203
@ D3D_SVT_CONSUME_STRUCTURED_BUFFER
Definition: d3dcommon.idl:219
@ D3D_SVT_RENDERTARGETVIEW
Definition: d3dcommon.idl:198
@ D3D_SVT_TBUFFER
Definition: d3dcommon.idl:195
@ D3D_SVT_GEOMETRYSHADER
Definition: d3dcommon.idl:189
@ D3D_SVT_RWTEXTURE1DARRAY
Definition: d3dcommon.idl:209
@ D3D_SVT_RWBYTEADDRESS_BUFFER
Definition: d3dcommon.idl:215
@ D3D_SVT_COMPUTESHADER
Definition: d3dcommon.idl:206
@ D3D_SVT_PIXELSHADER
Definition: d3dcommon.idl:183
enum _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE
D3D_BLOB_PART
Definition: d3dcompiler.h:112
@ D3D_BLOB_ALL_SIGNATURE_BLOB
Definition: d3dcompiler.h:117
@ D3D_BLOB_INPUT_AND_OUTPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:115
@ D3D_BLOB_DEBUG_NAME
Definition: d3dcompiler.h:125
@ D3D_BLOB_TEST_COMPILE_PERF
Definition: d3dcompiler.h:128
@ D3D_BLOB_ROOT_SIGNATURE
Definition: d3dcompiler.h:124
@ D3D_BLOB_TEST_ALTERNATE_SHADER
Definition: d3dcompiler.h:126
@ D3D_BLOB_PATCH_CONSTANT_SIGNATURE_BLOB
Definition: d3dcompiler.h:116
@ D3D_BLOB_XNA_SHADER
Definition: d3dcompiler.h:121
@ D3D_BLOB_PRIVATE_DATA
Definition: d3dcompiler.h:123
@ D3D_BLOB_TEST_COMPILE_DETAILS
Definition: d3dcompiler.h:127
@ D3D_BLOB_INPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:113
@ D3D_BLOB_OUTPUT_SIGNATURE_BLOB
Definition: d3dcompiler.h:114
@ D3D_BLOB_DEBUG_INFO
Definition: d3dcompiler.h:118
@ D3D_BLOB_TEST_COMPILE_REPORT
Definition: d3dcompiler.h:129
@ D3D_BLOB_PDB
Definition: d3dcompiler.h:122
@ D3D_BLOB_XNA_PREPASS_SHADER
Definition: d3dcompiler.h:120
@ D3D_BLOB_LEGACY_SHADER
Definition: d3dcompiler.h:119
@ BWRITERSRO_POSITION
@ BWRITERSRO_FOG
@ BWRITERSRO_POINT_SIZE
@ BWRITERSPSM_COMP
@ BWRITERSPSM_X2
@ BWRITERSPSM_ABS
@ BWRITERSPSM_NONE
@ BWRITERSPSM_BIAS
@ BWRITERSPSM_X2NEG
@ BWRITERSPSM_NEG
@ BWRITERSPSM_SIGNNEG
@ BWRITERSPSM_BIASNEG
@ BWRITERSPSM_DZ
@ BWRITERSPSM_ABSNEG
@ BWRITERSPSM_NOT
@ BWRITERSPSM_SIGN
@ BWRITERSPSM_DW
#define BWRITERVS_SWIZZLE_Z
#define BWRITERSP_WRITEMASK_3
#define BWRITERSP_WRITEMASK_0
@ BWRITER_COMPARISON_NE
@ BWRITER_COMPARISON_NONE
@ BWRITER_COMPARISON_LE
@ BWRITER_COMPARISON_GT
@ BWRITER_COMPARISON_GE
@ BWRITER_COMPARISON_LT
@ BWRITER_COMPARISON_EQ
@ BWRITERSPDM_SATURATE
@ BWRITERSPDM_PARTIALPRECISION
@ BWRITERSPDM_MSAMPCENTROID
#define BWRITERSP_WRITEMASK_ALL
#define BWRITERVS_SWIZZLE_X
#define BWRITERVS_SWIZZLE_W
#define BWRITERVS_NOSWIZZLE
#define BWRITERSP_WRITEMASK_1
@ BWRITERSPR_TEXCRDOUT
@ BWRITERSPR_CONSTINT
@ BWRITERSPR_MISCTYPE
@ BWRITERSPR_RASTOUT
@ BWRITERSPR_LOOP
@ BWRITERSPR_CONSTBOOL
@ BWRITERSPR_COLOROUT
@ BWRITERSPR_SAMPLER
@ BWRITERSPR_CONST
@ BWRITERSPR_TEXTURE
@ BWRITERSPR_DEPTHOUT
@ BWRITERSPR_ADDR
@ BWRITERSPR_ATTROUT
@ BWRITERSPR_TEMP
@ BWRITERSPR_INPUT
@ BWRITERSPR_PREDICATE
@ BWRITERSPR_LABEL
@ BWRITERSPR_OUTPUT
#define BWRITERSP_WRITEMASK_2
@ BWRITERSIO_EXP
@ BWRITERSIO_TEXBEML
@ BWRITERSIO_DSX
@ BWRITERSIO_LRP
@ BWRITERSIO_MAX
@ BWRITERSIO_TEXLDB
@ BWRITERSIO_BEM
@ BWRITERSIO_RCP
@ BWRITERSIO_MOV
@ BWRITERSIO_POW
@ BWRITERSIO_NRM
@ BWRITERSIO_DEF
@ BWRITERSIO_TEXM3x3TEX
@ BWRITERSIO_DEFB
@ BWRITERSIO_MIN
@ BWRITERSIO_TEXM3x2PAD
@ BWRITERSIO_DP2ADD
@ BWRITERSIO_SGE
@ BWRITERSIO_CALLNZ
@ BWRITERSIO_MUL
@ BWRITERSIO_BREAK
@ BWRITERSIO_CALL
@ BWRITERSIO_TEXM3x3PAD
@ BWRITERSIO_ENDREP
@ BWRITERSIO_CND
@ BWRITERSIO_BREAKP
@ BWRITERSIO_SGN
@ BWRITERSIO_M3x4
@ BWRITERSIO_TEXDP3
@ BWRITERSIO_LOOP
@ BWRITERSIO_TEX
@ BWRITERSIO_TEXREG2AR
@ BWRITERSIO_TEXLDD
@ BWRITERSIO_TEXM3x3SPEC
@ BWRITERSIO_DCL
@ BWRITERSIO_TEXM3x2DEPTH
@ BWRITERSIO_EXPP
@ BWRITERSIO_TEXCOORD
@ BWRITERSIO_MOVA
@ BWRITERSIO_ENDIF
@ BWRITERSIO_TEXREG2RGB
@ BWRITERSIO_IFC
@ BWRITERSIO_TEXBEM
@ BWRITERSIO_MAD
@ BWRITERSIO_CRS
@ BWRITERSIO_FRC
@ BWRITERSIO_LABEL
@ BWRITERSIO_SINCOS
@ BWRITERSIO_ADD
@ BWRITERSIO_M4x3
@ BWRITERSIO_M3x2
@ BWRITERSIO_TEXM3x3VSPEC
@ BWRITERSIO_TEXLDL
@ BWRITERSIO_DSY
@ BWRITERSIO_SUB
@ BWRITERSIO_TEXDP3TEX
@ BWRITERSIO_TEXDEPTH
@ BWRITERSIO_TEXKILL
@ BWRITERSIO_M4x4
@ BWRITERSIO_DP4
@ BWRITERSIO_ELSE
@ BWRITERSIO_LIT
@ BWRITERSIO_IF
@ BWRITERSIO_LOGP
@ BWRITERSIO_RET
@ BWRITERSIO_CMP
@ BWRITERSIO_DP3
@ BWRITERSIO_LOG
@ BWRITERSIO_PHASE
@ BWRITERSIO_M3x3
@ BWRITERSIO_TEXLDP
@ BWRITERSIO_REP
@ BWRITERSIO_DEFI
@ BWRITERSIO_ENDLOOP
@ BWRITERSIO_TEXM3x2TEX
@ BWRITERSIO_SETP
@ BWRITERSIO_RSQ
@ BWRITERSIO_TEXM3x3
@ BWRITERSIO_TEXREG2GB
@ BWRITERSIO_BREAKC
@ BWRITERSIO_ABS
@ BWRITERSIO_DST
@ BWRITERSIO_SLT
@ BWRITERSIO_NOP
#define MESSAGEBUFFER_INITIAL_SIZE
#define BWRITERVS_SWIZZLE_Y
#define realloc
Definition: debug_ros.c:6
#define NULL
Definition: types.h:112
UINT32 uint32_t
Definition: types.h:75
const char * debug_print_srcmod(uint32_t mod)
Definition: utils.c:134
void compilation_message(struct compilation_messages *msg, const char *fmt, va_list args)
Definition: utils.c:529
const char * debug_print_shift(uint32_t shift)
Definition: utils.c:184
const char * debug_print_comp(uint32_t comp)
Definition: utils.c:407
static const char * get_regname(const struct shader_reg *reg)
Definition: utils.c:208
static const char * debug_print_swizzle(uint32_t arg)
Definition: utils.c:280
static const char * debug_print_writemask(uint32_t mask)
Definition: utils.c:264
static const char * debug_print_relarg(const struct shader_reg *reg)
Definition: utils.c:321
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part)
Definition: utils.c:106
const char * debug_print_dstreg(const struct shader_reg *reg)
Definition: utils.c:336
const char * debug_print_dstmod(uint32_t mod)
Definition: utils.c:159
const char * debug_d3dcompiler_shader_variable_type(D3D_SHADER_VARIABLE_TYPE t)
Definition: utils.c:50
const char * debug_print_srcreg(const struct shader_reg *reg)
Definition: utils.c:343
const char * debug_print_opcode(uint32_t opcode)
Definition: utils.c:422
const char * debug_d3dcompiler_shader_variable_class(D3D_SHADER_VARIABLE_CLASS c)
Definition: utils.c:32
void skip_u32_unknown(const char **ptr, unsigned int count)
Definition: utils.c:516
#define WINE_D3DCOMPILER_TO_STR(x)
Definition: utils.c:30
static uint32_t read_u32(const char **ptr)
Definition: utils.h:24
const char * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
char * va_list
Definition: vadefs.h:50
return ret
Definition: mutex.c:147
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLdouble GLdouble t
Definition: gl.h:2047
GLuint GLenum swizzle
Definition: glext.h:9511
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
const GLubyte * c
Definition: glext.h:8905
GLenum GLint GLuint mask
Definition: glext.h:6028
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
static int reg
Definition: i386-dis.c:1290
static PVOID ptr
Definition: dispmode.c:27
#define shift
Definition: input.c:3280
#define calloc
Definition: rosglue.h:14
#define u32
Definition: types.h:9
#define TRACE(s)
Definition: solgame.cpp:4
Definition: match.c:390
Definition: dsound.c:943