From 547a64a13c2dbd48966dfe5e13c641671b5fde7e Mon Sep 17 00:00:00 2001 From: Jake Turner Date: Mon, 2 Mar 2026 17:24:08 +0000 Subject: [PATCH] Fix GPU syncval errors in VK_Custom_Resolve SynchronizationValidation with "Shader accessed heuristic" --- util/test/demos/vk/vk_custom_resolve.cpp | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/util/test/demos/vk/vk_custom_resolve.cpp b/util/test/demos/vk/vk_custom_resolve.cpp index 5f889846f..9049db259 100644 --- a/util/test/demos/vk/vk_custom_resolve.cpp +++ b/util/test/demos/vk/vk_custom_resolve.cpp @@ -132,9 +132,8 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) VK_SUBPASS_EXTERNAL, 0, VK_PIPELINE_STAGE_NONE, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_NONE, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT)); renderPassCreateInfo.dependencies.push_back(vkh::SubpassDependency( - 0, 1, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, - VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - VK_ACCESS_COLOR_ATTACHMENT_READ_BIT)); + 0, 1, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT, VK_PIPELINE_STAGE_FRAGMENT_SHADER_BIT, + VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, VK_ACCESS_INPUT_ATTACHMENT_READ_BIT)); VkRenderPass msaaRP = createRenderPass(renderPassCreateInfo); @@ -303,7 +302,8 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) pushMarker(cmd, "Clear"); vkh::cmdPipelineBarrier( cmd, { - vkh::ImageMemoryBarrier(0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, + vkh::ImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, resImg.image), }); @@ -320,7 +320,8 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) vkh::cmdPipelineBarrier( cmd, { - vkh::ImageMemoryBarrier(0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, + vkh::ImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, msaaImg.image), }); @@ -359,7 +360,8 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) pushMarker(cmd, "Clear"); vkh::cmdPipelineBarrier( cmd, { - vkh::ImageMemoryBarrier(0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, + vkh::ImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, resImg.image), }); @@ -375,7 +377,8 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) vkh::cmdPipelineBarrier( cmd, { - vkh::ImageMemoryBarrier(0, VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, + vkh::ImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, + VK_ACCESS_TRANSFER_WRITE_BIT, VK_IMAGE_LAYOUT_UNDEFINED, VK_IMAGE_LAYOUT_GENERAL, msaaImg.image), }); @@ -401,7 +404,7 @@ RD_TEST(VK_Custom_Resolve, VulkanGraphicsTest) cmd, { vkh::ImageMemoryBarrier(VK_ACCESS_COLOR_ATTACHMENT_WRITE_BIT, - VK_ACCESS_SHADER_READ_BIT, VK_IMAGE_LAYOUT_GENERAL, + VK_ACCESS_INPUT_ATTACHMENT_READ_BIT, VK_IMAGE_LAYOUT_GENERAL, VK_IMAGE_LAYOUT_GENERAL, msaaImg.image), }, {}, {}, VK_PIPELINE_STAGE_COLOR_ATTACHMENT_OUTPUT_BIT,