diff --git a/libweston/compositor-drm.c b/libweston/compositor-drm.c index 363354f9..95b37974 100644 --- a/libweston/compositor-drm.c +++ b/libweston/compositor-drm.c @@ -3834,6 +3834,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", @@ -6714,17 +6725,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;