mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2025-09-12 18:50:22 -07:00
vkd3d-shader/spirv: Handle uint2 to double bitcast in spirv_compiler_emit_mov().
Necessary for MakeDouble if the dst is SSA.
This commit is contained in:
committed by
Alexandre Julliard
parent
c8eb7e1c81
commit
1c61776c18
Notes:
Alexandre Julliard
2024-04-09 15:44:53 -05:00
Approved-by: Giovanni Mascellani (@giomasce) Approved-by: Henri Verbeet (@hverbeet) Approved-by: Alexandre Julliard (@julliard) Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/749
@@ -7283,8 +7283,12 @@ static void spirv_compiler_emit_mov(struct spirv_compiler *compiler,
|
|||||||
}
|
}
|
||||||
|
|
||||||
general_implementation:
|
general_implementation:
|
||||||
write_mask = (src->reg.type == VKD3DSPR_IMMCONST64 && !data_type_is_64_bit(dst->reg.data_type))
|
write_mask = dst->write_mask;
|
||||||
? vsir_write_mask_64_from_32(dst->write_mask) : dst->write_mask;
|
if (src->reg.type == VKD3DSPR_IMMCONST64 && !data_type_is_64_bit(dst->reg.data_type))
|
||||||
|
write_mask = vsir_write_mask_64_from_32(write_mask);
|
||||||
|
else if (!data_type_is_64_bit(src->reg.data_type) && data_type_is_64_bit(dst->reg.data_type))
|
||||||
|
write_mask = vsir_write_mask_32_from_64(write_mask);
|
||||||
|
|
||||||
val_id = spirv_compiler_emit_load_src(compiler, src, write_mask);
|
val_id = spirv_compiler_emit_load_src(compiler, src, write_mask);
|
||||||
if (dst->reg.data_type != src->reg.data_type)
|
if (dst->reg.data_type != src->reg.data_type)
|
||||||
{
|
{
|
||||||
|
Reference in New Issue
Block a user