aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorMaranBr <maranbr@eden-emu.dev>2026-09-26 05:01:27 +0200
committercrueter <crueter@eden-emu.dev>2026-09-26 05:01:27 +0200
commitf273423b2b83f1a37cc7c1a7a92601f26e0c12ae (patch)
tree26266a3bbaeb1151b7e28241c2d578696b017811 /src/common
parent87d2f03c39bc441055d593a7913f63a017795359 (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/common')
-rw-r--r--src/common/settings.cpp4
-rw-r--r--src/common/settings.h10
-rw-r--r--src/common/settings_enums.h2
3 files changed, 2 insertions, 14 deletions
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index bc46b61bb4..3f5154026e 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -178,10 +178,6 @@ bool IsGPUFenceBehaviorAccurate() {
return values.gpu_fence_behavior.GetValue() == GpuFenceBehavior::Accurate;
}
-bool IsGPUFenceBehaviorStrict() {
- return values.gpu_fence_behavior.GetValue() == GpuFenceBehavior::Strict;
-}
-
bool IsFastmemEnabled() {
if (values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Debugging)
return bool(values.cpuopt_fastmem);
diff --git a/src/common/settings.h b/src/common/settings.h
index c1c2d4f0df..5d66f49ebd 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -525,7 +525,7 @@ struct Values {
SwitchableSetting<GpuFenceBehavior, true> gpu_fence_behavior{linkage,
GpuFenceBehavior::Default,
GpuFenceBehavior::Default,
- GpuFenceBehavior::Strict,
+ GpuFenceBehavior::Accurate,
"gpu_fence_behavior",
Category::RendererAdvanced,
Specialization::Default,
@@ -655,13 +655,6 @@ struct Values {
SwitchableSetting<bool> rescale_hack{linkage, false, "rescale_hack",
Category::RendererHacks};
- SwitchableSetting<bool> enable_gpu_buffer_readback{linkage,
- false,
- "enable_gpu_buffer_readback",
- Category::RendererAdvanced,
- Specialization::Default,
- true,
- true};
SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders",
Category::RendererHacks};
@@ -979,7 +972,6 @@ bool IsDMALevelSafe();
bool IsGPUFenceBehaviorDefault();
bool IsGPUFenceBehaviorBalanced();
bool IsGPUFenceBehaviorAccurate();
-bool IsGPUFenceBehaviorStrict();
bool IsFastmemEnabled();
void SetNceEnabled(bool is_64bit);
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 4b406f4c35..55acb0ae8c 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -137,7 +137,7 @@ ENUM(VramUsageMode, Conservative, Aggressive);
ENUM(RendererBackend, OpenGL_GLSL, Vulkan, Null, OpenGL_GLASM, OpenGL_SPIRV);
ENUM(GpuAccuracy, Low, High);
ENUM(DmaAccuracy, Default, Unsafe, Safe);
-ENUM(GpuFenceBehavior, Default, Immediate, Balanced, Accurate, Strict);
+ENUM(GpuFenceBehavior, Default, Immediate, Balanced, Accurate);
ENUM(CpuBackend, Dynarmic, Nce);
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid, Debugging);
ENUM(CpuClock, Normal, Boost, Overclock)