diff options
author | Fernando Sahmkow <fsahmkow27@gmail.com> | 2019-02-10 00:19:16 +0100 |
---|---|---|
committer | FernandoS27 <fsahmkow27@gmail.com> | 2019-02-28 02:58:47 +0100 |
commit | e64fa4d2ea1519d325355711b5247cec6afd7d56 (patch) | |
tree | 7c893fba2f715e490044451d28124194411b215f /src | |
parent | Remove certain optimizations that caused texception to fail in certain scenarios. (diff) | |
download | yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar.gz yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar.bz2 yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar.lz yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar.xz yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.tar.zst yuzu-e64fa4d2ea1519d325355711b5247cec6afd7d56.zip |
Diffstat (limited to 'src')
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.cpp | 21 | ||||
-rw-r--r-- | src/video_core/renderer_opengl/gl_rasterizer_cache.h | 4 |
2 files changed, 0 insertions, 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 { |