From 706f0f62bc5ae5c7626ee3053b667f00375b55fc Mon Sep 17 00:00:00 2001 From: Clutchnp Date: Wed, 8 Apr 2026 01:35:09 +0530 Subject: [PATCH] fix wrong render_node selection in linux --- src/platform/linux/wayland.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/platform/linux/wayland.cpp b/src/platform/linux/wayland.cpp index 6d6195ffce2..cb928de399a 100644 --- a/src/platform/linux/wayland.cpp +++ b/src/platform/linux/wayland.cpp @@ -17,6 +17,7 @@ // local includes #include "graphics.h" +#include "src/config.h" #include "src/logging.h" #include "src/platform/common.h" #include "src/round_robin.h" @@ -235,11 +236,16 @@ namespace wl { } int drm_fd = -1; - for (int i = 0; i < n; i++) { - if (devices[i]->available_nodes & (1 << DRM_NODE_RENDER)) { - drm_fd = open(devices[i]->nodes[DRM_NODE_RENDER], O_RDWR); - if (drm_fd >= 0) { - break; + + if (!config::video.adapter_name.empty()) { + drm_fd = open(config::video.adapter_name.c_str(), O_RDWR); + } else { + for (int i = 0; i < n; i++) { + if (devices[i]->available_nodes & (1 << DRM_NODE_RENDER)) { + drm_fd = open(devices[i]->nodes[DRM_NODE_RENDER], O_RDWR); + if (drm_fd >= 0) { + break; + } } } }