From 7e76c1642cb4dfde5bfc97600ca3df7dcbea01de Mon Sep 17 00:00:00 2001 From: Fernando Sahmkow Date: Sat, 22 Apr 2023 11:59:57 +0200 Subject: Accuracy Normal: reduce accuracy further for perf improvements in Project Lime --- src/video_core/fence_manager.h | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'src/video_core/fence_manager.h') diff --git a/src/video_core/fence_manager.h b/src/video_core/fence_manager.h index 027e663bf..19bbdd547 100644 --- a/src/video_core/fence_manager.h +++ b/src/video_core/fence_manager.h @@ -64,19 +64,24 @@ public: } void SignalFence(std::function&& func) { + bool delay_fence = Settings::IsGPULevelHigh(); if constexpr (!can_async_check) { TryReleasePendingFences(); } - std::function callback = std::move(func); const bool should_flush = ShouldFlush(); CommitAsyncFlushes(); TFence new_fence = CreateFence(!should_flush); if constexpr (can_async_check) { guard.lock(); } + if (delay_fence) { + uncommitted_operations.emplace_back(std::move(func)); + } pending_operations.emplace_back(std::move(uncommitted_operations)); QueueFence(new_fence); - callback(); + if (!delay_fence) { + func(); + } fences.push(std::move(new_fence)); if (should_flush) { rasterizer.FlushCommands(); -- cgit v1.2.3