diff --git a/src/video_core/renderer_vulkan/vk_instance.cpp b/src/video_core/renderer_vulkan/vk_instance.cpp index 6898df97a..8bd2b19d6 100644 --- a/src/video_core/renderer_vulkan/vk_instance.cpp +++ b/src/video_core/renderer_vulkan/vk_instance.cpp @@ -8,6 +8,7 @@ #include "common/assert.h" #include "common/debug.h" #include "common/types.h" +#include "imgui/renderer/imgui_core.h" #include "sdl_window.h" #include "video_core/renderer_vulkan/liverpool_to_vk.h" #include "video_core/renderer_vulkan/vk_instance.h" @@ -183,6 +184,7 @@ Instance::Instance(Frontend::WindowSDL& window, s32 physical_device_index, } Instance::~Instance() { + ImGui::Core::Shutdown(GetDevice()); vmaDestroyAllocator(allocator); } diff --git a/src/video_core/renderer_vulkan/vk_presenter.cpp b/src/video_core/renderer_vulkan/vk_presenter.cpp index c2a2a6621..49002c741 100644 --- a/src/video_core/renderer_vulkan/vk_presenter.cpp +++ b/src/video_core/renderer_vulkan/vk_presenter.cpp @@ -144,7 +144,6 @@ Presenter::~Presenter() { device.destroyImageView(frame.image_view); device.destroyFence(frame.present_done); } - ImGui::Core::Shutdown(device); } bool Presenter::IsVideoOutSurface(const AmdGpu::ColorBuffer& color_buffer) const { diff --git a/src/video_core/renderer_vulkan/vk_presenter.h b/src/video_core/renderer_vulkan/vk_presenter.h index c1748e9dd..614b9b77e 100644 --- a/src/video_core/renderer_vulkan/vk_presenter.h +++ b/src/video_core/renderer_vulkan/vk_presenter.h @@ -112,13 +112,13 @@ private: u32 expected_frame_width{1920}; u32 expected_frame_height{1080}; + Frontend::WindowSDL& window; + Instance instance; HostPasses::FsrPass fsr_pass; HostPasses::FsrPass::Settings fsr_settings{}; HostPasses::PostProcessingPass::Settings pp_settings{}; HostPasses::PostProcessingPass pp_pass; - Frontend::WindowSDL& window; AmdGpu::Liverpool* liverpool; - Instance instance; Scheduler draw_scheduler; Scheduler present_scheduler; Scheduler flip_scheduler;