22#ifndef __WINE_D3DCOMPILER_PRIVATE_H
23#define __WINE_D3DCOMPILER_PRIVATE_H
27#include "wine/rbtree.h"
44#define D3DERR_INVALIDCALL 0x8876086c
118#define INSTRARRAY_INITIAL_SIZE 8
190#define MAX_SRC_REGS 4
216 DWORD regnum,
unsigned int line_no);
222 const struct src_regs *srcs,
int expectednsrcs);
234#define MESSAGEBUFFER_INITIAL_SIZE 256
283#define PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
285#define PRINTF_ATTR(fmt,args)
299#define BYTECODEBUFFER_INITIAL_SIZE 32
367#define SWIZZLE_ERR ~0U
492#define BWRITERSP_WRITEMASK_0 0x1
493#define BWRITERSP_WRITEMASK_1 0x2
494#define BWRITERSP_WRITEMASK_2 0x4
495#define BWRITERSP_WRITEMASK_3 0x8
496#define BWRITERSP_WRITEMASK_ALL 0xf
515#define BWRITERSI_TEXLD_PROJECT 1
516#define BWRITERSI_TEXLD_BIAS 2
536#define BWRITER_SM1_VS 0xfffeu
537#define BWRITER_SM1_PS 0xffffu
539#define BWRITERPS_VERSION(major, minor) ((BWRITER_SM1_PS << 16) | ((major) << 8) | (minor))
540#define BWRITERVS_VERSION(major, minor) ((BWRITER_SM1_VS << 16) | ((major) << 8) | (minor))
542#define BWRITERVS_SWIZZLE_SHIFT 16
543#define BWRITERVS_SWIZZLE_MASK (0xFF << BWRITERVS_SWIZZLE_SHIFT)
545#define BWRITERVS_X_X (0 << BWRITERVS_SWIZZLE_SHIFT)
546#define BWRITERVS_X_Y (1 << BWRITERVS_SWIZZLE_SHIFT)
547#define BWRITERVS_X_Z (2 << BWRITERVS_SWIZZLE_SHIFT)
548#define BWRITERVS_X_W (3 << BWRITERVS_SWIZZLE_SHIFT)
550#define BWRITERVS_Y_X (0 << (BWRITERVS_SWIZZLE_SHIFT + 2))
551#define BWRITERVS_Y_Y (1 << (BWRITERVS_SWIZZLE_SHIFT + 2))
552#define BWRITERVS_Y_Z (2 << (BWRITERVS_SWIZZLE_SHIFT + 2))
553#define BWRITERVS_Y_W (3 << (BWRITERVS_SWIZZLE_SHIFT + 2))
555#define BWRITERVS_Z_X (0 << (BWRITERVS_SWIZZLE_SHIFT + 4))
556#define BWRITERVS_Z_Y (1 << (BWRITERVS_SWIZZLE_SHIFT + 4))
557#define BWRITERVS_Z_Z (2 << (BWRITERVS_SWIZZLE_SHIFT + 4))
558#define BWRITERVS_Z_W (3 << (BWRITERVS_SWIZZLE_SHIFT + 4))
560#define BWRITERVS_W_X (0 << (BWRITERVS_SWIZZLE_SHIFT + 6))
561#define BWRITERVS_W_Y (1 << (BWRITERVS_SWIZZLE_SHIFT + 6))
562#define BWRITERVS_W_Z (2 << (BWRITERVS_SWIZZLE_SHIFT + 6))
563#define BWRITERVS_W_W (3 << (BWRITERVS_SWIZZLE_SHIFT + 6))
565#define BWRITERVS_NOSWIZZLE (BWRITERVS_X_X | BWRITERVS_Y_Y | BWRITERVS_Z_Z | BWRITERVS_W_W)
567#define BWRITERVS_SWIZZLE_X (BWRITERVS_X_X | BWRITERVS_Y_X | BWRITERVS_Z_X | BWRITERVS_W_X)
568#define BWRITERVS_SWIZZLE_Y (BWRITERVS_X_Y | BWRITERVS_Y_Y | BWRITERVS_Z_Y | BWRITERVS_W_Y)
569#define BWRITERVS_SWIZZLE_Z (BWRITERVS_X_Z | BWRITERVS_Y_Z | BWRITERVS_Z_Z | BWRITERVS_W_Z)
570#define BWRITERVS_SWIZZLE_W (BWRITERVS_X_W | BWRITERVS_Y_W | BWRITERVS_Z_W | BWRITERVS_W_W)
729#define HLSL_STORAGE_EXTERN 0x00000001
730#define HLSL_STORAGE_NOINTERPOLATION 0x00000002
731#define HLSL_MODIFIER_PRECISE 0x00000004
732#define HLSL_STORAGE_SHARED 0x00000008
733#define HLSL_STORAGE_GROUPSHARED 0x00000010
734#define HLSL_STORAGE_STATIC 0x00000020
735#define HLSL_STORAGE_UNIFORM 0x00000040
736#define HLSL_STORAGE_VOLATILE 0x00000080
737#define HLSL_MODIFIER_CONST 0x00000100
738#define HLSL_MODIFIER_ROW_MAJOR 0x00000200
739#define HLSL_MODIFIER_COLUMN_MAJOR 0x00000400
740#define HLSL_MODIFIER_IN 0x00000800
741#define HLSL_MODIFIER_OUT 0x00001000
743#define HLSL_TYPE_MODIFIERS_MASK (HLSL_MODIFIER_PRECISE | HLSL_STORAGE_VOLATILE | \
744 HLSL_MODIFIER_CONST | HLSL_MODIFIER_ROW_MAJOR | \
745 HLSL_MODIFIER_COLUMN_MAJOR)
747#define HLSL_MODIFIERS_COMPARISON_MASK (HLSL_MODIFIER_ROW_MAJOR | HLSL_MODIFIER_COLUMN_MAJOR)
1175#define MAKE_TAG(ch0, ch1, ch2, ch3) \
1176 ((DWORD)(ch0) | ((DWORD)(ch1) << 8) | \
1177 ((DWORD)(ch2) << 16) | ((DWORD)(ch3) << 24 ))
1178#define TAG_Aon9 MAKE_TAG('A', 'o', 'n', '9')
1179#define TAG_DXBC MAKE_TAG('D', 'X', 'B', 'C')
1180#define TAG_ISGN MAKE_TAG('I', 'S', 'G', 'N')
1181#define TAG_OSGN MAKE_TAG('O', 'S', 'G', 'N')
1182#define TAG_OSG5 MAKE_TAG('O', 'S', 'G', '5')
1183#define TAG_PCSG MAKE_TAG('P', 'C', 'S', 'G')
1184#define TAG_RDEF MAKE_TAG('R', 'D', 'E', 'F')
1185#define TAG_SDBG MAKE_TAG('S', 'D', 'B', 'G')
1186#define TAG_SHDR MAKE_TAG('S', 'H', 'D', 'R')
1187#define TAG_SHEX MAKE_TAG('S', 'H', 'E', 'X')
1188#define TAG_STAT MAKE_TAG('S', 'T', 'A', 'T')
1189#define TAG_XNAP MAKE_TAG('X', 'N', 'A', 'P')
1190#define TAG_XNAS MAKE_TAG('X', 'N', 'A', 'S')
std::map< E_MODULE, HMODULE > mod
ACPI_SIZE strlen(const char *String)
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
enum _D3D_SHADER_VARIABLE_CLASS D3D_SHADER_VARIABLE_CLASS
enum _D3D_SHADER_VARIABLE_TYPE D3D_SHADER_VARIABLE_TYPE
struct hlsl_type * new_hlsl_type(const char *name, enum hlsl_type_class type_class, enum hlsl_base_type base_type, unsigned dimx, unsigned dimy) DECLSPEC_HIDDEN
void create_vs20_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
HRESULT dxbc_add_section(struct dxbc *dxbc, DWORD tag, const char *data, DWORD data_size) DECLSPEC_HIDDEN
bwritervs_rastout_offsets
void create_ps30_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
void init_functions_tree(struct wine_rb_tree *funcs) DECLSPEC_HIDDEN
bwritershader_param_srcmod_type
void create_vs30_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
const char * debug_print_srcreg(const struct shader_reg *reg) DECLSPEC_HIDDEN
@ BWRITER_COMPARISON_NONE
void(* instr_writer)(struct bc_writer *This, const struct instruction *instr, struct bytecode_buffer *buffer)
@ HLSL_CLASS_LAST_NUMERIC
static struct hlsl_ir_constructor * constructor_from_node(const struct hlsl_ir_node *node)
BOOL add_instruction(struct bwriter_shader *shader, struct instruction *instr) DECLSPEC_HIDDEN
const char * debug_print_comp(DWORD comp) DECLSPEC_HIDDEN
static BOOL d3dcompiler_free(void *ptr)
void create_ps2x_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
BOOL add_declaration(struct hlsl_scope *scope, struct hlsl_ir_var *decl, BOOL local_var) DECLSPEC_HIDDEN
struct bwriter_shader * parse_hlsl_shader(const char *text, enum shader_type type, DWORD major, DWORD minor, const char *entrypoint, char **messages) DECLSPEC_HIDDEN
static struct hlsl_ir_loop * loop_from_node(const struct hlsl_ir_node *node)
struct hlsl_ir_var * get_variable(struct hlsl_scope *scope, const char *name) DECLSPEC_HIDDEN
BOOL compare_hlsl_types(const struct hlsl_type *t1, const struct hlsl_type *t2) DECLSPEC_HIDDEN
struct instruction * alloc_instr(unsigned int srcs) DECLSPEC_HIDDEN
bwritershader_param_dstmod_type
@ BWRITERSPDM_PARTIALPRECISION
@ BWRITERSPDM_MSAMPCENTROID
BOOL add_constB(struct bwriter_shader *shader, DWORD reg, BOOL x) DECLSPEC_HIDDEN
void free_hlsl_type(struct hlsl_type *type) DECLSPEC_HIDDEN
void create_ps10_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
static struct hlsl_ir_expr * expr_from_node(const struct hlsl_ir_node *node)
#define PRINTF_ATTR(fmt, args)
static struct hlsl_ir_node * new_unary_expr(enum hlsl_ir_expr_op op, struct hlsl_ir_node *op1, struct source_location loc)
BOOL record_sampler(struct bwriter_shader *shader, DWORD samptype, DWORD mod, DWORD regnum) DECLSPEC_HIDDEN
BOOL find_function(const char *name) DECLSPEC_HIDDEN
static void * d3dcompiler_realloc(void *ptr, SIZE_T size)
const char * debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN
const char * debug_print_opcode(DWORD opcode) DECLSPEC_HIDDEN
@ BWRITERDECLUSAGE_BLENDWEIGHT
@ BWRITERDECLUSAGE_NORMAL
@ BWRITERDECLUSAGE_POSITION
@ BWRITERDECLUSAGE_BINORMAL
@ BWRITERDECLUSAGE_TANGENT
@ BWRITERDECLUSAGE_TESSFACTOR
@ BWRITERDECLUSAGE_BLENDINDICES
@ BWRITERDECLUSAGE_POSITIONT
@ BWRITERDECLUSAGE_TEXCOORD
@ BWRITERDECLUSAGE_SAMPLE
HRESULT dxbc_init(struct dxbc *dxbc, unsigned int size) DECLSPEC_HIDDEN
void add_function_decl(struct wine_rb_tree *funcs, char *name, struct hlsl_ir_function_decl *decl, BOOL intrinsic) DECLSPEC_HIDDEN
static struct hlsl_ir_deref * deref_from_node(const struct hlsl_ir_node *node)
void create_vs2x_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
void create_vs11_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
static void set_parse_status(enum parse_status *current, enum parse_status update)
const char * debug_d3dcompiler_shader_variable_class(D3D_SHADER_VARIABLE_CLASS c) DECLSPEC_HIDDEN
BOOL compatible_data_types(struct hlsl_type *s1, struct hlsl_type *s2) DECLSPEC_HIDDEN
static struct hlsl_ir_if * if_from_node(const struct hlsl_ir_node *node)
static char * d3dcompiler_strdup(const char *string)
static struct hlsl_ir_jump * jump_from_node(const struct hlsl_ir_node *node)
struct hlsl_ir_expr * new_cast(struct hlsl_ir_node *node, struct hlsl_type *type, struct source_location *loc) DECLSPEC_HIDDEN
static void * d3dcompiler_alloc(SIZE_T size)
void SlDeleteShader(struct bwriter_shader *shader) DECLSPEC_HIDDEN
struct hlsl_ir_deref * new_var_deref(struct hlsl_ir_var *var) DECLSPEC_HIDDEN
void WINAPIV hlsl_report_message(const char *filename, DWORD line, DWORD column, enum hlsl_error_level level, const char *fmt,...) PRINTF_ATTR(5
void create_ps13_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
void create_ps20_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
BOOL add_constF(struct bwriter_shader *shader, DWORD reg, float x, float y, float z, float w) DECLSPEC_HIDDEN
static struct hlsl_ir_assignment * assignment_from_node(const struct hlsl_ir_node *node)
void create_vs10_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
const char * debug_hlsl_type(const struct hlsl_type *type) DECLSPEC_HIDDEN
void dxbc_destroy(struct dxbc *dxbc) DECLSPEC_HIDDEN
BOOL pop_scope(struct hlsl_parse_ctx *ctx) DECLSPEC_HIDDEN
struct asm_parser asm_ctx DECLSPEC_HIDDEN
struct hlsl_ir_node * make_assignment(struct hlsl_ir_node *left, enum parse_assign_op assign_op, DWORD writemask, struct hlsl_ir_node *right) DECLSPEC_HIDDEN
struct bwriter_shader * parse_asm_shader(char **messages) DECLSPEC_HIDDEN
const char * debug_print_shift(DWORD shift) DECLSPEC_HIDDEN
static void read_dword(const char **ptr, DWORD *d)
BOOL add_constI(struct bwriter_shader *shader, DWORD reg, INT x, INT y, INT z, INT w) DECLSPEC_HIDDEN
void WINAPIV hlsl_message(const char *fmt,...) PRINTF_ATTR(1
void create_ps11_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
const char * debug_d3dcompiler_shader_variable_type(D3D_SHADER_VARIABLE_TYPE t) DECLSPEC_HIDDEN
struct hlsl_ir_expr * new_expr(enum hlsl_ir_expr_op op, struct hlsl_ir_node **operands, struct source_location *loc) DECLSPEC_HIDDEN
struct bwriter_shader * SlAssembleShader(const char *text, char **messages) DECLSPEC_HIDDEN
const char * debug_print_srcmod(DWORD mod) DECLSPEC_HIDDEN
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part) DECLSPEC_HIDDEN
static struct hlsl_ir_constant * constant_from_node(const struct hlsl_ir_node *node)
bwritersampler_texture_type
struct hlsl_type * clone_hlsl_type(struct hlsl_type *old) DECLSPEC_HIDDEN
@ HLSL_SAMPLER_DIM_GENERIC
static void write_dword(char **ptr, DWORD d)
bwritershader_param_register_type
struct hlsl_type * new_array_type(struct hlsl_type *basic_type, unsigned int array_size) DECLSPEC_HIDDEN
HRESULT SlWriteBytecode(const struct bwriter_shader *shader, int dxversion, DWORD **result, DWORD *size) DECLSPEC_HIDDEN
void push_scope(struct hlsl_parse_ctx *ctx) DECLSPEC_HIDDEN
const char * debug_print_dstreg(const struct shader_reg *reg) DECLSPEC_HIDDEN
void create_ps12_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
void skip_dword_unknown(const char **ptr, unsigned int count) DECLSPEC_HIDDEN
void create_ps14_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
void WINAPIV asmparser_message(struct asm_parser *ctx, const char *fmt,...) PRINTF_ATTR(2
static struct hlsl_ir_node * new_binary_expr(enum hlsl_ir_expr_op op, struct hlsl_ir_node *op1, struct hlsl_ir_node *op2, struct source_location loc)
void free_declaration(struct hlsl_ir_var *decl) DECLSPEC_HIDDEN
HRESULT dxbc_parse(const char *data, SIZE_T data_size, struct dxbc *dxbc) DECLSPEC_HIDDEN
BOOL record_declaration(struct bwriter_shader *shader, DWORD usage, DWORD usage_idx, DWORD mod, BOOL output, DWORD regnum, DWORD writemask, BOOL builtin) DECLSPEC_HIDDEN
bwritershader_instruction_opcode_type
@ BWRITERSIO_TEXM3x2DEPTH
@ BWRITERSIO_TEXM3x3VSPEC
void free_instr(struct hlsl_ir_node *node) DECLSPEC_HIDDEN
void debug_dump_ir_function_decl(const struct hlsl_ir_function_decl *func) DECLSPEC_HIDDEN
@ HLSL_IR_BINOP_LOGIC_AND
@ HLSL_IR_UNOP_SIN_REDUCED
@ HLSL_IR_UNOP_COS_REDUCED
struct hlsl_ir_function_decl * new_func_decl(struct hlsl_type *return_type, struct list *parameters) DECLSPEC_HIDDEN
void free_instr_list(struct list *list) DECLSPEC_HIDDEN
struct hlsl_ir_deref * new_record_deref(struct hlsl_ir_node *record, struct hlsl_struct_field *field) DECLSPEC_HIDDEN
struct hlsl_type * get_type(struct hlsl_scope *scope, const char *name, BOOL recursive) DECLSPEC_HIDDEN
const char * debug_print_dstmod(DWORD mod) DECLSPEC_HIDDEN
void compilation_message(struct compilation_messages *msg, const char *fmt, __ms_va_list args) DECLSPEC_HIDDEN
unsigned int components_count_type(struct hlsl_type *type) DECLSPEC_HIDDEN
static struct hlsl_ir_swizzle * swizzle_from_node(const struct hlsl_ir_node *node)
HRESULT dxbc_write_blob(struct dxbc *dxbc, ID3DBlob **blob) DECLSPEC_HIDDEN
void free_function_rb(struct wine_rb_entry *entry, void *context) DECLSPEC_HIDDEN
#define HeapFree(x, y, z)
GLint GLint GLint GLint GLint x
GLuint GLuint GLsizei GLenum type
GLint GLint GLint GLint GLint GLint y
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLboolean GLboolean GLboolean b
GLubyte GLubyte GLubyte GLubyte w
GLsizeiptr const GLvoid GLenum usage
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 token
#define memcpy(s1, s2, n)
struct task_struct * current
static struct __wine_debug_functions funcs
struct bwriter_shader * shader
unsigned int m3x3pad_count
const struct asmparser_backend * funcs
void(* predicate)(struct asm_parser *This, const struct shader_reg *predicate)
void(* constB)(struct asm_parser *This, DWORD reg, BOOL x)
void(* constF)(struct asm_parser *This, DWORD reg, float x, float y, float z, float w)
void(* srcreg)(struct asm_parser *This, struct instruction *instr, int num, const struct shader_reg *src)
void(* instr)(struct asm_parser *parser, DWORD opcode, DWORD mod, DWORD shift, enum bwriter_comparison_type comp, const struct shader_reg *dst, const struct src_regs *srcs, int expectednsrcs)
void(* constI)(struct asm_parser *This, DWORD reg, INT x, INT y, INT z, INT w)
void(* dcl_input)(struct asm_parser *This, DWORD usage, DWORD num, DWORD mod, const struct shader_reg *reg)
void(* dstreg)(struct asm_parser *This, struct instruction *instr, const struct shader_reg *dst)
void(* dcl_output)(struct asm_parser *This, DWORD usage, DWORD num, const struct shader_reg *reg)
void(* dcl_sampler)(struct asm_parser *This, DWORD samptype, DWORD mod, DWORD regnum, unsigned int line_no)
void(* coissue)(struct asm_parser *This)
const struct bytecode_backend * funcs
struct constant ** constI
struct declaration * outputs
struct declaration * inputs
struct constant ** constB
struct constant ** constF
unsigned int instr_alloc_size
struct samplerdecl * samplers
unsigned int num_samplers
struct instruction ** instr
const struct bytecode_backend::instr_handler_table * instructions
void(* dstreg)(struct bc_writer *This, const struct shader_reg *reg, struct bytecode_buffer *buffer, DWORD shift, DWORD mod)
void(* opcode)(struct bc_writer *This, const struct instruction *instr, DWORD token, struct bytecode_buffer *buffer)
void(* srcreg)(struct bc_writer *This, const struct shader_reg *reg, struct bytecode_buffer *buffer)
struct dxbc_section * sections
struct hlsl_ir_node * rhs
struct hlsl_ir_node * lhs
union hlsl_ir_constant::@237 v
struct list * struct_elements
struct hlsl_ir_constant * array_elements
union hlsl_ir_constant::@237::@238 value
struct hlsl_struct_field * field
struct hlsl_ir_node * index
struct hlsl_ir_node * array
union hlsl_ir_deref::@234 v
enum hlsl_ir_deref_type type
struct hlsl_ir_node * record
struct list * subexpressions
struct hlsl_ir_node * operands[3]
struct wine_rb_entry entry
struct hlsl_ir_function * func
struct hlsl_type * return_type
struct source_location loc
struct wine_rb_tree overloads
struct wine_rb_entry entry
struct hlsl_ir_node * condition
struct list * else_instrs
struct list * then_instrs
struct hlsl_ir_node * return_value
enum hlsl_ir_jump_type type
struct source_location loc
enum hlsl_ir_node_type type
struct hlsl_type * data_type
struct hlsl_ir_node * val
struct hlsl_var_allocation * allocation
struct hlsl_type * data_type
struct list scope_entry param_entry
struct source_location loc
const struct reg_reservation * reg_reservation
unsigned int source_files_count
struct hlsl_scope * globals
struct hlsl_scope * cur_scope
const char ** source_files
enum hlsl_matrix_majority matrix_majority
struct wine_rb_tree functions
struct hlsl_scope * upper
unsigned int elements_count
struct hlsl_type::@232::@233 array
enum hlsl_base_type base_type
struct wine_rb_entry scope_entry
enum hlsl_sampler_dim sampler_dim
enum hlsl_type_class type
enum bwriter_comparison_type comptype
struct shader_reg predicate
struct reg_reservation * reg_reservation
struct hlsl_ir_function_decl * decl
struct list * else_instrs
struct list * then_instrs
struct hlsl_ir_node ** args
const struct reg_reservation * reg_reservation
struct source_location loc
struct parse_initializer initializer
struct reg_reservation * reg_reservation
enum bwritershader_param_register_type type
struct shader_reg * rel_reg
struct shader_reg reg[MAX_SRC_REGS]
#define CONTAINING_RECORD(address, type, field)