Mesa (master): zink: add helper function for checking if access flags include write access

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri Jan 29 13:27:53 UTC 2021


Module: Mesa
Branch: master
Commit: 49ee821eb9a926cf978942d65a3a2206f8514284
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=49ee821eb9a926cf978942d65a3a2206f8514284

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Fri Nov 27 13:00:46 2020 -0500

zink: add helper function for checking if access flags include write access

Reviewed-by: Hoe Hao Cheng <haochengho12907 at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8669>

---

 src/gallium/drivers/zink/zink_context.c | 28 ++++++++++++++++++++++++++++
 src/gallium/drivers/zink/zink_context.h |  3 +++
 2 files changed, 31 insertions(+)

diff --git a/src/gallium/drivers/zink/zink_context.c b/src/gallium/drivers/zink/zink_context.c
index aeefb1e8820..28abc3d2e41 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -1076,6 +1076,34 @@ pipeline_src_stage(VkImageLayout layout)
    }
 }
 
+#define ALL_READ_ACCESS_FLAGS \
+    (VK_ACCESS_INDIRECT_COMMAND_READ_BIT | \
+    VK_ACCESS_INDEX_READ_BIT | \
+    VK_ACCESS_VERTEX_ATTRIBUTE_READ_BIT | \
+    VK_ACCESS_UNIFORM_READ_BIT | \
+    VK_ACCESS_INPUT_ATTACHMENT_READ_BIT | \
+    VK_ACCESS_SHADER_READ_BIT | \
+    VK_ACCESS_COLOR_ATTACHMENT_READ_BIT | \
+    VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_READ_BIT | \
+    VK_ACCESS_TRANSFER_READ_BIT |\
+    VK_ACCESS_HOST_READ_BIT |\
+    VK_ACCESS_MEMORY_READ_BIT |\
+    VK_ACCESS_TRANSFORM_FEEDBACK_COUNTER_READ_BIT_EXT |\
+    VK_ACCESS_CONDITIONAL_RENDERING_READ_BIT_EXT |\
+    VK_ACCESS_COLOR_ATTACHMENT_READ_NONCOHERENT_BIT_EXT |\
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_KHR |\
+    VK_ACCESS_SHADING_RATE_IMAGE_READ_BIT_NV |\
+    VK_ACCESS_FRAGMENT_DENSITY_MAP_READ_BIT_EXT |\
+    VK_ACCESS_COMMAND_PREPROCESS_READ_BIT_NV |\
+    VK_ACCESS_ACCELERATION_STRUCTURE_READ_BIT_NV |\
+    VK_ACCESS_ACCELERATION_STRUCTURE_WRITE_BIT_NV)
+
+
+bool
+zink_resource_access_is_write(VkAccessFlags flags)
+{
+   return (flags & ALL_READ_ACCESS_FLAGS) != flags;
+}
 
 void
 zink_resource_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res,
diff --git a/src/gallium/drivers/zink/zink_context.h b/src/gallium/drivers/zink/zink_context.h
index 5e516cfd30e..630bb7f4c07 100644
--- a/src/gallium/drivers/zink/zink_context.h
+++ b/src/gallium/drivers/zink/zink_context.h
@@ -192,6 +192,9 @@ zink_fence_wait(struct pipe_context *ctx);
 void
 zink_wait_on_batch(struct zink_context *ctx, int batch_id);
 
+bool
+zink_resource_access_is_write(VkAccessFlags flags);
+
 void
 zink_resource_buffer_barrier(VkCommandBuffer cmdbuf, struct zink_resource *res, VkAccessFlags flags, VkPipelineStageFlags pipeline);
 



More information about the mesa-commit mailing list