backend/drm: prevent outputs from being destroyed on commit

This would happen if initializing the renderer fails. Instead, we just
mark the output as disabled.

References: https://github.com/swaywm/sway/pull/4917
This commit is contained in:
Simon Ser 2020-01-17 10:50:29 +01:00 committed by Drew DeVault
parent df972677c1
commit 7c05933e51

View file

@ -1213,9 +1213,10 @@ static void realloc_crtcs(struct wlr_drm_backend *drm) {
struct wlr_drm_mode *mode = struct wlr_drm_mode *mode =
(struct wlr_drm_mode *)conn->output.current_mode; (struct wlr_drm_mode *)conn->output.current_mode;
if (!drm_connector_init_renderer(conn, mode)) { if (!drm_connector_init_renderer(conn, mode)) {
wlr_log(WLR_ERROR, "Failed to initialize renderer for plane"); wlr_log(WLR_ERROR, "Failed to initialize renderer on output %s",
drm_connector_cleanup(conn); conn->output.name);
break; wlr_output_update_enabled(&conn->output, false);
continue;
} }
wlr_output_damage_whole(&conn->output); wlr_output_damage_whole(&conn->output);