vkd3d-shader: Implement DMOV instruction.

Signed-off-by: Conor McCarthy <cmccarthy@codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Conor McCarthy
2021-07-28 00:26:10 +10:00
committed by Alexandre Julliard
parent 82237796ad
commit 4e63842a73
5 changed files with 23 additions and 4 deletions

View File

@@ -193,6 +193,7 @@ enum vkd3d_shader_opcode
VKD3DSIH_DEFI,
VKD3DSIH_DEQ,
VKD3DSIH_DIV,
VKD3DSIH_DMOV,
VKD3DSIH_DP2,
VKD3DSIH_DP2ADD,
VKD3DSIH_DP3,
@@ -1064,6 +1065,12 @@ 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)
{
unsigned int write_mask64 = write_mask32 | (write_mask32 >> 1);
return (write_mask64 & VKD3DSP_WRITEMASK_0) | ((write_mask64 & VKD3DSP_WRITEMASK_2) >> 1);
}
static inline unsigned int vkd3d_write_mask_32_from_64(unsigned int write_mask64)
{
unsigned int write_mask32 = (write_mask64 | (write_mask64 << 1))