384 switch (register_type)
391 FIXME(
"Unsupported register type: %u.\n", register_type);
436 atomic_flags &= ~VKD3DARF_SEQ_CST;
441 atomic_flags &= ~VKD3DARF_VOLATILE;
453 sync_flags &= ~VKD3DSSF_GLOBAL_UAV;
458 sync_flags &= ~VKD3DSSF_THREAD_GROUP_UAV;
463 sync_flags &= ~VKD3DSSF_GROUP_SHARED_MEMORY;
468 sync_flags &= ~VKD3DSSF_THREAD_GROUP;
497 uav_flags &= ~VKD3DSUF_GLOBALLY_COHERENT;
502 uav_flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER;
507 uav_flags &= ~VKD3DSUF_RASTERISER_ORDERED_VIEW;
523 domain =
"domain_isoline";
544 const char *primitive;
549 primitive =
"output_point";
552 primitive =
"output_line";
555 primitive =
"output_triangle_cw";
558 primitive =
"output_triangle_ccw";
573 const char *partitioning;
578 partitioning =
"partitioning_integer";
581 partitioning =
"partitioning_pow2";
584 partitioning =
"partitioning_fractional_odd";
587 partitioning =
"partitioning_fractional_even";
606 const char *sysval_name;
608 shader_input_sysval_semantic_names[] =
634 for (
i = 0;
i <
ARRAY_SIZE(shader_input_sysval_semantic_names); ++
i)
636 if (shader_input_sysval_semantic_names[
i].sysval_semantic != semantic)
640 prefix, shader_input_sysval_semantic_names[
i].sysval_name, suffix);
650 static const char *
const resource_type_names[] =
673 static const char *
const data_type_names[] =
708 for (
i = 0;
i < 4;
i++)
775 switch (semantic->
usage)
815 usage =
"tessfactor";
846 const char *
prefix,
float f,
const char *suffix)
848 const char *
sign =
"";
862 const char *
prefix,
double d,
const char *suffix)
864 const char *
sign =
"";
878 const char *
prefix,
int i,
const char *suffix)
889 const char *
prefix,
unsigned int i,
const char *suffix)
903 const char *
prefix,
unsigned int i,
const char *suffix)
910 const char *
prefix,
unsigned int b,
const char *suffix)
913 compiler->
colours.literal,
b ?
"true" :
"false", compiler->
colours.reset, suffix);
924 unsigned int exponent = (
u >> 23) & 0xff;
946 unsigned int offset_first,
unsigned int offset_last)
949 if (offset_last != ~0
u)
959 unsigned int offset =
reg->idx[0].offset;
960 bool is_descriptor =
false;
962 static const char *
const rastout_reg_names[] = {
"oPos",
"oFog",
"oPts"};
963 static const char *
const misctype_reg_names[] = {
"vPos",
"vFace"};
1042 is_descriptor =
true;
1067 is_descriptor =
true;
1088 is_descriptor =
true;
1093 is_descriptor =
true;
1208 bool untyped =
false;
1210 switch (compiler->
current->opcode)
1222 switch (
reg->dimension)
1225 switch (
reg->data_type)
1247 switch (
reg->data_type)
1326 if (
reg->idx_count == 0 ||
reg->idx[0].rel_addr)
1336 for (;
i <
reg->idx_count; ++
i)
1363 if (is_descriptor && is_declaration && is_sm_5_1)
1372 if (
reg->idx[1].offset != ~0
u && (!is_descriptor || is_sm_5_1))
1375 if (
reg->idx[2].offset != ~0
u)
1402 switch (
reg->precision)
1430 if (
reg->non_uniform)
1438 static const char *dimensions[] =
1446 const char *dimension;
1458 dimension = dimensions[
reg->dimension];
1519 const char *modifier =
"";
1520 bool is_abs =
false;
1539 switch (src_modifier)
1575 static const char swizzle_chars[] =
"xyzw";
1577 unsigned int swizzle_x, swizzle_y, swizzle_z, swizzle_w;
1587 if (swizzle_x == swizzle_y && swizzle_x == swizzle_z && swizzle_x == swizzle_w)
1589 swizzle_chars[swizzle_x], compiler->
colours.reset);
1592 swizzle_chars[swizzle_x], swizzle_chars[swizzle_y],
1593 swizzle_chars[swizzle_z], swizzle_chars[swizzle_w], compiler->
colours.reset);
1644 mmask &= ~VKD3DSPDM_MASK;
1645 if (mmask)
FIXME(
"Unrecognised modifier %#x.\n", mmask);
1652 const char *primitive_type;
1657 primitive_type =
"undefined";
1660 primitive_type =
"pointlist";
1663 primitive_type =
"linelist";
1666 primitive_type =
"linestrip";
1669 primitive_type =
"trianglelist";
1672 primitive_type =
"trianglestrip";
1675 primitive_type =
"trianglefan";
1678 primitive_type =
"linelist_adj";
1681 primitive_type =
"linestrip_adj";
1684 primitive_type =
"trianglelist_adj";
1687 primitive_type =
"trianglestrip_adj";
1715 mode =
"linear centroid";
1718 mode =
"linear noperspective";
1721 mode =
"linear sample";
1724 mode =
"linear noperspective centroid";
1727 mode =
"linear noperspective sample";
1769 FIXME(
"Unhandled shader type %#x.\n",
type);
2145 ins->
dst[0].reg.idx[0].offset, compiler->
colours.reset);
2154 ins->
dst[0].reg.idx[0].offset, compiler->
colours.reset);
2231 default:
return "??";
2246 default:
return "??";
2259 default:
return "??";
2274 default:
return "??";
2297 if (
element->semantic_index != 0)
2300 if (
element->register_index != -1)
2304 register_name,
element->register_index, compiler->
colours.reset);
2352 &
program->input_signature)) < 0)
2356 &
program->output_signature)) < 0)
2361 &
program->patch_constant_signature)) < 0)
2383 const char *indent_str;
2401 .error =
"\x1b[97;41m",
2402 .literal =
"\x1b[95m",
2403 .modifier =
"\x1b[36m",
2404 .opcode =
"\x1b[96;1m",
2406 .swizzle =
"\x1b[93m",
2407 .version =
"\x1b[36m",
2408 .write_mask =
"\x1b[93m",
2409 .label =
"\x1b[91m",
2421 formatting =
option->value;
2428 compiler.
colours = no_colours;
2455 for (
i = 0;
i <
program->instructions.count; ++
i)
2518 TRACE(
"%s signature:%s\n", signature_type,
signature->element_count == 0 ?
" empty" :
"");
2532 if (
element->semantic_index != -1)
2535 " mask %#x used_mask %#x sysval %s min_precision %s interpolation %u stream %u",
2539 if (
element->target_location != -1)
2554 const char *
p, *
q, *
end;
void vsir_program_trace(const struct vsir_program *program)
static void shader_print_bool_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, unsigned int b, const char *suffix)
static enum vkd3d_result dump_dxbc_signature(struct vkd3d_d3d_asm_compiler *compiler, const char *name, const char *register_name, const struct shader_signature *signature)
static void trace_signature(const struct shader_signature *signature, const char *signature_type)
static void shader_print_hex_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, unsigned int i, const char *suffix)
static void shader_print_non_uniform(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_register *reg)
static const char * get_semantic_register_name(enum vkd3d_shader_sysval_semantic semantic)
static void shader_dump_ins_modifiers(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_dst_param *dst)
static void shader_print_precision(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_register *reg)
static void shader_print_subscript(struct vkd3d_d3d_asm_compiler *compiler, unsigned int offset, const struct vkd3d_shader_src_param *rel_addr)
static void shader_dump_register_space(struct vkd3d_d3d_asm_compiler *compiler, unsigned int register_space)
static void shader_print_uint_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, unsigned int i, const char *suffix)
static void shader_print_uint64_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, uint64_t i, const char *suffix)
static const char *const shader_opcode_names[]
static void shader_print_tessellator_domain(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, enum vkd3d_tessellator_domain d, const char *suffix)
static unsigned int shader_get_float_offset(enum vkd3d_shader_register_type register_type, UINT register_idx)
static void shader_print_dst_param(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_dst_param *param, bool is_declaration, const char *suffix)
static void shader_print_opcode(struct vkd3d_d3d_asm_compiler *compiler, enum vkd3d_shader_opcode opcode)
static void shader_dump_resource_type(struct vkd3d_d3d_asm_compiler *compiler, enum vkd3d_shader_resource_type type)
static void shader_print_register(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_register *reg, bool is_declaration, const char *suffix)
static void shader_dump_sync_flags(struct vkd3d_d3d_asm_compiler *compiler, uint32_t sync_flags)
static void shader_print_int_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, int i, const char *suffix)
static void shader_dump_global_flags(struct vkd3d_d3d_asm_compiler *compiler, enum vsir_global_flags global_flags)
enum vkd3d_result d3d_asm_compile(const struct vsir_program *program, const struct vkd3d_shader_compile_info *compile_info, struct vkd3d_shader_code *out, enum vsir_asm_flags flags)
static void shader_print_primitive_type(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_primitive_type *p, const char *suffix)
static enum vkd3d_result dump_dxbc_signatures(struct vkd3d_d3d_asm_compiler *compiler, const struct vsir_program *program)
static void shader_print_write_mask(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, uint32_t mask, const char *suffix)
static const char * get_minimum_precision_name(enum vkd3d_shader_minimum_precision prec)
static void shader_print_input_sysval_semantic(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, enum vkd3d_shader_input_sysval_semantic semantic, const char *suffix)
static void shader_dump_precise_flags(struct vkd3d_d3d_asm_compiler *compiler, uint32_t flags)
const char * shader_get_type_prefix(enum vkd3d_shader_type type)
static void shader_print_interpolation_mode(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, enum vkd3d_shader_interpolation_mode m, const char *suffix)
static void shader_print_float_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, float f, const char *suffix)
static const char * get_component_type_name(enum vkd3d_shader_component_type type)
static const char * get_sysval_semantic_name(enum vkd3d_shader_sysval_semantic semantic)
static void shader_dump_uav_flags(struct vkd3d_d3d_asm_compiler *compiler, uint32_t uav_flags)
static void shader_print_src_param(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_src_param *param, const char *suffix)
static void shader_dump_atomic_op_flags(struct vkd3d_d3d_asm_compiler *compiler, uint32_t atomic_flags)
static void shader_dump_instruction_flags(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_instruction *ins)
static void shader_print_tessellator_partitioning(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, enum vkd3d_shader_tessellator_partitioning p, const char *suffix)
static void shader_dump_resource_data_type(struct vkd3d_d3d_asm_compiler *compiler, const enum vkd3d_data_type *type)
static void shader_print_double_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, double d, const char *suffix)
static void shader_dump_instruction(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_instruction *ins)
static void shader_print_dcl_usage(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_semantic *semantic, uint32_t flags, const char *suffix)
static void shader_print_reg_type(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, const struct vkd3d_shader_register *reg, const char *suffix)
static void shader_print_tessellator_output_primitive(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, enum vkd3d_shader_tessellator_output_primitive p, const char *suffix)
static void shader_dump_icb(struct vkd3d_d3d_asm_compiler *compiler, const struct vkd3d_shader_immediate_constant_buffer *icb)
static void shader_print_subscript_range(struct vkd3d_d3d_asm_compiler *compiler, unsigned int offset_first, unsigned int offset_last)
static void shader_print_untyped_literal(struct vkd3d_d3d_asm_compiler *compiler, const char *prefix, uint32_t u, const char *suffix)
static void shader_dump_data_type(struct vkd3d_d3d_asm_compiler *compiler, enum vkd3d_data_type type)
static const WCHAR indent[]
GLuint GLuint GLsizei GLenum type
GLdouble GLdouble GLdouble GLdouble q
GLboolean GLboolean GLboolean b
GLenum GLint GLint * precision
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 flag
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 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 GLint GLint j
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
struct vkd3d_string_buffer buffer
enum vsir_asm_flags flags
struct vkd3d_shader_version shader_version
const struct vkd3d_shader_instruction * current
struct vkd3d_d3d_asm_colours colours
const struct vkd3d_shader_compile_option * options
unsigned int option_count
struct vkd3d_shader_src_param * src
struct vkd3d_shader_sampler sampler
enum vsir_global_flags global_flags
struct vkd3d_shader_constant_buffer cb
const struct vkd3d_shader_src_param * predicate
struct vsir_thread_group_size thread_group_size
const struct vkd3d_shader_immediate_constant_buffer * icb
enum vkd3d_shader_tessellator_partitioning tessellator_partitioning
struct vkd3d_shader_texel_offset texel_offset
struct vkd3d_shader_tgsm_raw tgsm_raw
struct vkd3d_shader_raw_resource raw_resource
struct vkd3d_shader_register_semantic register_semantic
enum vkd3d_shader_tessellator_output_primitive tessellator_output_primitive
unsigned int resource_stride
enum vkd3d_tessellator_domain tessellator_domain
struct vkd3d_shader_indexable_temp indexable_temp
enum vkd3d_shader_resource_type resource_type
float max_tessellation_factor
union vkd3d_shader_instruction::@6020 declaration
struct vkd3d_shader_function_table_pointer fp
struct vkd3d_shader_tgsm_structured tgsm_structured
enum vkd3d_shader_opcode opcode
enum vkd3d_data_type resource_data_type[VKD3D_VEC4_SIZE]
struct vkd3d_shader_semantic semantic
struct vkd3d_shader_structured_resource structured_resource
struct vkd3d_shader_dst_param * dst
struct vkd3d_shader_index_range index_range
struct vkd3d_shader_primitive_type primitive_type
enum vkd3d_shader_resource_type resource_type
enum vkd3d_data_type resource_data_type[VKD3D_VEC4_SIZE]
unsigned int sample_count
struct vkd3d_shader_resource resource
enum vkd3d_decl_usage usage
enum vkd3d_shader_type type
Character const *const prefix
#define VKD3D_ASSERT(cond)
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING
vkd3d_shader_compile_option_formatting_flags
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_IO_SIGNATURES
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_HEADER
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_COLOUR
@ VKD3D_SHADER_COMPILE_OPTION_FORMATTING_INDENT
VKD3D_SHADER_API void vkd3d_shader_free_shader_code(struct vkd3d_shader_code *code)
vkd3d_shader_sysval_semantic
@ VKD3D_SHADER_SV_VERTEX_ID
@ VKD3D_SHADER_SV_RENDER_TARGET_ARRAY_INDEX
@ VKD3D_SHADER_SV_DEPTH_LESS_EQUAL
@ VKD3D_SHADER_SV_PRIMITIVE_ID
@ VKD3D_SHADER_SV_COVERAGE
@ VKD3D_SHADER_SV_CULL_DISTANCE
@ VKD3D_SHADER_SV_TESS_FACTOR_TRIEDGE
@ VKD3D_SHADER_SV_TESS_FACTOR_LINEDET
@ VKD3D_SHADER_SV_TESS_FACTOR_QUADEDGE
@ VKD3D_SHADER_SV_IS_FRONT_FACE
@ VKD3D_SHADER_SV_VIEWPORT_ARRAY_INDEX
@ VKD3D_SHADER_SV_TESS_FACTOR_QUADINT
@ VKD3D_SHADER_SV_TESS_FACTOR_TRIINT
@ VKD3D_SHADER_SV_TESS_FACTOR_LINEDEN
@ VKD3D_SHADER_SV_DEPTH_GREATER_EQUAL
@ VKD3D_SHADER_SV_INSTANCE_ID
@ VKD3D_SHADER_SV_CLIP_DISTANCE
@ VKD3D_SHADER_SV_SAMPLE_INDEX
@ VKD3D_SHADER_SV_STENCIL_REF
@ VKD3D_SHADER_SV_POSITION
vkd3d_shader_tessellator_output_primitive
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CW
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_POINT
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_TRIANGLE_CCW
@ VKD3D_SHADER_TESSELLATOR_OUTPUT_LINE
vkd3d_shader_component_type
@ VKD3D_SHADER_COMPONENT_INT
@ VKD3D_SHADER_COMPONENT_UINT
@ VKD3D_SHADER_COMPONENT_DOUBLE
@ VKD3D_SHADER_COMPONENT_UINT64
@ VKD3D_SHADER_COMPONENT_FLOAT
@ VKD3D_SHADER_COMPONENT_VOID
@ VKD3D_SHADER_COMPONENT_BOOL
vkd3d_shader_resource_type
@ VKD3D_SHADER_RESOURCE_NONE
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMS
@ VKD3D_SHADER_RESOURCE_TEXTURE_3D
@ VKD3D_SHADER_RESOURCE_TEXTURE_1DARRAY
@ VKD3D_SHADER_RESOURCE_BUFFER
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBE
@ VKD3D_SHADER_RESOURCE_TEXTURE_1D
@ VKD3D_SHADER_RESOURCE_TEXTURE_CUBEARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2DMSARRAY
@ VKD3D_SHADER_RESOURCE_TEXTURE_2D
vkd3d_shader_tessellator_partitioning
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_INTEGER
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_POW2
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_ODD
@ VKD3D_SHADER_TESSELLATOR_PARTITIONING_FRACTIONAL_EVEN
vkd3d_shader_minimum_precision
@ VKD3D_SHADER_MINIMUM_PRECISION_UINT_16
@ VKD3D_SHADER_MINIMUM_PRECISION_FIXED_8_2
@ VKD3D_SHADER_MINIMUM_PRECISION_NONE
@ VKD3D_SHADER_MINIMUM_PRECISION_FLOAT_16
@ VKD3D_SHADER_MINIMUM_PRECISION_INT_16
void vkd3d_string_buffer_init(struct vkd3d_string_buffer *buffer)
void vkd3d_shader_code_from_string_buffer(struct vkd3d_shader_code *code, struct vkd3d_string_buffer *buffer)
int vkd3d_string_buffer_print_f64(struct vkd3d_string_buffer *buffer, double d)
void vkd3d_string_buffer_cleanup(struct vkd3d_string_buffer *buffer)
int vkd3d_string_buffer_print_f32(struct vkd3d_string_buffer *buffer, float f)
void vkd3d_string_buffer_clear(struct vkd3d_string_buffer *buffer)
int vkd3d_string_buffer_printf(struct vkd3d_string_buffer *buffer, const char *format,...)
#define VKD3DSI_PRECISE_XYZW
vkd3d_shader_src_modifier
static bool vkd3d_shader_instruction_has_texel_offset(const struct vkd3d_shader_instruction *ins)
@ VKD3DSGF_REFACTORING_ALLOWED
@ VKD3DSGF_ENABLE_RAW_AND_STRUCTURED_BUFFERS
@ VKD3DSGF_FORCE_EARLY_DEPTH_STENCIL
@ VKD3DSGF_SKIP_OPTIMIZATION
@ VKD3DSGF_ENABLE_MINIMUM_PRECISION
@ VKD3DSGF_ENABLE_DOUBLE_PRECISION_FLOAT_OPS
@ VKD3DSGF_ENABLE_11_1_DOUBLE_EXTENSIONS
static bool data_type_is_64_bit(enum vkd3d_data_type data_type)
#define VKD3DSI_PRECISE_X
static bool vkd3d_shader_ver_ge(const struct vkd3d_shader_version *v, unsigned int major, unsigned int minor)
@ VKD3D_SHADER_TYPE_VERTEX
@ VKD3D_SHADER_TYPE_LIBRARY
@ VKD3D_SHADER_TYPE_GEOMETRY
@ VKD3D_SHADER_TYPE_COMPUTE
@ VKD3D_SHADER_TYPE_TEXTURE
@ VKD3D_SHADER_TYPE_PIXEL
@ VKD3D_SHADER_TYPE_EFFECT
@ VKD3D_SHADER_TYPE_DOMAIN
vkd3d_shader_interpolation_mode
@ VKD3DSIM_LINEAR_NOPERSPECTIVE_CENTROID
@ VKD3DSIM_LINEAR_NOPERSPECTIVE_SAMPLE
@ VKD3DSIM_LINEAR_CENTROID
@ VKD3DSIM_LINEAR_NOPERSPECTIVE
#define VKD3DSP_WRITEMASK_3
#define VKD3DSI_TEXLD_BIAS
#define VKD3DSI_PRECISE_Z
vkd3d_shader_register_type
@ VKD3DSPR_INCONTROLPOINT
@ VKD3DSPR_GROUPSHAREDMEM
@ VKD3DSPR_FUNCTIONPOINTER
@ VKD3DSPR_COMBINED_SAMPLER
@ VKD3DSPR_LOCALTHREADINDEX
@ VKD3DSPR_OUTCONTROLPOINT
@ VKD3DSPR_IMMCONSTBUFFER
@ VKD3DSUF_GLOBALLY_COHERENT
@ VKD3DSUF_RASTERISER_ORDERED_VIEW
@ VKD3DSUF_ORDER_PRESERVING_COUNTER
#define VKD3DSI_INDEXED_DYNAMIC
#define VKD3DSI_SAMPLER_COMPARISON_MODE
#define VKD3DSI_WAVE_PREFIX
vkd3d_shader_input_sysval_semantic
@ VKD3D_SIV_TRIANGLE_U_TESS_FACTOR
@ VKD3D_SIV_CULL_DISTANCE
@ VKD3D_SIV_IS_FRONT_FACE
@ VKD3D_SIV_LINE_DETAIL_TESS_FACTOR
@ VKD3D_SIV_QUAD_V1_TESS_FACTOR
@ VKD3D_SIV_QUAD_U1_TESS_FACTOR
@ VKD3D_SIV_QUAD_U0_TESS_FACTOR
@ VKD3D_SIV_QUAD_U_INNER_TESS_FACTOR
@ VKD3D_SIV_TRIANGLE_INNER_TESS_FACTOR
@ VKD3D_SIV_QUAD_V_INNER_TESS_FACTOR
@ VKD3D_SIV_TRIANGLE_W_TESS_FACTOR
@ VKD3D_SIV_RENDER_TARGET_ARRAY_INDEX
@ VKD3D_SIV_LINE_DENSITY_TESS_FACTOR
@ VKD3D_SIV_CLIP_DISTANCE
@ VKD3D_SIV_TRIANGLE_V_TESS_FACTOR
@ VKD3D_SIV_QUAD_V0_TESS_FACTOR
@ VKD3D_SIV_VIEWPORT_ARRAY_INDEX
#define VKD3DSI_TEXLD_PROJECT
static unsigned int vsir_swizzle_get_component(uint32_t swizzle, unsigned int idx)
@ VKD3DSIH_LD_UAV_TYPED_S
@ VKD3DSIH_DCL_IMMEDIATE_CONSTANT_BUFFER
@ VKD3DSIH_QUAD_READ_LANE_AT
@ VKD3DSIH_IMM_ATOMIC_UMAX
@ VKD3DSIH_DCL_HS_JOIN_PHASE_INSTANCE_COUNT
@ VKD3DSIH_DCL_TESSELLATOR_OUTPUT_PRIMITIVE
@ VKD3DSIH_WAVE_READ_LANE_AT
@ VKD3DSIH_DCL_INPUT_CONTROL_POINT_COUNT
@ VKD3DSIH_WAVE_PREFIX_BIT_COUNT
@ VKD3DSIH_WAVE_ACTIVE_ALL_EQUAL
@ VKD3DSIH_IMM_ATOMIC_XOR
@ VKD3DSIH_GATHER4_PO_C_S
@ VKD3DSIH_DCL_INPUT_PRIMITIVE
@ VKD3DSIH_STORE_UAV_TYPED
@ VKD3DSIH_WAVE_IS_FIRST_LANE
@ VKD3DSIH_WAVE_ACTIVE_BIT_OR
@ VKD3DSIH_DCL_GS_INSTANCES
@ VKD3DSIH_QUAD_READ_ACROSS_X
@ VKD3DSIH_DCL_OUTPUT_SIV
@ VKD3DSIH_DCL_FUNCTION_TABLE
@ VKD3DSIH_QUAD_READ_ACROSS_D
@ VKD3DSIH_DCL_RESOURCE_RAW
@ VKD3DSIH_DCL_VERTICES_OUT
@ VKD3DSIH_DCL_OUTPUT_TOPOLOGY
@ VKD3DSIH_IMM_ATOMIC_CONSUME
@ VKD3DSIH_DCL_GLOBAL_FLAGS
@ VKD3DSIH_EVAL_SAMPLE_INDEX
@ VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED
@ VKD3DSIH_DCL_FUNCTION_BODY
@ VKD3DSIH_DCL_HS_MAX_TESSFACTOR
@ VKD3DSIH_DCL_UAV_STRUCTURED
@ VKD3DSIH_HS_CONTROL_POINT_PHASE
@ VKD3DSIH_DCL_INPUT_PS_SIV
@ VKD3DSIH_IMM_ATOMIC_IADD
@ VKD3DSIH_IMM_ATOMIC_EXCH
@ VKD3DSIH_ATOMIC_CMP_STORE
@ VKD3DSIH_DCL_HS_FORK_PHASE_INSTANCE_COUNT
@ VKD3DSIH_DCL_THREAD_GROUP
@ VKD3DSIH_WAVE_ACTIVE_BIT_XOR
@ VKD3DSIH_IMM_ATOMIC_IMIN
@ VKD3DSIH_QUAD_READ_ACROSS_Y
@ VKD3DSIH_WAVE_ACTIVE_BIT_AND
@ VKD3DSIH_IMM_ATOMIC_IMAX
@ VKD3DSIH_IMM_ATOMIC_ALLOC
@ VKD3DSIH_IMM_ATOMIC_AND
@ VKD3DSIH_WAVE_ACTIVE_BALLOT
@ VKD3DSIH_DCL_TGSM_STRUCTURED
@ VKD3DSIH_DCL_RESOURCE_STRUCTURED
@ VKD3DSIH_WAVE_READ_LANE_FIRST
@ VKD3DSIH_SWITCH_MONOLITHIC
@ VKD3DSIH_DCL_TESSELLATOR_DOMAIN
@ VKD3DSIH_DCL_OUTPUT_CONTROL_POINT_COUNT
@ VKD3DSIH_SAMPLE_GRAD_CL_S
@ VKD3DSIH_STORE_STRUCTURED
@ VKD3DSIH_IMM_ATOMIC_UMIN
@ VKD3DSIH_DCL_INDEX_RANGE
@ VKD3DSIH_DCL_INPUT_PS_SGV
@ VKD3DSIH_DCL_CONSTANT_BUFFER
@ VKD3DSIH_DCL_INDEXABLE_TEMP
@ VKD3DSIH_IMM_ATOMIC_CMP_EXCH
@ VKD3DSIH_WAVE_ALL_BIT_COUNT
@ VKD3DSIH_LD_STRUCTURED_S
@ VKD3DSIH_DCL_TESSELLATOR_PARTITIONING
#define VKD3DSI_RESINFO_UINT
@ VKD3DSSF_GROUP_SHARED_MEMORY
@ VKD3DSSF_THREAD_GROUP_UAV
@ VSIR_ASM_FLAG_DUMP_ALL_INDICES
@ VSIR_ASM_FLAG_DUMP_TYPES
#define VKD3DSI_SAMPLE_INFO_UINT
@ VKD3D_SHADER_REGISTER_PRECISION_DEFAULT
@ VKD3D_SHADER_REGISTER_PRECISION_MIN_UINT_16
@ VKD3D_SHADER_REGISTER_PRECISION_MIN_INT_16
@ VKD3D_SHADER_REGISTER_PRECISION_MIN_FLOAT_10
@ VKD3D_SHADER_REGISTER_PRECISION_MIN_FLOAT_16
static uint32_t vsir_write_mask_32_from_64(uint32_t write_mask64)
@ VKD3D_TESSELLATOR_DOMAIN_TRIANGLE
@ VKD3D_TESSELLATOR_DOMAIN_LINE
@ VKD3D_TESSELLATOR_DOMAIN_QUAD
@ VKD3D_DECL_USAGE_SAMPLE
@ VKD3D_DECL_USAGE_BLEND_WEIGHT
@ VKD3D_DECL_USAGE_BINORMAL
@ VKD3D_DECL_USAGE_TEXCOORD
@ VKD3D_DECL_USAGE_BLEND_INDICES
@ VKD3D_DECL_USAGE_TANGENT
@ VKD3D_DECL_USAGE_POSITION
@ VKD3D_DECL_USAGE_TESS_FACTOR
@ VKD3D_DECL_USAGE_NORMAL
@ VKD3D_DECL_USAGE_POSITIONT
@ VKD3D_PT_TRIANGLELIST_ADJ
@ VKD3D_PT_TRIANGLESTRIP_ADJ
@ VKD3D_SHADER_CONDITIONAL_OP_NZ
@ VKD3D_SHADER_CONDITIONAL_OP_Z
#define VKD3DSI_PRECISE_W
@ VKD3DSPDM_PARTIALPRECISION
@ VKD3DSPDM_MSAMPCENTROID
#define VKD3DSP_WRITEMASK_0
#define VKD3DSI_PRECISE_Y
#define VKD3DSP_WRITEMASK_1
#define VKD3DSI_RESINFO_RCP_FLOAT
#define VKD3DSP_WRITEMASK_2
static uint32_t vsir_swizzle_32_from_64(uint32_t swizzle64)
#define VKD3DSI_SHIFT_UNMASKED
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out