vkd3d-shader/ir: Check that DEPTHOUTLE registers have dimension SCALAR.

Also fix the DXIL parser to emit them accordingly.
This commit is contained in:
Giovanni Mascellani
2025-07-18 20:07:50 +02:00
committed by Henri Verbeet
parent 18ef9a4f9f
commit 834f762cb5
Notes: Henri Verbeet 2025-07-21 12:36:12 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1629
2 changed files with 2 additions and 4 deletions

View File

@@ -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;

View File

@@ -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;