diff --git a/libs/vkd3d-shader/dxbc.c b/libs/vkd3d-shader/dxbc.c index be605802..348eff49 100644 --- a/libs/vkd3d-shader/dxbc.c +++ b/libs/vkd3d-shader/dxbc.c @@ -1791,7 +1791,6 @@ static bool shader_sm4_read_dst_param(struct vkd3d_sm4_data *priv, const DWORD * if (!dst_param->write_mask && shader_sm4_is_scalar_register(&dst_param->reg)) dst_param->write_mask = VKD3DSP_WRITEMASK_0; dst_param->modifiers = 0; - dst_param->shift = 0; return true; } diff --git a/libs/vkd3d-shader/trace.c b/libs/vkd3d-shader/trace.c index b06579eb..debc970f 100644 --- a/libs/vkd3d-shader/trace.c +++ b/libs/vkd3d-shader/trace.c @@ -38,7 +38,6 @@ struct vkd3d_string_buffer static const char * const shader_opcode_names[] = { - /* VKD3DSIH_ABS */ "abs", /* VKD3DSIH_ADD */ "add", /* VKD3DSIH_AND */ "and", /* VKD3DSIH_ATOMIC_AND */ "atomic_and", @@ -60,12 +59,9 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_CALL */ "call", /* VKD3DSIH_CALLNZ */ "callnz", /* VKD3DSIH_CASE */ "case", - /* VKD3DSIH_CMP */ "cmp", - /* VKD3DSIH_CND */ "cnd", /* VKD3DSIH_CONTINUE */ "continue", /* VKD3DSIH_CONTINUEP */ "continuec", /* VKD3DSIH_COUNTBITS */ "countbits", - /* VKD3DSIH_CRS */ "crs", /* VKD3DSIH_CUT */ "cut", /* VKD3DSIH_CUT_STREAM */ "cut_stream", /* VKD3DSIH_DCL */ "dcl", @@ -108,16 +104,11 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_DCL_UAV_STRUCTURED */ "dcl_uav_structured", /* VKD3DSIH_DCL_UAV_TYPED */ "dcl_uav_typed", /* VKD3DSIH_DCL_VERTICES_OUT */ "dcl_maxOutputVertexCount", - /* VKD3DSIH_DEF */ "def", /* VKD3DSIH_DEFAULT */ "default", - /* VKD3DSIH_DEFB */ "defb", - /* VKD3DSIH_DEFI */ "defi", /* VKD3DSIH_DIV */ "div", /* VKD3DSIH_DP2 */ "dp2", - /* VKD3DSIH_DP2ADD */ "dp2add", /* VKD3DSIH_DP3 */ "dp3", /* VKD3DSIH_DP4 */ "dp4", - /* VKD3DSIH_DST */ "dst", /* VKD3DSIH_DSX */ "dsx", /* VKD3DSIH_DSX_COARSE */ "deriv_rtx_coarse", /* VKD3DSIH_DSX_FINE */ "deriv_rtx_fine", @@ -129,13 +120,11 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_EMIT_STREAM */ "emit_stream", /* VKD3DSIH_ENDIF */ "endif", /* VKD3DSIH_ENDLOOP */ "endloop", - /* VKD3DSIH_ENDREP */ "endrep", /* VKD3DSIH_ENDSWITCH */ "endswitch", /* VKD3DSIH_EQ */ "eq", /* VKD3DSIH_EVAL_CENTROID */ "eval_centroid", /* VKD3DSIH_EVAL_SAMPLE_INDEX */ "eval_sample_index", /* VKD3DSIH_EXP */ "exp", - /* VKD3DSIH_EXPP */ "expp", /* VKD3DSIH_F16TOF32 */ "f16tof32", /* VKD3DSIH_F32TOF16 */ "f32tof16", /* VKD3DSIH_FCALL */ "fcall", @@ -188,34 +177,23 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_LD_RAW */ "ld_raw", /* VKD3DSIH_LD_STRUCTURED */ "ld_structured", /* VKD3DSIH_LD_UAV_TYPED */ "ld_uav_typed", - /* VKD3DSIH_LIT */ "lit", /* VKD3DSIH_LOD */ "lod", /* VKD3DSIH_LOG */ "log", - /* VKD3DSIH_LOGP */ "logp", /* VKD3DSIH_LOOP */ "loop", /* VKD3DSIH_LRP */ "lrp", /* VKD3DSIH_LT */ "lt", - /* VKD3DSIH_M3x2 */ "m3x2", - /* VKD3DSIH_M3x3 */ "m3x3", - /* VKD3DSIH_M3x4 */ "m3x4", - /* VKD3DSIH_M4x3 */ "m4x3", - /* VKD3DSIH_M4x4 */ "m4x4", /* VKD3DSIH_MAD */ "mad", /* VKD3DSIH_MAX */ "max", /* VKD3DSIH_MIN */ "min", /* VKD3DSIH_MOV */ "mov", - /* VKD3DSIH_MOVA */ "mova", /* VKD3DSIH_MOVC */ "movc", /* VKD3DSIH_MUL */ "mul", /* VKD3DSIH_NE */ "ne", /* VKD3DSIH_NOP */ "nop", /* VKD3DSIH_NOT */ "not", - /* VKD3DSIH_NRM */ "nrm", /* VKD3DSIH_OR */ "or", - /* VKD3DSIH_PHASE */ "phase", /* VKD3DSIH_POW */ "pow", /* VKD3DSIH_RCP */ "rcp", - /* VKD3DSIH_REP */ "rep", /* VKD3DSIH_RESINFO */ "resinfo", /* VKD3DSIH_RET */ "ret", /* VKD3DSIH_RETP */ "retp", @@ -232,7 +210,6 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_SAMPLE_INFO */ "sample_info", /* VKD3DSIH_SAMPLE_LOD */ "sample_l", /* VKD3DSIH_SAMPLE_POS */ "sample_pos", - /* VKD3DSIH_SETP */ "setp", /* VKD3DSIH_SGE */ "sge", /* VKD3DSIH_SGN */ "sgn", /* VKD3DSIH_SINCOS */ "sincos", @@ -245,28 +222,7 @@ static const char * const shader_opcode_names[] = /* VKD3DSIH_SWAPC */ "swapc", /* VKD3DSIH_SWITCH */ "switch", /* VKD3DSIH_SYNC */ "sync", - /* VKD3DSIH_TEX */ "texld", - /* VKD3DSIH_TEXBEM */ "texbem", - /* VKD3DSIH_TEXBEML */ "texbeml", - /* VKD3DSIH_TEXCOORD */ "texcrd", - /* VKD3DSIH_TEXDEPTH */ "texdepth", - /* VKD3DSIH_TEXDP3 */ "texdp3", - /* VKD3DSIH_TEXDP3TEX */ "texdp3tex", /* VKD3DSIH_TEXKILL */ "texkill", - /* VKD3DSIH_TEXLDD */ "texldd", - /* VKD3DSIH_TEXLDL */ "texldl", - /* VKD3DSIH_TEXM3x2DEPTH */ "texm3x2depth", - /* VKD3DSIH_TEXM3x2PAD */ "texm3x2pad", - /* VKD3DSIH_TEXM3x2TEX */ "texm3x2tex", - /* VKD3DSIH_TEXM3x3 */ "texm3x3", - /* VKD3DSIH_TEXM3x3DIFF */ "texm3x3diff", - /* VKD3DSIH_TEXM3x3PAD */ "texm3x3pad", - /* VKD3DSIH_TEXM3x3SPEC */ "texm3x3spec", - /* VKD3DSIH_TEXM3x3TEX */ "texm3x3tex", - /* VKD3DSIH_TEXM3x3VSPEC */ "texm3x3vspec", - /* VKD3DSIH_TEXREG2AR */ "texreg2ar", - /* VKD3DSIH_TEXREG2GB */ "texreg2gb", - /* VKD3DSIH_TEXREG2RGB */ "texreg2rgb", /* VKD3DSIH_UBFE */ "ubfe", /* VKD3DSIH_UDIV */ "udiv", /* VKD3DSIH_UGE */ "uge", @@ -383,22 +339,6 @@ static int shader_addline(struct vkd3d_string_buffer *buffer, const char *format } } -/* Convert floating point offset relative to a register file to an absolute - * offset for float constants. */ -static unsigned int shader_get_float_offset(enum vkd3d_shader_register_type register_type, UINT register_idx) -{ - switch (register_type) - { - case VKD3DSPR_CONST: return register_idx; - case VKD3DSPR_CONST2: return 2048 + register_idx; - case VKD3DSPR_CONST3: return 4096 + register_idx; - case VKD3DSPR_CONST4: return 6144 + register_idx; - default: - FIXME("Unsupported register type: %u.\n", register_type); - return register_idx; - } -} - static void shader_dump_global_flags(struct vkd3d_string_buffer *buffer, DWORD global_flags) { unsigned int i; @@ -592,7 +532,7 @@ static void shader_dump_decl_usage(struct vkd3d_string_buffer *buffer, break; } } - else if (semantic->reg.reg.type == VKD3DSPR_RESOURCE || semantic->reg.reg.type == VKD3DSPR_UAV) + else // if (semantic->reg.reg.type == VKD3DSPR_RESOURCE || semantic->reg.reg.type == VKD3DSPR_UAV) { if (semantic->reg.reg.type == VKD3DSPR_RESOURCE) shader_addline(buffer, "_resource_"); @@ -673,80 +613,6 @@ static void shader_dump_decl_usage(struct vkd3d_string_buffer *buffer, break; } } - else - { - /* Pixel shaders 3.0 don't have usage semantics. */ - if (shader_version->major < 3 && shader_version->type == VKD3D_SHADER_TYPE_PIXEL) - return; - else - shader_addline(buffer, "_"); - - switch (semantic->usage) - { - case VKD3D_DECL_USAGE_POSITION: - shader_addline(buffer, "position%u", semantic->usage_idx); - break; - - case VKD3D_DECL_USAGE_BLEND_INDICES: - shader_addline(buffer, "blend"); - break; - - case VKD3D_DECL_USAGE_BLEND_WEIGHT: - shader_addline(buffer, "weight"); - break; - - case VKD3D_DECL_USAGE_NORMAL: - shader_addline(buffer, "normal%u", semantic->usage_idx); - break; - - case VKD3D_DECL_USAGE_PSIZE: - shader_addline(buffer, "psize"); - break; - - case VKD3D_DECL_USAGE_COLOR: - if (!semantic->usage_idx) - shader_addline(buffer, "color"); - else - shader_addline(buffer, "specular%u", (semantic->usage_idx - 1)); - break; - - case VKD3D_DECL_USAGE_TEXCOORD: - shader_addline(buffer, "texture%u", semantic->usage_idx); - break; - - case VKD3D_DECL_USAGE_TANGENT: - shader_addline(buffer, "tangent"); - break; - - case VKD3D_DECL_USAGE_BINORMAL: - shader_addline(buffer, "binormal"); - break; - - case VKD3D_DECL_USAGE_TESS_FACTOR: - shader_addline(buffer, "tessfactor"); - break; - - case VKD3D_DECL_USAGE_POSITIONT: - shader_addline(buffer, "positionT%u", semantic->usage_idx); - break; - - case VKD3D_DECL_USAGE_FOG: - shader_addline(buffer, "fog"); - break; - - case VKD3D_DECL_USAGE_DEPTH: - shader_addline(buffer, "depth"); - break; - - case VKD3D_DECL_USAGE_SAMPLE: - shader_addline(buffer, "sample"); - break; - - default: - shader_addline(buffer, "", semantic->usage); - FIXME("Unrecognised semantic usage %#x.\n", semantic->usage); - } - } } static void shader_dump_src_param(struct vkd3d_string_buffer *buffer, @@ -755,8 +621,6 @@ static void shader_dump_src_param(struct vkd3d_string_buffer *buffer, static void shader_dump_register(struct vkd3d_string_buffer *buffer, const struct vkd3d_shader_register *reg, const struct vkd3d_shader_version *shader_version) { - static const char * const rastout_reg_names[] = {"oPos", "oFog", "oPts"}; - static const char * const misctype_reg_names[] = {"vPos", "vFace"}; unsigned int offset = reg->idx[0].offset; switch (reg->type) @@ -769,22 +633,6 @@ static void shader_dump_register(struct vkd3d_string_buffer *buffer, shader_addline(buffer, "v"); break; - case VKD3DSPR_CONST: - case VKD3DSPR_CONST2: - case VKD3DSPR_CONST3: - case VKD3DSPR_CONST4: - shader_addline(buffer, "c"); - offset = shader_get_float_offset(reg->type, offset); - break; - - case VKD3DSPR_TEXTURE: /* vs: case VKD3DSPR_ADDR */ - shader_addline(buffer, "%c", shader_version->type == VKD3D_SHADER_TYPE_PIXEL ? 't' : 'a'); - break; - - case VKD3DSPR_RASTOUT: - shader_addline(buffer, "%s", rastout_reg_names[offset]); - break; - case VKD3DSPR_COLOROUT: shader_addline(buffer, "oC"); break; @@ -801,55 +649,14 @@ static void shader_dump_register(struct vkd3d_string_buffer *buffer, shader_addline(buffer, "oDepthLE"); break; - case VKD3DSPR_ATTROUT: - shader_addline(buffer, "oD"); - break; - - case VKD3DSPR_TEXCRDOUT: - /* Vertex shaders >= 3.0 use general purpose output registers - * (VKD3DSPR_OUTPUT), which can include an address token. */ - if (shader_version->major >= 3) - shader_addline(buffer, "o"); - else - shader_addline(buffer, "oT"); - break; - - case VKD3DSPR_CONSTINT: - shader_addline(buffer, "i"); - break; - - case VKD3DSPR_CONSTBOOL: - shader_addline(buffer, "b"); - break; - - case VKD3DSPR_LABEL: - shader_addline(buffer, "l"); - break; - - case VKD3DSPR_LOOP: - shader_addline(buffer, "aL"); + case VKD3DSPR_OUTPUT: + shader_addline(buffer, "o"); break; case VKD3DSPR_SAMPLER: shader_addline(buffer, "s"); break; - case VKD3DSPR_MISCTYPE: - if (offset > 1) - { - FIXME("Unhandled misctype register %u.\n", offset); - shader_addline(buffer, "", offset); - } - else - { - shader_addline(buffer, "%s", misctype_reg_names[offset]); - } - break; - - case VKD3DSPR_PREDICATE: - shader_addline(buffer, "p"); - break; - case VKD3DSPR_IMMCONST: shader_addline(buffer, "l"); break; @@ -1020,9 +827,7 @@ static void shader_dump_register(struct vkd3d_string_buffer *buffer, } shader_addline(buffer, ")"); } - else if (reg->type != VKD3DSPR_RASTOUT - && reg->type != VKD3DSPR_MISCTYPE - && reg->type != VKD3DSPR_NULL) + else if (reg->type != VKD3DSPR_NULL) { if (offset != ~0u) { @@ -1091,16 +896,8 @@ static void shader_dump_src_param(struct vkd3d_string_buffer *buffer, enum vkd3d_shader_src_modifier src_modifier = param->modifiers; DWORD swizzle = param->swizzle; - if (src_modifier == VKD3DSPSM_NEG - || src_modifier == VKD3DSPSM_BIASNEG - || src_modifier == VKD3DSPSM_SIGNNEG - || src_modifier == VKD3DSPSM_X2NEG - || src_modifier == VKD3DSPSM_ABSNEG) + if (src_modifier == VKD3DSPSM_NEG || src_modifier == VKD3DSPSM_ABSNEG) shader_addline(buffer, "-"); - else if (src_modifier == VKD3DSPSM_COMP) - shader_addline(buffer, "1-"); - else if (src_modifier == VKD3DSPSM_NOT) - shader_addline(buffer, "!"); if (src_modifier == VKD3DSPSM_ABS || src_modifier == VKD3DSPSM_ABSNEG) shader_addline(buffer, "abs("); @@ -1111,16 +908,6 @@ static void shader_dump_src_param(struct vkd3d_string_buffer *buffer, { case VKD3DSPSM_NONE: break; case VKD3DSPSM_NEG: break; - case VKD3DSPSM_NOT: break; - case VKD3DSPSM_BIAS: shader_addline(buffer, "_bias"); break; - case VKD3DSPSM_BIASNEG: shader_addline(buffer, "_bias"); break; - case VKD3DSPSM_SIGN: shader_addline(buffer, "_bx2"); break; - case VKD3DSPSM_SIGNNEG: shader_addline(buffer, "_bx2"); break; - case VKD3DSPSM_COMP: break; - case VKD3DSPSM_X2: shader_addline(buffer, "_x2"); break; - case VKD3DSPSM_X2NEG: shader_addline(buffer, "_x2"); break; - case VKD3DSPSM_DZ: shader_addline(buffer, "_dz"); break; - case VKD3DSPSM_DW: shader_addline(buffer, "_dw"); break; case VKD3DSPSM_ABSNEG: shader_addline(buffer, ")"); break; case VKD3DSPSM_ABS: shader_addline(buffer, ")"); break; default: shader_addline(buffer, "_unknown_modifier(%#x)", src_modifier); @@ -1153,23 +940,9 @@ static void shader_dump_ins_modifiers(struct vkd3d_string_buffer *buffer, { DWORD mmask = dst->modifiers; - switch (dst->shift) - { - case 0: break; - case 13: shader_addline(buffer, "_d8"); break; - case 14: shader_addline(buffer, "_d4"); break; - case 15: shader_addline(buffer, "_d2"); break; - case 1: shader_addline(buffer, "_x2"); break; - case 2: shader_addline(buffer, "_x4"); break; - case 3: shader_addline(buffer, "_x8"); break; - default: shader_addline(buffer, "_unhandled_shift(%d)", dst->shift); break; - } - if (mmask & VKD3DSPDM_SATURATE) shader_addline(buffer, "_sat"); - if (mmask & VKD3DSPDM_PARTIALPRECISION) shader_addline(buffer, "_pp"); - if (mmask & VKD3DSPDM_MSAMPCENTROID) shader_addline(buffer, "_centroid"); - mmask &= ~(VKD3DSPDM_SATURATE | VKD3DSPDM_PARTIALPRECISION | VKD3DSPDM_MSAMPCENTROID); + mmask &= ~(VKD3DSPDM_SATURATE); if (mmask) FIXME("Unrecognised modifier %#x.\n", mmask); } @@ -1335,11 +1108,6 @@ static void shader_dump_instruction_flags(struct vkd3d_string_buffer *buffer, shader_dump_sync_flags(buffer, ins->flags); break; - case VKD3DSIH_TEX: - if (shader_version->major >= 2 && (ins->flags & VKD3DSI_TEXLD_PROJECT)) - shader_addline(buffer, "p"); - break; - default: shader_dump_precise_flags(buffer, ins->flags); break; @@ -1552,24 +1320,6 @@ static void shader_dump_instruction(struct vkd3d_string_buffer *buffer, shader_dump_register_space(buffer, ins->declaration.structured_resource.register_space, shader_version); break; - case VKD3DSIH_DEF: - shader_addline(buffer, "def c%u = %.8e, %.8e, %.8e, %.8e", - shader_get_float_offset(ins->dst[0].reg.type, ins->dst[0].reg.idx[0].offset), - ins->src[0].reg.immconst_float[0], ins->src[0].reg.immconst_float[1], - ins->src[0].reg.immconst_float[2], ins->src[0].reg.immconst_float[3]); - break; - - case VKD3DSIH_DEFI: - shader_addline(buffer, "defi i%u = %d, %d, %d, %d", ins->dst[0].reg.idx[0].offset, - ins->src[0].reg.immconst_uint[0], ins->src[0].reg.immconst_uint[1], - ins->src[0].reg.immconst_uint[2], ins->src[0].reg.immconst_uint[3]); - break; - - case VKD3DSIH_DEFB: - shader_addline(buffer, "defb b%u = %s", - ins->dst[0].reg.idx[0].offset, ins->src[0].reg.immconst_uint[0] ? "true" : "false"); - break; - default: if (ins->predicate) { diff --git a/libs/vkd3d-shader/vkd3d_shader_private.h b/libs/vkd3d-shader/vkd3d_shader_private.h index 39f1301e..52c6d92b 100644 --- a/libs/vkd3d-shader/vkd3d_shader_private.h +++ b/libs/vkd3d-shader/vkd3d_shader_private.h @@ -60,7 +60,6 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER { - VKD3DSIH_ABS, VKD3DSIH_ADD, VKD3DSIH_AND, VKD3DSIH_ATOMIC_AND, @@ -83,12 +82,9 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_CALLNZ, VKD3DSIH_CASE, VKD3DSIH_CHECK_ACCESS_FULLY_MAPPED, - VKD3DSIH_CMP, - VKD3DSIH_CND, VKD3DSIH_CONTINUE, VKD3DSIH_CONTINUEP, VKD3DSIH_COUNTBITS, - VKD3DSIH_CRS, VKD3DSIH_CUT, VKD3DSIH_CUT_STREAM, VKD3DSIH_DCL, @@ -131,16 +127,11 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_DCL_UAV_STRUCTURED, VKD3DSIH_DCL_UAV_TYPED, VKD3DSIH_DCL_VERTICES_OUT, - VKD3DSIH_DEF, VKD3DSIH_DEFAULT, - VKD3DSIH_DEFB, - VKD3DSIH_DEFI, VKD3DSIH_DIV, VKD3DSIH_DP2, - VKD3DSIH_DP2ADD, VKD3DSIH_DP3, VKD3DSIH_DP4, - VKD3DSIH_DST, VKD3DSIH_DSX, VKD3DSIH_DSX_COARSE, VKD3DSIH_DSX_FINE, @@ -152,13 +143,11 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_EMIT_STREAM, VKD3DSIH_ENDIF, VKD3DSIH_ENDLOOP, - VKD3DSIH_ENDREP, VKD3DSIH_ENDSWITCH, VKD3DSIH_EQ, VKD3DSIH_EVAL_CENTROID, VKD3DSIH_EVAL_SAMPLE_INDEX, VKD3DSIH_EXP, - VKD3DSIH_EXPP, VKD3DSIH_F16TOF32, VKD3DSIH_F32TOF16, VKD3DSIH_FCALL, @@ -220,34 +209,23 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_LD_STRUCTURED_FEEDBACK, VKD3DSIH_LD_UAV_TYPED, VKD3DSIH_LD_UAV_TYPED_FEEDBACK, - VKD3DSIH_LIT, VKD3DSIH_LOD, VKD3DSIH_LOG, - VKD3DSIH_LOGP, VKD3DSIH_LOOP, VKD3DSIH_LRP, VKD3DSIH_LT, - VKD3DSIH_M3x2, - VKD3DSIH_M3x3, - VKD3DSIH_M3x4, - VKD3DSIH_M4x3, - VKD3DSIH_M4x4, VKD3DSIH_MAD, VKD3DSIH_MAX, VKD3DSIH_MIN, VKD3DSIH_MOV, - VKD3DSIH_MOVA, VKD3DSIH_MOVC, VKD3DSIH_MUL, VKD3DSIH_NE, VKD3DSIH_NOP, VKD3DSIH_NOT, - VKD3DSIH_NRM, VKD3DSIH_OR, - VKD3DSIH_PHASE, VKD3DSIH_POW, VKD3DSIH_RCP, - VKD3DSIH_REP, VKD3DSIH_RESINFO, VKD3DSIH_RET, VKD3DSIH_RETP, @@ -270,7 +248,6 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_SAMPLE_LOD, VKD3DSIH_SAMPLE_LOD_FEEDBACK, VKD3DSIH_SAMPLE_POS, - VKD3DSIH_SETP, VKD3DSIH_SGE, VKD3DSIH_SGN, VKD3DSIH_SINCOS, @@ -283,28 +260,7 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER VKD3DSIH_SWAPC, VKD3DSIH_SWITCH, VKD3DSIH_SYNC, - VKD3DSIH_TEX, - VKD3DSIH_TEXBEM, - VKD3DSIH_TEXBEML, - VKD3DSIH_TEXCOORD, - VKD3DSIH_TEXDEPTH, - VKD3DSIH_TEXDP3, - VKD3DSIH_TEXDP3TEX, VKD3DSIH_TEXKILL, - VKD3DSIH_TEXLDD, - VKD3DSIH_TEXLDL, - VKD3DSIH_TEXM3x2DEPTH, - VKD3DSIH_TEXM3x2PAD, - VKD3DSIH_TEXM3x2TEX, - VKD3DSIH_TEXM3x3, - VKD3DSIH_TEXM3x3DIFF, - VKD3DSIH_TEXM3x3PAD, - VKD3DSIH_TEXM3x3SPEC, - VKD3DSIH_TEXM3x3TEX, - VKD3DSIH_TEXM3x3VSPEC, - VKD3DSIH_TEXREG2AR, - VKD3DSIH_TEXREG2GB, - VKD3DSIH_TEXREG2RGB, VKD3DSIH_UBFE, VKD3DSIH_UDIV, VKD3DSIH_UGE, @@ -321,28 +277,12 @@ enum VKD3D_SHADER_INSTRUCTION_HANDLER enum vkd3d_shader_register_type { - VKD3DSPR_TEMP = 0, - VKD3DSPR_INPUT = 1, - VKD3DSPR_CONST = 2, - VKD3DSPR_ADDR = 3, - VKD3DSPR_TEXTURE = 3, - VKD3DSPR_RASTOUT = 4, - VKD3DSPR_ATTROUT = 5, - VKD3DSPR_TEXCRDOUT = 6, - VKD3DSPR_OUTPUT = 6, - VKD3DSPR_CONSTINT = 7, - VKD3DSPR_COLOROUT = 8, - VKD3DSPR_DEPTHOUT = 9, - VKD3DSPR_SAMPLER = 10, - VKD3DSPR_CONST2 = 11, - VKD3DSPR_CONST3 = 12, - VKD3DSPR_CONST4 = 13, - VKD3DSPR_CONSTBOOL = 14, - VKD3DSPR_LOOP = 15, - VKD3DSPR_TEMPFLOAT16 = 16, - VKD3DSPR_MISCTYPE = 17, - VKD3DSPR_LABEL = 18, - VKD3DSPR_PREDICATE = 19, + VKD3DSPR_TEMP, + VKD3DSPR_INPUT, + VKD3DSPR_OUTPUT, + VKD3DSPR_COLOROUT, + VKD3DSPR_DEPTHOUT, + VKD3DSPR_SAMPLER, VKD3DSPR_IMMCONST, VKD3DSPR_CONSTBUFFER, VKD3DSPR_IMMCONSTBUFFER, @@ -421,18 +361,8 @@ enum vkd3d_shader_src_modifier { VKD3DSPSM_NONE = 0, VKD3DSPSM_NEG = 1, - VKD3DSPSM_BIAS = 2, - VKD3DSPSM_BIASNEG = 3, - VKD3DSPSM_SIGN = 4, - VKD3DSPSM_SIGNNEG = 5, - VKD3DSPSM_COMP = 6, - VKD3DSPSM_X2 = 7, - VKD3DSPSM_X2NEG = 8, - VKD3DSPSM_DZ = 9, - VKD3DSPSM_DW = 10, - VKD3DSPSM_ABS = 11, - VKD3DSPSM_ABSNEG = 12, - VKD3DSPSM_NOT = 13, + VKD3DSPSM_ABS = 2, + VKD3DSPSM_ABSNEG = 3 }; #define VKD3DSP_WRITEMASK_0 0x1u /* .x r */ @@ -444,9 +374,7 @@ enum vkd3d_shader_src_modifier enum vkd3d_shader_dst_modifier { VKD3DSPDM_NONE = 0, - VKD3DSPDM_SATURATE = 1, - VKD3DSPDM_PARTIALPRECISION = 2, - VKD3DSPDM_MSAMPCENTROID = 4, + VKD3DSPDM_SATURATE = 1 }; enum vkd3d_shader_interpolation_mode @@ -489,7 +417,6 @@ enum vkd3d_tessellator_domain }; #define VKD3DSI_NONE 0x0 -#define VKD3DSI_TEXLD_PROJECT 0x1 #define VKD3DSI_INDEXED_DYNAMIC 0x4 #define VKD3DSI_RESINFO_RCP_FLOAT 0x1 #define VKD3DSI_RESINFO_UINT 0x2 @@ -520,8 +447,6 @@ enum vkd3d_shader_conditional_op VKD3D_SHADER_CONDITIONAL_OP_Z = 1 }; -#define VKD3D_SM1_VS 0xfffeu -#define VKD3D_SM1_PS 0xffffu #define VKD3D_SM4_PS 0x0000u #define VKD3D_SM4_VS 0x0001u #define VKD3D_SM4_GS 0x0002u @@ -529,10 +454,6 @@ enum vkd3d_shader_conditional_op #define VKD3D_SM5_DS 0x0004u #define VKD3D_SM5_CS 0x0005u -/* Shader version tokens, and shader end tokens */ -#define VKD3DPS_VERSION(major, minor) ((VKD3D_SM1_PS << 16) | ((major) << 8) | (minor)) -#define VKD3DVS_VERSION(major, minor) ((VKD3D_SM1_VS << 16) | ((major) << 8) | (minor)) - #define MAX_IMMEDIATE_CONSTANT_BUFFER_SIZE 4096 #define MAX_REG_OUTPUT 32 @@ -596,7 +517,6 @@ struct vkd3d_shader_dst_param struct vkd3d_shader_register reg; DWORD write_mask; DWORD modifiers; - DWORD shift; }; struct vkd3d_shader_src_param @@ -612,28 +532,8 @@ struct vkd3d_shader_index_range unsigned int register_count; }; -enum vkd3d_decl_usage -{ - VKD3D_DECL_USAGE_POSITION = 0, - VKD3D_DECL_USAGE_BLEND_WEIGHT = 1, - VKD3D_DECL_USAGE_BLEND_INDICES = 2, - VKD3D_DECL_USAGE_NORMAL = 3, - VKD3D_DECL_USAGE_PSIZE = 4, - VKD3D_DECL_USAGE_TEXCOORD = 5, - VKD3D_DECL_USAGE_TANGENT = 6, - VKD3D_DECL_USAGE_BINORMAL = 7, - VKD3D_DECL_USAGE_TESS_FACTOR = 8, - VKD3D_DECL_USAGE_POSITIONT = 9, - VKD3D_DECL_USAGE_COLOR = 10, - VKD3D_DECL_USAGE_FOG = 11, - VKD3D_DECL_USAGE_DEPTH = 12, - VKD3D_DECL_USAGE_SAMPLE = 13 -}; - struct vkd3d_shader_semantic { - enum vkd3d_decl_usage usage; - unsigned int usage_idx; enum vkd3d_shader_resource_type resource_type; enum vkd3d_data_type resource_data_type; struct vkd3d_shader_dst_param reg;