ReactOS 0.4.17-dev-966-gf06eace
d3dcompiler_private.h
Go to the documentation of this file.
1/*
2 * Copyright 2008 Stefan Dösinger
3 * Copyright 2009 Matteo Bruni
4 * Copyright 2010 Rico Schüller
5 * Copyright 2012 Matteo Bruni for CodeWeavers
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#ifndef __WINE_D3DCOMPILER_PRIVATE_H
23#define __WINE_D3DCOMPILER_PRIVATE_H
24
25#include "wine/debug.h"
26#include "wine/list.h"
27#include "wine/rbtree.h"
28
29#define COBJMACROS
30#include "windef.h"
31#include "winbase.h"
32#include "objbase.h"
33
34#include "d3dcompiler.h"
35#include "utils.h"
36
37#include <assert.h>
38#include <stdint.h>
39
40#include <vkd3d_shader.h>
41
42/*
43 * This doesn't belong here, but for some functions it is possible to return that value,
44 * see http://msdn.microsoft.com/en-us/library/bb205278%28v=VS.85%29.aspx
45 * The original definition is in D3DX10core.h.
46 */
47#define D3DERR_INVALIDCALL 0x8876086c
48
49/* TRACE helper functions */
53
55{
59};
60
62{
70};
71
73{
74 unsigned int regnum;
75 union
76 {
77 float f;
78 int i;
81 } value[4];
82};
83
85{
87 unsigned int regnum;
90 union
91 {
94 };
95};
96
98{
106 unsigned int num_srcs; /* For freeing the rel_regs */
110};
111
113{
119};
120
122{
126};
127
129{
132
133 /* Local constants. Every constant that is not defined below is loaded from
134 * the global constant set at shader runtime
135 */
136 struct constant **constF;
137 struct constant **constI;
138 struct constant **constB;
139 unsigned int num_cf, num_ci, num_cb;
140
141 /* Declared input and output varyings */
143 unsigned int num_inputs, num_outputs;
145 unsigned int num_samplers;
146
147 /* Are special pixel shader 3.0 registers declared? */
149
150 /* Array of shader instructions - The shader code itself */
153};
154
155struct asm_parser;
156
157/* This structure is only used in asmshader.y, but since the .l file accesses the semantic types
158 * too it has to know it as well
159 */
161{
167};
168
169#define MAX_SRC_REGS 4
170
172{
174 unsigned int count;
175};
176
178{
179 void (*constF)(struct asm_parser *This, uint32_t reg, float x, float y, float z, float w);
180 void (*constI)(struct asm_parser *This, uint32_t reg, int x, int y, int z, int w);
182
184 const struct shader_reg *dst);
185 void (*srcreg)(struct asm_parser *This, struct instruction *instr, int num,
186 const struct shader_reg *src);
187
189 const struct shader_reg *predicate);
191
193 const struct shader_reg *reg);
195 uint32_t mod, const struct shader_reg *reg);
197 uint32_t regnum, unsigned int line_no);
198
199 void (*end)(struct asm_parser *This);
200
202 enum bwriter_comparison_type comp, const struct shader_reg *dst,
203 const struct src_regs *srcs, int expectednsrcs);
204};
205
206struct instruction *alloc_instr(unsigned int srcs);
208BOOL add_constF(struct bwriter_shader *shader, uint32_t reg, float x, float y, float z, float w);
209BOOL add_constI(struct bwriter_shader *shader, uint32_t reg, int x, int y, int z, int w);
212 uint32_t mod, BOOL output, uint32_t regnum, uint32_t writemask, BOOL builtin);
214
215#define MESSAGEBUFFER_INITIAL_SIZE 256
216
218{
221 PARSE_ERR = 2
223
225{
226 char *string;
227 unsigned int size;
228 unsigned int capacity;
229};
230
232{
233 /* The function table of the parser implementation */
235
236 /* Private data follows */
238 unsigned int m3x3pad_count;
239
242 unsigned int line_no;
243};
244
245extern struct asm_parser asm_ctx;
246
247void create_vs10_parser(struct asm_parser *ret);
248void create_vs11_parser(struct asm_parser *ret);
249void create_vs20_parser(struct asm_parser *ret);
250void create_vs2x_parser(struct asm_parser *ret);
251void create_vs30_parser(struct asm_parser *ret);
252void create_ps10_parser(struct asm_parser *ret);
253void create_ps11_parser(struct asm_parser *ret);
254void create_ps12_parser(struct asm_parser *ret);
255void create_ps13_parser(struct asm_parser *ret);
256void create_ps14_parser(struct asm_parser *ret);
257void create_ps20_parser(struct asm_parser *ret);
258void create_ps2x_parser(struct asm_parser *ret);
259void create_ps30_parser(struct asm_parser *ret);
260
262
263#ifdef __GNUC__
264#define PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
265#else
266#define PRINTF_ATTR(fmt,args)
267#endif
268
269void compilation_message(struct compilation_messages *msg, const char *fmt, va_list args);
270void WINAPIV asmparser_message(struct asm_parser *ctx, const char *fmt, ...) PRINTF_ATTR(2,3);
272{
273 if (update == PARSE_ERR)
275 else if (update == PARSE_WARN && *current == PARSE_SUCCESS)
277}
278
279/* Debug utility routines */
280const char *debug_print_srcmod(uint32_t mod);
281const char *debug_print_dstmod(uint32_t mod);
282const char *debug_print_shift(uint32_t shift);
283const char *debug_print_dstreg(const struct shader_reg *reg);
284const char *debug_print_srcreg(const struct shader_reg *reg);
285const char *debug_print_comp(uint32_t comp);
286const char *debug_print_opcode(uint32_t opcode);
287
288/* Used to signal an incorrect swizzle/writemask */
289#define SWIZZLE_ERR ~0U
290
291/* Enumerations and defines used in the bytecode writer intermediate
292 * representation. */
294{
344
379
383};
384
386{
406
408{
413
414#define BWRITERSP_WRITEMASK_0 0x1 /* .x r */
415#define BWRITERSP_WRITEMASK_1 0x2 /* .y g */
416#define BWRITERSP_WRITEMASK_2 0x4 /* .z b */
417#define BWRITERSP_WRITEMASK_3 0x8 /* .w a */
418#define BWRITERSP_WRITEMASK_ALL 0xf /* all */
419
421{
426};
427
429{
435};
436
437#define BWRITERSI_TEXLD_PROJECT 1
438#define BWRITERSI_TEXLD_BIAS 2
439
441{
456};
457
458#define BWRITER_SM1_VS 0xfffeu
459#define BWRITER_SM1_PS 0xffffu
460
461#define BWRITERPS_VERSION(major, minor) ((BWRITER_SM1_PS << 16) | ((major) << 8) | (minor))
462#define BWRITERVS_VERSION(major, minor) ((BWRITER_SM1_VS << 16) | ((major) << 8) | (minor))
463
464#define BWRITERVS_X_X (0)
465#define BWRITERVS_X_Y (1)
466#define BWRITERVS_X_Z (2)
467#define BWRITERVS_X_W (3)
468
469#define BWRITERVS_Y_X (0 << 2)
470#define BWRITERVS_Y_Y (1 << 2)
471#define BWRITERVS_Y_Z (2 << 2)
472#define BWRITERVS_Y_W (3 << 2)
473
474#define BWRITERVS_Z_X (0 << 4)
475#define BWRITERVS_Z_Y (1 << 4)
476#define BWRITERVS_Z_Z (2 << 4)
477#define BWRITERVS_Z_W (3 << 4)
478
479#define BWRITERVS_W_X (0 << 6)
480#define BWRITERVS_W_Y (1 << 6)
481#define BWRITERVS_W_Z (2 << 6)
482#define BWRITERVS_W_W (3 << 6)
483
484#define BWRITERVS_NOSWIZZLE (BWRITERVS_X_X | BWRITERVS_Y_Y | BWRITERVS_Z_Z | BWRITERVS_W_W)
485
486#define BWRITERVS_SWIZZLE_X (BWRITERVS_X_X | BWRITERVS_Y_X | BWRITERVS_Z_X | BWRITERVS_W_X)
487#define BWRITERVS_SWIZZLE_Y (BWRITERVS_X_Y | BWRITERVS_Y_Y | BWRITERVS_Z_Y | BWRITERVS_W_Y)
488#define BWRITERVS_SWIZZLE_Z (BWRITERVS_X_Z | BWRITERVS_Y_Z | BWRITERVS_Z_Z | BWRITERVS_W_Z)
489#define BWRITERVS_SWIZZLE_W (BWRITERVS_X_W | BWRITERVS_Y_W | BWRITERVS_Z_W | BWRITERVS_W_W)
490
492{
508
509/* ps 1.x texture registers mappings */
510#define T0_REG 2
511#define T1_REG 3
512#define T2_REG 4
513#define T3_REG 5
514
515struct bwriter_shader *SlAssembleShader(const char *text, char **messages);
518
519#define DXBC_HEADER_SIZE (8 * sizeof(uint32_t))
520
521#define MAKE_TAG(ch0, ch1, ch2, ch3) \
522 ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \
523 ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
524#define TAG_Aon9 MAKE_TAG('A', 'o', 'n', '9')
525#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
526#define TAG_FX10 MAKE_TAG('F', 'X', '1', '0')
527#define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
528#define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N')
529#define TAG_OSG5 MAKE_TAG('O', 'S', 'G', '5')
530#define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G')
531#define TAG_RDEF MAKE_TAG('R', 'D', 'E', 'F')
532#define TAG_SDBG MAKE_TAG('S', 'D', 'B', 'G')
533#define TAG_SHDR MAKE_TAG('S', 'H', 'D', 'R')
534#define TAG_SHEX MAKE_TAG('S', 'H', 'E', 'X')
535#define TAG_STAT MAKE_TAG('S', 'T', 'A', 'T')
536#define TAG_XNAP MAKE_TAG('X', 'N', 'A', 'P')
537#define TAG_XNAS MAKE_TAG('X', 'N', 'A', 'S')
538
539#endif /* __WINE_D3DCOMPILER_PRIVATE_H */
std::map< E_MODULE, HMODULE > mod
Definition: LocaleTests.cpp:68
#define msg(x)
Definition: auth_time.c:54
BYTE usage_idx
enum _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS
enum _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE
D3D_BLOB_PART
Definition: d3dcompiler.h:112
void create_vs11_parser(struct asm_parser *ret)
Definition: asmparser.c:1449
bwritervs_rastout_offsets
@ BWRITERSRO_POSITION
@ BWRITERSRO_FOG
@ BWRITERSRO_POINT_SIZE
const char * debug_print_srcmod(uint32_t mod)
Definition: utils.c:134
bwritershader_param_srcmod_type
@ 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
void create_ps12_parser(struct asm_parser *ret)
Definition: asmparser.c:1550
BOOL add_constB(struct bwriter_shader *shader, uint32_t reg, BOOL x)
void create_vs2x_parser(struct asm_parser *ret)
Definition: asmparser.c:1483
bwriter_comparison_type
@ BWRITER_COMPARISON_NE
@ BWRITER_COMPARISON_NONE
@ BWRITER_COMPARISON_LE
@ BWRITER_COMPARISON_GT
@ BWRITER_COMPARISON_GE
@ BWRITER_COMPARISON_LT
@ BWRITER_COMPARISON_EQ
void compilation_message(struct compilation_messages *msg, const char *fmt, va_list args)
Definition: utils.c:529
bwritershader_param_dstmod_type
@ BWRITERSPDM_SATURATE
@ BWRITERSPDM_PARTIALPRECISION
@ BWRITERSPDM_MSAMPCENTROID
@ BWRITERSPDM_NONE
HRESULT shader_write_bytecode(const struct bwriter_shader *shader, uint32_t **result, uint32_t *size)
void create_vs10_parser(struct asm_parser *ret)
Definition: asmparser.c:1432
#define PRINTF_ATTR(fmt, args)
void create_ps30_parser(struct asm_parser *ret)
Definition: asmparser.c:1635
bwriterdeclusage
@ BWRITERDECLUSAGE_BLENDWEIGHT
@ BWRITERDECLUSAGE_FOG
@ BWRITERDECLUSAGE_NORMAL
@ BWRITERDECLUSAGE_PSIZE
@ BWRITERDECLUSAGE_COLOR
@ BWRITERDECLUSAGE_POSITION
@ BWRITERDECLUSAGE_BINORMAL
@ BWRITERDECLUSAGE_TANGENT
@ BWRITERDECLUSAGE_TESSFACTOR
@ BWRITERDECLUSAGE_DEPTH
@ BWRITERDECLUSAGE_BLENDINDICES
@ BWRITERDECLUSAGE_POSITIONT
@ BWRITERDECLUSAGE_TEXCOORD
@ BWRITERDECLUSAGE_SAMPLE
const char * debug_print_shift(uint32_t shift)
Definition: utils.c:184
const char * debug_print_comp(uint32_t comp)
Definition: utils.c:407
BOOL add_constF(struct bwriter_shader *shader, uint32_t reg, float x, float y, float z, float w)
BOOL record_sampler(struct bwriter_shader *shader, uint32_t samptype, uint32_t mod, uint32_t regnum)
struct instruction * alloc_instr(unsigned int srcs)
#define MAX_SRC_REGS
void WINAPIV static void set_parse_status(enum parse_status *current, enum parse_status update)
void create_ps11_parser(struct asm_parser *ret)
Definition: asmparser.c:1533
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part)
Definition: utils.c:106
void create_ps10_parser(struct asm_parser *ret)
Definition: asmparser.c:1516
void SlDeleteShader(struct bwriter_shader *shader)
const char * debug_print_dstreg(const struct shader_reg *reg)
Definition: utils.c:336
void create_ps20_parser(struct asm_parser *ret)
Definition: asmparser.c:1601
bwritersampler_texture_type
@ BWRITERSTT_CUBE
@ BWRITERSTT_UNKNOWN
@ BWRITERSTT_VOLUME
@ BWRITERSTT_2D
@ BWRITERSTT_1D
@ ST_VERTEX
@ ST_UNKNOWN
@ ST_PIXEL
struct bwriter_shader * SlAssembleShader(const char *text, char **messages)
void create_ps14_parser(struct asm_parser *ret)
Definition: asmparser.c:1584
const char * debug_print_dstmod(uint32_t mod)
Definition: utils.c:159
bwritershader_param_register_type
@ 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
void create_vs30_parser(struct asm_parser *ret)
Definition: asmparser.c:1500
void WINAPIV asmparser_message(struct asm_parser *ctx, const char *fmt,...) PRINTF_ATTR(2
struct asm_parser asm_ctx
bwritershader_instruction_opcode_type
@ 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_END
@ 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_COMMENT
@ BWRITERSIO_TEXREG2GB
@ BWRITERSIO_BREAKC
@ BWRITERSIO_ABS
@ BWRITERSIO_DST
@ BWRITERSIO_SLT
@ BWRITERSIO_NOP
BOOL record_declaration(struct bwriter_shader *shader, uint32_t usage, uint32_t usage_idx, uint32_t mod, BOOL output, uint32_t regnum, uint32_t writemask, BOOL builtin)
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
struct bwriter_shader * parse_asm_shader(char **messages)
void create_vs20_parser(struct asm_parser *ret)
Definition: asmparser.c:1466
void create_ps13_parser(struct asm_parser *ret)
Definition: asmparser.c:1567
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
@ PARSE_WARN
@ PARSE_SUCCESS
@ PARSE_ERR
BOOL add_constI(struct bwriter_shader *shader, uint32_t reg, int x, int y, int z, int w)
void create_ps2x_parser(struct asm_parser *ret)
Definition: asmparser.c:1618
BOOL add_instruction(struct bwriter_shader *shader, struct instruction *instr)
UINT32 uint32_t
Definition: types.h:75
const WCHAR * text
Definition: package.c:1826
char * va_list
Definition: vadefs.h:50
return ret
Definition: mutex.c:147
unsigned int BOOL
Definition: ntddk_ex.h:94
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLuint end
Definition: gl.h:1545
GLdouble GLdouble t
Definition: gl.h:2047
GLenum src
Definition: glext.h:6340
GLsizeiptr size
Definition: glext.h:5919
const GLubyte * c
Definition: glext.h:8905
GLuint shader
Definition: glext.h:6030
GLenum GLenum dst
Definition: glext.h:6340
GLuint64EXT * result
Definition: glext.h:11304
GLuint GLuint num
Definition: glext.h:9618
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
GLdouble GLdouble z
Definition: glext.h:5874
static int reg
Definition: i386-dis.c:1290
struct task_struct * current
Definition: linux.c:32
#define shift
Definition: input.c:3280
#define WINAPIV
Definition: sdbpapi.h:64
#define inline
Definition: compat.h:23
struct vkd3d_spirv_builtin builtin
Definition: spirv.c:4840
Definition: match.c:390
struct bwriter_shader * shader
unsigned int m3x3pad_count
enum parse_status status
unsigned int line_no
const struct asmparser_backend * funcs
void(* dcl_input)(struct asm_parser *This, uint32_t usage, uint32_t num, uint32_t mod, const struct shader_reg *reg)
void(* predicate)(struct asm_parser *This, const struct shader_reg *predicate)
void(* constB)(struct asm_parser *This, uint32_t reg, BOOL x)
void(* dcl_sampler)(struct asm_parser *This, uint32_t samptype, uint32_t mod, uint32_t regnum, unsigned int line_no)
void(* constI)(struct asm_parser *This, uint32_t reg, int x, int y, int z, int w)
void(* instr)(struct asm_parser *parser, uint32_t opcode, uint32_t mod, uint32_t shift, enum bwriter_comparison_type comp, const struct shader_reg *dst, const struct src_regs *srcs, int expectednsrcs)
void(* srcreg)(struct asm_parser *This, struct instruction *instr, int num, const struct shader_reg *src)
void(* dstreg)(struct asm_parser *This, struct instruction *instr, const struct shader_reg *dst)
void(* constF)(struct asm_parser *This, uint32_t reg, float x, float y, float z, float w)
void(* coissue)(struct asm_parser *This)
void(* dcl_output)(struct asm_parser *This, uint32_t usage, uint32_t num, const struct shader_reg *reg)
struct constant ** constI
unsigned char major_version
struct declaration * outputs
unsigned int num_instrs
struct declaration * inputs
enum shader_type type
struct constant ** constB
struct constant ** constF
unsigned int instr_alloc_size
struct samplerdecl * samplers
unsigned int num_inputs
unsigned int num_samplers
unsigned char minor_version
struct instruction ** instr
unsigned int num_outputs
unsigned int regnum
Definition: dsound.c:943
unsigned int num_srcs
enum bwriter_comparison_type comptype
struct shader_reg predicate
struct shader_reg * src
Definition: import.c:81
uint32_t additional_offset
uint32_t rel_regnum
uint32_t swizzle
struct shader_reg * rel_reg
unsigned int regnum
uint32_t writemask
unsigned int count
struct shader_reg reg[MAX_SRC_REGS]
Definition: pdh_main.c:64