diff --git a/backend/drm/drm.c b/backend/drm/drm.c index cd161e02..6541d31a 100644 --- a/backend/drm/drm.c +++ b/backend/drm/drm.c @@ -458,6 +458,14 @@ static bool drm_connector_test(struct wlr_output *output) { } if (drm_connector_state_active(conn, &output->pending)) { + if ((output->pending.committed & + (WLR_OUTPUT_STATE_ENABLED | WLR_OUTPUT_STATE_MODE)) && + !(output->pending.committed & WLR_OUTPUT_STATE_BUFFER)) { + wlr_drm_conn_log(conn, WLR_DEBUG, + "Can't enable an output without a buffer"); + return false; + } + if (!drm_connector_alloc_crtc(conn)) { wlr_drm_conn_log(conn, WLR_DEBUG, "No CRTC available for this connector");