[arm] Add "debugging" cpu accuracy option to replace CPU debug toggle #2640
11 changed files with 84 additions and 105 deletions
|
@ -10,7 +10,6 @@ import org.yuzu.yuzu_emu.utils.NativeConfig
|
||||||
|
|
||||||
enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
enum class BooleanSetting(override val key: String) : AbstractBooleanSetting {
|
||||||
AUDIO_MUTED("audio_muted"),
|
AUDIO_MUTED("audio_muted"),
|
||||||
CPU_DEBUG_MODE("cpu_debug_mode"),
|
|
||||||
FASTMEM("cpuopt_fastmem"),
|
FASTMEM("cpuopt_fastmem"),
|
||||||
FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives"),
|
FASTMEM_EXCLUSIVES("cpuopt_fastmem_exclusives"),
|
||||||
CORE_SYNC_CORE_SPEED("sync_core_speed"),
|
CORE_SYNC_CORE_SPEED("sync_core_speed"),
|
||||||
|
|
|
@ -764,13 +764,6 @@ abstract class SettingsItem(
|
||||||
descriptionId = R.string.use_auto_stub_description
|
descriptionId = R.string.use_auto_stub_description
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
put(
|
|
||||||
SwitchSetting(
|
|
||||||
BooleanSetting.CPU_DEBUG_MODE,
|
|
||||||
titleId = R.string.cpu_debug_mode,
|
|
||||||
descriptionId = R.string.cpu_debug_mode_description
|
|
||||||
)
|
|
||||||
)
|
|
||||||
|
|
||||||
val fastmem = object : AbstractBooleanSetting {
|
val fastmem = object : AbstractBooleanSetting {
|
||||||
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
override fun getBoolean(needsGlobal: Boolean): Boolean =
|
||||||
|
@ -784,7 +777,6 @@ abstract class SettingsItem(
|
||||||
|
|
||||||
override val key: String = FASTMEM_COMBINED
|
override val key: String = FASTMEM_COMBINED
|
||||||
override val isRuntimeModifiable: Boolean = false
|
override val isRuntimeModifiable: Boolean = false
|
||||||
override val pairedSettingKey = BooleanSetting.CPU_DEBUG_MODE.key
|
|
||||||
override val defaultValue: Boolean = true
|
override val defaultValue: Boolean = true
|
||||||
override val isSwitchable: Boolean = true
|
override val isSwitchable: Boolean = true
|
||||||
override var global: Boolean
|
override var global: Boolean
|
||||||
|
|
|
@ -1158,7 +1158,6 @@ class SettingsFragmentPresenter(
|
||||||
add(IntSetting.CPU_BACKEND.key)
|
add(IntSetting.CPU_BACKEND.key)
|
||||||
add(IntSetting.CPU_ACCURACY.key)
|
add(IntSetting.CPU_ACCURACY.key)
|
||||||
add(BooleanSetting.USE_AUTO_STUB.key)
|
add(BooleanSetting.USE_AUTO_STUB.key)
|
||||||
add(BooleanSetting.CPU_DEBUG_MODE.key)
|
|
||||||
add(SettingsItem.FASTMEM_COMBINED)
|
add(SettingsItem.FASTMEM_COMBINED)
|
||||||
|
|
||||||
add(HeaderSetting(R.string.log))
|
add(HeaderSetting(R.string.log))
|
||||||
|
|
|
@ -163,11 +163,11 @@ bool IsDMALevelSafe() {
|
||||||
}
|
}
|
||||||
|
|
||||||
bool IsFastmemEnabled() {
|
bool IsFastmemEnabled() {
|
||||||
if (values.cpu_debug_mode) {
|
if (values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Debugging) {
|
||||||
return static_cast<bool>(values.cpuopt_fastmem);
|
return bool(values.cpuopt_fastmem);
|
||||||
}
|
}
|
||||||
if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) {
|
if (values.cpu_accuracy.GetValue() == CpuAccuracy::Unsafe) {
|
||||||
return static_cast<bool>(values.cpuopt_unsafe_host_mmu);
|
return bool(values.cpuopt_unsafe_host_mmu);
|
||||||
}
|
}
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -275,9 +275,6 @@ struct Values {
|
||||||
true,
|
true,
|
||||||
true,
|
true,
|
||||||
&use_custom_cpu_ticks};
|
&use_custom_cpu_ticks};
|
||||||
|
|
||||||
SwitchableSetting<bool> cpu_debug_mode{linkage, false, "cpu_debug_mode", Category::CpuDebug};
|
|
||||||
|
|
||||||
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
|
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
|
||||||
Setting<bool> cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::CpuDebug};
|
Setting<bool> cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::CpuDebug};
|
||||||
Setting<bool> cpuopt_return_stack_buffer{linkage, true, "cpuopt_return_stack_buffer",
|
Setting<bool> cpuopt_return_stack_buffer{linkage, true, "cpuopt_return_stack_buffer",
|
||||||
|
|
|
@ -136,7 +136,7 @@ ENUM(ShaderBackend, Glsl, Glasm, SpirV);
|
||||||
ENUM(GpuAccuracy, Normal, High, Extreme);
|
ENUM(GpuAccuracy, Normal, High, Extreme);
|
||||||
ENUM(DmaAccuracy, Default, Unsafe, Safe);
|
ENUM(DmaAccuracy, Default, Unsafe, Safe);
|
||||||
ENUM(CpuBackend, Dynarmic, Nce);
|
ENUM(CpuBackend, Dynarmic, Nce);
|
||||||
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
|
ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid, Debugging);
|
||||||
ENUM(CpuClock, Boost, Fast)
|
ENUM(CpuClock, Boost, Fast)
|
||||||
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
|
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb, Memory_10Gb, Memory_12Gb);
|
||||||
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
||||||
|
|
|
@ -229,7 +229,8 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safe optimizations
|
// Safe optimizations
|
||||||
if (Settings::values.cpu_debug_mode) {
|
switch (Settings::values.cpu_accuracy.GetValue()) {
|
||||||
|
case Settings::CpuAccuracy::Debugging:
|
||||||
if (!Settings::values.cpuopt_page_tables) {
|
if (!Settings::values.cpuopt_page_tables) {
|
||||||
config.page_table = nullptr;
|
config.page_table = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -267,51 +268,51 @@ std::shared_ptr<Dynarmic::A32::Jit> ArmDynarmic32::MakeJit(Common::PageTable* pa
|
||||||
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
||||||
config.check_halt_on_memory_access = true;
|
config.check_halt_on_memory_access = true;
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
// Unsafe optimizations
|
// Unsafe optimizations
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Unsafe) {
|
case Settings::CpuAccuracy::Unsafe:
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
||||||
config.fastmem_pointer = std::nullopt;
|
|
||||||
config.fastmem_exclusive_access = false;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_unfuse_fma) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_ignore_standard_fpcr) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Curated optimizations
|
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) {
|
|
||||||
config.unsafe_optimizations = true;
|
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
config.fastmem_exclusive_access = false;
|
config.fastmem_exclusive_access = false;
|
||||||
#endif
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_unfuse_fma) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_ignore_standard_fpcr) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
// Paranoia mode for debugging optimizations
|
// Curated optimizations
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Paranoid) {
|
case Settings::CpuAccuracy::Auto:
|
||||||
config.unsafe_optimizations = false;
|
config.unsafe_optimizations = true;
|
||||||
config.optimizations = Dynarmic::no_optimizations;
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
}
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
config.fastmem_exclusive_access = false;
|
||||||
|
#endif
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreStandardFPCRValue;
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
|
break;
|
||||||
|
// Paranoia mode for debugging optimizations
|
||||||
|
case Settings::CpuAccuracy::Paranoid:
|
||||||
|
config.unsafe_optimizations = false;
|
||||||
|
config.optimizations = Dynarmic::no_optimizations;
|
||||||
|
break;
|
||||||
|
case Settings::CpuAccuracy::Accurate:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::make_unique<Dynarmic::A32::Jit>(config);
|
return std::make_unique<Dynarmic::A32::Jit>(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -287,8 +287,9 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
config.code_cache_size = std::uint32_t(8_MiB);
|
config.code_cache_size = std::uint32_t(8_MiB);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Safe optimizations
|
switch (Settings::values.cpu_accuracy.GetValue()) {
|
||||||
if (Settings::values.cpu_debug_mode) {
|
// Debug mode
|
||||||
|
case Settings::CpuAccuracy::Debugging:
|
||||||
if (!Settings::values.cpuopt_page_tables) {
|
if (!Settings::values.cpuopt_page_tables) {
|
||||||
config.page_table = nullptr;
|
config.page_table = nullptr;
|
||||||
}
|
}
|
||||||
|
@ -326,50 +327,50 @@ std::shared_ptr<Dynarmic::A64::Jit> ArmDynarmic64::MakeJit(Common::PageTable* pa
|
||||||
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
if (!Settings::values.cpuopt_ignore_memory_aborts) {
|
||||||
config.check_halt_on_memory_access = true;
|
config.check_halt_on_memory_access = true;
|
||||||
}
|
}
|
||||||
} else {
|
break;
|
||||||
// Unsafe optimizations
|
// Unsafe optimizations
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Unsafe) {
|
case Settings::CpuAccuracy::Unsafe:
|
||||||
config.unsafe_optimizations = true;
|
config.unsafe_optimizations = true;
|
||||||
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
if (!Settings::values.cpuopt_unsafe_host_mmu) {
|
||||||
config.fastmem_pointer = std::nullopt;
|
|
||||||
config.fastmem_exclusive_access = false;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_unfuse_fma) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_fastmem_check) {
|
|
||||||
config.fastmem_address_space_bits = 64;
|
|
||||||
}
|
|
||||||
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Curated optimizations
|
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Auto) {
|
|
||||||
config.unsafe_optimizations = true;
|
|
||||||
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
|
||||||
config.fastmem_pointer = std::nullopt;
|
config.fastmem_pointer = std::nullopt;
|
||||||
config.fastmem_exclusive_access = false;
|
config.fastmem_exclusive_access = false;
|
||||||
#endif
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_unfuse_fma) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_reduce_fp_error) {
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_ReducedErrorFP;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_inaccurate_nan) {
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_InaccurateNaN;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_fastmem_check) {
|
||||||
config.fastmem_address_space_bits = 64;
|
config.fastmem_address_space_bits = 64;
|
||||||
|
}
|
||||||
|
if (Settings::values.cpuopt_unsafe_ignore_global_monitor) {
|
||||||
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
// Paranoia mode for debugging optimizations
|
// Safe optimisations
|
||||||
if (Settings::values.cpu_accuracy.GetValue() == Settings::CpuAccuracy::Paranoid) {
|
case Settings::CpuAccuracy::Auto:
|
||||||
config.unsafe_optimizations = false;
|
config.unsafe_optimizations = true;
|
||||||
config.optimizations = Dynarmic::no_optimizations;
|
#if defined(__FreeBSD__) || defined(__OpenBSD__) || defined(__sun__)
|
||||||
}
|
config.fastmem_pointer = std::nullopt;
|
||||||
|
config.fastmem_exclusive_access = false;
|
||||||
|
#endif
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_UnfuseFMA;
|
||||||
|
config.fastmem_address_space_bits = 64;
|
||||||
|
config.optimizations |= Dynarmic::OptimizationFlag::Unsafe_IgnoreGlobalMonitor;
|
||||||
|
break;
|
||||||
|
// Paranoia mode for debugging optimizations
|
||||||
|
case Settings::CpuAccuracy::Paranoid:
|
||||||
|
config.unsafe_optimizations = false;
|
||||||
|
config.optimizations = Dynarmic::no_optimizations;
|
||||||
|
break;
|
||||||
|
case Settings::CpuAccuracy::Accurate:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
return std::make_shared<Dynarmic::A64::Jit>(config);
|
return std::make_shared<Dynarmic::A64::Jit>(config);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -510,6 +510,7 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QObject* parent)
|
||||||
PAIR(CpuAccuracy, Accurate, tr("Accurate")),
|
PAIR(CpuAccuracy, Accurate, tr("Accurate")),
|
||||||
PAIR(CpuAccuracy, Unsafe, tr("Unsafe")),
|
PAIR(CpuAccuracy, Unsafe, tr("Unsafe")),
|
||||||
PAIR(CpuAccuracy, Paranoid, tr("Paranoid (disables most optimizations)")),
|
PAIR(CpuAccuracy, Paranoid, tr("Paranoid (disables most optimizations)")),
|
||||||
|
PAIR(CpuAccuracy, Debugging, tr("Debugging")),
|
||||||
}});
|
}});
|
||||||
translations->insert({Settings::EnumMetadata<Settings::CpuBackend>::Index(),
|
translations->insert({Settings::EnumMetadata<Settings::CpuBackend>::Index(),
|
||||||
{
|
{
|
||||||
|
|
|
@ -62,8 +62,6 @@ void ConfigureDebug::SetConfiguration() {
|
||||||
ui->enable_graphics_debugging->setChecked(Settings::values.renderer_debug.GetValue());
|
ui->enable_graphics_debugging->setChecked(Settings::values.renderer_debug.GetValue());
|
||||||
ui->enable_shader_feedback->setEnabled(runtime_lock);
|
ui->enable_shader_feedback->setEnabled(runtime_lock);
|
||||||
ui->enable_shader_feedback->setChecked(Settings::values.renderer_shader_feedback.GetValue());
|
ui->enable_shader_feedback->setChecked(Settings::values.renderer_shader_feedback.GetValue());
|
||||||
ui->enable_cpu_debugging->setEnabled(runtime_lock);
|
|
||||||
ui->enable_cpu_debugging->setChecked(Settings::values.cpu_debug_mode.GetValue());
|
|
||||||
ui->enable_nsight_aftermath->setEnabled(runtime_lock);
|
ui->enable_nsight_aftermath->setEnabled(runtime_lock);
|
||||||
ui->enable_nsight_aftermath->setChecked(Settings::values.enable_nsight_aftermath.GetValue());
|
ui->enable_nsight_aftermath->setChecked(Settings::values.enable_nsight_aftermath.GetValue());
|
||||||
ui->dump_shaders->setEnabled(runtime_lock);
|
ui->dump_shaders->setEnabled(runtime_lock);
|
||||||
|
@ -106,7 +104,6 @@ void ConfigureDebug::ApplyConfiguration() {
|
||||||
Settings::values.enable_renderdoc_hotkey = ui->enable_renderdoc_hotkey->isChecked();
|
Settings::values.enable_renderdoc_hotkey = ui->enable_renderdoc_hotkey->isChecked();
|
||||||
Settings::values.disable_buffer_reorder = ui->disable_buffer_reorder->isChecked();
|
Settings::values.disable_buffer_reorder = ui->disable_buffer_reorder->isChecked();
|
||||||
Settings::values.renderer_shader_feedback = ui->enable_shader_feedback->isChecked();
|
Settings::values.renderer_shader_feedback = ui->enable_shader_feedback->isChecked();
|
||||||
Settings::values.cpu_debug_mode = ui->enable_cpu_debugging->isChecked();
|
|
||||||
Settings::values.enable_nsight_aftermath = ui->enable_nsight_aftermath->isChecked();
|
Settings::values.enable_nsight_aftermath = ui->enable_nsight_aftermath->isChecked();
|
||||||
Settings::values.dump_shaders = ui->dump_shaders->isChecked();
|
Settings::values.dump_shaders = ui->dump_shaders->isChecked();
|
||||||
Settings::values.dump_macros = ui->dump_macros->isChecked();
|
Settings::values.dump_macros = ui->dump_macros->isChecked();
|
||||||
|
|
|
@ -435,13 +435,6 @@
|
||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item row="1" column="0">
|
|
||||||
<widget class="QCheckBox" name="enable_cpu_debugging">
|
|
||||||
<property name="text">
|
|
||||||
<string>Enable CPU Debugging</string>
|
|
||||||
</property>
|
|
||||||
</widget>
|
|
||||||
</item>
|
|
||||||
<item row="2" column="0">
|
<item row="2" column="0">
|
||||||
<widget class="QCheckBox" name="use_debug_asserts">
|
<widget class="QCheckBox" name="use_debug_asserts">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
|
@ -582,7 +575,6 @@
|
||||||
<tabstop>fs_access_log</tabstop>
|
<tabstop>fs_access_log</tabstop>
|
||||||
<tabstop>reporting_services</tabstop>
|
<tabstop>reporting_services</tabstop>
|
||||||
<tabstop>quest_flag</tabstop>
|
<tabstop>quest_flag</tabstop>
|
||||||
<tabstop>enable_cpu_debugging</tabstop>
|
|
||||||
<tabstop>use_debug_asserts</tabstop>
|
<tabstop>use_debug_asserts</tabstop>
|
||||||
</tabstops>
|
</tabstops>
|
||||||
<resources/>
|
<resources/>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue