mirror of
				https://github.com/Drezil/imgui.git
				synced 2025-10-31 05:01:05 +01:00 
			
		
		
		
	Examples: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881)
Ref https://vulkan-tutorial.com/Drawing_a_triangle/Swap_chain_recreation#page_Suboptimal-or-out-of-date-swap-chain
This commit is contained in:
		| @@ -44,6 +44,7 @@ Other Changes: | |||||||
| - DragScalar: Add default value for v_speed argument to match higher-level functions. (#3922) [@eliasdaler] | - DragScalar: Add default value for v_speed argument to match higher-level functions. (#3922) [@eliasdaler] | ||||||
| - Backends: DirectX9: calling IDirect3DStateBlock9::Capture() after CreateStateBlock() which appears to | - Backends: DirectX9: calling IDirect3DStateBlock9::Capture() after CreateStateBlock() which appears to | ||||||
|   workaround/fix state restoring issues. Unknown exactly why so, but bit of a cargo-cult fix. (#3857) |   workaround/fix state restoring issues. Unknown exactly why so, but bit of a cargo-cult fix. (#3857) | ||||||
|  | - Examples: Vulkan: Rebuild swapchain on VK_SUBOPTIMAL_KHR. (#3881) | ||||||
| - Docs: Improvements to minor mistakes in documentation comments (#3923) [@ANF-Studios] | - Docs: Improvements to minor mistakes in documentation comments (#3923) [@ANF-Studios] | ||||||
|  |  | ||||||
|  |  | ||||||
|   | |||||||
| @@ -253,7 +253,7 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) | |||||||
|     VkSemaphore image_acquired_semaphore  = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; |     VkSemaphore image_acquired_semaphore  = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; | ||||||
|     VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; |     VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; | ||||||
|     err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); |     err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); | ||||||
|     if (err == VK_ERROR_OUT_OF_DATE_KHR) |     if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) | ||||||
|     { |     { | ||||||
|         g_SwapChainRebuild = true; |         g_SwapChainRebuild = true; | ||||||
|         return; |         return; | ||||||
| @@ -326,7 +326,7 @@ static void FramePresent(ImGui_ImplVulkanH_Window* wd) | |||||||
|     info.pSwapchains = &wd->Swapchain; |     info.pSwapchains = &wd->Swapchain; | ||||||
|     info.pImageIndices = &wd->FrameIndex; |     info.pImageIndices = &wd->FrameIndex; | ||||||
|     VkResult err = vkQueuePresentKHR(g_Queue, &info); |     VkResult err = vkQueuePresentKHR(g_Queue, &info); | ||||||
|     if (err == VK_ERROR_OUT_OF_DATE_KHR) |     if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) | ||||||
|     { |     { | ||||||
|         g_SwapChainRebuild = true; |         g_SwapChainRebuild = true; | ||||||
|         return; |         return; | ||||||
|   | |||||||
| @@ -245,7 +245,7 @@ static void FrameRender(ImGui_ImplVulkanH_Window* wd, ImDrawData* draw_data) | |||||||
|     VkSemaphore image_acquired_semaphore  = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; |     VkSemaphore image_acquired_semaphore  = wd->FrameSemaphores[wd->SemaphoreIndex].ImageAcquiredSemaphore; | ||||||
|     VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; |     VkSemaphore render_complete_semaphore = wd->FrameSemaphores[wd->SemaphoreIndex].RenderCompleteSemaphore; | ||||||
|     err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); |     err = vkAcquireNextImageKHR(g_Device, wd->Swapchain, UINT64_MAX, image_acquired_semaphore, VK_NULL_HANDLE, &wd->FrameIndex); | ||||||
|     if (err == VK_ERROR_OUT_OF_DATE_KHR) |     if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) | ||||||
|     { |     { | ||||||
|         g_SwapChainRebuild = true; |         g_SwapChainRebuild = true; | ||||||
|         return; |         return; | ||||||
| @@ -318,7 +318,7 @@ static void FramePresent(ImGui_ImplVulkanH_Window* wd) | |||||||
|     info.pSwapchains = &wd->Swapchain; |     info.pSwapchains = &wd->Swapchain; | ||||||
|     info.pImageIndices = &wd->FrameIndex; |     info.pImageIndices = &wd->FrameIndex; | ||||||
|     VkResult err = vkQueuePresentKHR(g_Queue, &info); |     VkResult err = vkQueuePresentKHR(g_Queue, &info); | ||||||
|     if (err == VK_ERROR_OUT_OF_DATE_KHR) |     if (err == VK_ERROR_OUT_OF_DATE_KHR || err == VK_SUBOPTIMAL_KHR) | ||||||
|     { |     { | ||||||
|         g_SwapChainRebuild = true; |         g_SwapChainRebuild = true; | ||||||
|         return; |         return; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user