mirror of
https://git.eden-emu.dev/archive/citron
synced 2026-03-23 01:56: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")),
|
PAIR(ConfirmStop, Ask_Never, tr("Never ask")),
|
||||||
}});
|
}});
|
||||||
|
|
||||||
translations->insert(
|
translations->insert({Settings::EnumMetadata<Settings::SpirvShaderOptimization>::Index(),
|
||||||
{Settings::EnumMetadata<Settings::Values::SpirvShaderOptimization>::Index(),
|
{
|
||||||
{
|
PAIR(SpirvShaderOptimization, Auto, tr("Auto")),
|
||||||
PAIR(Values::SpirvShaderOptimization, Auto, tr("Auto")),
|
PAIR(SpirvShaderOptimization, Off, tr("Off")),
|
||||||
PAIR(Values::SpirvShaderOptimization, Off, tr("Off")),
|
}});
|
||||||
}});
|
|
||||||
|
|
||||||
#undef PAIR
|
#undef PAIR
|
||||||
#undef CTX_PAIR
|
#undef CTX_PAIR
|
||||||
|
|||||||
@@ -601,10 +601,6 @@ struct Values {
|
|||||||
Category::RendererDebug};
|
Category::RendererDebug};
|
||||||
Setting<bool> disable_buffer_reorder{linkage, false, "disable_buffer_reorder",
|
Setting<bool> disable_buffer_reorder{linkage, false, "disable_buffer_reorder",
|
||||||
Category::RendererDebug};
|
Category::RendererDebug};
|
||||||
enum class SpirvShaderOptimization : u32 {
|
|
||||||
Off,
|
|
||||||
Auto,
|
|
||||||
};
|
|
||||||
|
|
||||||
SwitchableSetting<SpirvShaderOptimization> optimize_spirv_output{
|
SwitchableSetting<SpirvShaderOptimization> optimize_spirv_output{
|
||||||
linkage, SpirvShaderOptimization::Auto, "optimize_spirv_output",
|
linkage, SpirvShaderOptimization::Auto, "optimize_spirv_output",
|
||||||
@@ -848,18 +844,4 @@ void RestoreGlobalState(bool is_powered_on);
|
|||||||
bool IsConfiguringGlobal();
|
bool IsConfiguringGlobal();
|
||||||
void SetConfiguringGlobal(bool is_global);
|
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
|
} // namespace Settings
|
||||||
|
|||||||
@@ -901,6 +901,7 @@ inline u32 EnumMetadata<AndroidAstcMode>::Index() {
|
|||||||
return 28;
|
return 28;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ENUM(SpirvShaderOptimization, Off, Auto);
|
||||||
ENUM(SpirvOptimizeMode, Never, Always, BestEffort);
|
ENUM(SpirvOptimizeMode, Never, Always, BestEffort);
|
||||||
|
|
||||||
template <typename Type>
|
template <typename Type>
|
||||||
|
|||||||
@@ -751,8 +751,8 @@ std::unique_ptr<GraphicsPipeline> PipelineCache::CreateGraphicsPipeline(
|
|||||||
|
|
||||||
const auto runtime_info{MakeRuntimeInfo(programs, key, program, previous_stage)};
|
const auto runtime_info{MakeRuntimeInfo(programs, key, program, previous_stage)};
|
||||||
ConvertLegacyToGeneric(program, runtime_info);
|
ConvertLegacyToGeneric(program, runtime_info);
|
||||||
bool optimize = Settings::values.optimize_spirv_output.GetValue() ==
|
const bool optimize = Settings::values.optimize_spirv_output.GetValue() ==
|
||||||
Settings::Values::SpirvShaderOptimization::Auto;
|
Settings::SpirvShaderOptimization::Auto;
|
||||||
std::vector<u32> code = EmitSPIRV(profile, runtime_info, program, binding, optimize);
|
std::vector<u32> code = EmitSPIRV(profile, runtime_info, program, binding, optimize);
|
||||||
// Reserve space to reduce allocations during shader compilation
|
// Reserve space to reduce allocations during shader compilation
|
||||||
code.reserve(std::max<size_t>(code.size(), 16 * 1024 / sizeof(u32)));
|
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)};
|
auto program{TranslateProgram(pools.inst, pools.block, env, cfg, host_info)};
|
||||||
bool optimize = Settings::values.optimize_spirv_output.GetValue() ==
|
bool optimize = Settings::values.optimize_spirv_output.GetValue() ==
|
||||||
Settings::Values::SpirvShaderOptimization::Auto;
|
Settings::SpirvShaderOptimization::Auto;
|
||||||
std::vector<u32> code = EmitSPIRV(profile, program, optimize);
|
std::vector<u32> code = EmitSPIRV(profile, program, optimize);
|
||||||
// Reserve space to reduce allocations during shader compilation
|
// Reserve space to reduce allocations during shader compilation
|
||||||
code.reserve(std::max<size_t>(code.size(), 16 * 1024 / sizeof(u32)));
|
code.reserve(std::max<size_t>(code.size(), 16 * 1024 / sizeof(u32)));
|
||||||
|
|||||||
Reference in New Issue
Block a user