[PATCH vkd3d] vkd3d-shader: Handle VKD3DSUF_GLOBALLY_COHERENT in vkd3d_dxbc_compiler_emit_dcl_resource_raw().

Henri Verbeet hverbeet at gmail.com
Thu Jan 27 09:42:03 CST 2022


On Tue, 25 Jan 2022 at 13:47, Andrey Gusev <andrey.goosev at gmail.com> wrote:
> diff --git a/libs/vkd3d-shader/spirv.c b/libs/vkd3d-shader/spirv.c
> index 1ffce6a..a361cc7 100644
> --- a/libs/vkd3d-shader/spirv.c
> +++ b/libs/vkd3d-shader/spirv.c
> @@ -6091,8 +6091,16 @@ static void vkd3d_dxbc_compiler_emit_dcl_resource_raw(struct vkd3d_dxbc_compiler
>      const struct vkd3d_shader_raw_resource *resource = &instruction->declaration.raw_resource;
>      uint32_t flags = instruction->flags;
>
> +    if (flags & VKD3DSUF_GLOBALLY_COHERENT)
> +    {
> +        flags &= ~VKD3DSUF_GLOBALLY_COHERENT;
> +    }
>      /* We don't distinguish between APPEND and COUNTER UAVs. */
> -    flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER;
> +    if (flags & VKD3DSUF_ORDER_PRESERVING_COUNTER)
> +    {
> +        flags &= ~VKD3DSUF_ORDER_PRESERVING_COUNTER;
> +    }
> +
I don't think we can just ignore VKD3DSUF_GLOBALLY_COHERENT. This is
probably supposed to map the the "scope" parameter in
vkd3d_dxbc_compiler_emit_atomic_instruction(), and possibly others.



More information about the wine-devel mailing list