Merge "Fix src access masks for colorbuffer readbacks" into main
diff --git a/host/vulkan/VkCommonOperations.cpp b/host/vulkan/VkCommonOperations.cpp
index 07c2510..5f8abc0 100644
--- a/host/vulkan/VkCommonOperations.cpp
+++ b/host/vulkan/VkCommonOperations.cpp
@@ -3089,13 +3089,13 @@
     mDebugUtilsHelper.cmdBeginDebugLabel(mCommandBuffer, "readColorBufferToBytes(ColorBuffer:%d)",
                                          colorBufferHandle);
 
-    VkImageLayout currentLayout = colorBufferInfo->currentLayout;
-    VkImageLayout transferSrcLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
+    const VkImageLayout currentLayout = colorBufferInfo->currentLayout;
+    const VkImageLayout transferSrcLayout = VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL;
 
     const VkImageMemoryBarrier toTransferSrcImageBarrier = {
         .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
         .pNext = nullptr,
-        .srcAccessMask = 0,
+        .srcAccessMask = VK_ACCESS_MEMORY_WRITE_BIT,
         .dstAccessMask = VK_ACCESS_HOST_READ_BIT,
         .oldLayout = currentLayout,
         .newLayout = transferSrcLayout,
@@ -3117,7 +3117,7 @@
                              &toTransferSrcImageBarrier);
 
     vk->vkCmdCopyImageToBuffer(mCommandBuffer, colorBufferInfo->image,
-                               VK_IMAGE_LAYOUT_TRANSFER_SRC_OPTIMAL, mStaging.buffer,
+                               transferSrcLayout, mStaging.buffer,
                                bufferImageCopies.size(), bufferImageCopies.data());
 
     // Change back to original layout
@@ -3126,7 +3126,7 @@
         const VkImageMemoryBarrier toCurrentLayoutImageBarrier = {
             .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER,
             .pNext = nullptr,
-            .srcAccessMask = VK_ACCESS_HOST_READ_BIT | VK_ACCESS_MEMORY_WRITE_BIT,
+            .srcAccessMask = VK_ACCESS_HOST_READ_BIT,
             .dstAccessMask = VK_ACCESS_NONE_KHR,
             .oldLayout = transferSrcLayout,
             .newLayout = colorBufferInfo->currentLayout,