[PATCH weston v5 02/42] compositor-drm: Delete drm_backend_set_modes

Daniel Stone daniels at collabora.com
Wed Nov 16 14:24:54 UTC 2016


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.

Signed-off-by: Daniel Stone <daniels at collabora.com>

Differential Revision: https://phabricator.freedesktop.org/D1481
---
 libweston/compositor-drm.c | 33 ---------------------------------
 1 file changed, 33 deletions(-)

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 268117d..7d1c01b 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -2824,38 +2824,6 @@ drm_destroy(struct weston_compositor *ec)
 }
 
 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)
 {
 	struct weston_compositor *compositor = data;
@@ -2866,7 +2834,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 {
-- 
2.9.3



More information about the wayland-devel mailing list