diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h index 3860c20fb..3db2862b0 100644 --- a/src/common/settings_enums.h +++ b/src/common/settings_enums.h @@ -901,8 +901,45 @@ inline u32 EnumMetadata::Index() { return 28; } -ENUM(SpirvShaderOptimization, Off, Auto); -ENUM(SpirvOptimizeMode, Never, Always, BestEffort); +enum class SpirvShaderOptimization : u32 { + Off, + Auto, +}; + +template <> +inline std::vector> +EnumMetadata::Canonicalizations() { + return { + {"Off", SpirvShaderOptimization::Off}, + {"Auto", SpirvShaderOptimization::Auto}, + }; +} + +template <> +inline u32 EnumMetadata::Index() { + return 29; +} + +enum class SpirvOptimizeMode : u32 { + Never, + Always, + BestEffort, +}; + +template <> +inline std::vector> +EnumMetadata::Canonicalizations() { + return { + {"Never", SpirvOptimizeMode::Never}, + {"Always", SpirvOptimizeMode::Always}, + {"BestEffort", SpirvOptimizeMode::BestEffort}, + }; +} + +template <> +inline u32 EnumMetadata::Index() { + return 30; +} template inline std::string CanonicalizeEnum(Type id) {