From 834f762cb5f542e4dff50805a1c27344559023c1 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Fri, 18 Jul 2025 20:07:50 +0200 Subject: [PATCH] vkd3d-shader/ir: Check that DEPTHOUTLE registers have dimension SCALAR. Also fix the DXIL parser to emit them accordingly. --- libs/vkd3d-shader/dxil.c | 1 + libs/vkd3d-shader/ir.c | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/libs/vkd3d-shader/dxil.c b/libs/vkd3d-shader/dxil.c index 56d431fda..f8f0d2543 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -4112,6 +4112,7 @@ static enum vkd3d_shader_register_type register_type_from_dxil_semantic_kind( *dimension = VSIR_DIMENSION_SCALAR; return VKD3DSPR_DEPTHOUTGE; case VKD3D_SHADER_SV_DEPTH_LESS_EQUAL: + *dimension = VSIR_DIMENSION_SCALAR; return VKD3DSPR_DEPTHOUTLE; default: return VKD3DSPR_INVALID; diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 7e78ff3f2..1e0d22122 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -9546,6 +9546,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_DEPTHOUTGE] = {true, 0, VSIR_DIMENSION_SCALAR}, + [VKD3DSPR_DEPTHOUTLE] = {true, 0, VSIR_DIMENSION_SCALAR}, }; const struct register_validation_data *validation_data; @@ -9702,10 +9703,6 @@ static void vsir_validate_register(struct validation_context *ctx, vsir_validate_register_without_indices(ctx, reg); break; - case VKD3DSPR_DEPTHOUTLE: - vsir_validate_register_without_indices(ctx, reg); - break; - case VKD3DSPR_OUTSTENCILREF: vsir_validate_register_without_indices(ctx, reg); break;