From 475b4fc4017f3b7b25a6f12e9a5ba8fb113d2976 Mon Sep 17 00:00:00 2001 From: Collecting Date: Sat, 14 Feb 2026 17:56:41 -0500 Subject: [PATCH] fix(SPIR-V): Re-adjust Setting Enums --- .../configuration/shared_translation.cpp | 11 +++++------ src/common/settings.h | 18 ------------------ src/common/settings_enums.h | 1 + .../renderer_vulkan/vk_pipeline_cache.cpp | 6 +++--- 4 files changed, 9 insertions(+), 27 deletions(-) diff --git a/src/citron/configuration/shared_translation.cpp b/src/citron/configuration/shared_translation.cpp index c56fbb5e2..e86288fff 100644 --- a/src/citron/configuration/shared_translation.cpp +++ b/src/citron/configuration/shared_translation.cpp @@ -657,12 +657,11 @@ std::unique_ptr ComboboxEnumeration(QWidget* parent) { PAIR(ConfirmStop, Ask_Never, tr("Never ask")), }}); - translations->insert( - {Settings::EnumMetadata::Index(), - { - PAIR(Values::SpirvShaderOptimization, Auto, tr("Auto")), - PAIR(Values::SpirvShaderOptimization, Off, tr("Off")), - }}); + translations->insert({Settings::EnumMetadata::Index(), + { + PAIR(SpirvShaderOptimization, Auto, tr("Auto")), + PAIR(SpirvShaderOptimization, Off, tr("Off")), + }}); #undef PAIR #undef CTX_PAIR diff --git a/src/common/settings.h b/src/common/settings.h index 1e10511ea..7bbaea94a 100644 --- a/src/common/settings.h +++ b/src/common/settings.h @@ -601,10 +601,6 @@ struct Values { Category::RendererDebug}; Setting disable_buffer_reorder{linkage, false, "disable_buffer_reorder", Category::RendererDebug}; - enum class SpirvShaderOptimization : u32 { - Off, - Auto, - }; SwitchableSetting optimize_spirv_output{ linkage, SpirvShaderOptimization::Auto, "optimize_spirv_output", @@ -848,18 +844,4 @@ void RestoreGlobalState(bool is_powered_on); bool IsConfiguringGlobal(); void SetConfiguringGlobal(bool is_global); -template <> -struct EnumMetadata { - static constexpr u32 Index() { - return 45; - } - - static constexpr std::array, 2> - Canonicalizations() { - return {{ - {"off", Values::SpirvShaderOptimization::Off}, - {"auto", Values::SpirvShaderOptimization::Auto}, - }}; - } -}; } // namespace Settings diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h index 09fae1eee..3860c20fb 100644 --- a/src/common/settings_enums.h +++ b/src/common/settings_enums.h @@ -901,6 +901,7 @@ inline u32 EnumMetadata::Index() { return 28; } +ENUM(SpirvShaderOptimization, Off, Auto); ENUM(SpirvOptimizeMode, Never, Always, BestEffort); template diff --git a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp index 20a26b9dd..8e0bfda77 100644 --- a/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp +++ b/src/video_core/renderer_vulkan/vk_pipeline_cache.cpp @@ -751,8 +751,8 @@ std::unique_ptr PipelineCache::CreateGraphicsPipeline( const auto runtime_info{MakeRuntimeInfo(programs, key, program, previous_stage)}; ConvertLegacyToGeneric(program, runtime_info); - bool optimize = Settings::values.optimize_spirv_output.GetValue() == - Settings::Values::SpirvShaderOptimization::Auto; + const bool optimize = Settings::values.optimize_spirv_output.GetValue() == + Settings::SpirvShaderOptimization::Auto; std::vector code = EmitSPIRV(profile, runtime_info, program, binding, optimize); // Reserve space to reduce allocations during shader compilation code.reserve(std::max(code.size(), 16 * 1024 / sizeof(u32))); @@ -858,7 +858,7 @@ std::unique_ptr PipelineCache::CreateComputePipeline( auto program{TranslateProgram(pools.inst, pools.block, env, cfg, host_info)}; bool optimize = Settings::values.optimize_spirv_output.GetValue() == - Settings::Values::SpirvShaderOptimization::Auto; + Settings::SpirvShaderOptimization::Auto; std::vector code = EmitSPIRV(profile, program, optimize); // Reserve space to reduce allocations during shader compilation code.reserve(std::max(code.size(), 16 * 1024 / sizeof(u32)));