|
@@ -33,6 +33,7 @@
|
|
|
|
|
|
// CHANGELOG
|
|
// CHANGELOG
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
// (minor and older changes stripped away, please see git history for details)
|
|
|
|
+// 2024-02-14: *BREAKING CHANGE*: Moved RenderPass parameter from ImGui_ImplVulkan_Init() function to ImGui_ImplVulkan_InitInfo structure. Not required when using dynamic rendering.
|
|
// 2024-02-12: *BREAKING CHANGE*: Dynamic rendering now require filling PipelineRenderingCreateInfo structure.
|
|
// 2024-02-12: *BREAKING CHANGE*: Dynamic rendering now require filling PipelineRenderingCreateInfo structure.
|
|
// 2024-01-19: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236)
|
|
// 2024-01-19: Vulkan: Fixed vkAcquireNextImageKHR() validation errors in VulkanSDK 1.3.275 by allocating one extra semaphore than in-flight frames. (#7236)
|
|
// 2024-01-11: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size (#3957). Fixed MinAllocationSize handing (#7189).
|
|
// 2024-01-11: Vulkan: Fixed vkMapMemory() calls unnecessarily using full buffer size (#3957). Fixed MinAllocationSize handing (#7189).
|
|
@@ -215,13 +216,11 @@ struct ImGui_ImplVulkan_WindowRenderBuffers
|
|
struct ImGui_ImplVulkan_Data
|
|
struct ImGui_ImplVulkan_Data
|
|
{
|
|
{
|
|
ImGui_ImplVulkan_InitInfo VulkanInitInfo;
|
|
ImGui_ImplVulkan_InitInfo VulkanInitInfo;
|
|
- VkRenderPass RenderPass;
|
|
|
|
VkDeviceSize BufferMemoryAlignment;
|
|
VkDeviceSize BufferMemoryAlignment;
|
|
VkPipelineCreateFlags PipelineCreateFlags;
|
|
VkPipelineCreateFlags PipelineCreateFlags;
|
|
VkDescriptorSetLayout DescriptorSetLayout;
|
|
VkDescriptorSetLayout DescriptorSetLayout;
|
|
VkPipelineLayout PipelineLayout;
|
|
VkPipelineLayout PipelineLayout;
|
|
VkPipeline Pipeline;
|
|
VkPipeline Pipeline;
|
|
- uint32_t Subpass;
|
|
|
|
VkShaderModule ShaderModuleVert;
|
|
VkShaderModule ShaderModuleVert;
|
|
VkShaderModule ShaderModuleFrag;
|
|
VkShaderModule ShaderModuleFrag;
|
|
|
|
|
|
@@ -1022,7 +1021,7 @@ bool ImGui_ImplVulkan_CreateDeviceObjects()
|
|
check_vk_result(err);
|
|
check_vk_result(err);
|
|
}
|
|
}
|
|
|
|
|
|
- ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, bd->RenderPass, v->MSAASamples, &bd->Pipeline, bd->Subpass);
|
|
|
|
|
|
+ ImGui_ImplVulkan_CreatePipeline(v->Device, v->Allocator, v->PipelineCache, v->RenderPass, v->MSAASamples, &bd->Pipeline, v->Subpass);
|
|
|
|
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
@@ -1072,7 +1071,7 @@ bool ImGui_ImplVulkan_LoadFunctions(PFN_vkVoidFunction(*loader_func)(const ch
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
|
|
|
|
-bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass render_pass)
|
|
|
|
|
|
+bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info)
|
|
{
|
|
{
|
|
IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!");
|
|
IM_ASSERT(g_FunctionsLoaded && "Need to call ImGui_ImplVulkan_LoadFunctions() if IMGUI_IMPL_VULKAN_NO_PROTOTYPES or VK_NO_PROTOTYPES are set!");
|
|
|
|
|
|
@@ -1107,11 +1106,9 @@ bool ImGui_ImplVulkan_Init(ImGui_ImplVulkan_InitInfo* info, VkRenderPass rend
|
|
IM_ASSERT(info->MinImageCount >= 2);
|
|
IM_ASSERT(info->MinImageCount >= 2);
|
|
IM_ASSERT(info->ImageCount >= info->MinImageCount);
|
|
IM_ASSERT(info->ImageCount >= info->MinImageCount);
|
|
if (info->UseDynamicRendering == false)
|
|
if (info->UseDynamicRendering == false)
|
|
- IM_ASSERT(render_pass != VK_NULL_HANDLE);
|
|
|
|
|
|
+ IM_ASSERT(info->RenderPass != VK_NULL_HANDLE);
|
|
|
|
|
|
bd->VulkanInitInfo = *info;
|
|
bd->VulkanInitInfo = *info;
|
|
- bd->RenderPass = render_pass;
|
|
|
|
- bd->Subpass = info->Subpass;
|
|
|
|
|
|
|
|
ImGui_ImplVulkan_CreateDeviceObjects();
|
|
ImGui_ImplVulkan_CreateDeviceObjects();
|
|
|
|
|
|
@@ -1487,7 +1484,7 @@ void ImGui_ImplVulkanH_CreateWindowSwapChain(VkPhysicalDevice physical_device, V
|
|
|
|
|
|
// We do not create a pipeline by default as this is also used by examples' main.cpp,
|
|
// We do not create a pipeline by default as this is also used by examples' main.cpp,
|
|
// but secondary viewport in multi-viewport mode may want to create one with:
|
|
// but secondary viewport in multi-viewport mode may want to create one with:
|
|
- //ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline, bd->Subpass);
|
|
|
|
|
|
+ //ImGui_ImplVulkan_CreatePipeline(device, allocator, VK_NULL_HANDLE, wd->RenderPass, VK_SAMPLE_COUNT_1_BIT, &wd->Pipeline, v->Subpass);
|
|
}
|
|
}
|
|
|
|
|
|
// Create The Image Views
|
|
// Create The Image Views
|