From 8f5f7aad3dac16362bc4e66c4a4fcb0dc545bf0f Mon Sep 17 00:00:00 2001 From: Tony Lindgren Date: Mon, 6 Sep 2021 09:26:53 +0300 Subject: [PATCH] drm: always use primary node in wlr_drm_create() Unlike for get_render_name(), we need to use the primary node in wlr_drm_create(). Otherwise mesa dri2_initialize_wayland_drm() ends up calling dri2_load_driver_dri3() instead of dri2_load_driver() for split display/render setup. See also mesa comments about gem names with render nodes. Fixes: f7e3d325fe3d ("Add a stub wl_drm implementation") --- types/wlr_drm.c | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/types/wlr_drm.c b/types/wlr_drm.c index a02fba8410..c6c1e049df 100644 --- a/types/wlr_drm.c +++ b/types/wlr_drm.c @@ -205,15 +205,8 @@ struct wlr_drm *wlr_drm_create(struct wl_display *display, return NULL; } - char *node_name = NULL; - if (dev->available_nodes & (1 << DRM_NODE_RENDER)) { - node_name = strdup(dev->nodes[DRM_NODE_RENDER]); - } else { - assert(dev->available_nodes & (1 << DRM_NODE_PRIMARY)); - wlr_log(WLR_DEBUG, "No DRM render node available, " - "falling back to primary node '%s'", dev->nodes[DRM_NODE_PRIMARY]); - node_name = strdup(dev->nodes[DRM_NODE_PRIMARY]); - } + assert(dev->available_nodes & (1 << DRM_NODE_PRIMARY)); + char *node_name = strdup(dev->nodes[DRM_NODE_PRIMARY]); drmFreeDevice(&dev); if (node_name == NULL) { return NULL;