Signed-off-by: Andrey Gusev andrey.goosev@gmail.com --- libs/vkd3d-shader/spirv.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-)
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; + } + if (flags) FIXME("Unhandled UAV flags %#x.\n", flags);
On Tue, 25 Jan 2022 at 13:47, Andrey Gusev andrey.goosev@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.