mirror of
https://gitlab.winehq.org/wine/vkd3d.git
synced 2024-11-21 16:46:41 -08: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:
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:
|
||||
write_mask = (src->reg.type == VKD3DSPR_IMMCONST64 && !data_type_is_64_bit(dst->reg.data_type))
|
||||
? vsir_write_mask_64_from_32(dst->write_mask) : dst->write_mask;
|
||||
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);
|
||||
if (dst->reg.data_type != src->reg.data_type)
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user