From 4b11a791f640f2d6ba93e975819dd717327da847 Mon Sep 17 00:00:00 2001 From: Oliver Eriksson Date: Sat, 11 Nov 2023 01:12:07 +0100 Subject: [PATCH 1/2] Fix validation VUID-vkCmdDrawIndexed-colorAttachmentCount-06180 when using custom ColorAttachmentFormat --- backends/imgui_impl_vulkan.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/backends/imgui_impl_vulkan.cpp b/backends/imgui_impl_vulkan.cpp index cf12637d536b..b16d0ebd804b 100644 --- a/backends/imgui_impl_vulkan.cpp +++ b/backends/imgui_impl_vulkan.cpp @@ -1653,7 +1653,11 @@ static void ImGui_ImplVulkan_CreateWindow(ImGuiViewport* viewport) } // Select Surface Format - const VkFormat requestSurfaceImageFormat[] = { VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; + const VkFormat requestSurfaceImageFormat[] = { +#if defined(IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING) + bd->VulkanInitInfo.ColorAttachmentFormat, +#endif + VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR; wd->SurfaceFormat = ImGui_ImplVulkanH_SelectSurfaceFormat(v->PhysicalDevice, wd->Surface, requestSurfaceImageFormat, (size_t)IM_ARRAYSIZE(requestSurfaceImageFormat), requestSurfaceColorSpace); From 49f48aacd703bab421a6512e77ddb0c441dc5676 Mon Sep 17 00:00:00 2001 From: Oliver Eriksson Date: Sat, 11 Nov 2023 01:48:21 +0100 Subject: [PATCH 2/2] Only use color attachment format for window surface format if UseDynamicRendering is true --- backends/imgui_impl_vulkan.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backends/imgui_impl_vulkan.cpp b/backends/imgui_impl_vulkan.cpp index b16d0ebd804b..fd76d0999968 100644 --- a/backends/imgui_impl_vulkan.cpp +++ b/backends/imgui_impl_vulkan.cpp @@ -1655,7 +1655,7 @@ static void ImGui_ImplVulkan_CreateWindow(ImGuiViewport* viewport) // Select Surface Format const VkFormat requestSurfaceImageFormat[] = { #if defined(IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING) - bd->VulkanInitInfo.ColorAttachmentFormat, + v->UseDynamicRendering && v->ColorAttachmentFormat ? v->ColorAttachmentFormat : VK_FORMAT_B8G8R8A8_UNORM, #endif VK_FORMAT_B8G8R8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM, VK_FORMAT_B8G8R8_UNORM, VK_FORMAT_R8G8B8_UNORM }; const VkColorSpaceKHR requestSurfaceColorSpace = VK_COLORSPACE_SRGB_NONLINEAR_KHR;