diff --git a/MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp b/MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp index a88ec97c..f38eb944 100644 --- a/MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/BackendObject_DirectVulkan.cpp @@ -345,6 +345,10 @@ namespace MobileGL::MG_Backend::DirectVulkan { pVulkanRenderer.reset(); ClearProgramResourceCaches(); } + // And the swap interval it asked for (DirectVulkan.h). + if (MG_Config::Transport != MG_Config::TransportMode::Monolith) { + ForgetRequestedSwapInterval(); + } } #else BackendObject_DirectVulkan::~BackendObject_DirectVulkan() = default; diff --git a/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp b/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp index d5f4eaad..18d1e023 100644 --- a/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp +++ b/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.cpp @@ -1756,4 +1756,10 @@ namespace MobileGL::MG_Backend::DirectVulkan { Optional GetRequestedSwapInterval() { return g_requestedSwapInterval; } + +#if MOBILEGL_BUILD_DISAGGREGATED + void ForgetRequestedSwapInterval() { + g_requestedSwapInterval.reset(); + } +#endif } // namespace MobileGL::MG_Backend::DirectVulkan diff --git a/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h b/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h index 582ee57a..93c669e4 100644 --- a/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h +++ b/MobileGL/MG_Backend/DirectVulkan/DirectVulkan.h @@ -151,4 +151,10 @@ namespace MobileGL::MG_Backend::DirectVulkan { // starts from the app's last request (GetRequestedSwapInterval) instead of the default. void SetSwapInterval(Int interval); Optional GetRequestedSwapInterval(); +#if MOBILEGL_BUILD_DISAGGREGATED + // The swap interval an ended server session asked for is not the next one's, the same rule as + // DirectGLES::ForgetRequestedSwapInterval: under a transport ~BackendObject_DirectVulkan forgets + // it, so the next session starts at the default until it asks. + void ForgetRequestedSwapInterval(); +#endif } // namespace MobileGL::MG_Backend::DirectVulkan