settings: Recategorize a bit

Will help with generating config UI later.
This commit is contained in:
lat9nq 2023-05-07 10:35:28 -04:00
parent 4a825268d6
commit 75d7e40113
6 changed files with 77 additions and 45 deletions

View File

@ -151,14 +151,19 @@ const char* TranslateCategory(Category category) {
case Category::Core: case Category::Core:
return "Core"; return "Core";
case Category::Cpu: case Category::Cpu:
case Category::CpuDebug:
case Category::CpuUnsafe:
return "Cpu"; return "Cpu";
case Category::Renderer: case Category::Renderer:
case Category::RendererAdvanced:
case Category::RendererDebug:
return "Renderer"; return "Renderer";
case Category::System: case Category::System:
return "System"; return "System";
case Category::DataStorage: case Category::DataStorage:
return "Data Storage"; return "Data Storage";
case Category::Debugging: case Category::Debugging:
case Category::DebuggingGraphics:
return "Debugging"; return "Debugging";
case Category::Miscellaneous: case Category::Miscellaneous:
return "Miscellaneous"; return "Miscellaneous";
@ -188,8 +193,6 @@ const char* TranslateCategory(Category category) {
return "Paths"; return "Paths";
case Category::MaxEnum: case Category::MaxEnum:
break; break;
case Category::AdvancedGraphics:
return "Renderer";
} }
return "Miscellaneous"; return "Miscellaneous";
} }

View File

@ -120,11 +120,15 @@ enum class Category : u32 {
Audio, Audio,
Core, Core,
Cpu, Cpu,
CpuDebug,
CpuUnsafe,
Renderer, Renderer,
AdvancedGraphics, RendererAdvanced,
RendererDebug,
System, System,
DataStorage, DataStorage,
Debugging, Debugging,
DebuggingGraphics,
Miscellaneous, Miscellaneous,
Network, Network,
WebService, WebService,
@ -624,53 +628,56 @@ struct Values {
"cpu_accuracy", Category::Cpu}; "cpu_accuracy", Category::Cpu};
// TODO: remove cpu_accuracy_first_time, migration setting added 8 July 2021 // TODO: remove cpu_accuracy_first_time, migration setting added 8 July 2021
Setting<bool> cpu_accuracy_first_time{linkage, true, "cpu_accuracy_first_time", Category::Cpu}; Setting<bool> cpu_accuracy_first_time{linkage, true, "cpu_accuracy_first_time", Category::Cpu};
Setting<bool> cpu_debug_mode{linkage, false, "cpu_debug_mode", Category::Cpu}; Setting<bool> cpu_debug_mode{linkage, false, "cpu_debug_mode", Category::CpuDebug};
Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::Cpu}; Setting<bool> cpuopt_page_tables{linkage, true, "cpuopt_page_tables", Category::CpuDebug};
Setting<bool> cpuopt_block_linking{linkage, true, "cpuopt_block_linking", Category::Cpu}; 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",
Category::Cpu}; Category::CpuDebug};
Setting<bool> cpuopt_fast_dispatcher{linkage, true, "cpuopt_fast_dispatcher", Category::Cpu}; Setting<bool> cpuopt_fast_dispatcher{linkage, true, "cpuopt_fast_dispatcher",
Category::CpuDebug};
Setting<bool> cpuopt_context_elimination{linkage, true, "cpuopt_context_elimination", Setting<bool> cpuopt_context_elimination{linkage, true, "cpuopt_context_elimination",
Category::Cpu}; Category::CpuDebug};
Setting<bool> cpuopt_const_prop{linkage, true, "cpuopt_const_prop", Category::Cpu}; Setting<bool> cpuopt_const_prop{linkage, true, "cpuopt_const_prop", Category::CpuDebug};
Setting<bool> cpuopt_misc_ir{linkage, true, "cpuopt_misc_ir", Category::Cpu}; Setting<bool> cpuopt_misc_ir{linkage, true, "cpuopt_misc_ir", Category::CpuDebug};
Setting<bool> cpuopt_reduce_misalign_checks{linkage, true, "cpuopt_reduce_misalign_checks", Setting<bool> cpuopt_reduce_misalign_checks{linkage, true, "cpuopt_reduce_misalign_checks",
Category::Cpu}; Category::CpuDebug};
Setting<bool> cpuopt_fastmem{linkage, true, "cpuopt_fastmem", Category::Cpu}; Setting<bool> cpuopt_fastmem{linkage, true, "cpuopt_fastmem", Category::CpuDebug};
Setting<bool> cpuopt_fastmem_exclusives{linkage, true, "cpuopt_fastmem_exclusives", Setting<bool> cpuopt_fastmem_exclusives{linkage, true, "cpuopt_fastmem_exclusives",
Category::Cpu}; Category::CpuDebug};
Setting<bool> cpuopt_recompile_exclusives{linkage, true, "cpuopt_recompile_exclusives", Setting<bool> cpuopt_recompile_exclusives{linkage, true, "cpuopt_recompile_exclusives",
Category::Cpu}; Category::CpuDebug};
Setting<bool> cpuopt_ignore_memory_aborts{linkage, true, "cpuopt_ignore_memory_aborts", Setting<bool> cpuopt_ignore_memory_aborts{linkage, true, "cpuopt_ignore_memory_aborts",
Category::Cpu}; Category::CpuDebug};
SwitchableSetting<bool> cpuopt_unsafe_unfuse_fma{linkage, true, "cpuopt_unsafe_unfuse_fma", SwitchableSetting<bool> cpuopt_unsafe_unfuse_fma{linkage, true, "cpuopt_unsafe_unfuse_fma",
Category::Cpu}; Category::CpuUnsafe};
SwitchableSetting<bool> cpuopt_unsafe_reduce_fp_error{ SwitchableSetting<bool> cpuopt_unsafe_reduce_fp_error{
linkage, true, "cpuopt_unsafe_reduce_fp_error", Category::Cpu}; linkage, true, "cpuopt_unsafe_reduce_fp_error", Category::CpuUnsafe};
SwitchableSetting<bool> cpuopt_unsafe_ignore_standard_fpcr{ SwitchableSetting<bool> cpuopt_unsafe_ignore_standard_fpcr{
linkage, true, "cpuopt_unsafe_ignore_standard_fpcr", Category::Cpu}; linkage, true, "cpuopt_unsafe_ignore_standard_fpcr", Category::CpuUnsafe};
SwitchableSetting<bool> cpuopt_unsafe_inaccurate_nan{ SwitchableSetting<bool> cpuopt_unsafe_inaccurate_nan{
linkage, true, "cpuopt_unsafe_inaccurate_nan", Category::Cpu}; linkage, true, "cpuopt_unsafe_inaccurate_nan", Category::CpuUnsafe};
SwitchableSetting<bool> cpuopt_unsafe_fastmem_check{ SwitchableSetting<bool> cpuopt_unsafe_fastmem_check{
linkage, true, "cpuopt_unsafe_fastmem_check", Category::Cpu}; linkage, true, "cpuopt_unsafe_fastmem_check", Category::CpuUnsafe};
SwitchableSetting<bool> cpuopt_unsafe_ignore_global_monitor{ SwitchableSetting<bool> cpuopt_unsafe_ignore_global_monitor{
linkage, true, "cpuopt_unsafe_ignore_global_monitor", Category::Cpu}; linkage, true, "cpuopt_unsafe_ignore_global_monitor", Category::CpuUnsafe};
// Renderer // Renderer
SwitchableSetting<RendererBackend, true> renderer_backend{ SwitchableSetting<RendererBackend, true> renderer_backend{
linkage, RendererBackend::Vulkan, RendererBackend::OpenGL, RendererBackend::Null, linkage, RendererBackend::Vulkan, RendererBackend::OpenGL, RendererBackend::Null,
"backend", Category::Renderer}; "backend", Category::Renderer};
SwitchableSetting<bool> async_presentation{linkage, false, "async_presentation", SwitchableSetting<bool> async_presentation{linkage, false, "async_presentation",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<bool> renderer_force_max_clock{linkage, false, "force_max_clock", SwitchableSetting<bool> renderer_force_max_clock{linkage, false, "force_max_clock",
Category::AdvancedGraphics}; Category::RendererAdvanced};
Setting<bool> renderer_debug{linkage, false, "debug", Category::Renderer}; Setting<bool> renderer_debug{linkage, false, "debug", Category::RendererDebug};
Setting<bool> renderer_shader_feedback{linkage, false, "shader_feedback", Category::Renderer}; Setting<bool> renderer_shader_feedback{linkage, false, "shader_feedback",
Setting<bool> enable_nsight_aftermath{linkage, false, "nsight_aftermath", Category::Renderer}; Category::RendererDebug};
Setting<bool> enable_nsight_aftermath{linkage, false, "nsight_aftermath",
Category::RendererDebug};
Setting<bool> disable_shader_loop_safety_checks{ Setting<bool> disable_shader_loop_safety_checks{
linkage, false, "disable_shader_loop_safety_checks", Category::Renderer}; linkage, false, "disable_shader_loop_safety_checks", Category::RendererDebug};
SwitchableSetting<int> vulkan_device{linkage, 0, "vulkan_device", Category::Renderer}; SwitchableSetting<int> vulkan_device{linkage, 0, "vulkan_device", Category::Renderer};
ResolutionScalingInfo resolution_info{}; ResolutionScalingInfo resolution_info{};
@ -697,7 +704,7 @@ struct Values {
SwitchableSetting<int, true> aspect_ratio{linkage, 0, 0, 4, "aspect_ratio", Category::Renderer}; SwitchableSetting<int, true> aspect_ratio{linkage, 0, 0, 4, "aspect_ratio", Category::Renderer};
SwitchableSetting<AnisotropyMode, true> max_anisotropy{ SwitchableSetting<AnisotropyMode, true> max_anisotropy{
linkage, AnisotropyMode::Automatic, AnisotropyMode::Automatic, AnisotropyMode::X16, linkage, AnisotropyMode::Automatic, AnisotropyMode::Automatic, AnisotropyMode::X16,
"max_anisotropy", Category::AdvancedGraphics}; "max_anisotropy", Category::RendererAdvanced};
SwitchableSetting<bool, false, false> use_speed_limit{linkage, true, "use_speed_limit", SwitchableSetting<bool, false, false> use_speed_limit{linkage, true, "use_speed_limit",
Category::Renderer}; Category::Renderer};
SwitchableSetting<u16, true> speed_limit{linkage, 100, 0, SwitchableSetting<u16, true> speed_limit{linkage, 100, 0,
@ -706,7 +713,7 @@ struct Values {
Category::Renderer}; Category::Renderer};
SwitchableSetting<GPUAccuracy, true, true, true> gpu_accuracy{ SwitchableSetting<GPUAccuracy, true, true, true> gpu_accuracy{
linkage, GPUAccuracy::High, GPUAccuracy::Normal, GPUAccuracy::Extreme, linkage, GPUAccuracy::High, GPUAccuracy::Normal, GPUAccuracy::Extreme,
"gpu_accuracy", Category::AdvancedGraphics}; "gpu_accuracy", Category::RendererAdvanced};
SwitchableSetting<bool> use_asynchronous_gpu_emulation{ SwitchableSetting<bool> use_asynchronous_gpu_emulation{
linkage, true, "use_asynchronous_gpu_emulation", Category::Renderer}; linkage, true, "use_asynchronous_gpu_emulation", Category::Renderer};
SwitchableSetting<NvdecEmulation> nvdec_emulation{linkage, NvdecEmulation::GPU, SwitchableSetting<NvdecEmulation> nvdec_emulation{linkage, NvdecEmulation::GPU,
@ -728,21 +735,21 @@ struct Values {
SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders", SwitchableSetting<bool> use_asynchronous_shaders{linkage, false, "use_asynchronous_shaders",
Category::Renderer}; Category::Renderer};
SwitchableSetting<bool, false, true, true> use_fast_gpu_time{linkage, true, "use_fast_gpu_time", SwitchableSetting<bool, false, true, true> use_fast_gpu_time{linkage, true, "use_fast_gpu_time",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<bool, false, true, true> use_vulkan_driver_pipeline_cache{ SwitchableSetting<bool, false, true, true> use_vulkan_driver_pipeline_cache{
linkage, true, "use_vulkan_driver_pipeline_cache", Category::AdvancedGraphics}; linkage, true, "use_vulkan_driver_pipeline_cache", Category::RendererAdvanced};
SwitchableSetting<bool> enable_compute_pipelines{linkage, false, "enable_compute_pipelines", SwitchableSetting<bool> enable_compute_pipelines{linkage, false, "enable_compute_pipelines",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<AstcRecompression, true> astc_recompression{linkage, SwitchableSetting<AstcRecompression, true> astc_recompression{linkage,
AstcRecompression::Uncompressed, AstcRecompression::Uncompressed,
AstcRecompression::Uncompressed, AstcRecompression::Uncompressed,
AstcRecompression::Bc3, AstcRecompression::Bc3,
"astc_recompression", "astc_recompression",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<bool> use_video_framerate{linkage, false, "use_video_framerate", SwitchableSetting<bool> use_video_framerate{linkage, false, "use_video_framerate",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<bool> barrier_feedback_loops{linkage, true, "barrier_feedback_loops", SwitchableSetting<bool> barrier_feedback_loops{linkage, true, "barrier_feedback_loops",
Category::AdvancedGraphics}; Category::RendererAdvanced};
SwitchableSetting<u8> bg_red{linkage, 0, "bg_red", Category::Renderer}; SwitchableSetting<u8> bg_red{linkage, 0, "bg_red", Category::Renderer};
SwitchableSetting<u8> bg_green{linkage, 0, "bg_green", Category::Renderer}; SwitchableSetting<u8> bg_green{linkage, 0, "bg_green", Category::Renderer};
@ -855,14 +862,18 @@ struct Values {
Setting<std::string> program_args{linkage, std::string(), "program_args", Category::Debugging}; Setting<std::string> program_args{linkage, std::string(), "program_args", Category::Debugging};
Setting<bool> dump_exefs{linkage, false, "dump_exefs", Category::Debugging}; Setting<bool> dump_exefs{linkage, false, "dump_exefs", Category::Debugging};
Setting<bool> dump_nso{linkage, false, "dump_nso", Category::Debugging}; Setting<bool> dump_nso{linkage, false, "dump_nso", Category::Debugging};
Setting<bool, false, false> dump_shaders{linkage, false, "dump_shaders", Category::Debugging}; Setting<bool, false, false> dump_shaders{linkage, false, "dump_shaders",
Setting<bool, false, false> dump_macros{linkage, false, "dump_macros", Category::Debugging}; Category::DebuggingGraphics};
Setting<bool, false, false> dump_macros{linkage, false, "dump_macros",
Category::DebuggingGraphics};
Setting<bool> enable_fs_access_log{linkage, false, "enable_fs_access_log", Category::Debugging}; Setting<bool> enable_fs_access_log{linkage, false, "enable_fs_access_log", Category::Debugging};
Setting<bool, false, false> reporting_services{linkage, false, "reporting_services", Setting<bool, false, false> reporting_services{linkage, false, "reporting_services",
Category::Debugging}; Category::Debugging};
Setting<bool> quest_flag{linkage, false, "quest_flag", Category::Debugging}; Setting<bool> quest_flag{linkage, false, "quest_flag", Category::Debugging};
Setting<bool> disable_macro_jit{linkage, false, "disable_macro_jit", Category::Debugging}; Setting<bool> disable_macro_jit{linkage, false, "disable_macro_jit",
Setting<bool> disable_macro_hle{linkage, false, "disable_macro_hle", Category::Debugging}; Category::DebuggingGraphics};
Setting<bool> disable_macro_hle{linkage, false, "disable_macro_hle",
Category::DebuggingGraphics};
Setting<bool, false, false> extended_logging{linkage, false, "extended_logging", Setting<bool, false, false> extended_logging{linkage, false, "extended_logging",
Category::Debugging}; Category::Debugging};
Setting<bool> use_debug_asserts{linkage, false, "use_debug_asserts", Category::Debugging}; Setting<bool> use_debug_asserts{linkage, false, "use_debug_asserts", Category::Debugging};

View File

@ -550,6 +550,7 @@ void Config::ReadDebuggingValues() {
qt_config->value(QStringLiteral("record_frame_times"), false).toBool(); qt_config->value(QStringLiteral("record_frame_times"), false).toBool();
ReadCategory(Settings::Category::Debugging); ReadCategory(Settings::Category::Debugging);
ReadCategory(Settings::Category::DebuggingGraphics);
qt_config->endGroup(); qt_config->endGroup();
} }
@ -635,6 +636,8 @@ void Config::ReadCpuValues() {
qt_config->beginGroup(QStringLiteral("Cpu")); qt_config->beginGroup(QStringLiteral("Cpu"));
ReadCategory(Settings::Category::Cpu); ReadCategory(Settings::Category::Cpu);
ReadCategory(Settings::Category::CpuDebug);
ReadCategory(Settings::Category::CpuUnsafe);
if (Settings::values.cpu_accuracy_first_time) { if (Settings::values.cpu_accuracy_first_time) {
Settings::values.cpu_accuracy.SetValue(Settings::values.cpu_accuracy.GetDefault()); Settings::values.cpu_accuracy.SetValue(Settings::values.cpu_accuracy.GetDefault());
@ -648,7 +651,8 @@ void Config::ReadRendererValues() {
qt_config->beginGroup(QStringLiteral("Renderer")); qt_config->beginGroup(QStringLiteral("Renderer"));
ReadCategory(Settings::Category::Renderer); ReadCategory(Settings::Category::Renderer);
ReadCategory(Settings::Category::AdvancedGraphics); ReadCategory(Settings::Category::RendererAdvanced);
ReadCategory(Settings::Category::RendererDebug);
qt_config->endGroup(); qt_config->endGroup();
} }
@ -1016,6 +1020,7 @@ void Config::SaveDebuggingValues() {
qt_config->setValue(QStringLiteral("record_frame_times"), Settings::values.record_frame_times); qt_config->setValue(QStringLiteral("record_frame_times"), Settings::values.record_frame_times);
WriteCategory(Settings::Category::Debugging); WriteCategory(Settings::Category::Debugging);
WriteCategory(Settings::Category::DebuggingGraphics);
qt_config->endGroup(); qt_config->endGroup();
} }
@ -1079,6 +1084,8 @@ void Config::SaveCpuValues() {
qt_config->beginGroup(QStringLiteral("Cpu")); qt_config->beginGroup(QStringLiteral("Cpu"));
WriteCategory(Settings::Category::Cpu); WriteCategory(Settings::Category::Cpu);
WriteCategory(Settings::Category::CpuDebug);
WriteCategory(Settings::Category::CpuUnsafe);
qt_config->endGroup(); qt_config->endGroup();
} }
@ -1086,8 +1093,9 @@ void Config::SaveCpuValues() {
void Config::SaveRendererValues() { void Config::SaveRendererValues() {
qt_config->beginGroup(QStringLiteral("Renderer")); qt_config->beginGroup(QStringLiteral("Renderer"));
WriteCategory(Settings::Category::AdvancedGraphics);
WriteCategory(Settings::Category::Renderer); WriteCategory(Settings::Category::Renderer);
WriteCategory(Settings::Category::RendererAdvanced);
WriteCategory(Settings::Category::RendererDebug);
qt_config->endGroup(); qt_config->endGroup();
} }

View File

@ -128,10 +128,16 @@ QWidget* CreateWidget(Settings::BasicSetting* setting, const TranslationMap& tra
return std::pair{translations.at(setting_label).first, return std::pair{translations.at(setting_label).first,
translations.at(setting_label).second}; translations.at(setting_label).second};
} }
LOG_ERROR(Frontend, "Translation map lacks entry for \"{}\"", setting_label); LOG_ERROR(Frontend, "Translation table lacks entry for \"{}\"", setting_label);
return std::pair{QString::fromStdString(setting_label), QStringLiteral("")}; return std::pair{QString::fromStdString(setting_label), QStringLiteral("")};
}(); }();
if (label == QStringLiteral("")) {
LOG_DEBUG(Frontend, "Translation table has emtpy entry for \"{}\", skipping...",
setting->GetLabel());
return widget;
}
if (type == typeid(bool)) { if (type == typeid(bool)) {
auto pair = CreateCheckBox(setting, label, parent, trackers); auto pair = CreateCheckBox(setting, label, parent, trackers);
widget = pair.first; widget = pair.first;

View File

@ -31,7 +31,7 @@ void ConfigureGraphicsAdvanced::SetConfiguration() {
std::map<std::string, QWidget*> hold{}; // A map will sort the data for us std::map<std::string, QWidget*> hold{}; // A map will sort the data for us
for (auto setting : for (auto setting :
Settings::values.linkage.by_category[Settings::Category::AdvancedGraphics]) { Settings::values.linkage.by_category[Settings::Category::RendererAdvanced]) {
QWidget* widget = ConfigurationShared::CreateWidget(setting, translations, this, QWidget* widget = ConfigurationShared::CreateWidget(setting, translations, this,
runtime_lock, apply_funcs, trackers); runtime_lock, apply_funcs, trackers);

View File

@ -223,11 +223,15 @@ void Config::ReadValues() {
ReadCategory(Settings::Category::Audio); ReadCategory(Settings::Category::Audio);
ReadCategory(Settings::Category::Core); ReadCategory(Settings::Category::Core);
ReadCategory(Settings::Category::Cpu); ReadCategory(Settings::Category::Cpu);
ReadCategory(Settings::Category::CpuDebug);
ReadCategory(Settings::Category::CpuUnsafe);
ReadCategory(Settings::Category::Renderer); ReadCategory(Settings::Category::Renderer);
ReadCategory(Settings::Category::AdvancedGraphics); ReadCategory(Settings::Category::RendererAdvanced);
ReadCategory(Settings::Category::RendererDebug);
ReadCategory(Settings::Category::System); ReadCategory(Settings::Category::System);
ReadCategory(Settings::Category::DataStorage); ReadCategory(Settings::Category::DataStorage);
ReadCategory(Settings::Category::Debugging); ReadCategory(Settings::Category::Debugging);
ReadCategory(Settings::Category::DebuggingGraphics);
ReadCategory(Settings::Category::Miscellaneous); ReadCategory(Settings::Category::Miscellaneous);
ReadCategory(Settings::Category::Network); ReadCategory(Settings::Category::Network);
ReadCategory(Settings::Category::WebService); ReadCategory(Settings::Category::WebService);