From 4214d9bce4944ea7d004e38e271b2bf67b86228d Mon Sep 17 00:00:00 2001 From: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com> Date: Sat, 20 Jul 2024 17:45:14 +0300 Subject: [PATCH] Adjust ubershader defaults --- include/config.hpp | 7 ++++++- src/libretro_core.cpp | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/include/config.hpp b/include/config.hpp index a3fc77e4..25f352e8 100644 --- a/include/config.hpp +++ b/include/config.hpp @@ -13,8 +13,13 @@ struct EmulatorConfig { static constexpr bool shaderJitDefault = false; #endif - // For now, use specialized shaders by default + // For now, use specialized shaders by default on MacOS as M1 drivers are buggy when using the ubershader, and on Android since mobile GPUs are + // horrible On other platforms we default to ubershader + shadergen fallback for lights +#if defined(__ANDROID__) || defined(__APPLE__) static constexpr bool ubershaderDefault = false; +#else + static constexpr bool ubershaderDefault = true; +#endif bool shaderJitEnabled = shaderJitDefault; bool discordRpcEnabled = false; diff --git a/src/libretro_core.cpp b/src/libretro_core.cpp index fc3e53b3..02bf3cd1 100644 --- a/src/libretro_core.cpp +++ b/src/libretro_core.cpp @@ -147,7 +147,8 @@ static void configInit() { static const retro_variable values[] = { {"panda3ds_use_shader_jit", "Enable shader JIT; enabled|disabled"}, {"panda3ds_accurate_shader_mul", "Enable accurate shader multiplication; disabled|enabled"}, - {"panda3ds_use_ubershader", "Use ubershaders (No stutter, maybe slower); disabled|enabled"}, + {"panda3ds_use_ubershader", EmulatorConfig::ubershaderDefault ? "Use ubershaders (No stutter, maybe slower); enabled|disabled" + : "Use ubershaders (No stutter, maybe slower); disabled|enabled"}, {"panda3ds_use_vsync", "Enable VSync; enabled|disabled"}, {"panda3ds_dsp_emulation", "DSP emulation; Null|HLE|LLE"}, {"panda3ds_use_audio", "Enable audio; disabled|enabled"},