This conflicts with !304.
``` From b2800c80642369eddd7e65b52c3b7d4cb334ecee Mon Sep 17 00:00:00 2001 From: Conor McCarthy <cmccarthy(a)codeweavers.com> Date: Wed, 16 Aug 2023 13:31:49 +1000 Subject: [PATCH 1/5] vkd3d-shader/tpf: Fix extraction of the UAV declaration flags.
The flags start at bit 16 in the token, and bit 17 indicates an ROV. ```
So what's at bit 15 that breaks things? Also, technically this is making two separate changes. Should there be a corresponding change to shader_dump_uav_flags() as well?
```diff static void vkd3d_shader_scan_resource_declaration(struct vkd3d_shader_scan_context *context, - const struct vkd3d_shader_resource *resource, enum vkd3d_shader_resource_type resource_type, - enum vkd3d_shader_resource_data_type resource_data_type) + const struct vkd3d_shader_instruction *instruction, const struct vkd3d_shader_resource *resource, + enum vkd3d_shader_resource_type resource_type, enum vkd3d_shader_resource_data_type resource_data_type) { ```
Passing the entire instruction to vkd3d_shader_scan_resource_declaration() doesn't seem great to me; it seems to me that that means we're either passing too much information and could instead just pass e.g. the instruction flags, or that vkd3d_shader_scan_resource_declaration() isn't the right tool here, and the caller should instead call vkd3d_shader_scan_add_descriptor() itself.
```diff @@ -613,6 +613,7 @@ enum vkd3d_shader_sync_flags { VKD3DSSF_THREAD_GROUP = 0x1, VKD3DSSF_GROUP_SHARED_MEMORY = 0x2, + VKD3DSSF_THREAD_GROUP_UAV = 0x4, VKD3DSSF_GLOBAL_UAV = 0x8, }; ```
Like for the vkd3d_shader_uav_flags change, I'd expect a corresponding change to shader_dump_sync_flags() for this change. -- https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/306#note_42862