diff --git a/GPU/Directx9/FramebufferDX9.cpp b/GPU/Directx9/FramebufferDX9.cpp index d8f58cb139..3ea01aa94c 100644 --- a/GPU/Directx9/FramebufferDX9.cpp +++ b/GPU/Directx9/FramebufferDX9.cpp @@ -1161,7 +1161,9 @@ namespace DX9 { } void FramebufferManagerDX9::DecimateFBOs() { - fbo_unbind(); + if (g_Config.iRenderingMode != FB_NON_BUFFERED_MODE) { + fbo_unbind(); + } currentRenderVfb_ = 0; bool updateVram = !(g_Config.iRenderingMode == FB_NON_BUFFERED_MODE || g_Config.iRenderingMode == FB_BUFFERED_MODE); diff --git a/GPU/Directx9/helper/dx_fbo.cpp b/GPU/Directx9/helper/dx_fbo.cpp index 87e17c0695..23692afaaa 100644 --- a/GPU/Directx9/helper/dx_fbo.cpp +++ b/GPU/Directx9/helper/dx_fbo.cpp @@ -115,6 +115,8 @@ void fbo_destroy(FBO *fbo) { void fbo_unbind() { pD3Ddevice->SetRenderTarget(0, deviceRTsurf); pD3Ddevice->SetDepthStencilSurface(deviceDSsurf); + dxstate.scissorRect.restore(); + dxstate.viewport.restore(); } void fbo_resolve(FBO *fbo) {