vkd3d-shader/ir: Pass a uint32_t write mask to vkd3d_write_mask_64_from_32().

This commit is contained in:
Henri Verbeet 2023-12-05 22:39:12 +01:00 committed by Alexandre Julliard
parent 713adaa56a
commit 3759186193
Notes: Alexandre Julliard 2023-12-13 23:23:35 +01:00
Approved-by: Alexandre Julliard (@julliard)
Merge-Request: https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/522
2 changed files with 3 additions and 3 deletions

View File

@ -2231,7 +2231,7 @@ static bool shader_sm4_read_dst_param(struct vkd3d_shader_sm4_parser *priv, cons
}
if (data_type == VKD3D_DATA_DOUBLE)
dst_param->write_mask = vkd3d_write_mask_64_from_32(dst_param->write_mask);
dst_param->write_mask = vsir_write_mask_64_from_32(dst_param->write_mask);
/* Some scalar registers are declared with no write mask in shader bytecode. */
if (!dst_param->write_mask && shader_sm4_is_scalar_register(&dst_param->reg))
dst_param->write_mask = VKD3DSP_WRITEMASK_0;

View File

@ -1544,9 +1544,9 @@ static inline unsigned int vkd3d_write_mask_from_component_count(unsigned int co
return (VKD3DSP_WRITEMASK_0 << component_count) - 1;
}
static inline unsigned int vkd3d_write_mask_64_from_32(DWORD write_mask32)
static inline uint32_t vsir_write_mask_64_from_32(uint32_t write_mask32)
{
unsigned int write_mask64 = write_mask32 | (write_mask32 >> 1);
uint32_t write_mask64 = write_mask32 | (write_mask32 >> 1);
return (write_mask64 & VKD3DSP_WRITEMASK_0) | ((write_mask64 & VKD3DSP_WRITEMASK_2) >> 1);
}