Backends: Vulkan: misc amends (makes ImGui_ImplVulkan_MainPipelineCreateInfo::PipelineRenderingCreateInfo consistent with InitInfo). (8110, 8111, 8053)

This commit is contained in:
ocornut
2025-09-04 16:39:16 +02:00
parent 9764c98e8e
commit 90fd35fd72
2 changed files with 10 additions and 15 deletions

View File

@@ -1131,19 +1131,18 @@ bool ImGui_ImplVulkan_CreateDeviceObjects()
}
// Create pipeline
const VkPipelineRenderingCreateInfoKHR* p_dynamic_rendering_create_info = nullptr;
if (v->RenderPass
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
if (v->UseDynamicRendering && v->PipelineRenderingCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)
p_dynamic_rendering_create_info = &v->PipelineRenderingCreateInfo;
|| (v->UseDynamicRendering && v->PipelineRenderingCreateInfo.sType == VK_STRUCTURE_TYPE_PIPELINE_RENDERING_CREATE_INFO_KHR)
#endif
if (v->RenderPass || p_dynamic_rendering_create_info != nullptr)
)
{
ImGui_ImplVulkan_MainPipelineCreateInfo mp_info = {};
mp_info.RenderPass = v->RenderPass;
mp_info.Subpass = v->Subpass;
mp_info.MSAASamples = v->MSAASamples;
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
mp_info.pDynamicRendering = p_dynamic_rendering_create_info;
mp_info.PipelineRenderingCreateInfo = v->PipelineRenderingCreateInfo;
#endif
ImGui_ImplVulkan_CreateMainPipeline(mp_info);
}
@@ -1184,15 +1183,11 @@ void ImGui_ImplVulkan_CreateMainPipeline(const ImGui_ImplVulkan_MainPipelineCrea
v->MSAASamples = info.MSAASamples;
v->Subpass = info.Subpass;
VkPipelineRenderingCreateInfoKHR* pipeline_rendering_create_info = nullptr;
#ifdef IMGUI_IMPL_VULKAN_HAS_DYNAMIC_RENDERING
if (info.pDynamicRendering)
{
v->PipelineRenderingCreateInfo = *info.pDynamicRendering;
pipeline_rendering_create_info = &v->PipelineRenderingCreateInfo;
}
if (v->UseDynamicRendering)
v->PipelineRenderingCreateInfo = info.PipelineRenderingCreateInfo;
#endif
bd->Pipeline = ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, v->RenderPass, v->MSAASamples, v->Subpass, pipeline_rendering_create_info);
bd->Pipeline = ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, v->RenderPass, v->MSAASamples, v->Subpass, v->UseDynamicRendering ? &info.PipelineRenderingCreateInfo : nullptr);
}
void ImGui_ImplVulkan_DestroyDeviceObjects()