[plasma/kwin] /: autotests/integration: add another variant of the drm test

Xaver Hugl <[email protected]>
Newsgroups gmane.comp.kde.cvs
Message-ID <[email protected]>
Git commit 79e348bc4004f9bd2c5707856b354b8ee91964a6 by Xaver Hugl.
Committed on 16/07/2026 at 19:21.
Pushed by zamundaaa into branch 'master'.

autotests/integration: add another variant of the drm test

This one runs without render nodes, to ensure the udmabuf code path works.

M  +2    -0    autotests/integration/CMakeLists.txt
M  +3    -0    autotests/integration/drm_test.cpp
M  +2    -2    autotests/integration/kwin_wayland_test.cpp
M  +1    -2    src/main_wayland.cpp

https://invent.kde.org/plasma/kwin/-/commit/79e348bc4004f9bd2c5707856b354b8ee91964a6

diff --git a/autotests/integration/CMakeLists.txt b/autotests/integration/CMakeLists.txt
index 9647d29e73b..1a14df6d40b 100644
--- a/autotests/integration/CMakeLists.txt
+++ b/autotests/integration/CMakeLists.txt
@@ -176,6 +176,8 @@ integrationTest(NAME testDrmLegacy SRCS drm_test.cpp PROPERTIES RESOURCE_LOCK "v
 target_compile_definitions(testDrmLegacy PRIVATE FORCE_DRM_LEGACY=1)
 integrationTest(NAME testDrmNoModifiers SRCS drm_test.cpp PROPERTIES RESOURCE_LOCK "vkms")
 target_compile_definitions(testDrmNoModifiers PRIVATE FORCE_NO_DRM_MODIFIERS=1)
+integrationTest(NAME testDrmNoRenderNodes SRCS drm_test.cpp PROPERTIES RESOURCE_LOCK "vkms")
+target_compile_definitions(testDrmNoRenderNodes PRIVATE FORCE_NO_RENDERNODES=1)
 
 integrationTest(NAME testSelection SRCS selection_test.cpp)
 integrationTest(NAME testToplevelDrag SRCS topleveldrag_test.cpp)
diff --git a/autotests/integration/drm_test.cpp b/autotests/integration/drm_test.cpp
index 9689e4b4a7d..8d7ab8275d3 100644
--- a/autotests/integration/drm_test.cpp
+++ b/autotests/integration/drm_test.cpp
@@ -392,6 +392,9 @@ void DrmTest::initTestCase()
 #endif
 #ifdef FORCE_NO_DRM_MODIFIERS
     qputenv("KWIN_DRM_USE_MODIFIERS", "0");
+#endif
+#ifdef FORCE_NO_RENDERNODES
+    qputenv("KWIN_RENDER_NODES", "");
 #endif
     // make sure overlays are allowed
     qputenv("KWIN_USE_OVERLAYS", "1");
diff --git a/autotests/integration/kwin_wayland_test.cpp b/autotests/integration/kwin_wayland_test.cpp
index 9b0204c1edb..154bd3eda6a 100644
--- a/autotests/integration/kwin_wayland_test.cpp
+++ b/autotests/integration/kwin_wayland_test.cpp
@@ -87,8 +87,6 @@ WaylandTestApplication::WaylandTestApplication(int &argc, char **argv, bool runO
     removeLibraryPath(ownPath);
     addLibraryPath(ownPath);
 
-    createGpuManager();
-
     if (runOnKMS) {
         // in order to allow running the test manually on a tty,
         // we need the real session. This doesn't work in CI though,
@@ -203,6 +201,8 @@ void WaylandTestApplication::performStartup()
 
     // first load options - done internally by a different thread
     createOptions();
+
+    createGpuManager();
     if (!outputBackend()->initialize()) {
         std::exit(1);
     }
diff --git a/src/main_wayland.cpp b/src/main_wayland.cpp
index 26c0550d784..848f43f5c5e 100644
--- a/src/main_wayland.cpp
+++ b/src/main_wayland.cpp
@@ -138,6 +138,7 @@ void ApplicationWayland::performStartup()
 {
     createOptions();
 
+    createGpuManager();
     if (!outputBackend()->initialize()) {
         std::exit(1);
     }
@@ -471,8 +472,6 @@ int main(int argc, char *argv[])
         a.setSessionArgument(parser.value(exitWithSessionOption));
     }
 
-    a.createGpuManager();
-
     enum class BackendType {
         Kms,
 #if KWIN_BUILD_X11
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.