diff options
Diffstat (limited to 'src/video_core')
| -rw-r--r-- | src/video_core/renderer_opengl/gl_texture_cache.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/video_core/renderer_opengl/gl_texture_cache.cpp b/src/video_core/renderer_opengl/gl_texture_cache.cpp index c68a51ebb..3dfd13d6a 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() { | |||
| 939 | dst_info.size.height = scaled_height; | 939 | dst_info.size.height = scaled_height; |
| 940 | upscaled_backup = MakeImage(dst_info, gl_internal_format); | 940 | upscaled_backup = MakeImage(dst_info, gl_internal_format); |
| 941 | } | 941 | } |
| 942 | // TODO (ameerj): Investigate other GL states that affect blitting. | ||
| 943 | GLboolean scissor_test; | ||
| 944 | glGetBooleani_v(GL_SCISSOR_TEST, 0, &scissor_test); | ||
| 945 | glDisablei(GL_SCISSOR_TEST, 0); | ||
| 946 | |||
| 942 | const GLuint read_fbo = runtime->rescale_read_fbos[fbo_index].handle; | 947 | const GLuint read_fbo = runtime->rescale_read_fbos[fbo_index].handle; |
| 943 | const GLuint draw_fbo = runtime->rescale_draw_fbos[fbo_index].handle; | 948 | const GLuint draw_fbo = runtime->rescale_draw_fbos[fbo_index].handle; |
| 944 | for (s32 layer = 0; layer < info.resources.layers; ++layer) { | 949 | for (s32 layer = 0; layer < info.resources.layers; ++layer) { |
| @@ -955,6 +960,9 @@ bool Image::Scale() { | |||
| 955 | 0, dst_level_width, dst_level_height, mask, filter); | 960 | 0, dst_level_width, dst_level_height, mask, filter); |
| 956 | } | 961 | } |
| 957 | } | 962 | } |
| 963 | if (scissor_test != GL_FALSE) { | ||
| 964 | glEnablei(GL_SCISSOR_TEST, 0); | ||
| 965 | } | ||
| 958 | current_texture = upscaled_backup.handle; | 966 | current_texture = upscaled_backup.handle; |
| 959 | return true; | 967 | return true; |
| 960 | } | 968 | } |