aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/fence_manager.h
diff options
context:
space:
mode:
authorxbzk <xbzk@eden-emu.dev>2026-05-24 01:02:01 +0200
committercrueter <crueter@eden-emu.dev>2026-05-24 01:02:01 +0200
commiteabd1017ccec18eadfa3f05971d09a1fb4c77097 (patch)
treed0af0acdd073dec3a775e7992ef9878c2657785e /src/video_core/fence_manager.h
parentb870bd255c2255ce4ec016560b3c8c58ae4368ca (diff)
[fence_manager, ui] antiflicker fix + toggle integration (#4004)
tldr: we (me and maran) found the missing piece to make delay_fence and should_flush coop and cover all remaining flicker issues tested so far. the lil change is in src/video_core/fence_manager.h the rest is toggle stuff. END (credits rolls up) post credits scene for the toggle drama: i've been forced to use custom builds for around 1 year now, coz gpu mode above fast was pulling performance down yet not covering flicker entirely in most games tested. and we know that it's a mess to rely on gpu mode as it brings along a bunch of undesired stuff. i need this toggle. and i've seem far less relevant before, so hey, gimme this one so i can call it mine :3 Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4004 Reviewed-by: MaranBr <maranbr@eden-emu.dev> Reviewed-by: Lizzie <lizzie@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/video_core/fence_manager.h')
-rw-r--r--src/video_core/fence_manager.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h
index e4c4329e81..b9f5e1a9c0 100644
--- a/src/video_core/fence_manager.h
+++ b/src/video_core/fence_manager.h
@@ -1,4 +1,4 @@
-// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
+// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
@@ -76,9 +76,9 @@ public:
TryReleasePendingFences<false>();
}
const bool should_flush = ShouldFlush();
- const bool delay_fence = Settings::IsGPULevelHigh() || (Settings::IsGPULevelMedium() && should_flush);
+ const bool delay_fence = Settings::values.antiflicker.GetValue() || !Settings::IsGPULevelLow();
CommitAsyncFlushes();
- TFence new_fence = CreateFence(!should_flush);
+ TFence new_fence = CreateFence(!should_flush && !delay_fence);
if constexpr (can_async_check) {
guard.lock();
}