From e64fa4d2ea1519d325355711b5247cec6afd7d56 Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sat, 9 Feb 2019 19:19:16 -0400 Subject: [PATCH] Remove NotifyFrameBuffer as we are doing a texception pass every drawcall. --- .../renderer_opengl/gl_rasterizer_cache.cpp | 21 ------------------- .../renderer_opengl/gl_rasterizer_cache.h | 4 ---- 2 files changed, 25 deletions(-) diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp index 09013d6da..58e6dc824 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.cpp @@ -970,26 +970,17 @@ Surface RasterizerCacheOpenGL::GetColorBufferSurface(std::size_t index, bool pre gpu.dirty_flags.color_buffer.reset(index); ASSERT(index < Tegra::Engines::Maxwell3D::Regs::NumRenderTargets); - auto Notify = [&]() { - if (last_color_buffers[index] != current_color_buffers[index]) { - NotifyFrameBufferChange(current_color_buffers[index]); - } - last_color_buffers[index] = current_color_buffers[index]; - }; if (index >= regs.rt_control.count) { - Notify(); return current_color_buffers[index] = {}; } if (regs.rt[index].Address() == 0 || regs.rt[index].format == Tegra::RenderTargetFormat::NONE) { - Notify(); return current_color_buffers[index] = {}; } const SurfaceParams color_params{SurfaceParams::CreateForFramebuffer(index)}; - Notify(); return current_color_buffers[index] = GetSurface(color_params, preserve_contents); } @@ -1391,18 +1382,6 @@ bool RasterizerCacheOpenGL::PartialReinterpretSurface(Surface triggering_surface return true; } -void RasterizerCacheOpenGL::NotifyFrameBufferChange(Surface triggering_surface) { - if (triggering_surface == nullptr) - return; - if (texception) { - return; - } - Surface intersect = CollideOnReinterpretedSurface(triggering_surface->GetAddr()); - if (intersect != nullptr) { - PartialReinterpretSurface(triggering_surface, intersect); - } -} - void RasterizerCacheOpenGL::SignalPreDrawCall() { if (texception) { glTextureBarrier(); diff --git a/src/video_core/renderer_opengl/gl_rasterizer_cache.h b/src/video_core/renderer_opengl/gl_rasterizer_cache.h index fd3f9cc72..bbad719b2 100644 --- a/src/video_core/renderer_opengl/gl_rasterizer_cache.h +++ b/src/video_core/renderer_opengl/gl_rasterizer_cache.h @@ -488,9 +488,6 @@ private: /// Tries to get a reserved surface for the specified parameters Surface TryGetReservedSurface(const SurfaceParams& params); - /// When a render target is changed, this method is called with the previous render target - void NotifyFrameBufferChange(Surface triggering_surface); - // Partialy reinterpret a surface based on a triggering_surface that collides with it. bool PartialReinterpretSurface(Surface triggering_surface, Surface intersect); @@ -535,7 +532,6 @@ private: auto interval = GetReinterpretInterval(r_surface); reinterpreted_surfaces.insert({interval, r_surface}); r_surface->MarkReinterpreted(); - run_texception_pass = true; } Surface CollideOnReinterpretedSurface(VAddr addr) const {