fix(SPIR-V): Re-adjust Setting Enums

This commit is contained in:
Collecting
2026-02-14 17:56:41 -05:00
parent 48f5163431
commit 475b4fc401
4 changed files with 9 additions and 27 deletions

View File

@@ -657,11 +657,10 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
PAIR(ConfirmStop, Ask_Never, tr("Never ask")),
}});
translations->insert(
{Settings::EnumMetadata<Settings::Values::SpirvShaderOptimization>::Index(),
translations->insert({Settings::EnumMetadata<Settings::SpirvShaderOptimization>::Index(),
{
PAIR(Values::SpirvShaderOptimization, Auto, tr("Auto")),
PAIR(Values::SpirvShaderOptimization, Off, tr("Off")),
PAIR(SpirvShaderOptimization, Auto, tr("Auto")),
PAIR(SpirvShaderOptimization, Off, tr("Off")),
}});
#undef PAIR

View File

@@ -601,10 +601,6 @@ struct Values {
Category::RendererDebug};
Setting<bool> disable_buffer_reorder{linkage, false, "disable_buffer_reorder",
Category::RendererDebug};
enum class SpirvShaderOptimization : u32 {
Off,
Auto,
};
SwitchableSetting<SpirvShaderOptimization> 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<Values::SpirvShaderOptimization> {
static constexpr u32 Index() {
return 45;
}
static constexpr std::array<std::pair<const char*, Values::SpirvShaderOptimization>, 2>
Canonicalizations() {
return {{
{"off", Values::SpirvShaderOptimization::Off},
{"auto", Values::SpirvShaderOptimization::Auto},
}};
}
};
} // namespace Settings

View File

@@ -901,6 +901,7 @@ inline u32 EnumMetadata<AndroidAstcMode>::Index() {
return 28;
}
ENUM(SpirvShaderOptimization, Off, Auto);
ENUM(SpirvOptimizeMode, Never, Always, BestEffort);
template <typename Type>

View File

@@ -751,8 +751,8 @@ std::unique_ptr<GraphicsPipeline> 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<u32> code = EmitSPIRV(profile, runtime_info, program, binding, optimize);
// Reserve space to reduce allocations during shader compilation
code.reserve(std::max<size_t>(code.size(), 16 * 1024 / sizeof(u32)));
@@ -858,7 +858,7 @@ std::unique_ptr<ComputePipeline> 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<u32> code = EmitSPIRV(profile, program, optimize);
// Reserve space to reduce allocations during shader compilation
code.reserve(std::max<size_t>(code.size(), 16 * 1024 / sizeof(u32)));