Giovanni Mascellani : vkd3d-shader/ir: Validate source swizzles depending on the dimension.
Module: vkd3d Branch: master Commit: 15e7711786e9f83e7087200bb9e08795e21b4431 URL: https://gitlab.winehq.org/wine/vkd3d/-/commit/15e7711786e9f83e7087200bb9e087... Author: Giovanni Mascellani <gmascellani(a)codeweavers.com> Date: Thu Dec 21 15:58:46 2023 +0100 vkd3d-shader/ir: Validate source swizzles depending on the dimension. --- libs/vkd3d-shader/ir.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index a21af2fe..35a95c2b 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -1679,6 +1679,10 @@ static void vsir_validate_src_param(struct validation_context *ctx, validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SWIZZLE, "Source has invalid swizzle %#x.", src->swizzle); + if (src->reg.dimension != VSIR_DIMENSION_VEC4 && src->swizzle != 0) + validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_SWIZZLE, "Source of dimension %u has invalid swizzle %#x.", + src->reg.dimension, src->swizzle); + if (src->modifiers >= VKD3DSPSM_COUNT) validator_error(ctx, VKD3D_SHADER_ERROR_VSIR_INVALID_MODIFIERS, "Source has invalid modifiers %#x.", src->modifiers);
participants (1)
-
Alexandre Julliard