27#define WINED3D_SM4_INSTRUCTION_MODIFIER (0x1u << 31)
29#define WINED3D_SM4_MODIFIER_AOFFIMMI 0x1
30#define WINED3D_SM4_AOFFIMMI_U_SHIFT 9
31#define WINED3D_SM4_AOFFIMMI_U_MASK (0xfu << WINED3D_SM4_AOFFIMMI_U_SHIFT)
32#define WINED3D_SM4_AOFFIMMI_V_SHIFT 13
33#define WINED3D_SM4_AOFFIMMI_V_MASK (0xfu << WINED3D_SM4_AOFFIMMI_V_SHIFT)
34#define WINED3D_SM4_AOFFIMMI_W_SHIFT 17
35#define WINED3D_SM4_AOFFIMMI_W_MASK (0xfu << WINED3D_SM4_AOFFIMMI_W_SHIFT)
37#define WINED3D_SM4_INSTRUCTION_LENGTH_SHIFT 24
38#define WINED3D_SM4_INSTRUCTION_LENGTH_MASK (0x1fu << WINED3D_SM4_INSTRUCTION_LENGTH_SHIFT)
40#define WINED3D_SM4_INSTRUCTION_FLAGS_SHIFT 11
41#define WINED3D_SM4_INSTRUCTION_FLAGS_MASK (0x7u << WINED3D_SM4_INSTRUCTION_FLAGS_SHIFT)
43#define WINED3D_SM4_RESOURCE_TYPE_SHIFT 11
44#define WINED3D_SM4_RESOURCE_TYPE_MASK (0xfu << WINED3D_SM4_RESOURCE_TYPE_SHIFT)
46#define WINED3D_SM4_PRIMITIVE_TYPE_SHIFT 11
47#define WINED3D_SM4_PRIMITIVE_TYPE_MASK (0x3fu << WINED3D_SM4_PRIMITIVE_TYPE_SHIFT)
49#define WINED3D_SM4_INDEX_TYPE_SHIFT 11
50#define WINED3D_SM4_INDEX_TYPE_MASK (0x1u << WINED3D_SM4_INDEX_TYPE_SHIFT)
52#define WINED3D_SM4_SAMPLER_MODE_SHIFT 11
53#define WINED3D_SM4_SAMPLER_MODE_MASK (0xfu << WINED3D_SM4_SAMPLER_MODE_SHIFT)
55#define WINED3D_SM4_SHADER_DATA_TYPE_SHIFT 11
56#define WINED3D_SM4_SHADER_DATA_TYPE_MASK (0xfu << WINED3D_SM4_SHADER_DATA_TYPE_SHIFT)
58#define WINED3D_SM4_INTERPOLATION_MODE_SHIFT 11
59#define WINED3D_SM4_INTERPOLATION_MODE_MASK (0xfu << WINED3D_SM4_INTERPOLATION_MODE_SHIFT)
61#define WINED3D_SM4_GLOBAL_FLAGS_SHIFT 11
62#define WINED3D_SM4_GLOBAL_FLAGS_MASK (0xffu << WINED3D_SM4_GLOBAL_FLAGS_SHIFT)
64#define WINED3D_SM5_CONTROL_POINT_COUNT_SHIFT 11
65#define WINED3D_SM5_CONTROL_POINT_COUNT_MASK (0xffu << WINED3D_SM5_CONTROL_POINT_COUNT_SHIFT)
67#define WINED3D_SM5_FP_ARRAY_SIZE_SHIFT 16
68#define WINED3D_SM5_FP_TABLE_COUNT_MASK 0xffffu
70#define WINED3D_SM5_UAV_FLAGS_SHIFT 15
71#define WINED3D_SM5_UAV_FLAGS_MASK (0x1ffu << WINED3D_SM5_UAV_FLAGS_SHIFT)
73#define WINED3D_SM5_SYNC_FLAGS_SHIFT 11
74#define WINED3D_SM5_SYNC_FLAGS_MASK (0xffu << WINED3D_SM5_SYNC_FLAGS_SHIFT)
76#define WINED3D_SM5_TESSELLATOR_SHIFT 11
77#define WINED3D_SM5_TESSELLATOR_MASK (0xfu << WINED3D_SM5_TESSELLATOR_SHIFT)
79#define WINED3D_SM4_OPCODE_MASK 0xff
81#define WINED3D_SM4_REGISTER_MODIFIER (0x1u << 31)
83#define WINED3D_SM4_ADDRESSING_SHIFT1 25
84#define WINED3D_SM4_ADDRESSING_MASK1 (0x3u << WINED3D_SM4_ADDRESSING_SHIFT1)
86#define WINED3D_SM4_ADDRESSING_SHIFT0 22
87#define WINED3D_SM4_ADDRESSING_MASK0 (0x3u << WINED3D_SM4_ADDRESSING_SHIFT0)
89#define WINED3D_SM4_REGISTER_ORDER_SHIFT 20
90#define WINED3D_SM4_REGISTER_ORDER_MASK (0x3u << WINED3D_SM4_REGISTER_ORDER_SHIFT)
92#define WINED3D_SM4_REGISTER_TYPE_SHIFT 12
93#define WINED3D_SM4_REGISTER_TYPE_MASK (0xffu << WINED3D_SM4_REGISTER_TYPE_SHIFT)
95#define WINED3D_SM4_SWIZZLE_TYPE_SHIFT 2
96#define WINED3D_SM4_SWIZZLE_TYPE_MASK (0x3u << WINED3D_SM4_SWIZZLE_TYPE_SHIFT)
98#define WINED3D_SM4_IMMCONST_TYPE_SHIFT 0
99#define WINED3D_SM4_IMMCONST_TYPE_MASK (0x3u << WINED3D_SM4_IMMCONST_TYPE_SHIFT)
101#define WINED3D_SM4_WRITEMASK_SHIFT 4
102#define WINED3D_SM4_WRITEMASK_MASK (0xfu << WINED3D_SM4_WRITEMASK_SHIFT)
104#define WINED3D_SM4_SWIZZLE_SHIFT 4
105#define WINED3D_SM4_SWIZZLE_MASK (0xffu << WINED3D_SM4_SWIZZLE_SHIFT)
107#define WINED3D_SM4_VERSION_MAJOR(version) (((version) >> 4) & 0xf)
108#define WINED3D_SM4_VERSION_MINOR(version) (((version) >> 0) & 0xf)
110#define WINED3D_SM4_ADDRESSING_RELATIVE 0x2
111#define WINED3D_SM4_ADDRESSING_OFFSET 0x1
113#define WINED3D_SM4_INSTRUCTION_FLAG_SATURATE 0x4
115#define WINED3D_SM4_CONDITIONAL_NZ (0x1u << 18)
521 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
530 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
534 unsigned int icb_size;
539 FIXME(
"Ignoring shader data type %#x.\n",
type);
545 icb_size = token_count - 1;
548 FIXME(
"Unexpected immediate constant buffer size %u.\n", icb_size);
553 priv->
icb.vec4_count = icb_size / 4;
554 memcpy(priv->
icb.data, tokens,
sizeof(*tokens) * icb_size);
559 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
570 FIXME(
"Unhandled resource type %#x.\n", resource_type);
587 FIXME(
"Unhandled data type %#x.\n", data_type);
600 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
609 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
614 FIXME(
"Unhandled sampler mode %#x.\n", ins->
flags);
619 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
628 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
640 FIXME(
"Unhandled output primitive type %#x.\n", primitive_type);
644 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
665 FIXME(
"Unhandled input primitive type %#x.\n", primitive_type);
669 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
676 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
683 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
692 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
700 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
710 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
719 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
726 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
729 priv->
src_param[0].reg.u.fp_body_idx = *tokens++;
734 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
741 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
745 FIXME(
"Ignoring set of function bodies (count %u).\n", *tokens);
749 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
756 FIXME(
"Ignoring set of function tables (count %u).\n", ins->
declaration.
fp.table_count);
760 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
768 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
776 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
784 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
792 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
799 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
808 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
816 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
828 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
838 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
850 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
861 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
868 DWORD opcode,
DWORD opcode_token,
const DWORD *tokens,
unsigned int token_count,
1179 unsigned int reg_idx =
reg->idx[0].offset;
1183 ERR(
"Invalid output index %u.\n", reg_idx);
1216 ERR(
"Invalid data type '%c'.\n",
t);
1224 DWORD version_token, token_count;
1228 if (byte_code_size /
sizeof(*byte_code) < 2)
1230 WARN(
"Invalid byte code size %lu.\n", (
long)byte_code_size);
1234 version_token = byte_code[0];
1235 TRACE(
"Version: 0x%08x.\n", version_token);
1236 token_count = byte_code[1];
1237 TRACE(
"Token count: %u.\n", token_count);
1239 if (token_count < 2 || byte_code_size /
sizeof(*byte_code) < token_count)
1241 WARN(
"Invalid token count %u.\n", token_count);
1247 ERR(
"Failed to allocate private data\n");
1251 priv->
start = &byte_code[2];
1252 priv->
end = &byte_code[token_count];
1254 switch (version_token >> 16)
1281 FIXME(
"Unrecognised shader type %#x.\n", version_token >> 16);
1293 WARN(
"Invalid output index %u.\n",
e->register_idx);
1356 if (!(reg_idx->
rel_addr = rel_addr))
1358 ERR(
"Failed to get src param for relative addressing.\n");
1363 reg_idx->
offset = *(*ptr)++;
1371 reg_idx->
offset = *(*ptr)++;
1386 WARN(
"Invalid ptr %p >= end %p.\n", *
ptr,
end);
1395 FIXME(
"Unhandled register type %#x.\n", register_type);
1402 param->data_type = data_type;
1410 WARN(
"Invalid ptr %p >= end %p.\n", *
ptr,
end);
1430 FIXME(
"Skipping modifier 0x%08x.\n",
m);
1443 param->idx[0].offset = ~0
U;
1449 ERR(
"Failed to read register index.\n");
1455 param->idx[1].offset = ~0
U;
1461 ERR(
"Failed to read register index.\n");
1474 switch (immconst_type)
1480 WARN(
"Invalid ptr %p, end %p.\n", *
ptr,
end);
1491 WARN(
"Invalid ptr %p, end %p.\n", *
ptr,
end);
1499 FIXME(
"Unhandled immediate constant type %#x.\n", immconst_type);
1516 WARN(
"Invalid ptr %p >= end %p.\n", *
ptr,
end);
1523 ERR(
"Failed to read parameter.\n");
1536 switch (swizzle_type)
1552 FIXME(
"Unhandled swizzle type %#x.\n", swizzle_type);
1568 WARN(
"Invalid ptr %p >= end %p.\n", *
ptr,
end);
1575 ERR(
"Failed to read parameter.\n");
1581 ERR(
"Invalid source modifier %#x on destination register.\n", modifier);
1587 dst_param->
shift = 0;
1600 if (modifier & ~recognized_bits)
1602 FIXME(
"Unhandled modifier 0x%08x.\n", modifier);
1628 unsigned int i,
len;
1636 WARN(
"End of byte-code, failed to read opcode.\n");
1639 remaining = priv->
end - *
ptr;
1641 opcode_token = *(*ptr)++;
1649 WARN(
"End of byte-code, failed to read length token.\n");
1654 if (!
len || remaining <
len)
1656 WARN(
"Read invalid length %u (remaining %lu).\n",
len, remaining);
1663 TRACE_(d3d_bytecode)(
"[ %08x ", opcode_token);
1664 for (
i = 0;
i <
len; ++
i)
1666 TRACE_(d3d_bytecode)(
"%08x ", (*ptr)[
i]);
1668 TRACE_(d3d_bytecode)(
"]\n");
1673 FIXME(
"Unrecognized opcode %#x, opcode_token 0x%08x.\n", opcode, opcode_token);
1700 previous_token = opcode_token;
1708 ins->
flags &= ~WINED3D_SM4_INSTRUCTION_FLAG_SATURATE;
1720 priv->
dst_param[
i].modifiers |= instruction_dst_modifier;
1745 return *
ptr == priv->
end;
ACPI_SIZE strlen(const char *String)
static void * heap_alloc(size_t len)
static BOOL heap_free(void *mem)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
#define WINE_DECLARE_DEBUG_CHANNEL(x)
GLuint GLuint GLsizei GLenum type
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLenum GLenum GLuint components
GLuint GLdouble GLdouble GLint GLint order
GLubyte GLubyte GLubyte GLubyte w
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
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 * u
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)
#define LIST_FOR_EACH_ENTRY_SAFE(cursor, cursor2, list, type, field)
__WINE_SERVER_LIST_INLINE void list_move_head(struct list *dst, struct list *src)
static void shader_sm5_read_sync(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm4_read_header(void *data, const DWORD **ptr, struct wined3d_shader_version *shader_version)
#define WINED3D_SM5_UAV_FLAGS_MASK
static void shader_sm4_read_dcl_indexable_temp(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_SAMPLER_MODE_MASK
static void shader_sm5_read_dcl_hs_max_tessfactor(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm5_read_dcl_uav_structured(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_SHADER_DATA_TYPE_SHIFT
static BOOL shader_sm4_read_src_param(struct wined3d_sm4_data *priv, const DWORD **ptr, const DWORD *end, enum wined3d_data_type data_type, struct wined3d_shader_src_param *src_param)
#define WINED3D_SM4_SWIZZLE_MASK
static void shader_sm5_read_dcl_tgsm_structured(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_INDEX_TYPE_MASK
@ WINED3D_SM4_SAMPLER_COMPARISON
@ WINED3D_SM4_SAMPLER_DEFAULT
wined3d_sm4_resource_type
@ WINED3D_SM4_RESOURCE_TEXTURE_1DARRAY
@ WINED3D_SM4_RESOURCE_TEXTURE_2DMS
@ WINED3D_SM4_RESOURCE_TEXTURE_2DMSARRAY
@ WINED3D_SM4_RESOURCE_TEXTURE_1D
@ WINED3D_SM4_RESOURCE_TEXTURE_CUBE
@ WINED3D_SM4_RESOURCE_TEXTURE_CUBEARRAY
@ WINED3D_SM4_RESOURCE_TEXTURE_2DARRAY
@ WINED3D_SM4_RESOURCE_BUFFER
@ WINED3D_SM4_RESOURCE_TEXTURE_2D
@ WINED3D_SM4_RESOURCE_TEXTURE_3D
wined3d_sm4_input_primitive_type
@ WINED3D_SM5_INPUT_PT_PATCH23
@ WINED3D_SM5_INPUT_PT_PATCH25
@ WINED3D_SM5_INPUT_PT_PATCH3
@ WINED3D_SM4_INPUT_PT_POINT
@ WINED3D_SM4_INPUT_PT_TRIANGLEADJ
@ WINED3D_SM5_INPUT_PT_PATCH32
@ WINED3D_SM4_INPUT_PT_TRIANGLE
@ WINED3D_SM5_INPUT_PT_PATCH7
@ WINED3D_SM5_INPUT_PT_PATCH21
@ WINED3D_SM5_INPUT_PT_PATCH6
@ WINED3D_SM5_INPUT_PT_PATCH29
@ WINED3D_SM5_INPUT_PT_PATCH10
@ WINED3D_SM5_INPUT_PT_PATCH22
@ WINED3D_SM5_INPUT_PT_PATCH14
@ WINED3D_SM5_INPUT_PT_PATCH18
@ WINED3D_SM5_INPUT_PT_PATCH11
@ WINED3D_SM5_INPUT_PT_PATCH8
@ WINED3D_SM5_INPUT_PT_PATCH30
@ WINED3D_SM5_INPUT_PT_PATCH20
@ WINED3D_SM5_INPUT_PT_PATCH31
@ WINED3D_SM4_INPUT_PT_LINE
@ WINED3D_SM5_INPUT_PT_PATCH24
@ WINED3D_SM5_INPUT_PT_PATCH4
@ WINED3D_SM5_INPUT_PT_PATCH9
@ WINED3D_SM5_INPUT_PT_PATCH5
@ WINED3D_SM5_INPUT_PT_PATCH2
@ WINED3D_SM4_INPUT_PT_LINEADJ
@ WINED3D_SM5_INPUT_PT_PATCH19
@ WINED3D_SM5_INPUT_PT_PATCH12
@ WINED3D_SM5_INPUT_PT_PATCH27
@ WINED3D_SM5_INPUT_PT_PATCH13
@ WINED3D_SM5_INPUT_PT_PATCH17
@ WINED3D_SM5_INPUT_PT_PATCH16
@ WINED3D_SM5_INPUT_PT_PATCH15
@ WINED3D_SM5_INPUT_PT_PATCH1
@ WINED3D_SM5_INPUT_PT_PATCH26
@ WINED3D_SM5_INPUT_PT_PATCH28
#define WINED3D_SM4_ADDRESSING_RELATIVE
const struct wined3d_shader_frontend sm4_shader_frontend
static void shader_sm4_read_dcl_sampler(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_IMMCONST_TYPE_SHIFT
#define WINED3D_SM4_REGISTER_TYPE_MASK
wined3d_sm4_output_primitive_type
@ WINED3D_SM4_OUTPUT_PT_LINESTRIP
@ WINED3D_SM4_OUTPUT_PT_TRIANGLESTRIP
@ WINED3D_SM4_OUTPUT_PT_POINTLIST
static const struct wined3d_sm4_opcode_info * get_opcode_info(enum wined3d_sm4_opcode opcode)
wined3d_sm4_shader_data_type
@ WINED3D_SM4_SHADER_DATA_MESSAGE
@ WINED3D_SM4_SHADER_DATA_IMMEDIATE_CONSTANT_BUFFER
static void map_register(const struct wined3d_sm4_data *priv, struct wined3d_shader_register *reg)
#define WINED3D_SM4_ADDRESSING_SHIFT1
@ WINED3D_SM4_OP_DCL_INPUT_PRIMITIVE
@ WINED3D_SM5_OP_DCL_UAV_STRUCTURED
@ WINED3D_SM4_OP_DCL_CONSTANT_BUFFER
@ WINED3D_SM5_OP_IMM_ATOMIC_EXCH
@ WINED3D_SM4_OP_SAMPLE_C_LZ
@ WINED3D_SM5_OP_HS_JOIN_PHASE
@ WINED3D_SM5_OP_DCL_OUTPUT_CONTROL_POINT_COUNT
@ WINED3D_SM5_OP_DCL_HS_FORK_PHASE_INSTANCE_COUNT
@ WINED3D_SM5_OP_DCL_RESOURCE_RAW
@ WINED3D_SM5_OP_DCL_TGSM_RAW
@ WINED3D_SM4_OP_SAMPLE_B
@ WINED3D_SM5_OP_EMIT_STREAM
@ WINED3D_SM4_OP_CONTINUE
@ WINED3D_SM5_OP_IMM_ATOMIC_UMAX
@ WINED3D_SM5_OP_ATOMIC_UMIN
@ WINED3D_SM4_OP_SAMPLE_LOD
@ WINED3D_SM4_OP_DERIV_RTY
@ WINED3D_SM4_OP_ROUND_PI
@ WINED3D_SM5_OP_DCL_INTERFACE
@ WINED3D_SM5_OP_STORE_UAV_TYPED
@ WINED3D_SM4_OP_SAMPLE_INFO
@ WINED3D_SM5_OP_F16TOF32
@ WINED3D_SM5_OP_ATOMIC_UMAX
@ WINED3D_SM5_OP_ATOMIC_XOR
@ WINED3D_SM5_OP_DCL_FUNCTION_TABLE
@ WINED3D_SM5_OP_EVAL_SAMPLE_INDEX
@ WINED3D_SM4_OP_DCL_INPUT_PS_SIV
@ WINED3D_SM4_OP_SAMPLE_GRAD
@ WINED3D_SM5_OP_ATOMIC_OR
@ WINED3D_SM5_OP_GATHER4_PO
@ WINED3D_SM5_OP_GATHER4_PO_C
@ WINED3D_SM5_OP_DERIV_RTX_FINE
@ WINED3D_SM5_OP_DCL_RESOURCE_STRUCTURED
@ WINED3D_SM5_OP_DERIV_RTX_COARSE
@ WINED3D_SM4_OP_SAMPLE_C
@ WINED3D_SM4_OP_DERIV_RTX
@ WINED3D_SM5_OP_IMM_ATOMIC_ALLOC
@ WINED3D_SM5_OP_FIRSTBIT_SHI
@ WINED3D_SM5_OP_DCL_HS_JOIN_PHASE_INSTANCE_COUNT
@ WINED3D_SM5_OP_IMM_ATOMIC_CONSUME
@ WINED3D_SM5_OP_DCL_STREAM
@ WINED3D_SM5_OP_STORE_STRUCTURED
@ WINED3D_SM5_OP_STORE_RAW
@ WINED3D_SM5_OP_F32TOF16
@ WINED3D_SM5_OP_IMM_ATOMIC_UMIN
@ WINED3D_SM5_OP_GATHER4_C
@ WINED3D_SM4_OP_DCL_INPUT
@ WINED3D_SM4_OP_DCL_OUTPUT
@ WINED3D_SM5_OP_ATOMIC_CMP_STORE
@ WINED3D_SM4_OP_ROUND_NE
@ WINED3D_SM5_OP_FIRSTBIT_HI
@ WINED3D_SM4_OP_DCL_INPUT_SIV
@ WINED3D_SM5_OP_HS_CONTROL_POINT_PHASE
@ WINED3D_SM5_OP_ATOMIC_IMIN
@ WINED3D_SM5_OP_IMM_ATOMIC_AND
@ WINED3D_SM4_OP_DCL_INDEX_RANGE
@ WINED3D_SM4_OP_DCL_VERTICES_OUT
@ WINED3D_SM4_OP_SAMPLE_POS
@ WINED3D_SM5_OP_DCL_TGSM_STRUCTURED
@ WINED3D_SM4_OP_DCL_OUTPUT_TOPOLOGY
@ WINED3D_SM5_OP_LD_STRUCTURED
@ WINED3D_SM5_OP_DCL_UAV_RAW
@ WINED3D_SM5_OP_HS_FORK_PHASE
@ WINED3D_SM4_OP_DCL_OUTPUT_SIV
@ WINED3D_SM5_OP_DERIV_RTY_FINE
@ WINED3D_SM5_OP_DCL_TESSELLATOR_PARTITIONING
@ WINED3D_SM4_OP_ENDSWITCH
@ WINED3D_SM5_OP_IMM_ATOMIC_IADD
@ WINED3D_SM5_OP_HS_DECLS
@ WINED3D_SM5_OP_DCL_TESSELLATOR_DOMAIN
@ WINED3D_SM5_OP_DCL_FUNCTION_BODY
@ WINED3D_SM5_OP_CUT_STREAM
@ WINED3D_SM4_OP_DCL_SAMPLER
@ WINED3D_SM5_OP_IMM_ATOMIC_IMAX
@ WINED3D_SM4_OP_DCL_INPUT_PS_SGV
@ WINED3D_SM5_OP_IMM_ATOMIC_OR
@ WINED3D_SM5_OP_DCL_HS_MAX_TESSFACTOR
@ WINED3D_SM5_OP_LD_UAV_TYPED
@ WINED3D_SM5_OP_DERIV_RTY_COARSE
@ WINED3D_SM5_OP_DCL_GS_INSTANCES
@ WINED3D_SM5_OP_IMM_ATOMIC_CMP_EXCH
@ WINED3D_SM4_OP_DCL_GLOBAL_FLAGS
@ WINED3D_SM5_OP_COUNTBITS
@ WINED3D_SM5_OP_FIRSTBIT_LO
@ WINED3D_SM4_OP_ROUND_NI
@ WINED3D_SM4_OP_DCL_TEMPS
@ WINED3D_SM5_OP_ATOMIC_IMAX
@ WINED3D_SM4_OP_CONTINUEC
@ WINED3D_SM5_OP_DCL_THREAD_GROUP
@ WINED3D_SM5_OP_DCL_TESSELLATOR_OUTPUT_PRIMITIVE
@ WINED3D_SM4_OP_DCL_INPUT_PS
@ WINED3D_SM4_OP_DCL_RESOURCE
@ WINED3D_SM4_OP_DCL_INPUT_SGV
@ WINED3D_SM5_OP_IMM_ATOMIC_IMIN
@ WINED3D_SM4_OP_DCL_INDEXABLE_TEMP
@ WINED3D_SM5_OP_DCL_INPUT_CONTROL_POINT_COUNT
@ WINED3D_SM5_OP_ATOMIC_AND
@ WINED3D_SM4_OP_SHADER_DATA
@ WINED3D_SM5_OP_DCL_UAV_TYPED
@ WINED3D_SM5_OP_ATOMIC_IADD
@ WINED3D_SM5_OP_IMM_ATOMIC_XOR
static const struct wined3d_sm4_opcode_info opcode_table[]
static void shader_sm5_read_dcl_resource_raw(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static struct wined3d_shader_src_param * get_src_param(struct wined3d_sm4_data *priv)
#define WINED3D_SM5_SYNC_FLAGS_SHIFT
#define WINED3D_SM4_REGISTER_ORDER_MASK
#define WINED3D_SM5_CONTROL_POINT_COUNT_SHIFT
static void shader_sm4_read_dcl_index_range(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm5_read_dcl_tessellator_output_primitive(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_INSTRUCTION_FLAGS_SHIFT
static void shader_sm5_read_fcall(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_GLOBAL_FLAGS_MASK
static void shader_sm4_free(void *data)
#define WINED3D_SM4_REGISTER_ORDER_SHIFT
#define WINED3D_SM4_PRIMITIVE_TYPE_MASK
#define WINED3D_SM4_RESOURCE_TYPE_SHIFT
static void shader_sm5_read_dcl_function_body(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_IMMCONST_TYPE_MASK
static BOOL shader_sm4_read_dst_param(struct wined3d_sm4_data *priv, const DWORD **ptr, const DWORD *end, enum wined3d_data_type data_type, struct wined3d_shader_dst_param *dst_param)
static void shader_sm4_read_instruction_modifier(DWORD modifier, struct wined3d_shader_instruction *ins)
static void shader_sm5_read_control_point_count(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm4_read_declaration_count(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static BOOL shader_sm4_is_end(void *data, const DWORD **ptr)
#define WINED3D_SM4_INSTRUCTION_LENGTH_SHIFT
static void * shader_sm4_init(const DWORD *byte_code, size_t byte_code_size, const struct wined3d_shader_signature *output_signature)
#define WINED3D_SM4_PRIMITIVE_TYPE_SHIFT
#define WINED3D_SM4_INSTRUCTION_FLAGS_MASK
#define WINED3D_SM5_TESSELLATOR_SHIFT
#define WINED3D_SM4_SAMPLER_MODE_SHIFT
static void shader_sm5_read_dcl_tgsm_raw(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static BOOL shader_sm4_read_reg_idx(struct wined3d_sm4_data *priv, const DWORD **ptr, const DWORD *end, DWORD addressing, struct wined3d_shader_register_index *reg_idx)
#define WINED3D_SM5_FP_TABLE_COUNT_MASK
#define WINED3D_SM4_SWIZZLE_SHIFT
#define WINED3D_SM4_OPCODE_MASK
#define WINED3D_SM4_AOFFIMMI_V_SHIFT
#define WINED3D_SM4_INSTRUCTION_FLAG_SATURATE
#define WINED3D_SM4_WRITEMASK_SHIFT
static void shader_sm5_read_dcl_thread_group(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static enum wined3d_primitive_type output_primitive_type_table[]
wined3d_sm4_immconst_type
@ WINED3D_SM4_IMMCONST_VEC4
@ WINED3D_SM4_IMMCONST_SCALAR
static void shader_sm4_read_declaration_register_semantic(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
wined3d_sm4_register_type
@ WINED3D_SM5_RT_DEPTHOUT_LESS_EQUAL
@ WINED3D_SM5_RT_THREAD_ID
@ WINED3D_SM5_RT_THREAD_GROUP_ID
@ WINED3D_SM5_RT_FUNCTION_BODY
@ WINED3D_SM5_RT_PATCH_CONSTANT_DATA
@ WINED3D_SM5_RT_DEPTHOUT_GREATER_EQUAL
@ WINED3D_SM5_RT_GS_INSTANCE_ID
@ WINED3D_SM5_RT_FORK_INSTANCE_ID
@ WINED3D_SM4_RT_CONSTBUFFER
@ WINED3D_SM5_RT_JOIN_INSTANCE_ID
@ WINED3D_SM4_RT_IMMCONST
@ WINED3D_SM5_RT_INPUT_CONTROL_POINT
@ WINED3D_SM5_RT_LOCAL_THREAD_INDEX
@ WINED3D_SM4_RT_INDEXABLE_TEMP
@ WINED3D_SM5_RT_SHARED_MEMORY
@ WINED3D_SM5_RT_LOCAL_THREAD_ID
@ WINED3D_SM5_RT_OUTPUT_CONTROL_POINT
@ WINED3D_SM5_RT_DOMAIN_LOCATION
@ WINED3D_SM5_RT_FUNCTION_POINTER
@ WINED3D_SM5_RT_OUTPUT_CONTROL_POINT_ID
@ WINED3D_SM5_RT_COVERAGE
@ WINED3D_SM4_RT_IMMCONSTBUFFER
@ WINED3D_SM4_RT_DEPTHOUT
@ WINED3D_SM4_RT_RESOURCE
#define WINED3D_SM4_REGISTER_MODIFIER
#define WINED3D_SM4_ADDRESSING_SHIFT0
#define WINED3D_SM5_TESSELLATOR_MASK
#define WINED3D_SM4_AOFFIMMI_U_SHIFT
#define WINED3D_SM4_INSTRUCTION_LENGTH_MASK
#define WINED3D_SM4_ADDRESSING_MASK0
static void shader_sm4_read_dcl_output_topology(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm4_read_dcl_global_flags(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm5_read_dcl_tessellator_domain(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_CONDITIONAL_NZ
static void shader_sm4_read_instruction(void *data, const DWORD **ptr, struct wined3d_shader_instruction *ins)
static enum wined3d_shader_resource_type resource_type_table[]
static void shader_sm4_read_dcl_input_primitive(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_AOFFIMMI_V_MASK
#define WINED3D_SM5_FP_ARRAY_SIZE_SHIFT
#define WINED3D_SM4_INTERPOLATION_MODE_SHIFT
#define WINED3D_SM4_ADDRESSING_OFFSET
@ WINED3D_SM4_SWIZZLE_NONE
@ WINED3D_SM4_SWIZZLE_SCALAR
@ WINED3D_SM4_SWIZZLE_VEC4
#define WINED3D_SM5_UAV_FLAGS_SHIFT
#define WINED3D_SM4_AOFFIMMI_U_MASK
#define WINED3D_SM4_SHADER_DATA_TYPE_MASK
#define WINED3D_SM5_CONTROL_POINT_COUNT_MASK
#define WINED3D_SM4_INTERPOLATION_MODE_MASK
#define WINED3D_SM4_REGISTER_TYPE_SHIFT
#define WINED3D_SM4_RESOURCE_TYPE_MASK
#define WINED3D_SM5_SYNC_FLAGS_MASK
#define WINED3D_SM4_VERSION_MINOR(version)
static enum wined3d_data_type map_data_type(char t)
#define WINED3D_SM4_ADDRESSING_MASK1
static void shader_sm4_read_dcl_input_ps(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_MODIFIER_AOFFIMMI
static void shader_sm5_read_dcl_function_table(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_AOFFIMMI_W_MASK
static void shader_sm4_read_conditional_op(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm5_read_dcl_resource_structured(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static enum wined3d_data_type data_type_table[]
static void shader_sm4_read_dcl_constant_buffer(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static enum wined3d_shader_register_type register_type_table[]
static BOOL shader_sm4_read_param(struct wined3d_sm4_data *priv, const DWORD **ptr, const DWORD *end, enum wined3d_data_type data_type, struct wined3d_shader_register *param, enum wined3d_shader_src_modifier *modifier)
static void shader_sm5_read_dcl_interface(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_VERSION_MAJOR(version)
#define WINED3D_SM4_WRITEMASK_MASK
#define WINED3D_SM4_INSTRUCTION_MODIFIER
static void shader_sm5_read_dcl_uav_raw(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_SWIZZLE_TYPE_MASK
static void shader_sm4_read_dcl_resource(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm4_read_dcl_input_ps_siv(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm5_read_dcl_tessellator_partitioning(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_AOFFIMMI_W_SHIFT
static void shader_sm4_read_shader_data(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
static void shader_sm4_read_declaration_dst(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
#define WINED3D_SM4_SWIZZLE_TYPE_SHIFT
static enum wined3d_primitive_type input_primitive_type_table[]
#define WINED3D_SM4_GLOBAL_FLAGS_SHIFT
struct wined3d_shader_register reg
struct wined3d_shader_primitive_type primitive_type
struct wined3d_shader_tgsm_structured tgsm_structured
enum wined3d_tessellator_partitioning tessellator_partitioning
const struct wined3d_shader_src_param * src
struct wined3d_shader_semantic semantic
const struct wined3d_shader_dst_param * dst
struct wined3d_shader_function_table_pointer fp
const struct wined3d_shader_src_param * predicate
enum WINED3D_SHADER_INSTRUCTION_HANDLER handler_idx
struct wined3d_shader_indexable_temp indexable_temp
struct wined3d_shader_structured_resource structured_resource
struct wined3d_shader_index_range index_range
float max_tessellation_factor
enum wined3d_tessellator_output_primitive tessellator_output_primitive
enum wined3d_tessellator_domain tessellator_domain
struct wined3d_shader_tgsm_raw tgsm_raw
const struct wined3d_shader_immediate_constant_buffer * icb
struct wined3d_shader_texel_offset texel_offset
union wined3d_shader_instruction::@275 declaration
struct wined3d_shader_thread_group_size thread_group_size
struct wined3d_shader_register_semantic register_semantic
const struct wined3d_shader_src_param * rel_addr
struct wined3d_shader_signature_element * elements
enum wined3d_shader_src_modifier modifiers
struct wined3d_shader_register reg
struct wined3d_shader_immediate_constant_buffer icb
struct wined3d_shader_dst_param dst_param[2]
struct wined3d_shader_src_param src_param[5]
unsigned int output_map[MAX_REG_OUTPUT]
struct wined3d_shader_version shader_version
enum WINED3D_SHADER_INSTRUCTION_HANDLER handler_idx
void(* read_opcode_func)(struct wined3d_shader_instruction *ins, DWORD opcode, DWORD opcode_token, const DWORD *tokens, unsigned int token_count, struct wined3d_sm4_data *priv)
enum wined3d_sm4_opcode opcode
@ WINED3D_PT_TRIANGLELIST_ADJ
@ WINED3D_PT_LINELIST_ADJ
@ WINED3D_PT_TRIANGLESTRIP
@ WINED3D_PT_TRIANGLELIST
WINED3D_SHADER_INSTRUCTION_HANDLER
@ WINED3DSIH_DCL_TESSELLATOR_PARTITIONING
@ WINED3DSIH_GATHER4_PO_C
@ WINED3DSIH_DCL_FUNCTION_TABLE
@ WINED3DSIH_DCL_INPUT_SIV
@ WINED3DSIH_IMM_ATOMIC_XOR
@ WINED3DSIH_DCL_CONSTANT_BUFFER
@ WINED3DSIH_DCL_INTERFACE
@ WINED3DSIH_IMM_ATOMIC_IADD
@ WINED3DSIH_STORE_STRUCTURED
@ WINED3DSIH_IMM_ATOMIC_UMAX
@ WINED3DSIH_STORE_UAV_TYPED
@ WINED3DSIH_DCL_INPUT_SGV
@ WINED3DSIH_DCL_INPUT_PS_SGV
@ WINED3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER
@ WINED3DSIH_DCL_THREAD_GROUP
@ WINED3DSIH_DCL_OUTPUT_SIV
@ WINED3DSIH_DCL_INDEX_RANGE
@ WINED3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE
@ WINED3DSIH_ATOMIC_CMP_STORE
@ WINED3DSIH_HS_CONTROL_POINT_PHASE
@ WINED3DSIH_LD_STRUCTURED
@ WINED3DSIH_IMM_ATOMIC_AND
@ WINED3DSIH_IMM_ATOMIC_CONSUME
@ WINED3DSIH_IMM_ATOMIC_UMIN
@ WINED3DSIH_HS_FORK_PHASE
@ WINED3DSIH_IMM_ATOMIC_CMP_EXCH
@ WINED3DSIH_DCL_VERTICES_OUT
@ WINED3DSIH_HS_JOIN_PHASE
@ WINED3DSIH_DCL_OUTPUT_TOPOLOGY
@ WINED3DSIH_DCL_HS_MAX_TESSFACTOR
@ WINED3DSIH_DCL_GS_INSTANCES
@ WINED3DSIH_DCL_TGSM_RAW
@ WINED3DSIH_DCL_UAV_TYPED
@ WINED3DSIH_IMM_ATOMIC_IMAX
@ WINED3DSIH_DCL_INPUT_PS
@ WINED3DSIH_LD_UAV_TYPED
@ WINED3DSIH_DCL_UAV_STRUCTURED
@ WINED3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT
@ WINED3DSIH_DCL_INPUT_CONTROL_POINT_COUNT
@ WINED3DSIH_DCL_GLOBAL_FLAGS
@ WINED3DSIH_EVAL_SAMPLE_INDEX
@ WINED3DSIH_IMM_ATOMIC_ALLOC
@ WINED3DSIH_IMM_ATOMIC_IMIN
@ WINED3DSIH_DCL_TESSELLATOR_DOMAIN
@ WINED3DSIH_IMM_ATOMIC_EXCH
@ WINED3DSIH_FIRSTBIT_SHI
@ WINED3DSIH_DCL_INPUT_PS_SIV
@ WINED3DSIH_DCL_TGSM_STRUCTURED
@ WINED3DSIH_DCL_FUNCTION_BODY
@ WINED3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT
@ WINED3DSIH_IMM_ATOMIC_OR
@ WINED3DSIH_DCL_INDEXABLE_TEMP
@ WINED3DSIH_DCL_RESOURCE_RAW
@ WINED3DSIH_DCL_INPUT_PRIMITIVE
@ WINED3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT
@ WINED3DSIH_DCL_RESOURCE_STRUCTURED
wined3d_shader_src_modifier
wined3d_shader_dst_modifier
wined3d_shader_resource_type
@ WINED3D_SHADER_RESOURCE_BUFFER
@ WINED3D_SHADER_RESOURCE_TEXTURE_3D
@ WINED3D_SHADER_RESOURCE_TEXTURE_2D
@ WINED3D_SHADER_RESOURCE_TEXTURE_1DARRAY
@ WINED3D_SHADER_RESOURCE_TEXTURE_2DARRAY
@ WINED3D_SHADER_RESOURCE_NONE
@ WINED3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY
@ WINED3D_SHADER_RESOURCE_TEXTURE_2DMS
@ WINED3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY
@ WINED3D_SHADER_RESOURCE_TEXTURE_CUBE
@ WINED3D_SHADER_RESOURCE_TEXTURE_1D
#define MAX_IMMEDIATE_CONSTANT_BUFFER_SIZE
#define WINED3DSI_INDEXED_DYNAMIC
wined3d_shader_register_type
@ WINED3DSPR_LOCALTHREADID
@ WINED3DSPR_FUNCTIONPOINTER
@ WINED3DSPR_OUTCONTROLPOINT
@ WINED3DSPR_INCONTROLPOINT
@ WINED3DSPR_THREADGROUPID
@ WINED3DSPR_FUNCTIONBODY
@ WINED3DSPR_GROUPSHAREDMEM
@ WINED3DSPR_LOCALTHREADINDEX
@ WINED3DSPR_IMMCONSTBUFFER
#define WINED3DSP_NOSWIZZLE
@ WINED3D_IMMCONST_SCALAR
@ WINED3D_SHADER_TYPE_HULL
@ WINED3D_SHADER_TYPE_PIXEL
@ WINED3D_SHADER_TYPE_GEOMETRY
@ WINED3D_SHADER_TYPE_DOMAIN
@ WINED3D_SHADER_TYPE_COMPUTE
@ WINED3D_SHADER_TYPE_VERTEX
@ WINED3D_SHADER_CONDITIONAL_OP_NZ
@ WINED3D_SHADER_CONDITIONAL_OP_Z