From bcaa1d50b08073f034dcdf903ba75c17736b30d8 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Mon, 9 Jun 2025 21:34:29 +0200 Subject: [PATCH] vkd3d-shader/ir: Validate data types for destination shifts. --- libs/vkd3d-shader/ir.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index ec8f5c0bc..24a922819 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -9656,12 +9656,17 @@ static void vsir_validate_dst_param(struct validation_context *ctx, switch (dst->shift) { case 0: + break; + case 1: case 2: case 3: case 13: case 14: case 15: + if (dst->reg.data_type != VKD3D_DATA_FLOAT) + validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_DATA_TYPE, + "Invalid data type %#x for destination with shift.", dst->reg.data_type); break; default: