diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index c7af58118..21142c8f6 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -4674,11 +4674,11 @@ static void sm6_parser_emit_binop(struct sm6_parser *sm6, const struct dxil_reco case VSIR_OP_ISHL: silence_warning = !(flags & ~(OB_NO_UNSIGNED_WRAP | OB_NO_SIGNED_WRAP)); break; + case VSIR_OP_IDIV: case VSIR_OP_ISHR: type_flags |= DXIL_TYPE_SIGNED; /* fall through */ case VSIR_OP_USHR: - case VSIR_OP_IDIV: case VSIR_OP_UDIV_SIMPLE: case VSIR_OP_IREM: case VSIR_OP_UREM: diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 13ea8a433..6920f34e7 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -12833,6 +12833,7 @@ static const struct vsir_validator_instruction_desc vsir_validator_instructions[ [VSIR_OP_HS_JOIN_PHASE] = {0, 0, vsir_validate_hull_shader_phase}, [VSIR_OP_HTAN] = {1, 1, vsir_validate_float_elementwise_operation}, [VSIR_OP_IADD] = {1, 2, vsir_validate_integer_elementwise_operation}, + [VSIR_OP_IDIV] = {1, 2, vsir_validate_signed_integer_elementwise_operation}, [VSIR_OP_IEQ] = {1, 2, vsir_validate_integer_comparison_operation}, [VSIR_OP_IF] = {0, 1, vsir_validate_if}, [VSIR_OP_IFC] = {0, 2, vsir_validate_ifc},