From 18ef9a4f9f780352e85a108f57c375458dbd4001 Mon Sep 17 00:00:00 2001 From: Giovanni Mascellani Date: Fri, 18 Jul 2025 20:06:15 +0200 Subject: [PATCH] vkd3d-shader/ir: Check that DEPTHOUTGE 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 1e7f63757..56d431fda 100644 --- a/libs/vkd3d-shader/dxil.c +++ b/libs/vkd3d-shader/dxil.c @@ -4109,6 +4109,7 @@ static enum vkd3d_shader_register_type register_type_from_dxil_semantic_kind( *dimension = VSIR_DIMENSION_SCALAR; return VKD3DSPR_DEPTHOUT; case VKD3D_SHADER_SV_DEPTH_GREATER_EQUAL: + *dimension = VSIR_DIMENSION_SCALAR; return VKD3DSPR_DEPTHOUTGE; case VKD3D_SHADER_SV_DEPTH_LESS_EQUAL: return VKD3DSPR_DEPTHOUTLE; diff --git a/libs/vkd3d-shader/ir.c b/libs/vkd3d-shader/ir.c index 568f8dd5c..7e78ff3f2 100644 --- a/libs/vkd3d-shader/ir.c +++ b/libs/vkd3d-shader/ir.c @@ -9545,6 +9545,7 @@ static void vsir_validate_register(struct validation_context *ctx, [VKD3DSPR_DEPTHOUT] = {true, 0, VSIR_DIMENSION_SCALAR}, [VKD3DSPR_LOCALTHREADINDEX] = {true, 0, VSIR_DIMENSION_VEC4}, [VKD3DSPR_COVERAGE] = {true, 0, VSIR_DIMENSION_VEC4}, + [VKD3DSPR_DEPTHOUTGE] = {true, 0, VSIR_DIMENSION_SCALAR}, }; const struct register_validation_data *validation_data; @@ -9701,10 +9702,6 @@ static void vsir_validate_register(struct validation_context *ctx, vsir_validate_register_without_indices(ctx, reg); break; - case VKD3DSPR_DEPTHOUTGE: - vsir_validate_register_without_indices(ctx, reg); - break; - case VKD3DSPR_DEPTHOUTLE: vsir_validate_register_without_indices(ctx, reg); break;