diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-02-13 15:54:48 -0400 |
---|---|---|
committer | FernandoS27 <fsahmkow27@gmail.com> | 2019-02-13 16:55:00 -0400 |
commit | bb41683394698201db38ed7515911ded36bfa035 (patch) | |
tree | 7eada8dc4cc437057465413d813c796afb4f13d8 | |
parent | cd542d5aacc3ac8eec5ca5be182a76da56c19d05 (diff) |
rasterizer_cache_gl: Only do fast layered copy on the same format. As
glCopyImageSubData does not support different formats.
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 59f671048..69f354648 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -1257,7 +1257,11 @@ Surface RasterizerCacheOpenGL::RecreateSurface(const Surface& old_surface, case SurfaceTarget::TextureCubemap: case SurfaceTarget::Texture2DArray: case SurfaceTarget::TextureCubeArray: - FastLayeredCopySurface(old_surface, new_surface); + if (old_params.pixel_format == new_params.pixel_format) + FastLayeredCopySurface(old_surface, new_surface); + else { + AccurateCopySurface(old_surface, new_surface); + } break; default: LOG_CRITICAL(Render_OpenGL, "Unimplemented surface target={}", |