[PATCH vkd3d 2/2] vkd3d-shader: Implement DMOV instruction.

Henri Verbeet hverbeet at gmail.com
Mon Jul 26 10:16:55 CDT 2021


On Fri, 23 Jul 2021 at 07:32, Conor McCarthy <cmccarthy at codeweavers.com> wrote:
> @@ -1804,6 +1806,8 @@ static bool shader_sm4_read_dst_param(struct vkd3d_sm4_data *priv, const DWORD *
>      }
>
>      dst_param->write_mask = (token & VKD3D_SM4_WRITEMASK_MASK) >> VKD3D_SM4_WRITEMASK_SHIFT;
> +    if (data_type == VKD3D_DATA_DOUBLE)
> +        dst_param->write_mask = vkd3d_write_mask_64_from_32(dst_param->write_mask);
>      /* 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;

Sure, but this would disassemble e.g. "dmov r0.xyzw, -cb0[0].zwxy"
(fxc /dumpbin) as "dmov r0.xy, -cb0[0].zwxy" (vkd3d-compiler -b
d3d-asm), unless we also add a corresponding change to
shader_dump_dst_param().



More information about the wine-devel mailing list