mirror of
https://git.eden-emu.dev/archive/citron
synced 2026-03-22 17:46:08 -04:00
fix(SPIR-V): Re-adjust Setting Enums
This commit is contained in:
@@ -657,12 +657,11 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
|
||||
PAIR(ConfirmStop, Ask_Never, tr("Never ask")),
|
||||
}});
|
||||
|
||||
translations->insert(
|
||||
{Settings::EnumMetadata<Settings::Values::SpirvShaderOptimization>::Index(),
|
||||
{
|
||||
PAIR(Values::SpirvShaderOptimization, Auto, tr("Auto")),
|
||||
PAIR(Values::SpirvShaderOptimization, Off, tr("Off")),
|
||||
}});
|
||||
translations->insert({Settings::EnumMetadata<Settings::SpirvShaderOptimization>::Index(),
|
||||
{
|
||||
PAIR(SpirvShaderOptimization, Auto, tr("Auto")),
|
||||
PAIR(SpirvShaderOptimization, Off, tr("Off")),
|
||||
}});
|
||||
|
||||
#undef PAIR
|
||||
#undef CTX_PAIR
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -901,6 +901,7 @@ inline u32 EnumMetadata<AndroidAstcMode>::Index() {
|
||||
return 28;
|
||||
}
|
||||
|
||||
ENUM(SpirvShaderOptimization, Off, Auto);
|
||||
ENUM(SpirvOptimizeMode, Never, Always, BestEffort);
|
||||
|
||||
template <typename Type>
|
||||
|
||||
@@ -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)));
|
||||
|
||||
Reference in New Issue
Block a user