Просмотр исходного кода

rasterizer_cache_gl: Only do fast layered copy on the same format. As
glCopyImageSubData does not support different formats.

Fernando Sahmkow 7 лет назад
Родитель
Сommit
bb41683394
1 измененных файлов с 5 добавлено и 1 удалено
  1. 5 1
      src/video_core/renderer_opengl/gl_rasterizer_cache.cpp

+ 5 - 1
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::TextureCubemap:
     case SurfaceTarget::Texture2DArray:
     case SurfaceTarget::Texture2DArray:
     case SurfaceTarget::TextureCubeArray:
     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;
         break;
     default:
     default:
         LOG_CRITICAL(Render_OpenGL, "Unimplemented surface target={}",
         LOG_CRITICAL(Render_OpenGL, "Unimplemented surface target={}",