diff --git a/core/rend/vulkan/vulkan_context.cpp b/core/rend/vulkan/vulkan_context.cpp index 48d4b61eb3..b7c19072b2 100644 --- a/core/rend/vulkan/vulkan_context.cpp +++ b/core/rend/vulkan/vulkan_context.cpp @@ -1030,10 +1030,6 @@ void VulkanContext::term() renderCompleteSemaphores.clear(); drawFences.clear(); allocator.Term(); -#if defined(VIDEO_ROUTING) && defined(TARGET_MAC) - extern void os_VideoRoutingTermVk(); - os_VideoRoutingTermVk(); -#endif #ifndef USE_SDL surface.reset(); #else diff --git a/core/rend/vulkan/vulkan_renderer.h b/core/rend/vulkan/vulkan_renderer.h index fc144ec8ee..91a3190825 100644 --- a/core/rend/vulkan/vulkan_renderer.h +++ b/core/rend/vulkan/vulkan_renderer.h @@ -31,6 +31,8 @@ #include #include +void os_VideoRoutingTermVk(); + class BaseVulkanRenderer : public Renderer { protected: @@ -76,6 +78,9 @@ class BaseVulkanRenderer : public Renderer { GetContext()->WaitIdle(); GetContext()->PresentFrame(nullptr, nullptr, vk::Extent2D(), 0); +#if defined(VIDEO_ROUTING) && defined(TARGET_MAC) + os_VideoRoutingTermVk(); +#endif framebufferDrawer.reset(); quadPipeline.reset(); osdBuffer.reset(); @@ -249,6 +254,10 @@ class BaseVulkanRenderer : public Renderer extern void os_VideoRoutingPublishFrameTexture(const vk::Device& device, const vk::Image& image, const vk::Queue& queue, float x, float y, float w, float h); os_VideoRoutingPublishFrameTexture(device, srcImage, graphicsQueue, 0, 0, targetWidth, targetHeight); } + else + { + os_VideoRoutingTermVk(); + } #endif }