diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index c68a51ebbe..3dfd13d6a9 100644 --- a/src/video_core/renderer_opengl/gl_texture_cache.cpp +++ b/src/video_core/renderer_opengl/gl_texture_cache.cpp @@ -939,6 +939,11 @@ bool Image::Scale() { dst_info.size.height = scaled_height; upscaled_backup = MakeImage(dst_info, gl_internal_format); } + // TODO (ameerj): Investigate other GL states that affect blitting. + GLboolean scissor_test; + glGetBooleani_v(GL_SCISSOR_TEST, 0, &scissor_test); + glDisablei(GL_SCISSOR_TEST, 0); + const GLuint read_fbo = runtime->rescale_read_fbos[fbo_index].handle; const GLuint draw_fbo = runtime->rescale_draw_fbos[fbo_index].handle; for (s32 layer = 0; layer < info.resources.layers; ++layer) { @@ -955,6 +960,9 @@ bool Image::Scale() { 0, dst_level_width, dst_level_height, mask, filter); } } + if (scissor_test != GL_FALSE) { + glEnablei(GL_SCISSOR_TEST, 0); + } current_texture = upscaled_backup.handle; return true; }