diff options
| author | fazzi <18248986+fxzzi@users.noreply.github.com> | 2025-04-18 20:44:54 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-04-18 21:44:54 +0200 |
| commit | 51afc2c2910d6f7c1f2dee9c90f54729d3c3d940 (patch) | |
| tree | 3c4bc00df50699fb4d324b1592d6d5742bb510e8 /src/render/Renderer.cpp | |
| parent | 02f7da2bf23b75f097388b776143af5963b8e13b (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/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 37 |
1 files changed, 2 insertions, 35 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 8a2d4555..4eee27ff 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -35,6 +35,7 @@ #include "debug/Log.hpp" #include "../protocols/ColorManagement.hpp" #include "../protocols/types/ContentType.hpp" +#include "../helpers/MiscFunctions.hpp" #include <hyprutils/utils/ScopeGuard.hpp> using namespace Hyprutils::Utils; @@ -2349,43 +2350,9 @@ SExplicitSyncSettings CHyprRenderer::getExplicitSyncSettings(SP<Aquamarine::IOut if (!m_bNvidia) settings.explicitKMSEnabled = true; else { - - // check nvidia version. Explicit KMS is supported in >=560 - // in the case of an error, driverMajor will stay 0 and explicit KMS will be disabled - static int driverMajor = 0; - - static bool once = true; - if (once) { - once = false; - - Debug::log(LOG, "Renderer: checking for explicit KMS support for nvidia"); - - if (std::filesystem::exists("/sys/module/nvidia_drm/version")) { - Debug::log(LOG, "Renderer: Nvidia version file exists"); - - std::ifstream ifs("/sys/module/nvidia_drm/version"); - if (ifs.good()) { - try { - std::string driverInfo((std::istreambuf_iterator<char>(ifs)), (std::istreambuf_iterator<char>())); - - Debug::log(LOG, "Renderer: Read nvidia version {}", driverInfo); - - CVarList ver(driverInfo, 0, '.', true); - driverMajor = std::stoi(ver[0]); - - Debug::log(LOG, "Renderer: Parsed nvidia major version: {}", driverMajor); - - } catch (std::exception& e) { settings.explicitKMSEnabled = false; } - - ifs.close(); - } - } - } - - settings.explicitKMSEnabled = driverMajor >= 560; + settings.explicitKMSEnabled = isNvidiaDriverVersionAtLeast(560); } } - return settings; } |
