mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 08:32:30 +00:00
backend/drm: drop drm_connector_init_renderer
drm_connector_set_pending_fb already takes care of this.
This commit is contained in:
parent
de1c73021c
commit
0c8fba1a2f
@ -652,43 +652,6 @@ struct wlr_drm_fb *plane_get_next_fb(struct wlr_drm_plane *plane) {
|
||||
return plane->current_fb;
|
||||
}
|
||||
|
||||
static bool drm_connector_init_renderer(struct wlr_drm_connector *conn,
|
||||
const struct wlr_drm_connector_state *state) {
|
||||
struct wlr_drm_backend *drm = conn->backend;
|
||||
|
||||
if (conn->status != WLR_DRM_CONN_CONNECTED &&
|
||||
conn->status != WLR_DRM_CONN_NEEDS_MODESET) {
|
||||
return false;
|
||||
}
|
||||
|
||||
assert(conn->crtc != NULL);
|
||||
|
||||
if (drm->parent) {
|
||||
wlr_drm_conn_log(conn, WLR_DEBUG, "Initializing multi-GPU renderer");
|
||||
|
||||
struct wlr_drm_plane *plane = conn->crtc->primary;
|
||||
int width = state->mode.hdisplay;
|
||||
int height = state->mode.vdisplay;
|
||||
|
||||
struct wlr_drm_format *format =
|
||||
drm_plane_pick_render_format(plane, &drm->mgpu_renderer);
|
||||
if (format == NULL) {
|
||||
wlr_log(WLR_ERROR, "Failed to pick primary plane format");
|
||||
return false;
|
||||
}
|
||||
|
||||
// TODO: fallback to modifier-less buffer allocation
|
||||
bool ok = init_drm_surface(&plane->mgpu_surf, &drm->mgpu_renderer,
|
||||
width, height, format);
|
||||
free(format);
|
||||
if (!ok) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void realloc_crtcs(struct wlr_drm_backend *drm);
|
||||
|
||||
static void attempt_enable_needs_modeset(struct wlr_drm_backend *drm) {
|
||||
@ -780,12 +743,6 @@ static bool drm_connector_set_mode(struct wlr_drm_connector *conn,
|
||||
"Modesetting with '%" PRId32 "x%" PRId32 "@%" PRId32 "mHz'",
|
||||
wlr_mode->width, wlr_mode->height, wlr_mode->refresh);
|
||||
|
||||
if (!drm_connector_init_renderer(conn, state)) {
|
||||
wlr_drm_conn_log(conn, WLR_ERROR,
|
||||
"Failed to initialize renderer for plane");
|
||||
return false;
|
||||
}
|
||||
|
||||
// drm_crtc_page_flip expects a FB to be available
|
||||
struct wlr_drm_plane *plane = conn->crtc->primary;
|
||||
if (!plane_get_next_fb(plane)) {
|
||||
@ -1194,19 +1151,6 @@ static void realloc_crtcs(struct wlr_drm_backend *drm) {
|
||||
if (conn->status != WLR_DRM_CONN_CONNECTED) {
|
||||
continue;
|
||||
}
|
||||
|
||||
struct wlr_output_state output_state = {
|
||||
.committed = WLR_OUTPUT_STATE_ENABLED,
|
||||
.enabled = true,
|
||||
};
|
||||
struct wlr_drm_connector_state conn_state = {0};
|
||||
drm_connector_state_init(&conn_state, conn, &output_state);
|
||||
if (!drm_connector_init_renderer(conn, &conn_state)) {
|
||||
wlr_drm_conn_log(conn, WLR_ERROR, "Failed to initialize renderer");
|
||||
wlr_output_update_enabled(&conn->output, false);
|
||||
continue;
|
||||
}
|
||||
|
||||
wlr_output_damage_whole(&conn->output);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user