vkd3d-shader/hlsl: Preserve doubles in intrinsic_determinant().

This commit is contained in:
Elizabeth Figura 2024-09-04 22:48:45 -05:00 committed by Henri Verbeet
parent e146cc4c8e
commit 1aa857735f
Notes: Henri Verbeet 2024-09-12 18:57:51 +02:00
Approved-by: Giovanni Mascellani (@giomasce)
Approved-by: Henri Verbeet (@hverbeet)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/1064

View File

@ -3735,15 +3735,14 @@ static bool intrinsic_determinant(struct hlsl_ctx *ctx,
return false; return false;
} }
dim = min(type->dimx, type->dimy);
if (dim == 1)
{
if (!(arg = intrinsic_float_convert_arg(ctx, params, arg, loc))) if (!(arg = intrinsic_float_convert_arg(ctx, params, arg, loc)))
return false; return false;
return hlsl_add_load_component(ctx, params->instrs, arg, 0, loc);
}
typename = type->e.numeric.type == HLSL_TYPE_HALF ? "half" : "float"; dim = min(type->dimx, type->dimy);
if (dim == 1)
return hlsl_add_load_component(ctx, params->instrs, arg, 0, loc);
typename = hlsl_get_scalar_type(ctx, arg->data_type->e.numeric.type)->name;
template = templates[dim]; template = templates[dim];
switch (dim) switch (dim)