From 320bdd6759d58b96e50254076170f2c0d5009b08 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Tue, 23 Sep 2025 11:46:31 +0200 Subject: [PATCH] vkd3d-shader/ir: Validate IDIV instructions. --- libs/vkd3d-shader/dxil.c | 2 +- libs/vkd3d-shader/ir.c | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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},