vkd3d-shader/hlsl: Use hlsl_error() instead of hlsl_fixme() for ambiguous function calls.

This changes the return code, and some tests start passing as a result.
This commit is contained in:
Henri Verbeet
2024-12-02 15:18:15 +01:00
parent 1c93d706d7
commit d0e4331640
Notes: Henri Verbeet 2024-12-03 14:56:39 +01:00
Approved-by: Elizabeth Figura (@zfigura)
Approved-by: Francisco Casas (@fcasas)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1290
3 changed files with 12 additions and 11 deletions

View File

@@ -3026,7 +3026,7 @@ static struct hlsl_ir_function_decl *find_function_call(struct hlsl_ctx *ctx,
{
if (compatible_match)
{
hlsl_fixme(ctx, loc, "Prioritize between multiple compatible function overloads.");
hlsl_error(ctx, loc, VKD3D_SHADER_ERROR_HLSL_AMBIGUOUS_CALL, "Ambiguous function call.");
break;
}
compatible_match = decl;

View File

@@ -163,6 +163,7 @@ enum vkd3d_shader_error
VKD3D_SHADER_ERROR_HLSL_INVALID_OUTPUT_PRIMITIVE = 5037,
VKD3D_SHADER_ERROR_HLSL_INVALID_PARTITIONING = 5038,
VKD3D_SHADER_ERROR_HLSL_MISPLACED_SAMPLER_STATE = 5039,
VKD3D_SHADER_ERROR_HLSL_AMBIGUOUS_CALL = 5040,
VKD3D_SHADER_WARNING_HLSL_IMPLICIT_TRUNCATION = 5300,
VKD3D_SHADER_WARNING_HLSL_DIVISION_BY_ZERO = 5301,