@@ -511,18 +511,18 @@ void SurfaceRenderableResource::copySurfaceToReadTexture() {
511511 : vk::AccessFlags{vk::AccessFlagBits::eColorAttachmentWrite};
512512 const vk::AccessFlags dstAccess = surface ? vk::AccessFlagBits::eTransferWrite : vk::AccessFlagBits::eTransferRead;
513513
514- const auto barrier = vk::ImageMemoryBarrier ()
515- .setImage (swapchainImage)
516- .setOldLayout (oldLayout)
517- .setNewLayout (vk::ImageLayout::eTransferSrcOptimal)
518- .setSrcAccessMask (srcAccess)
519- .setDstAccessMask (dstAccess)
520- .setSrcQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
521- .setDstQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
522- .setSubresourceRange ({vk::ImageAspectFlagBits::eColor, 0 , 1 , 0 , 1 });
514+ const auto readBarrier = vk::ImageMemoryBarrier ()
515+ .setImage (swapchainImage)
516+ .setOldLayout (oldLayout)
517+ .setNewLayout (vk::ImageLayout::eTransferSrcOptimal)
518+ .setSrcAccessMask (srcAccess)
519+ .setDstAccessMask (dstAccess)
520+ .setSrcQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
521+ .setDstQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
522+ .setSubresourceRange ({vk::ImageAspectFlagBits::eColor, 0 , 1 , 0 , 1 });
523523
524524 commandBuffer->pipelineBarrier (
525- srcStage, vk::PipelineStageFlagBits::eTransfer, {}, nullptr , nullptr , barrier , dispatcher);
525+ srcStage, vk::PipelineStageFlagBits::eTransfer, {}, nullptr , nullptr , readBarrier , dispatcher);
526526
527527 bool useBlit =
528528 surface &&
@@ -538,22 +538,22 @@ void SurfaceRenderableResource::copySurfaceToReadTexture() {
538538 }
539539
540540 if (surface) {
541- const auto barrier = vk::ImageMemoryBarrier ()
542- .setImage (swapchainImage)
543- .setOldLayout (vk::ImageLayout::eTransferSrcOptimal)
544- .setNewLayout (vk::ImageLayout::ePresentSrcKHR)
545- .setSrcAccessMask (vk::AccessFlagBits::eMemoryRead)
546- .setDstAccessMask (vk::AccessFlagBits::eTransferWrite)
547- .setSrcQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
548- .setDstQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
549- .setSubresourceRange ({vk::ImageAspectFlagBits::eColor, 0 , 1 , 0 , 1 });
541+ const auto presentBarrier = vk::ImageMemoryBarrier ()
542+ .setImage (swapchainImage)
543+ .setOldLayout (vk::ImageLayout::eTransferSrcOptimal)
544+ .setNewLayout (vk::ImageLayout::ePresentSrcKHR)
545+ .setSrcAccessMask (vk::AccessFlagBits::eMemoryRead)
546+ .setDstAccessMask (vk::AccessFlagBits::eTransferWrite)
547+ .setSrcQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
548+ .setDstQueueFamilyIndex (VK_QUEUE_FAMILY_IGNORED )
549+ .setSubresourceRange ({vk::ImageAspectFlagBits::eColor, 0 , 1 , 0 , 1 });
550550
551551 commandBuffer->pipelineBarrier (vk::PipelineStageFlagBits::eTopOfPipe,
552552 vk::PipelineStageFlagBits::eTransfer,
553553 {},
554554 nullptr ,
555555 nullptr ,
556- barrier ,
556+ presentBarrier ,
557557 dispatcher);
558558 }
559559}
0 commit comments