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

Merge pull request #3589 from ReinUsesLisp/fix-clears

gl_rasterizer: Mark cleared textures as dirty
Fernando Sahmkow 6 лет назад
Родитель
Сommit
1633fbf99a
1 измененных файлов с 5 добавлено и 2 удалено
  1. 5 2
      src/video_core/renderer_opengl/gl_rasterizer.cpp

+ 5 - 2
src/video_core/renderer_opengl/gl_rasterizer.cpp

@@ -386,11 +386,14 @@ void RasterizerOpenGL::ConfigureClearFramebuffer(bool using_color_fb, bool using
     texture_cache.GuardRenderTargets(true);
     texture_cache.GuardRenderTargets(true);
     View color_surface;
     View color_surface;
     if (using_color_fb) {
     if (using_color_fb) {
-        color_surface = texture_cache.GetColorBufferSurface(regs.clear_buffers.RT, false);
+        const std::size_t index = regs.clear_buffers.RT;
+        color_surface = texture_cache.GetColorBufferSurface(index, true);
+        texture_cache.MarkColorBufferInUse(index);
     }
     }
     View depth_surface;
     View depth_surface;
     if (using_depth_fb || using_stencil_fb) {
     if (using_depth_fb || using_stencil_fb) {
-        depth_surface = texture_cache.GetDepthBufferSurface(false);
+        depth_surface = texture_cache.GetDepthBufferSurface(true);
+        texture_cache.MarkDepthBufferInUse();
     }
     }
     texture_cache.GuardRenderTargets(false);
     texture_cache.GuardRenderTargets(false);