From e0521c7221a98db6b4ffeb81574f9a953c7d0f16 Mon Sep 17 00:00:00 2001 From: Joshua Simmons Date: Mon, 18 Nov 2024 19:03:20 +0100 Subject: [PATCH] narcissus-gpu: Fix dst_stage_mask for swapchain transition Open question about whether the spec is right, or the validation layers are right. But lets go with the validation layers. --- engine/narcissus-gpu/src/backend/vulkan/mod.rs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/engine/narcissus-gpu/src/backend/vulkan/mod.rs b/engine/narcissus-gpu/src/backend/vulkan/mod.rs index 2d60c00..366b5ba 100644 --- a/engine/narcissus-gpu/src/backend/vulkan/mod.rs +++ b/engine/narcissus-gpu/src/backend/vulkan/mod.rs @@ -2731,11 +2731,14 @@ impl Device for VulkanDevice { stage_mask, } in cmd_encoder.swapchains_touched.values() { - // transition swapchain image from attachment optimal to present src + // transition swapchain image to present src let image_memory_barriers = &[vk::ImageMemoryBarrier2 { src_stage_mask: stage_mask, src_access_mask: access_mask, - dst_stage_mask: vk::PipelineStageFlags2::BOTTOM_OF_PIPE, + // According to the vulkan documentation, this should be `vk::PipelineStageFlags2::NONE`, however it + // seems that is not true any longer. + // see: + dst_stage_mask: stage_mask, dst_access_mask: vk::AccessFlags2::NONE, src_queue_family_index: self.universal_queue_family_index, dst_queue_family_index: self.universal_queue_family_index, -- 2.49.0