vkd3d-shader/fx: Accept int(0) as well as uint(0) constant value for object-type states.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
This commit is contained in:
Nikolay Sivov 2025-03-26 20:58:42 +01:00 committed by Henri Verbeet
parent 4ff14104b0
commit 2540081988
Notes: Henri Verbeet 2025-04-02 19:44:41 +02:00
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1445
2 changed files with 16 additions and 1 deletions

View File

@ -2762,7 +2762,8 @@ static void resolve_fx_4_state_block_values(struct hlsl_ir_var *var, struct hlsl
struct hlsl_ir_constant *c = hlsl_ir_constant(node); struct hlsl_ir_constant *c = hlsl_ir_constant(node);
struct hlsl_type *data_type = c->node.data_type; struct hlsl_type *data_type = c->node.data_type;
if (data_type->class == HLSL_CLASS_SCALAR && data_type->e.numeric.type == HLSL_TYPE_UINT) if (data_type->class == HLSL_CLASS_SCALAR
&& (data_type->e.numeric.type == HLSL_TYPE_INT || data_type->e.numeric.type == HLSL_TYPE_UINT))
{ {
if (c->value.u[0].u != 0) if (c->value.u[0].u != 0)
hlsl_error(ctx, &ctx->location, VKD3D_SHADER_ERROR_HLSL_INVALID_SYNTAX, hlsl_error(ctx, &ctx->location, VKD3D_SHADER_ERROR_HLSL_INVALID_SYNTAX,

View File

@ -39,5 +39,19 @@ technique11
SetBlendState(NULL, float4(5, 6, 7, 8), 0xf0); SetBlendState(NULL, float4(5, 6, 7, 8), 0xf0);
SetVertexShader(NULL); SetVertexShader(NULL);
SetPixelShader(NULL); SetPixelShader(NULL);
SetGeometryShader(NULL);
}
pass
{
SetDepthStencilState(1-1, 4);
SetRasterizerState(1-1);
SetHullShader(1-1);
SetComputeShader(1-1);
SetDomainShader(1-1);
OMSetRenderTargets(1-1, 1-1);
SetBlendState(1-1, float4(5, 6, 7, 8), 0xf0);
SetVertexShader(1-1);
SetPixelShader(1-1);
SetGeometryShader(0u);
} }
} }