diff --git a/rpcs3/Emu/RSX/GL/GLGSRender.cpp b/rpcs3/Emu/RSX/GL/GLGSRender.cpp index 1e687c4081..e3278e903a 100644 --- a/rpcs3/Emu/RSX/GL/GLGSRender.cpp +++ b/rpcs3/Emu/RSX/GL/GLGSRender.cpp @@ -838,9 +838,14 @@ bool GLGSRender::do_method(u32 cmd, u32 arg) { case NV4097_CLEAR_SURFACE: { - init_buffers(true); - synchronize_buffers(); - clear_surface(arg); + if (arg & 0xF3) + { + //Only do all this if we have actual work to do + init_buffers(true); + synchronize_buffers(); + clear_surface(arg); + } + return true; } case NV4097_TEXTURE_READ_SEMAPHORE_RELEASE: diff --git a/rpcs3/Emu/RSX/GL/GLRenderTargets.cpp b/rpcs3/Emu/RSX/GL/GLRenderTargets.cpp index 466024826a..b6bf9bd859 100644 --- a/rpcs3/Emu/RSX/GL/GLRenderTargets.cpp +++ b/rpcs3/Emu/RSX/GL/GLRenderTargets.cpp @@ -169,6 +169,7 @@ void GLGSRender::init_buffers(bool skip_reading) { LOG_ERROR(RSX, "Invalid framebuffer setup, w=%d, h=%d", clip_horizontal, clip_vertical); framebuffer_status_valid = false; + return; } const auto pitchs = get_pitchs();