aboutsummaryrefslogtreecommitdiff
path: root/src/video_core/dma_pusher.cpp
diff options
context:
space:
mode:
authorMaranBr <maranbr@outlook.com>2025-09-16 18:42:48 +0200
committercrueter <crueter@eden-emu.dev>2025-09-16 18:42:48 +0200
commit19036c59b571056ac410d3ec46ca07cd08d28c9d (patch)
treedb1da045373dd04dae453f6b6f58fca46572855a /src/video_core/dma_pusher.cpp
parent80dfc3d76f918665f574f12b05f3e7c57271903e (diff)
[video_core] Simplify DMA options (#525)
This simplifies DMA options in a clearer and more objective way. Co-authored-by: PavelBARABANOV <pavelbarabanov94@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/525 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: Shinmegumi <shinmegumi@eden-emu.dev> Co-authored-by: MaranBr <maranbr@outlook.com> Co-committed-by: MaranBr <maranbr@outlook.com>
Diffstat (limited to 'src/video_core/dma_pusher.cpp')
-rw-r--r--src/video_core/dma_pusher.cpp17
1 files changed, 2 insertions, 15 deletions
diff --git a/src/video_core/dma_pusher.cpp b/src/video_core/dma_pusher.cpp
index 4b9a506cdf..a9bcd150e6 100644
--- a/src/video_core/dma_pusher.cpp
+++ b/src/video_core/dma_pusher.cpp
@@ -102,23 +102,10 @@ bool DmaPusher::Step() {
ProcessCommands(headers);
};
- const Settings::DmaAccuracy accuracy = Settings::values.dma_accuracy.GetValue();
- const bool use_gpu_accuracy = accuracy == Settings::DmaAccuracy::Default;
+ const bool use_safe = Settings::IsDMALevelDefault() ? Settings::IsGPULevelHigh() : Settings::IsDMALevelSafe();
- // reduces eye bleeding but also macros are dumb so idk
-#define CHECK_LEVEL(level) use_gpu_accuracy ? Settings::IsGPULevel##level() : accuracy == Settings::DmaAccuracy::level;
- const bool force_safe = CHECK_LEVEL(Extreme)
- const bool unsafe_compute = CHECK_LEVEL(High)
-#undef CHECK_LEVEL
-
- if (force_safe) {
+ if (use_safe) {
safe_process();
- } else if (unsafe_compute) {
- if (dma_state.method >= MacroRegistersStart) {
- unsafe_process();
- } else {
- safe_process();
- }
} else {
unsafe_process();
}