diff options
| author | MaranBr <maranbr@eden-emu.dev> | 2026-09-26 05:01:27 +0200 |
|---|---|---|
| committer | crueter <crueter@eden-emu.dev> | 2026-09-26 05:01:27 +0200 |
| commit | f273423b2b83f1a37cc7c1a7a92601f26e0c12ae (patch) | |
| tree | 26266a3bbaeb1151b7e28241c2d578696b017811 /src/video_core/query_cache | |
| parent | 87d2f03c39bc441055d593a7913f63a017795359 (diff) | |
[buffer_cache] Simplify GPU fence synchronization and remove GPU buffer readback (#4477)
- [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions).
- [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md)
- [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability.
-------------------
This is understood to improve GPU synchronization within the buffer cache in certain edge cases.
GPU Fence Strict is no longer necessary. We now apply the stronger synchronization only in the specific case that actually requires it.
The GPU Buffer Readback has been removed, as it is no longer needed following PR #4473.
Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4477
Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/video_core/query_cache')
| -rw-r--r-- | src/video_core/query_cache/query_cache.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/video_core/query_cache/query_cache.h b/src/video_core/query_cache/query_cache.h index 5404dec943..b8c1bc4f45 100644 --- a/src/video_core/query_cache/query_cache.h +++ b/src/video_core/query_cache/query_cache.h @@ -260,7 +260,7 @@ void QueryCacheBase<Traits>::CounterReport(GPUVAddr addr, QueryType counter_type }; u8* pointer = impl->device_memory.template GetPointer<u8>(cpu_addr); u8* pointer_timestamp = impl->device_memory.template GetPointer<u8>(cpu_addr + 8); - bool is_synced = (Settings::IsGPUFenceBehaviorDefault() ? !Settings::IsGPULevelHigh() : !Settings::IsGPUFenceBehaviorBalanced() && !Settings::IsGPUFenceBehaviorAccurate() && !Settings::IsGPUFenceBehaviorStrict()) && is_fence; + bool is_synced = (Settings::IsGPUFenceBehaviorDefault() ? !Settings::IsGPULevelHigh() : !Settings::IsGPUFenceBehaviorBalanced() && !Settings::IsGPUFenceBehaviorAccurate()) && is_fence; std::function<void()> operation([this, is_synced, streamer, query_base = query, query_location, pointer, pointer_timestamp] { if (True(query_base->flags & QueryFlagBits::IsInvalidated)) { |
