ReactOS 0.4.15-dev-7958-gcd0bb1a
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#include "wine/heap.h"
29
30#define COBJMACROS
31#include "windef.h"
32#include "winbase.h"
33#include "objbase.h"
34
35#include "d3dcompiler.h"
36
37#include <assert.h>
38
39/*
40 * This doesn't belong here, but for some functions it is possible to return that value,
41 * see http://msdn.microsoft.com/en-us/library/bb205278%28v=VS.85%29.aspx
42 * The original definition is in D3DX10core.h.
43 */
44#define D3DERR_INVALIDCALL 0x8876086c
45
46/* TRACE helper functions */
50
52{
56};
57
59{
67};
68
69struct constant {
71 union {
72 float f;
76 } value[4];
77};
78
79struct shader_reg {
84 union {
87 } u;
88};
89
97 struct shader_reg *src;
98 unsigned int num_srcs; /* For freeing the rel_regs */
102};
103
110};
111
116};
117
118#define INSTRARRAY_INITIAL_SIZE 8
121
122 /* Shader version selected */
124
125 /* Local constants. Every constant that is not defined below is loaded from
126 * the global constant set at shader runtime
127 */
128 struct constant **constF;
129 struct constant **constI;
130 struct constant **constB;
131 unsigned int num_cf, num_ci, num_cb;
132
133 /* Declared input and output varyings */
135 unsigned int num_inputs, num_outputs;
137 unsigned int num_samplers;
138
139 /* Are special pixel shader 3.0 registers declared? */
141
142 /* Array of shader instructions - The shader code itself */
145};
146
147static inline void *d3dcompiler_alloc(SIZE_T size)
148{
150}
151
152static inline void *d3dcompiler_realloc(void *ptr, SIZE_T size)
153{
154 return HeapReAlloc(GetProcessHeap(), 0, ptr, size);
155}
156
157static inline BOOL d3dcompiler_free(void *ptr)
158{
159 return HeapFree(GetProcessHeap(), 0, ptr);
160}
161
162static inline char *d3dcompiler_strdup(const char *string)
163{
164 char *copy;
165 SIZE_T len;
166
167 if (!string)
168 return NULL;
169
170 len = strlen(string);
172 if (copy)
173 memcpy(copy, string, len + 1);
174 return copy;
175}
176
177struct asm_parser;
178
179/* This structure is only used in asmshader.y, but since the .l file accesses the semantic types
180 * too it has to know it as well
181 */
182struct rel_reg {
188};
189
190#define MAX_SRC_REGS 4
191
192struct src_regs {
194 unsigned int count;
195};
196
198 void (*constF)(struct asm_parser *This, DWORD reg, float x, float y, float z, float w);
201
203 const struct shader_reg *dst);
204 void (*srcreg)(struct asm_parser *This, struct instruction *instr, int num,
205 const struct shader_reg *src);
206
208 const struct shader_reg *predicate);
210
212 const struct shader_reg *reg);
214 DWORD mod, const struct shader_reg *reg);
216 DWORD regnum, unsigned int line_no);
217
218 void (*end)(struct asm_parser *This);
219
221 enum bwriter_comparison_type comp, const struct shader_reg *dst,
222 const struct src_regs *srcs, int expectednsrcs);
223};
224
225struct instruction *alloc_instr(unsigned int srcs) DECLSPEC_HIDDEN;
227BOOL add_constF(struct bwriter_shader *shader, DWORD reg, float x, float y, float z, float w) DECLSPEC_HIDDEN;
231 DWORD mod, BOOL output, DWORD regnum, DWORD writemask, BOOL builtin) DECLSPEC_HIDDEN;
233
234#define MESSAGEBUFFER_INITIAL_SIZE 256
235
237{
240 PARSE_ERR = 2
242
244{
245 char *string;
246 unsigned int size;
247 unsigned int capacity;
248};
249
251{
252 /* The function table of the parser implementation */
254
255 /* Private data follows */
257 unsigned int m3x3pad_count;
258
261 unsigned int line_no;
262};
263
264extern struct asm_parser asm_ctx DECLSPEC_HIDDEN;
265
279
281
282#ifdef __GNUC__
283#define PRINTF_ATTR(fmt,args) __attribute__((format (printf,fmt,args)))
284#else
285#define PRINTF_ATTR(fmt,args)
286#endif
287
291{
292 if (update == PARSE_ERR)
294 else if (update == PARSE_WARN && *current == PARSE_SUCCESS)
296}
297
298/* A reasonable value as initial size */
299#define BYTECODEBUFFER_INITIAL_SIZE 32
304 /* For tracking rare out of memory situations without passing
305 * return values around everywhere
306 */
308};
309
310struct bc_writer; /* Predeclaration for use in vtable parameters */
311
312typedef void (*instr_writer)(struct bc_writer *This,
313 const struct instruction *instr,
314 struct bytecode_buffer *buffer);
315
317 void (*header)(struct bc_writer *This, const struct bwriter_shader *shader,
318 struct bytecode_buffer *buffer);
319 void (*end)(struct bc_writer *This, const struct bwriter_shader *shader,
320 struct bytecode_buffer *buffer);
321 void (*srcreg)(struct bc_writer *This, const struct shader_reg *reg,
322 struct bytecode_buffer *buffer);
323 void (*dstreg)(struct bc_writer *This, const struct shader_reg *reg,
325 void (*opcode)(struct bc_writer *This, const struct instruction *instr,
327
328 const struct instr_handler_table {
332};
333
334/* Bytecode writing stuff */
335struct bc_writer {
336 const struct bytecode_backend *funcs;
337
338 /* Avoid result checking */
340
342
343 /* Vertex shader varying mapping */
351
352 /* Pixel shader specific members */
355};
356
357/* Debug utility routines */
361const char *debug_print_dstreg(const struct shader_reg *reg) DECLSPEC_HIDDEN;
362const char *debug_print_srcreg(const struct shader_reg *reg) DECLSPEC_HIDDEN;
363const char *debug_print_comp(DWORD comp) DECLSPEC_HIDDEN;
365
366/* Used to signal an incorrect swizzle/writemask */
367#define SWIZZLE_ERR ~0U
368
369/* Enumerations and defines used in the bytecode writer intermediate
370 * representation. */
372{
422
457
461};
462
464{
484
486{
491
492#define BWRITERSP_WRITEMASK_0 0x1 /* .x r */
493#define BWRITERSP_WRITEMASK_1 0x2 /* .y g */
494#define BWRITERSP_WRITEMASK_2 0x4 /* .z b */
495#define BWRITERSP_WRITEMASK_3 0x8 /* .w a */
496#define BWRITERSP_WRITEMASK_ALL 0xf /* all */
497
499{
504};
505
507{
513};
514
515#define BWRITERSI_TEXLD_PROJECT 1
516#define BWRITERSI_TEXLD_BIAS 2
517
519{
534};
535
536#define BWRITER_SM1_VS 0xfffeu
537#define BWRITER_SM1_PS 0xffffu
538
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))
541
542#define BWRITERVS_SWIZZLE_SHIFT 16
543#define BWRITERVS_SWIZZLE_MASK (0xFF << BWRITERVS_SWIZZLE_SHIFT)
544
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)
549
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))
554
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))
559
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))
564
565#define BWRITERVS_NOSWIZZLE (BWRITERVS_X_X | BWRITERVS_Y_Y | BWRITERVS_Z_Z | BWRITERVS_W_W)
566
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)
571
573{
589
590/* ps 1.x texture registers mappings */
591#define T0_REG 2
592#define T1_REG 3
593#define T2_REG 4
594#define T3_REG 5
595
599
600/* The general IR structure is inspired by Mesa GLSL hir, even though the code
601 * ends up being quite different in practice. Anyway, here comes the relevant
602 * licensing information.
603 *
604 * Copyright © 2010 Intel Corporation
605 *
606 * Permission is hereby granted, free of charge, to any person obtaining a
607 * copy of this software and associated documentation files (the "Software"),
608 * to deal in the Software without restriction, including without limitation
609 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
610 * and/or sell copies of the Software, and to permit persons to whom the
611 * Software is furnished to do so, subject to the following conditions:
612 *
613 * The above copyright notice and this permission notice (including the next
614 * paragraph) shall be included in all copies or substantial portions of the
615 * Software.
616 *
617 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
618 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
619 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
620 * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
621 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
622 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
623 * DEALINGS IN THE SOFTWARE.
624 */
625
627{
635};
636
638{
652};
653
655{
661};
662
664{
668
670{
671 struct list entry;
676 const char *name;
677 unsigned int modifiers;
678 unsigned int dimx;
679 unsigned int dimy;
680 union
681 {
682 struct list *elements;
683 struct
684 {
686 unsigned int elements_count;
688 } e;
689};
690
692{
693 struct list entry;
695 const char *name;
696 const char *semantic;
698};
699
701{
702 const char *file;
703 unsigned int line;
704 unsigned int col;
705};
706
708{
718};
719
721{
722 struct list entry;
725
727};
728
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
742
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)
746
747#define HLSL_MODIFIERS_COMPARISON_MASK (HLSL_MODIFIER_ROW_MAJOR | HLSL_MODIFIER_COLUMN_MAJOR)
748
750{
753};
754
756{
759 const char *name;
760 const char *semantic;
761 unsigned int modifiers;
763 struct list scope_entry, param_entry;
764
765 struct hlsl_var_allocation *allocation;
766};
767
769{
771 const char *name;
774};
775
777{
782 const char *semantic;
784 struct list *body;
785};
786
788{
793};
794
796{
798 /* loop condition is stored in the body (as "if (!condition) break;") */
799 struct list *body;
800};
801
803{
807 unsigned char writemask;
808};
809
822
824
826
829 HLSL_IR_UNOP_SIN_REDUCED, /* Reduced range [-pi, pi] */
830 HLSL_IR_UNOP_COS_REDUCED, /* Reduced range [-pi, pi] */
831
834
836
841
846
848
855
858
864
869
871
873
875};
876
878{
883};
884
886{
891};
892
894{
898};
899
901{
905};
906
908{
912};
913
915{
918 union
919 {
921 struct
922 {
926 struct
927 {
931 } v;
932};
933
935{
937 union
938 {
939 union
940 {
941 unsigned u[16];
942 int i[16];
943 float f[16];
944 double d[16];
945 BOOL b[16];
949 } v;
950};
951
953{
955 struct hlsl_ir_node *args[16];
956 unsigned int args_count;
957};
958
960{
961 struct list entry;
962 struct list vars;
965};
966
967/* Structures used only during parsing */
969{
971 const char *name;
972 const char *semantic;
974 unsigned int modifiers;
975};
976
978{
979 const char *semantic;
981};
982
984{
986 unsigned int args_count;
987};
988
990{
991 struct list entry;
993
994 char *name;
995 unsigned int array_size;
996 const char *semantic;
999};
1000
1002{
1003 char *name;
1005};
1006
1008{
1011};
1012
1014{
1019};
1020
1022{
1034};
1035
1037{
1038 const char **source_files;
1040 const char *source_file;
1041 unsigned int line_no;
1042 unsigned int column;
1045
1048 struct list scopes;
1049
1050 struct list types;
1052
1054};
1055
1056extern struct hlsl_parse_ctx hlsl_ctx DECLSPEC_HIDDEN;
1057
1059{
1063};
1064
1068
1070{
1071 assert(node->type == HLSL_IR_EXPR);
1072 return CONTAINING_RECORD(node, struct hlsl_ir_expr, node);
1073}
1074
1075static inline struct hlsl_ir_deref *deref_from_node(const struct hlsl_ir_node *node)
1076{
1077 assert(node->type == HLSL_IR_DEREF);
1078 return CONTAINING_RECORD(node, struct hlsl_ir_deref, node);
1079}
1080
1081static inline struct hlsl_ir_constant *constant_from_node(const struct hlsl_ir_node *node)
1082{
1083 assert(node->type == HLSL_IR_CONSTANT);
1085}
1086
1087static inline struct hlsl_ir_jump *jump_from_node(const struct hlsl_ir_node *node)
1088{
1089 assert(node->type == HLSL_IR_JUMP);
1090 return CONTAINING_RECORD(node, struct hlsl_ir_jump, node);
1091}
1092
1093static inline struct hlsl_ir_assignment *assignment_from_node(const struct hlsl_ir_node *node)
1094{
1095 assert(node->type == HLSL_IR_ASSIGNMENT);
1097}
1098
1099static inline struct hlsl_ir_swizzle *swizzle_from_node(const struct hlsl_ir_node *node)
1100{
1101 assert(node->type == HLSL_IR_SWIZZLE);
1102 return CONTAINING_RECORD(node, struct hlsl_ir_swizzle, node);
1103}
1104
1106{
1109}
1110
1111static inline struct hlsl_ir_if *if_from_node(const struct hlsl_ir_node *node)
1112{
1113 assert(node->type == HLSL_IR_IF);
1114 return CONTAINING_RECORD(node, struct hlsl_ir_if, node);
1115}
1116
1117static inline struct hlsl_ir_loop *loop_from_node(const struct hlsl_ir_node *node)
1118{
1119 assert(node->type == HLSL_IR_LOOP);
1120 return CONTAINING_RECORD(node, struct hlsl_ir_loop, node);
1121}
1122
1123BOOL add_declaration(struct hlsl_scope *scope, struct hlsl_ir_var *decl, BOOL local_var) DECLSPEC_HIDDEN;
1124struct hlsl_ir_var *get_variable(struct hlsl_scope *scope, const char *name) DECLSPEC_HIDDEN;
1126struct hlsl_type *new_hlsl_type(const char *name, enum hlsl_type_class type_class,
1127 enum hlsl_base_type base_type, unsigned dimx, unsigned dimy) DECLSPEC_HIDDEN;
1128struct hlsl_type *new_array_type(struct hlsl_type *basic_type, unsigned int array_size) DECLSPEC_HIDDEN;
1130struct hlsl_type *get_type(struct hlsl_scope *scope, const char *name, BOOL recursive) DECLSPEC_HIDDEN;
1133BOOL compare_hlsl_types(const struct hlsl_type *t1, const struct hlsl_type *t2) DECLSPEC_HIDDEN;
1136 struct source_location *loc) DECLSPEC_HIDDEN;
1137struct hlsl_ir_expr *new_cast(struct hlsl_ir_node *node, struct hlsl_type *type,
1138 struct source_location *loc) DECLSPEC_HIDDEN;
1141struct hlsl_ir_node *make_assignment(struct hlsl_ir_node *left, enum parse_assign_op assign_op,
1142 DWORD writemask, struct hlsl_ir_node *right) DECLSPEC_HIDDEN;
1147void add_function_decl(struct wine_rb_tree *funcs, char *name, struct hlsl_ir_function_decl *decl,
1148 BOOL intrinsic) DECLSPEC_HIDDEN;
1150 const char *entrypoint, char **messages) DECLSPEC_HIDDEN;
1151
1152const char *debug_hlsl_type(const struct hlsl_type *type) DECLSPEC_HIDDEN;
1153const char *debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN;
1155
1160
1162 struct hlsl_ir_node *op1, struct source_location loc)
1163{
1164 struct hlsl_ir_node *operands[3] = {op1};
1165 return &new_expr(op, operands, &loc)->node;
1166}
1167
1169 struct hlsl_ir_node *op1, struct hlsl_ir_node *op2, struct source_location loc)
1170{
1171 struct hlsl_ir_node *operands[3] = {op1, op2};
1172 return &new_expr(op, operands, &loc)->node;
1173}
1174
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')
1191
1193{
1195 const char *data;
1197};
1198
1199struct dxbc
1200{
1204};
1205
1210HRESULT dxbc_init(struct dxbc *dxbc, unsigned int size) DECLSPEC_HIDDEN;
1211
1212static inline void read_dword(const char **ptr, DWORD *d)
1213{
1214 memcpy(d, *ptr, sizeof(*d));
1215 *ptr += sizeof(*d);
1216}
1217
1218static inline void write_dword(char **ptr, DWORD d)
1219{
1220 memcpy(*ptr, &d, sizeof(d));
1221 *ptr += sizeof(d);
1222}
1223
1224void skip_dword_unknown(const char **ptr, unsigned int count) DECLSPEC_HIDDEN;
1225
1226#endif /* __WINE_D3DCOMPILER_PRIVATE_H */
ACPI_SIZE strlen(const char *String)
Definition: utclib.c:269
#define msg(x)
Definition: auth_time.c:54
INT copy(TCHAR source[MAX_PATH], TCHAR dest[MAX_PATH], INT append, DWORD lpdwFlags, BOOL bTouch)
Definition: copy.c:51
Definition: list.h:37
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:86
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
Definition: utils.c:806
void create_vs20_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1379
HRESULT dxbc_add_section(struct dxbc *dxbc, DWORD tag, const char *data, DWORD data_size) DECLSPEC_HIDDEN
Definition: utils.c:529
bwritervs_rastout_offsets
@ BWRITERSRO_POSITION
@ BWRITERSRO_FOG
@ BWRITERSRO_POINT_SIZE
void create_ps30_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1538
void init_functions_tree(struct wine_rb_tree *funcs) DECLSPEC_HIDDEN
Definition: utils.c:1662
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_vs30_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1411
const char * debug_print_srcreg(const struct shader_reg *reg) DECLSPEC_HIDDEN
Definition: utils.c:337
hlsl_error_level
@ HLSL_LEVEL_NOTE
@ HLSL_LEVEL_WARNING
@ HLSL_LEVEL_ERROR
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(* instr_writer)(struct bc_writer *This, const struct instruction *instr, struct bytecode_buffer *buffer)
hlsl_type_class
@ HLSL_CLASS_MATRIX
@ HLSL_CLASS_VECTOR
@ HLSL_CLASS_STRUCT
@ HLSL_CLASS_LAST_NUMERIC
@ HLSL_CLASS_SCALAR
@ HLSL_CLASS_ARRAY
@ HLSL_CLASS_OBJECT
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
Definition: utils.c:401
static BOOL d3dcompiler_free(void *ptr)
void create_ps2x_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1522
BOOL add_declaration(struct hlsl_scope *scope, struct hlsl_ir_var *decl, BOOL local_var) DECLSPEC_HIDDEN
Definition: utils.c:761
@ ASSIGN_OP_DIV
@ ASSIGN_OP_MUL
@ ASSIGN_OP_AND
@ ASSIGN_OP_MOD
@ ASSIGN_OP_XOR
@ ASSIGN_OP_OR
@ ASSIGN_OP_SUB
@ ASSIGN_OP_LSHIFT
@ ASSIGN_OP_ASSIGN
@ ASSIGN_OP_RSHIFT
@ ASSIGN_OP_ADD
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
Definition: utils.c:784
BOOL compare_hlsl_types(const struct hlsl_type *t1, const struct hlsl_type *t2) DECLSPEC_HIDDEN
Definition: utils.c:883
struct instruction * alloc_instr(unsigned int srcs) DECLSPEC_HIDDEN
bwritershader_param_dstmod_type
@ BWRITERSPDM_SATURATE
@ BWRITERSPDM_PARTIALPRECISION
@ BWRITERSPDM_MSAMPCENTROID
@ BWRITERSPDM_NONE
BOOL add_constB(struct bwriter_shader *shader, DWORD reg, BOOL x) DECLSPEC_HIDDEN
void free_hlsl_type(struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:2105
hlsl_ir_node_type
@ HLSL_IR_LOOP
@ HLSL_IR_SWIZZLE
@ HLSL_IR_IF
@ HLSL_IR_CONSTANT
@ HLSL_IR_CONSTRUCTOR
@ HLSL_IR_EXPR
@ HLSL_IR_JUMP
@ HLSL_IR_ASSIGNMENT
@ HLSL_IR_DEREF
void create_ps10_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1426
static struct hlsl_ir_expr * expr_from_node(const struct hlsl_ir_node *node)
hlsl_ir_deref_type
@ HLSL_IR_DEREF_ARRAY
@ HLSL_IR_DEREF_RECORD
@ HLSL_IR_DEREF_VAR
hlsl_base_type
@ HLSL_TYPE_HALF
@ HLSL_TYPE_BOOL
@ HLSL_TYPE_UINT
@ HLSL_TYPE_STRING
@ HLSL_TYPE_LAST_SCALAR
@ HLSL_TYPE_TEXTURE
@ HLSL_TYPE_PIXELSHADER
@ HLSL_TYPE_SAMPLER
@ HLSL_TYPE_VOID
@ HLSL_TYPE_INT
@ HLSL_TYPE_VERTEXSHADER
@ HLSL_TYPE_FLOAT
@ HLSL_TYPE_DOUBLE
#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
Definition: utils.c:852
static void * d3dcompiler_realloc(void *ptr, SIZE_T size)
const char * debug_modifiers(DWORD modifiers) DECLSPEC_HIDDEN
Definition: utils.c:1722
const char * debug_print_opcode(DWORD opcode) DECLSPEC_HIDDEN
Definition: utils.c:416
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
HRESULT dxbc_init(struct dxbc *dxbc, unsigned int size) DECLSPEC_HIDDEN
Definition: utils.c:557
void add_function_decl(struct wine_rb_tree *funcs, char *name, struct hlsl_ir_function_decl *decl, BOOL intrinsic) DECLSPEC_HIDDEN
Definition: utils.c:2282
static struct hlsl_ir_deref * deref_from_node(const struct hlsl_ir_node *node)
void create_vs2x_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1395
void create_vs11_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1363
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
Definition: utils.c:32
BOOL compatible_data_types(struct hlsl_type *s1, struct hlsl_type *s2) DECLSPEC_HIDDEN
Definition: utils.c:1007
@ UNARY_OP_LOGICNOT
@ UNARY_OP_BITNOT
@ UNARY_OP_PLUS
@ UNARY_OP_MINUS
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
Definition: utils.c:1343
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
Definition: utils.c:1354
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
Definition: asmparser.c:1474
void create_ps20_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1506
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)
#define MAX_SRC_REGS
void create_vs10_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1347
const char * debug_hlsl_type(const struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:1695
void dxbc_destroy(struct dxbc *dxbc) DECLSPEC_HIDDEN
Definition: utils.c:648
hlsl_matrix_majority
@ HLSL_ROW_MAJOR
@ HLSL_COLUMN_MAJOR
BOOL pop_scope(struct hlsl_parse_ctx *ctx) DECLSPEC_HIDDEN
Definition: utils.c:1551
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
Definition: utils.c:1407
struct bwriter_shader * parse_asm_shader(char **messages) DECLSPEC_HIDDEN
const char * debug_print_shift(DWORD shift) DECLSPEC_HIDDEN
Definition: utils.c:178
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
Definition: asmparser.c:1442
const char * debug_d3dcompiler_shader_variable_type(D3D_SHADER_VARIABLE_TYPE t) DECLSPEC_HIDDEN
Definition: utils.c:50
struct hlsl_ir_expr * new_expr(enum hlsl_ir_expr_op op, struct hlsl_ir_node **operands, struct source_location *loc) DECLSPEC_HIDDEN
Definition: utils.c:1286
struct bwriter_shader * SlAssembleShader(const char *text, char **messages) DECLSPEC_HIDDEN
const char * debug_print_srcmod(DWORD mod) DECLSPEC_HIDDEN
Definition: utils.c:128
const char * debug_d3dcompiler_d3d_blob_part(D3D_BLOB_PART part) DECLSPEC_HIDDEN
Definition: utils.c:106
static struct hlsl_ir_constant * constant_from_node(const struct hlsl_ir_node *node)
bwritersampler_texture_type
@ BWRITERSTT_CUBE
@ BWRITERSTT_UNKNOWN
@ BWRITERSTT_VOLUME
@ BWRITERSTT_2D
@ BWRITERSTT_1D
struct hlsl_type * clone_hlsl_type(struct hlsl_type *old) DECLSPEC_HIDDEN
Definition: utils.c:929
@ ST_VERTEX
@ ST_UNKNOWN
@ ST_PIXEL
hlsl_sampler_dim
@ HLSL_SAMPLER_DIM_GENERIC
@ HLSL_SAMPLER_DIM_CUBE
@ HLSL_SAMPLER_DIM_3D
@ HLSL_SAMPLER_DIM_2D
@ HLSL_SAMPLER_DIM_1D
static void write_dword(char **ptr, DWORD d)
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
struct hlsl_type * new_array_type(struct hlsl_type *basic_type, unsigned int array_size) DECLSPEC_HIDDEN
Definition: utils.c:828
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
Definition: utils.c:1534
const char * debug_print_dstreg(const struct shader_reg *reg) DECLSPEC_HIDDEN
Definition: utils.c:330
void create_ps12_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1458
void skip_dword_unknown(const char **ptr, unsigned int count) DECLSPEC_HIDDEN
Definition: utils.c:510
void create_ps14_parser(struct asm_parser *ret) DECLSPEC_HIDDEN
Definition: asmparser.c:1490
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
Definition: utils.c:798
HRESULT dxbc_parse(const char *data, SIZE_T data_size, struct dxbc *dxbc) DECLSPEC_HIDDEN
Definition: utils.c:577
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_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
void free_instr(struct hlsl_ir_node *node) DECLSPEC_HIDDEN
Definition: utils.c:2224
void debug_dump_ir_function_decl(const struct hlsl_ir_function_decl *func) DECLSPEC_HIDDEN
Definition: utils.c:2086
hlsl_ir_expr_op
@ HLSL_IR_UNOP_SQRT
@ HLSL_IR_BINOP_SUB
@ HLSL_IR_UNOP_LOG2
@ HLSL_IR_UNOP_LOGIC_NOT
@ HLSL_IR_UNOP_POSTINC
@ HLSL_IR_BINOP_LSHIFT
@ HLSL_IR_UNOP_PREINC
@ HLSL_IR_UNOP_EXP2
@ HLSL_IR_BINOP_BIT_XOR
@ HLSL_IR_BINOP_ADD
@ HLSL_IR_BINOP_LESS
@ HLSL_IR_UNOP_SIGN
@ HLSL_IR_BINOP_POW
@ HLSL_IR_BINOP_MOD
@ HLSL_IR_UNOP_RCP
@ HLSL_IR_BINOP_DOT
@ HLSL_IR_BINOP_GREATER
@ HLSL_IR_UNOP_SIN
@ HLSL_IR_BINOP_DIV
@ HLSL_IR_BINOP_LOGIC_AND
@ HLSL_IR_BINOP_BIT_AND
@ HLSL_IR_BINOP_MIN
@ HLSL_IR_UNOP_COS
@ HLSL_IR_BINOP_LOGIC_OR
@ HLSL_IR_SEQUENCE
@ HLSL_IR_UNOP_SAT
@ HLSL_IR_BINOP_NEQUAL
@ HLSL_IR_BINOP_LEQUAL
@ HLSL_IR_UNOP_NEG
@ HLSL_IR_UNOP_CAST
@ HLSL_IR_BINOP_CRS
@ HLSL_IR_UNOP_SIN_REDUCED
@ HLSL_IR_BINOP_BIT_OR
@ HLSL_IR_UNOP_COS_REDUCED
@ HLSL_IR_UNOP_ABS
@ HLSL_IR_UNOP_PREDEC
@ HLSL_IR_BINOP_MAX
@ HLSL_IR_BINOP_MUL
@ HLSL_IR_BINOP_EQUAL
@ HLSL_IR_BINOP_RSHIFT
@ HLSL_IR_UNOP_RSQ
@ HLSL_IR_UNOP_FRACT
@ HLSL_IR_BINOP_GEQUAL
@ HLSL_IR_UNOP_DSX
@ HLSL_IR_TEROP_LERP
@ HLSL_IR_UNOP_POSTDEC
@ HLSL_IR_UNOP_BIT_NOT
@ HLSL_IR_UNOP_DSY
@ HLSL_IR_UNOP_NRM
struct hlsl_ir_function_decl * new_func_decl(struct hlsl_type *return_type, struct list *parameters) DECLSPEC_HIDDEN
Definition: utils.c:1562
hlsl_ir_jump_type
@ HLSL_IR_JUMP_DISCARD
@ HLSL_IR_JUMP_RETURN
@ HLSL_IR_JUMP_CONTINUE
@ HLSL_IR_JUMP_BREAK
void free_instr_list(struct list *list) DECLSPEC_HIDDEN
Definition: utils.c:2122
struct hlsl_ir_deref * new_record_deref(struct hlsl_ir_node *record, struct hlsl_struct_field *field) DECLSPEC_HIDDEN
Definition: utils.c:1370
struct hlsl_type * get_type(struct hlsl_scope *scope, const char *name, BOOL recursive) DECLSPEC_HIDDEN
Definition: utils.c:841
const char * debug_print_dstmod(DWORD mod) DECLSPEC_HIDDEN
Definition: utils.c:153
void compilation_message(struct compilation_messages *msg, const char *fmt, __ms_va_list args) DECLSPEC_HIDDEN
Definition: utils.c:719
@ PARSE_WARN
@ PARSE_SUCCESS
@ PARSE_ERR
unsigned int components_count_type(struct hlsl_type *type) DECLSPEC_HIDDEN
Definition: utils.c:857
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
Definition: utils.c:655
void free_function_rb(struct wine_rb_entry *entry, void *context) DECLSPEC_HIDDEN
Definition: utils.c:2277
#define NULL
Definition: types.h:112
UINT op
Definition: effect.c:236
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
#define HeapReAlloc
Definition: compat.h:734
#define HeapFree(x, y, z)
Definition: compat.h:735
#define HEAP_ZERO_MEMORY
Definition: compat.h:134
const WCHAR * text
Definition: package.c:1799
#define assert(x)
Definition: debug.h:53
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint level
Definition: gl.h:1546
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
GLuint GLuint end
Definition: gl.h:1545
GLuint GLuint GLsizei count
Definition: gl.h:1545
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
Definition: gl.h:1950
GLdouble GLdouble t
Definition: gl.h:2047
GLsizeiptr size
Definition: glext.h:5919
GLenum func
Definition: glext.h:6028
GLenum src
Definition: glext.h:6340
GLuint buffer
Definition: glext.h:5915
const GLubyte * c
Definition: glext.h:8905
GLuint shader
Definition: glext.h:6030
GLdouble GLdouble right
Definition: glext.h:10859
GLfloat f
Definition: glext.h:7540
GLboolean GLboolean GLboolean b
Definition: glext.h:6204
GLint left
Definition: glext.h:7726
GLenum GLenum dst
Definition: glext.h:6340
GLuint GLuint num
Definition: glext.h:9618
GLenum GLsizei len
Definition: glext.h:6722
GLubyte GLubyte GLubyte GLubyte w
Definition: glext.h:6102
GLuint64EXT * result
Definition: glext.h:11304
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
GLdouble GLdouble z
Definition: glext.h:5874
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
Definition: glfuncs.h:210
static int mod
Definition: i386-dis.c:1288
static int reg
Definition: i386-dis.c:1290
const char * filename
Definition: ioapi.h:137
uint32_t entry
Definition: isohybrid.c:63
#define d
Definition: ke_i.h:81
struct S1 s1
struct S2 s2
#define memcpy(s1, s2, n)
Definition: mkisofs.h:878
struct task_struct * current
Definition: linux.c:32
static PVOID ptr
Definition: dispmode.c:27
const char * var
Definition: shader.c:5666
#define shift
Definition: input.c:1755
static UINT array_size
Definition: msctf.c:67
unsigned int UINT
Definition: ndis.h:50
#define minor(rdev)
Definition: propsheet.cpp:929
#define major(rdev)
Definition: propsheet.cpp:928
#define WINAPIV
Definition: sdbpapi.h:64
#define inline
Definition: compat.h:23
static struct __wine_debug_functions funcs
Definition: debug.c:59
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(* 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)
DWORD oD_regnum[2]
const struct bytecode_backend * funcs
DWORD oT_regnum[8]
Definition: image.c:134
struct constant ** constI
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
struct instruction ** instr
unsigned int num_outputs
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)
Definition: http.c:7252
struct dxbc_section * sections
Definition: parser.c:44
Definition: dsound.c:943
struct hlsl_ir_node * rhs
struct hlsl_ir_node * lhs
union hlsl_ir_constant::@243::@244 value
struct list * struct_elements
union hlsl_ir_constant::@243 v
struct hlsl_ir_constant * array_elements
struct hlsl_ir_var * var
struct hlsl_struct_field * field
struct hlsl_ir_node * index
struct hlsl_ir_node * array
enum hlsl_ir_deref_type type
union hlsl_ir_deref::@240 v
struct hlsl_ir_node * record
struct list * subexpressions
struct hlsl_ir_node * operands[3]
enum hlsl_ir_expr_op op
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 list * body
struct source_location loc
enum hlsl_ir_node_type type
struct hlsl_type * data_type
struct hlsl_ir_node * val
const char * name
struct hlsl_var_allocation * allocation
const char * semantic
struct hlsl_type * data_type
struct list scope_entry param_entry
struct source_location loc
unsigned int modifiers
const struct reg_reservation * reg_reservation
unsigned int source_files_count
struct hlsl_scope * globals
enum parse_status status
struct hlsl_scope * cur_scope
const char ** source_files
const char * source_file
enum hlsl_matrix_majority matrix_majority
struct wine_rb_tree functions
struct list entry
struct list vars
struct hlsl_scope * upper
struct hlsl_type * type
unsigned int dimx
struct hlsl_type::@238::@239 array
struct list * elements
unsigned int elements_count
enum hlsl_base_type base_type
union hlsl_type::@238 e
unsigned int modifiers
struct wine_rb_entry scope_entry
enum hlsl_sampler_dim sampler_dim
const char * name
enum hlsl_type_class type
struct list entry
struct hlsl_type * type
unsigned int dimy
unsigned int num_srcs
enum bwriter_comparison_type comptype
struct shader_reg predicate
struct shader_reg * src
Definition: parser.c:49
Definition: name.c:39
struct reg_reservation * reg_reservation
struct hlsl_ir_function_decl * decl
struct list * else_instrs
struct list * then_instrs
struct hlsl_ir_node ** args
struct hlsl_type * type
unsigned int modifiers
const struct reg_reservation * reg_reservation
struct source_location loc
struct parse_initializer initializer
struct reg_reservation * reg_reservation
Definition: import.c:81
enum bwritershader_param_register_type type
DWORD additional_offset
union shader_reg::@237 u
struct shader_reg * rel_reg
unsigned int count
struct shader_reg reg[MAX_SRC_REGS]
Definition: ecma_167.h:138
Definition: cmds.c:130
Definition: rbtree.h:36
ULONG_PTR SIZE_T
Definition: typedefs.h:80
int32_t INT
Definition: typedefs.h:58
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
Definition: dlist.c:348
Definition: pdh_main.c:94
int ret
#define __ms_va_list
Definition: windef.h:456
#define const
Definition: zconf.h:233