diff --git a/pcsx2/GS/GS.cpp b/pcsx2/GS/GS.cpp index 40ceeaed45..434721ef53 100644 --- a/pcsx2/GS/GS.cpp +++ b/pcsx2/GS/GS.cpp @@ -20,6 +20,7 @@ #include "GS/Renderers/Null/GSRendererNull.h" #include "GS/Renderers/HW/GSRendererHW.h" #include "GS/Renderers/HW/GSTextureReplacements.h" +#include "VMManager.h" #ifdef ENABLE_OPENGL #include "GS/Renderers/OpenGL/GSDeviceOGL.h" @@ -333,6 +334,9 @@ bool GSopen(const Pcsx2Config::GSOptions& config, GSRendererType renderer, u8* b void GSclose() { + if (GSCapture::IsCapturing()) + GSCapture::EndCapture(); + CloseGSRenderer(); CloseGSDevice(true); Host::ReleaseRenderWindow(); @@ -492,6 +496,9 @@ void GSGameChanged() { if (GSIsHardwareRenderer()) GSTextureReplacements::GameChanged(); + + if (!VMManager::HasValidVM() && GSCapture::IsCapturing()) + GSCapture::EndCapture(); } bool GSHasDisplayWindow() diff --git a/pcsx2/VMManager.cpp b/pcsx2/VMManager.cpp index a7f6be821e..c9aa7b09fe 100644 --- a/pcsx2/VMManager.cpp +++ b/pcsx2/VMManager.cpp @@ -1537,6 +1537,7 @@ void VMManager::Shutdown(bool save_resume_state) { MTGS::WaitGS(false, false, false); MTGS::ResetGS(true); + MTGS::GameChanged(); } else {