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

TextureCache: Flush linear textures after finishing rendering.

Fernando Sahmkow 6 лет назад
Родитель
Сommit
ed7e965712
1 измененных файлов с 8 добавлено и 2 удалено
  1. 8 2
      src/video_core/texture_cache/texture_cache.h

+ 8 - 2
src/video_core/texture_cache/texture_cache.h

@@ -233,8 +233,14 @@ public:
 
         auto surface_view = GetSurface(gpu_addr, *cpu_addr,
                                        SurfaceParams::CreateForFramebuffer(system, index), true);
-        if (render_targets[index].target)
-            render_targets[index].target->MarkAsRenderTarget(false, NO_RT);
+        if (render_targets[index].target) {
+            auto& surface = render_targets[index].target;
+            surface->MarkAsRenderTarget(false, NO_RT);
+            const auto& cr_params = surface->GetSurfaceParams();
+            if (!cr_params.is_tiled) {
+                FlushSurface(surface);
+            }
+        }
         render_targets[index].target = surface_view.first;
         render_targets[index].view = surface_view.second;
         if (render_targets[index].target)