[PATCH vkd3d 5/5] vkd3d-shader: Implement DEQ instruction.

Henri Verbeet hverbeet at gmail.com
Wed Jul 14 02:38:36 CDT 2021


On Wed, 14 Jul 2021 at 08:38, Conor McCarthy <cmccarthy at codeweavers.com> wrote:
> July 14, 2021 12:25 AM, "Henri Verbeet" <hverbeet at gmail.com> wrote:
> >> 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;
> >
> > Does this need a corresponding change in trace.c? Also, should we do
> > the same for swizzles?
>
> It does need trace changes, but these lines are actually not needed for the DEQ instruction so I'll leave them out of v2.
>
Right, deq only has double source parameters.

> Swizzle is always expressed in 32-bit chunks so no changes are required there.

Sure, but I'm wondering if for consistency it would perhaps be a good
thing to express swizzles in terms of the register's data type in our
internal IR, like we do for write masks.



More information about the wine-devel mailing list