From: Joshua Simmons Date: Mon, 18 Nov 2024 18:03:20 +0000 (+0100) Subject: narcissus-gpu: Fix dst_stage_mask for swapchain transition X-Git-Url: https://git.nega.tv//gitweb.cgi?a=commitdiff_plain;h=e0521c7221a98db6b4ffeb81574f9a953c7d0f16;p=josh%2Fnarcissus 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. --- 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,