[PATCH v20 10/10] compositor-drm: Enable planes for atomic

Daniel Stone daniels at collabora.com
Wed Jul 11 10:41:34 UTC 2018


Now that we can sensibly test proposed plane configurations with atomic,
sprites are not broken.

Signed-off-by: Daniel Stone <daniels at collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
---
 libweston/compositor-drm.c | 22 +++++++++++-----------
 1 file changed, 11 insertions(+), 11 deletions(-)

diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c
index 284385d10..a6a349689 100644
--- a/libweston/compositor-drm.c
+++ b/libweston/compositor-drm.c
@@ -3840,6 +3840,17 @@ init_kms_caps(struct drm_backend *b)
 	weston_log("DRM: %s atomic modesetting\n",
 		   b->atomic_modeset ? "supports" : "does not support");
 
+	/*
+	 * KMS support for hardware planes cannot properly synchronize
+	 * without nuclear page flip. Without nuclear/atomic, hw plane
+	 * and cursor plane updates would either tear or cause extra
+	 * waits for vblanks which means dropping the compositor framerate
+	 * to a fraction. For cursors, it's not so bad, so they are
+	 * enabled.
+	 */
+	if (!b->atomic_modeset)
+		b->sprites_are_broken = 1;
+
 	ret = drmSetClientCap(b->drm.fd, DRM_CLIENT_CAP_ASPECT_RATIO, 1);
 	b->aspect_ratio_supported = (ret == 0);
 	weston_log("DRM: %s picture aspect ratio\n",
@@ -6720,17 +6731,6 @@ drm_backend_create(struct weston_compositor *compositor,
 	b->drm.fd = -1;
 	wl_array_init(&b->unused_crtcs);
 
-	/*
-	 * KMS support for hardware planes cannot properly synchronize
-	 * without nuclear page flip. Without nuclear/atomic, hw plane
-	 * and cursor plane updates would either tear or cause extra
-	 * waits for vblanks which means dropping the compositor framerate
-	 * to a fraction. For cursors, it's not so bad, so they are
-	 * enabled.
-	 *
-	 * These can be enabled again when nuclear/atomic support lands.
-	 */
-	b->sprites_are_broken = 1;
 	b->compositor = compositor;
 	b->use_pixman = config->use_pixman;
 	b->pageflip_timeout = config->pageflip_timeout;
-- 
2.17.1



More information about the wayland-devel mailing list