fix comp + make code slightly easier to read
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
All checks were successful
eden-license / license-header (pull_request) Successful in 31s
Signed-off-by: crueter <crueter@eden-emu.dev>
This commit is contained in:
parent
d1ec074367
commit
201ad66e8f
2 changed files with 17 additions and 18 deletions
|
@ -427,17 +427,19 @@ struct Values {
|
||||||
Specialization::Default,
|
Specialization::Default,
|
||||||
true,
|
true,
|
||||||
true};
|
true};
|
||||||
|
|
||||||
GpuAccuracy current_gpu_accuracy{GpuAccuracy::High};
|
GpuAccuracy current_gpu_accuracy{GpuAccuracy::High};
|
||||||
|
|
||||||
SwitchableSetting<DmaAccuracy, true> dma_accuracy{linkage,
|
SwitchableSetting<DmaAccuracy, true> dma_accuracy{linkage,
|
||||||
DmaAccuracy::Default,
|
DmaAccuracy::Default,
|
||||||
DmaAccuracy::Normal,
|
DmaAccuracy::Default,
|
||||||
DmaAccuracy::High,
|
|
||||||
DmaAccuracy::Extreme,
|
DmaAccuracy::Extreme,
|
||||||
"dma_accuracy",
|
"dma_accuracy",
|
||||||
Category::RendererAdvanced,
|
Category::RendererAdvanced,
|
||||||
Specialization::Default,
|
Specialization::Default,
|
||||||
true,
|
true,
|
||||||
true};
|
true};
|
||||||
|
|
||||||
SwitchableSetting<AnisotropyMode, true> max_anisotropy{linkage,
|
SwitchableSetting<AnisotropyMode, true> max_anisotropy{linkage,
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
AnisotropyMode::Default,
|
AnisotropyMode::Default,
|
||||||
|
|
|
@ -102,29 +102,26 @@ bool DmaPusher::Step() {
|
||||||
ProcessCommands(headers);
|
ProcessCommands(headers);
|
||||||
};
|
};
|
||||||
|
|
||||||
if (Settings::values.current_gpu_accuracy == DmaAccuracy::Extreme) {
|
const Settings::DmaAccuracy accuracy = Settings::values.dma_accuracy.GetValue();
|
||||||
|
const bool use_gpu_accuracy = accuracy == Settings::DmaAccuracy::Default;
|
||||||
|
|
||||||
|
// 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) {
|
||||||
safe_process();
|
safe_process();
|
||||||
} else if (Settings::values.current_gpu_accuracy == DmaAccuracy::High) {
|
} else if (unsafe_compute) {
|
||||||
if (dma_state.method >= MacroRegistersStart) {
|
if (dma_state.method >= MacroRegistersStart) {
|
||||||
unsafe_process();
|
unsafe_process();
|
||||||
} else {
|
} else {
|
||||||
safe_process();
|
safe_process();
|
||||||
}
|
}
|
||||||
} else if (Settings::values.current_gpu_accuracy == DmaAccuracy::Normal) {
|
} else {
|
||||||
unsafe_process();
|
unsafe_process();
|
||||||
} else if (Settings::values.current_gpu_accuracy == DmaAccuracy::Default) {
|
}
|
||||||
if (Settings::IsGPULevelExtreme()) {
|
|
||||||
safe_process();
|
|
||||||
} else if (Settings::IsGPULevelHigh()) {
|
|
||||||
if (dma_state.method >= MacroRegistersStart) {
|
|
||||||
unsafe_process();
|
|
||||||
} else {
|
|
||||||
safe_process();
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unsafe_process();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dma_pushbuffer_subindex >= command_list.command_lists.size()) {
|
if (dma_pushbuffer_subindex >= command_list.command_lists.size()) {
|
||||||
// We've gone through the current list, remove it from the queue
|
// We've gone through the current list, remove it from the queue
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue