diff --git a/src/video_core/rasterizer_cache/rasterizer_cache.cpp b/src/video_core/rasterizer_cache/rasterizer_cache.cpp index d2ae5aef9..f9eb4be63 100644 --- a/src/video_core/rasterizer_cache/rasterizer_cache.cpp +++ b/src/video_core/rasterizer_cache/rasterizer_cache.cpp @@ -584,10 +584,12 @@ SurfaceSurfaceRect_Tuple RasterizerCacheOpenGL::GetFramebufferSurfaces( const auto& regs = Pica::g_state.regs; const auto& config = regs.framebuffer.framebuffer; - // update resolution_scale_factor and reset cache if changed - if ((resolution_scale_factor != VideoCore::GetResolutionScaleFactor()) || - (VideoCore::g_texture_filter_update_requested.exchange(false) && - texture_filterer->Reset(Settings::values.texture_filter_name, resolution_scale_factor))) { + // Update resolution_scale_factor and reset cache if changed + const bool resolution_scale_changed = resolution_scale_factor != VideoCore::GetResolutionScaleFactor(); + const bool texture_filter_changed = VideoCore::g_texture_filter_update_requested.exchange(false) + && texture_filterer->Reset(Settings::values.texture_filter_name, VideoCore::GetResolutionScaleFactor()); + + if (resolution_scale_changed || texture_filter_changed) { resolution_scale_factor = VideoCore::GetResolutionScaleFactor(); FlushAll(); while (!surface_cache.empty())