backend/drm: fix timeline feature flag on multi-GPU setups

This piece of code checks for multi-GPU renderer support, so it
needs to run after the renderer is initialized.

Fixes: 514c4b4cce01 ("backend: add timeline feature flag")
Closes: https://github.com/swaywm/sway/issues/8382
master
Simon Ser 1 month ago committed by itycodes
parent fd23474497
commit b1ade2c096

@ -264,6 +264,12 @@ 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;
}
drm->session_destroy.notify = handle_session_destroy; drm->session_destroy.notify = handle_session_destroy;
wl_signal_add(&session->events.destroy, &drm->session_destroy); wl_signal_add(&session->events.destroy, &drm->session_destroy);

@ -126,12 +126,6 @@ bool check_drm_features(struct wlr_drm_backend *drm) {
drm->supports_tearing_page_flips = drmGetCap(drm->fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap) == 0 && cap == 1; drm->supports_tearing_page_flips = drmGetCap(drm->fd, DRM_CAP_ATOMIC_ASYNC_PAGE_FLIP, &cap) == 0 && cap == 1;
} }
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;
}
if (env_parse_bool("WLR_DRM_NO_MODIFIERS")) { if (env_parse_bool("WLR_DRM_NO_MODIFIERS")) {
wlr_log(WLR_DEBUG, "WLR_DRM_NO_MODIFIERS set, disabling modifiers"); wlr_log(WLR_DEBUG, "WLR_DRM_NO_MODIFIERS set, disabling modifiers");
} else { } else {

Loading…
Cancel
Save