aboutsummaryrefslogtreecommitdiff
path: root/src/common
diff options
context:
space:
mode:
authorPavel Barabanov <pavelbarabanov94@gmail.com>2025-04-12 00:26:47 +0300
committerMrPurple666 <antoniosacramento666usa@gmail.com>2025-04-12 22:54:32 -0300
commit38737f26e51bba30d96772b00df6a34d1a28ab7b (patch)
tree514f17f839c419a394ce88fd1e27cbdb5bf4aad1 /src/common
parentbd2f935c4dd46de53d5bb354cdbca6351e62e899 (diff)
Optimize SpiriV output
Diffstat (limited to 'src/common')
-rw-r--r--src/common/settings.cpp1
-rw-r--r--src/common/settings.h7
-rw-r--r--src/common/settings_enums.h2
3 files changed, 10 insertions, 0 deletions
diff --git a/src/common/settings.cpp b/src/common/settings.cpp
index 80d388fe88..245c432939 100644
--- a/src/common/settings.cpp
+++ b/src/common/settings.cpp
@@ -52,6 +52,7 @@ SWITCHABLE(NvdecEmulation, false);
SWITCHABLE(Region, true);
SWITCHABLE(RendererBackend, true);
SWITCHABLE(ScalingFilter, false);
+SWITCHABLE(SpirvOptimizeMode, true);
SWITCHABLE(ShaderBackend, true);
SWITCHABLE(TimeZone, true);
SETTING(VSyncMode, true);
diff --git a/src/common/settings.h b/src/common/settings.h
index 0aba539e45..7b475e3fbb 100644
--- a/src/common/settings.h
+++ b/src/common/settings.h
@@ -73,6 +73,7 @@ SWITCHABLE(NvdecEmulation, false);
SWITCHABLE(Region, true);
SWITCHABLE(RendererBackend, true);
SWITCHABLE(ScalingFilter, false);
+SWITCHABLE(SpirvOptimizeMode, true);
SWITCHABLE(ShaderBackend, true);
SWITCHABLE(TimeZone, true);
SETTING(VSyncMode, true);
@@ -281,6 +282,12 @@ struct Values {
#endif
SwitchableSetting<bool> use_disk_shader_cache{linkage, true, "use_disk_shader_cache",
Category::Renderer};
+ SwitchableSetting<SpirvOptimizeMode, true> optimize_spirv_output{linkage,
+ SpirvOptimizeMode::OnLoad,
+ SpirvOptimizeMode::Never,
+ SpirvOptimizeMode::Always,
+ "optimize_spirv_output",
+ Category::Renderer};
SwitchableSetting<bool> use_asynchronous_gpu_emulation{
linkage, true, "use_asynchronous_gpu_emulation", Category::Renderer};
SwitchableSetting<AstcDecodeMode, true> accelerate_astc{linkage,
diff --git a/src/common/settings_enums.h b/src/common/settings_enums.h
index 6e247e9306..75189e60d7 100644
--- a/src/common/settings_enums.h
+++ b/src/common/settings_enums.h
@@ -155,6 +155,8 @@ ENUM(ConsoleMode, Handheld, Docked);
ENUM(AppletMode, HLE, LLE);
+ENUM(SpirvOptimizeMode, Never, OnLoad, Always);
+
template <typename Type>
inline std::string CanonicalizeEnum(Type id) {
const auto group = EnumMetadata<Type>::Canonicalizations();