diff --git a/backend/drm/backend.c b/backend/drm/backend.c index f758eb6ed..5fe77777d 100644 --- a/backend/drm/backend.c +++ b/backend/drm/backend.c @@ -271,7 +271,6 @@ struct wlr_backend *wlr_drm_backend_create(struct wlr_session *session, } } - drm->backend.features.timeline = drm->iface != &legacy_iface; if (drm->parent) { drm->backend.features.timeline = drm->backend.features.timeline && drm->mgpu_renderer.wlr_rend->features.timeline; diff --git a/backend/drm/drm.c b/backend/drm/drm.c index f34c9a085..caa126371 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -124,6 +124,7 @@ bool check_drm_features(struct wlr_drm_backend *drm) { drm->supports_tearing_page_flips = drmGetCap(drm->fd, DRM_CAP_ASYNC_PAGE_FLIP, &cap) == 0 && cap == 1; } else { drm->supports_tearing_page_flips = drmGetCap(drm->fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap) == 0 && cap == 1; + drm->backend.features.timeline = drmGetCap(drm->fd, DRM_CAP_SYNCOBJ_TIMELINE, &cap) == 0 && cap == 1; } if (env_parse_bool("WLR_DRM_NO_MODIFIERS")) {