Revert [Android] 0 FPS Error fix for certain titles.
Some checks are pending
eden-build / windows (msvc) (push) Waiting to run
eden-build / linux (push) Waiting to run
eden-build / android (push) Waiting to run
eden-build / source (push) Successful in 4m9s

revert [android] Fix 0fps errors on DKCR, Subnautica, and Ori 2 (#79)

Co-authored-by: Pavel Barabanov <pavelbarabanov94@gmail.com>
Reviewed-on: #79


Option reverted due problems caused with another games and make some advances worst when testing, if necessary it's going to be refined to be converted into a toggle.
This commit is contained in:
CamilleLaVey 2025-07-21 13:44:26 +02:00
parent be97bf3c1b
commit be9a415157

View file

@ -1,6 +1,3 @@
// SPDX-FileCopyrightText: Copyright 2025 Eden Emulator Project
// SPDX-License-Identifier: GPL-3.0-or-later
// SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project // SPDX-FileCopyrightText: Copyright 2020 yuzu Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later // SPDX-License-Identifier: GPL-2.0-or-later
@ -76,27 +73,15 @@ public:
void SignalFence(std::function<void()>&& func) { void SignalFence(std::function<void()>&& func) {
bool delay_fence = Settings::IsGPULevelHigh(); bool delay_fence = Settings::IsGPULevelHigh();
#ifdef __ANDROID__
if (!delay_fence) {
TryReleasePendingFences<false>();
}
#else
if constexpr (!can_async_check) { if constexpr (!can_async_check) {
TryReleasePendingFences<false>(); TryReleasePendingFences<false>();
} }
#endif
const bool should_flush = ShouldFlush(); const bool should_flush = ShouldFlush();
CommitAsyncFlushes(); CommitAsyncFlushes();
TFence new_fence = CreateFence(!should_flush); TFence new_fence = CreateFence(!should_flush);
#ifdef __ANDROID__
if (delay_fence) {
guard.lock();
}
#else
if constexpr (can_async_check) { if constexpr (can_async_check) {
guard.lock(); guard.lock();
} }
#endif
if (delay_fence) { if (delay_fence) {
uncommitted_operations.emplace_back(std::move(func)); uncommitted_operations.emplace_back(std::move(func));
} }
@ -109,17 +94,10 @@ public:
if (should_flush) { if (should_flush) {
rasterizer.FlushCommands(); rasterizer.FlushCommands();
} }
#ifdef __ANDROID__
if (delay_fence) {
guard.unlock();
cv.notify_all();
}
#else
if constexpr (can_async_check) { if constexpr (can_async_check) {
guard.unlock(); guard.unlock();
cv.notify_all(); cv.notify_all();
} }
#endif
rasterizer.InvalidateGPUCache(); rasterizer.InvalidateGPUCache();
} }