From 47224cc9312fef05c1a523ea0da0a1aae66f100d Mon Sep 17 00:00:00 2001 From: Daniel Stone Date: Sat, 5 Nov 2016 08:04:07 +0000 Subject: [PATCH] compositor-drm: Delete drm_backend_set_modes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Even if we do have a framebuffer matching the mode, we immediately schedule a repaint, meaning we either do work for no reason, or show stale content before we bring up the new content. Delete this and just let repaint deal with it. Differential Revision: https://phabricator.freedesktop.org/D1481 Signed-off-by: Daniel Stone Reviewed-by: Armin Krezović --- libweston/compositor-drm.c | 33 --------------------------------- 1 file changed, 33 deletions(-) diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 67408e749..3f21e75d6 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -2806,38 +2806,6 @@ drm_destroy(struct weston_compositor *ec) free(b); } -static void -drm_backend_set_modes(struct drm_backend *backend) -{ - struct drm_output *output; - struct drm_mode *drm_mode; - int ret; - - wl_list_for_each(output, &backend->compositor->output_list, base.link) { - if (!output->current) { - /* If something that would cause the output to - * switch mode happened while in another vt, we - * might not have a current drm_fb. In that case, - * schedule a repaint and let drm_output_repaint - * handle setting the mode. */ - weston_output_schedule_repaint(&output->base); - continue; - } - - drm_mode = (struct drm_mode *) output->base.current_mode; - ret = drmModeSetCrtc(backend->drm.fd, output->crtc_id, - output->current->fb_id, 0, 0, - &output->connector_id, 1, - &drm_mode->mode_info); - if (ret < 0) { - weston_log( - "failed to set mode %dx%d for output at %d,%d: %m\n", - drm_mode->base.width, drm_mode->base.height, - output->base.x, output->base.y); - } - } -} - static void session_notify(struct wl_listener *listener, void *data) { @@ -2849,7 +2817,6 @@ session_notify(struct wl_listener *listener, void *data) if (compositor->session_active) { weston_log("activating session\n"); compositor->state = b->prev_state; - drm_backend_set_modes(b); weston_compositor_damage_all(compositor); udev_input_enable(&b->input); } else {