summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFernando Sahmkow <fsahmkow27@gmail.com>2019-02-10 00:19:16 +0100
committerFernandoS27 <fsahmkow27@gmail.com>2019-02-28 02:58:47 +0100
commite64fa4d2ea1519d325355711b5247cec6afd7d56 (patch)
tree7c893fba2f715e490044451d28124194411b215f
parentRemove certain optimizations that caused texception to fail in certain scenarios. (diff)
downloadyuzu-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
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.cpp21
-rw-r--r--src/video_core/renderer_opengl/gl_rasterizer_cache.h4
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 {