From 9510516e68cde8fd1d8e6f7efa04f03c481f8637 Mon Sep 17 00:00:00 2001 From: CamilleLaVey Date: Fri, 21 Aug 2026 22:41:03 -0400 Subject: [PATCH] Fix build --- .../renderer_vulkan/vk_compute_pass.cpp | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/src/video_core/renderer_vulkan/vk_compute_pass.cpp b/src/video_core/renderer_vulkan/vk_compute_pass.cpp index 83b9d55916..7992236f85 100644 --- a/src/video_core/renderer_vulkan/vk_compute_pass.cpp +++ b/src/video_core/renderer_vulkan/vk_compute_pass.cpp @@ -818,14 +818,23 @@ void BlockLinearUnswizzle3DPass::UnswizzleChunk( .size = barrier_size, }; + VkAccessFlags pre_barrier_src_access = VK_ACCESS_SHADER_READ_BIT; + VkImageLayout pre_barrier_old_layout = VK_IMAGE_LAYOUT_GENERAL; + VkPipelineStageFlags pre_barrier_src_stages = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; + if (use_undefined_layout) { + pre_barrier_src_access = VkAccessFlags{}; + pre_barrier_old_layout = VK_IMAGE_LAYOUT_UNDEFINED; + pre_barrier_src_stages |= VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT; + } else { + pre_barrier_src_stages |= vk::PIPELINE_STAGE_GRAPHICS_COMPUTE; + } + const VkImageMemoryBarrier pre_barrier{ .sType = VK_STRUCTURE_TYPE_IMAGE_MEMORY_BARRIER, .pNext = nullptr, - .srcAccessMask = use_undefined_layout ? VkAccessFlags{} : - static_cast(VK_ACCESS_SHADER_READ_BIT), + .srcAccessMask = pre_barrier_src_access, .dstAccessMask = VK_ACCESS_TRANSFER_WRITE_BIT, - .oldLayout = use_undefined_layout ? VK_IMAGE_LAYOUT_UNDEFINED : - VK_IMAGE_LAYOUT_GENERAL, + .oldLayout = pre_barrier_old_layout, .newLayout = VK_IMAGE_LAYOUT_TRANSFER_DST_OPTIMAL, .srcQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, .dstQueueFamilyIndex = VK_QUEUE_FAMILY_IGNORED, @@ -833,10 +842,6 @@ void BlockLinearUnswizzle3DPass::UnswizzleChunk( .subresourceRange = {aspect, 0, 1, 0, 1}, }; - VkPipelineStageFlags pre_barrier_src_stages = VK_PIPELINE_STAGE_COMPUTE_SHADER_BIT; - pre_barrier_src_stages |= use_undefined_layout ? VK_PIPELINE_STAGE_TOP_OF_PIPE_BIT - : vk::PIPELINE_STAGE_GRAPHICS_COMPUTE; - // Single barrier handles both buffer and image cmdbuf.PipelineBarrier( pre_barrier_src_stages,