summaryrefslogtreecommitdiff
path: root/src/protocols/CTMControl.cpp
diff options
context:
space:
mode:
authorfazzi <18248986+fxzzi@users.noreply.github.com>2025-04-18 20:44:54 +0100
committerGitHub <noreply@github.com>2025-04-18 21:44:54 +0200
commit51afc2c2910d6f7c1f2dee9c90f54729d3c3d940 (patch)
tree3c4bc00df50699fb4d324b1592d6d5742bb510e8 /src/protocols/CTMControl.cpp
parent02f7da2bf23b75f097388b776143af5963b8e13b (diff)
ctm: enable fade animation on nvidia driver versions 575 and above (#10095)
* ctm: enable fade animation on nvidia driver versions 575 and above * format if statement without braces; handle potential throw when checking for nvidia version file
Diffstat (limited to 'src/protocols/CTMControl.cpp')
-rw-r--r--src/protocols/CTMControl.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/protocols/CTMControl.cpp b/src/protocols/CTMControl.cpp
index c3b6862d..7dbe635b 100644
--- a/src/protocols/CTMControl.cpp
+++ b/src/protocols/CTMControl.cpp
@@ -6,6 +6,7 @@
#include "../config/ConfigManager.hpp"
#include "managers/AnimationManager.hpp"
#include "../helpers/Monitor.hpp"
+#include "../helpers/MiscFunctions.hpp"
CHyprlandCTMControlResource::CHyprlandCTMControlResource(SP<CHyprlandCtmControlManagerV1> resource_) : resource(resource_) {
if UNLIKELY (!good())
@@ -109,8 +110,12 @@ void CHyprlandCTMControlProtocol::destroyResource(CHyprlandCTMControlResource* r
bool CHyprlandCTMControlProtocol::isCTMAnimationEnabled() {
static auto PENABLEANIM = CConfigValue<Hyprlang::INT>("render:ctm_animation");
- if (*PENABLEANIM == 2)
- return !g_pHyprRenderer->isNvidia();
+ if (*PENABLEANIM == 2 /* auto */) {
+ if (!g_pHyprRenderer->isNvidia())
+ return true;
+ // CTM animations are bugged on versions below.
+ return isNvidiaDriverVersionAtLeast(575);
+ }
return *PENABLEANIM;
}