ReactOS 0.4.17-dev-966-gf06eace
utils.c File Reference
#include <stdio.h>
#include "d3dcompiler_private.h"
Include dependency graph for utils.c:

Go to the source code of this file.

Macros

#define WINE_D3DCOMPILER_TO_STR(x)   case x: return #x
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (d3dcompiler)
 
const char * debug_d3dcompiler_shader_variable_class (D3D_SHADER_VARIABLE_CLASS c)
 
const char * debug_d3dcompiler_shader_variable_type (D3D_SHADER_VARIABLE_TYPE t)
 
const char * debug_d3dcompiler_d3d_blob_part (D3D_BLOB_PART part)
 
const char * debug_print_srcmod (uint32_t mod)
 
const char * debug_print_dstmod (uint32_t mod)
 
const char * debug_print_shift (uint32_t shift)
 
static const char * get_regname (const struct shader_reg *reg)
 
static const char * debug_print_writemask (uint32_t mask)
 
static const char * debug_print_swizzle (uint32_t arg)
 
static const char * debug_print_relarg (const struct shader_reg *reg)
 
const char * debug_print_dstreg (const struct shader_reg *reg)
 
const char * debug_print_srcreg (const struct shader_reg *reg)
 
const char * debug_print_comp (uint32_t comp)
 
const char * debug_print_opcode (uint32_t opcode)
 
void skip_u32_unknown (const char **ptr, unsigned int count)
 
void compilation_message (struct compilation_messages *msg, const char *fmt, va_list args)
 

Macro Definition Documentation

◆ WINE_D3DCOMPILER_TO_STR

#define WINE_D3DCOMPILER_TO_STR (   x)    case x: return #x

Definition at line 30 of file utils.c.

Function Documentation

◆ compilation_message()

void compilation_message ( struct compilation_messages *  msg,
const char *  fmt,
va_list  args 
)

Definition at line 529 of file utils.c.

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}
#define vsnprintf
Definition: acwin.h:108
#define msg(x)
Definition: auth_time.c:54
#define ERR(fmt,...)
Definition: precomp.h:57
#define MESSAGEBUFFER_INITIAL_SIZE
#define realloc
Definition: debug_ros.c:6
#define NULL
Definition: types.h:112
GLuint buffer
Definition: glext.h:5915
GLsizeiptr size
Definition: glext.h:5919
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4
Definition: match.c:390
Definition: dsound.c:943

◆ debug_d3dcompiler_d3d_blob_part()

const char * debug_d3dcompiler_d3d_blob_part ( D3D_BLOB_PART  part)

Definition at line 106 of file utils.c.

107{
108 switch(part)
109 {
123
128 default:
129 FIXME("Unrecognized D3D_BLOB_PART %#x\n", part);
130 return "unrecognized";
131 }
132}
#define FIXME(fmt,...)
Definition: precomp.h:53
@ 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
#define WINE_D3DCOMPILER_TO_STR(x)
Definition: utils.c:30

Referenced by check_blob_part(), d3dcompiler_get_blob_part(), and D3DGetBlobPart().

◆ debug_d3dcompiler_shader_variable_class()

const char * debug_d3dcompiler_shader_variable_class ( D3D_SHADER_VARIABLE_CLASS  c)

Definition at line 32 of file utils.c.

33{
34 switch (c)
35 {
44 default:
45 FIXME("Unrecognized D3D_SHADER_VARIABLE_CLASS %#x.\n", c);
46 return "unrecognized";
47 }
48}
@ 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
const GLubyte * c
Definition: glext.h:8905

Referenced by d3dcompiler_parse_type().

◆ debug_d3dcompiler_shader_variable_type()

const char * debug_d3dcompiler_shader_variable_type ( D3D_SHADER_VARIABLE_TYPE  t)

Definition at line 50 of file utils.c.

51{
52 switch (t)
53 {
100 default:
101 FIXME("Unrecognized D3D_SHADER_VARIABLE_TYPE %#x.\n", t);
102 return "unrecognized";
103 }
104}
@ 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
GLdouble GLdouble t
Definition: gl.h:2047

Referenced by d3dcompiler_parse_type().

◆ debug_print_comp()

const char * debug_print_comp ( uint32_t  comp)

Definition at line 407 of file utils.c.

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}
@ BWRITER_COMPARISON_NE
@ BWRITER_COMPARISON_NONE
@ BWRITER_COMPARISON_LE
@ BWRITER_COMPARISON_GT
@ BWRITER_COMPARISON_GE
@ BWRITER_COMPARISON_LT
@ BWRITER_COMPARISON_EQ

Referenced by asmparser_instr().

◆ debug_print_dstmod()

const char * debug_print_dstmod ( uint32_t  mod)

Definition at line 159 of file utils.c.

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}
std::map< E_MODULE, HMODULE > mod
Definition: LocaleTests.cpp:68
@ BWRITERSPDM_SATURATE
@ BWRITERSPDM_PARTIALPRECISION
@ BWRITERSPDM_MSAMPCENTROID

Referenced by asmparser_instr(), and check_ps_dstmod().

◆ debug_print_dstreg()

const char * debug_print_dstreg ( const struct shader_reg *  reg)

Definition at line 336 of file utils.c.

337{
338 return wine_dbg_sprintf("%s%s%s", get_regname(reg),
340 debug_print_writemask(reg->writemask));
341}
static const char * get_regname(const struct shader_reg *reg)
Definition: utils.c:208
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 * wine_dbg_sprintf(const char *format,...)
Definition: compat.c:296
static int reg
Definition: i386-dis.c:1290

Referenced by asmparser_dstreg_ps_1_0123(), asmparser_dstreg_ps_1_4(), asmparser_dstreg_ps_2(), asmparser_dstreg_ps_2_x(), asmparser_dstreg_ps_3(), asmparser_dstreg_vs_1(), asmparser_dstreg_vs_2(), asmparser_dstreg_vs_3(), and asmparser_instr().

◆ debug_print_opcode()

const char * debug_print_opcode ( uint32_t  opcode)

Definition at line 422 of file utils.c.

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}
@ 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

Referenced by asmparser_instr(), and call_instr_handler().

◆ debug_print_relarg()

static const char * debug_print_relarg ( const struct shader_reg *  reg)
static

Definition at line 321 of file utils.c.

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}
@ BWRITERSPR_LOOP
@ BWRITERSPR_ADDR
static const char * debug_print_swizzle(uint32_t arg)
Definition: utils.c:280

Referenced by debug_print_dstreg(), and debug_print_srcreg().

◆ debug_print_shift()

const char * debug_print_shift ( uint32_t  shift)

Definition at line 184 of file utils.c.

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}
#define shift
Definition: input.c:3280

Referenced by asmparser_instr().

◆ debug_print_srcmod()

const char * debug_print_srcmod ( uint32_t  mod)

Definition at line 134 of file utils.c.

135{
136 switch (mod)
137 {
151 default:
152 FIXME("Unrecognized source modifier %#x.\n", mod);
153 return "unrecognized_src_mod";
154 }
155}
@ BWRITERSPSM_COMP
@ BWRITERSPSM_X2
@ BWRITERSPSM_ABS
@ BWRITERSPSM_BIAS
@ BWRITERSPSM_X2NEG
@ BWRITERSPSM_NEG
@ BWRITERSPSM_SIGNNEG
@ BWRITERSPSM_BIASNEG
@ BWRITERSPSM_DZ
@ BWRITERSPSM_ABSNEG
@ BWRITERSPSM_NOT
@ BWRITERSPSM_SIGN
@ BWRITERSPSM_DW

Referenced by check_abs_srcmod(), and check_legacy_srcmod().

◆ debug_print_srcreg()

const char * debug_print_srcreg ( const struct shader_reg *  reg)

Definition at line 343 of file utils.c.

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}
@ BWRITERSPSM_NONE

Referenced by asmparser_instr(), asmparser_srcreg_ps_1_0123(), asmparser_srcreg_ps_1_4(), asmparser_srcreg_ps_2(), asmparser_srcreg_ps_2_x(), asmparser_srcreg_ps_3(), asmparser_srcreg_vs_1(), asmparser_srcreg_vs_2(), and asmparser_srcreg_vs_3().

◆ debug_print_swizzle()

static const char * debug_print_swizzle ( uint32_t  arg)
static

Definition at line 280 of file utils.c.

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}
#define BWRITERVS_SWIZZLE_Z
#define BWRITERVS_SWIZZLE_X
#define BWRITERVS_SWIZZLE_W
#define BWRITERVS_NOSWIZZLE
#define BWRITERVS_SWIZZLE_Y
UINT32 uint32_t
Definition: types.h:75
return ret
Definition: mutex.c:147
GLuint GLenum swizzle
Definition: glext.h:9511
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

Referenced by debug_print_relarg(), and debug_print_srcreg().

◆ debug_print_writemask()

static const char * debug_print_writemask ( uint32_t  mask)
static

Definition at line 264 of file utils.c.

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}
#define BWRITERSP_WRITEMASK_3
#define BWRITERSP_WRITEMASK_0
#define BWRITERSP_WRITEMASK_ALL
#define BWRITERSP_WRITEMASK_1
#define BWRITERSP_WRITEMASK_2
GLenum GLint GLuint mask
Definition: glext.h:6028

Referenced by debug_print_dstreg().

◆ get_regname()

static const char * get_regname ( const struct shader_reg *  reg)
static

Definition at line 208 of file utils.c.

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}
@ BWRITERSRO_POSITION
@ BWRITERSRO_FOG
@ BWRITERSRO_POINT_SIZE
@ BWRITERSPR_TEXCRDOUT
@ BWRITERSPR_CONSTINT
@ BWRITERSPR_MISCTYPE
@ BWRITERSPR_RASTOUT
@ BWRITERSPR_CONSTBOOL
@ BWRITERSPR_COLOROUT
@ BWRITERSPR_SAMPLER
@ BWRITERSPR_CONST
@ BWRITERSPR_TEXTURE
@ BWRITERSPR_DEPTHOUT
@ BWRITERSPR_ATTROUT
@ BWRITERSPR_TEMP
@ BWRITERSPR_INPUT
@ BWRITERSPR_PREDICATE
@ BWRITERSPR_LABEL
@ BWRITERSPR_OUTPUT

Referenced by debug_print_dstreg(), and debug_print_srcreg().

◆ skip_u32_unknown()

void skip_u32_unknown ( const char **  ptr,
unsigned int  count 
)

Definition at line 516 of file utils.c.

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}
ULONG32 u32
Definition: btrfs.h:14
static uint32_t read_u32(const char **ptr)
Definition: utils.h:24
GLuint GLuint GLsizei count
Definition: gl.h:1545
static PVOID ptr
Definition: dispmode.c:27
#define u32
Definition: types.h:9

Referenced by d3dcompiler_parse_rdef(), d3dcompiler_parse_signature(), d3dcompiler_parse_stat(), d3dcompiler_parse_type(), and d3dcompiler_parse_variables().

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( d3dcompiler  )