From c09beb9efbbba32777acc3a44c6a2cfeab6db932 Mon Sep 17 00:00:00 2001 From: Lubosz Sarnecki Date: Wed, 6 May 2020 12:41:46 +0200 Subject: [PATCH] aux/vk: Add vk_get_access_flags. --- src/xrt/auxiliary/vk/vk_helpers.c | 26 ++++++++++++++++++++++++++ src/xrt/auxiliary/vk/vk_helpers.h | 3 +++ 2 files changed, 29 insertions(+) diff --git a/src/xrt/auxiliary/vk/vk_helpers.c b/src/xrt/auxiliary/vk/vk_helpers.c index 6accee877..629302985 100644 --- a/src/xrt/auxiliary/vk/vk_helpers.c +++ b/src/xrt/auxiliary/vk/vk_helpers.c @@ -1055,3 +1055,29 @@ err_memset: U_ZERO(vk); return ret; } + +VkAccessFlags +vk_get_access_flags(VkImageLayout layout) +{ + switch (layout) { + case VK_IMAGE_LAYOUT_UNDEFINED: return 0; + case VK_IMAGE_LAYOUT_GENERAL: + return VK_ACCESS_TRANSFER_WRITE_BIT | + VK_ACCESS_TRANSFER_READ_BIT; + case VK_IMAGE_LAYOUT_PREINITIALIZED: return VK_ACCESS_HOST_WRITE_BIT; + case VK_IMAGE_LAYOUT_COLOR_ATTACHMENT_OPTIMAL: + return VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT; + case VK_IMAGE_LAYOUT_DEPTH_STENCIL_ATTACHMENT_OPTIMAL: + return VK_ACCESS_DEPTH_STENCIL_ATTACHMENT_WRITE_BIT; + case VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL: + return VK_ACCESS_TRANSFER_READ_BIT; + case VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL: + return VK_ACCESS_TRANSFER_WRITE_BIT; + case VK_IMAGE_LAYOUT_SHADER_READ_ONLY_OPTIMAL: + return VK_ACCESS_SHADER_READ_BIT; + default: + fprintf(stderr, "Unhandled access mask case for layout %d.\n", + layout); + } + return 0; +} diff --git a/src/xrt/auxiliary/vk/vk_helpers.h b/src/xrt/auxiliary/vk/vk_helpers.h index c5374b567..ff04227df 100644 --- a/src/xrt/auxiliary/vk/vk_helpers.h +++ b/src/xrt/auxiliary/vk/vk_helpers.h @@ -399,6 +399,9 @@ VkResult vk_submit_cmd_buffer(struct vk_bundle *vk, VkCommandBuffer cmd_buffer); +VkAccessFlags +vk_get_access_flags(VkImageLayout layout); + #ifdef __cplusplus } #endif