From 22f84317c01b5b7008e23c17b18f676eef6ccc13 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Sat, 26 Jul 2025 13:22:36 +0200 Subject: [PATCH] vkd3d-shader/ir: Check that GSINSTID registers have dimension VEC4. I had set it to SCALAR in an earlier commit, but I hadn't noticed it failed validation. Also fix the HLSL compiler to emit them accordingly. Fixes: dfc18781cc46af636cc49c7cf0b1949589499df9 --- libs/vkd3d-shader/ir.c | 2 +- libs/vkd3d-shader/tpf.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index c3bcf9058..8e58ce581 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -9592,7 +9592,7 @@ static void vsir_validate_register(struct validation_context *ctx, [VKD3DSPR_LOCALTHREADINDEX] = {true, 0, VSIR_DIMENSION_VEC4}, [VKD3DSPR_COVERAGE] = {true, 0, VSIR_DIMENSION_VEC4}, [VKD3DSPR_SAMPLEMASK] = {true, 0, VSIR_DIMENSION_SCALAR}, - [VKD3DSPR_GSINSTID] = {true, 0, VSIR_DIMENSION_SCALAR}, + [VKD3DSPR_GSINSTID] = {true, 0, VSIR_DIMENSION_VEC4}, [VKD3DSPR_DEPTHOUTGE] = {true, 0, VSIR_DIMENSION_SCALAR}, [VKD3DSPR_DEPTHOUTLE] = {true, 0, VSIR_DIMENSION_SCALAR}, [VKD3DSPR_OUTSTENCILREF] = {true, 0, VSIR_DIMENSION_SCALAR}, diff --git a/libs/vkd3d-shader/tpf.c b/libs/vkd3d-shader/tpf.c index bdb2083e0..ed19faf94 100644 --- a/libs/vkd3d-shader/tpf.c +++ b/libs/vkd3d-shader/tpf.c @@ -2237,7 +2237,6 @@ bool shader_sm4_is_scalar_register(const struct vkd3d_shader_register *reg) case VKD3DSPR_DEPTHOUT: case VKD3DSPR_DEPTHOUTGE: case VKD3DSPR_DEPTHOUTLE: - case VKD3DSPR_GSINSTID: case VKD3DSPR_OUTPOINTID: case VKD3DSPR_PRIMID: case VKD3DSPR_SAMPLEMASK: