diff options
| author | xbzk <xbzk@eden-emu.dev> | 2026-05-24 01:02:01 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-05-24 01:02:01 +0200 |
| commit | eabd1017ccec18eadfa3f05971d09a1fb4c77097 (patch) | |
| tree | d0af0acdd073dec3a775e7992ef9878c2657785e /src/video_core/fence_manager.h | |
| parent | b870bd255c2255ce4ec016560b3c8c58ae4368ca (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.h | 6 |
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(); } |
