[Intel-gfx] [PATCH] drm/plane-helper: Adapt cursor hack to transitional helpers
Mario Kleiner
mario.kleiner.de at gmail.com
Thu May 21 07:17:49 PDT 2015
On 05/20/2015 10:36 AM, Daniel Vetter wrote:
> In
>
> commit f02ad907cd9e7fe3a6405d2d005840912f1ed258
> Author: Daniel Vetter <daniel.vetter at ffwll.ch>
> Date: Thu Jan 22 16:36:23 2015 +0100
>
> drm/atomic-helpers: Recover full cursor plane behaviour
>
> we've added a hack to atomic helpers to never to vblank waits for
> cursor updates through the legacy apis since that's what X expects.
> Unfortunately we've (again) forgotten to adjust the transitional
> helpers. Do this now.
>
> This fixes regressions for drivers only partially converted over to
> atomic (like i915).
>
> Reported-by: Pekka Paalanen <ppaalanen at gmail.com>
> Cc: Pekka Paalanen <ppaalanen at gmail.com>
> Cc: stable at vger.kernel.org
> Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
> ---
> drivers/gpu/drm/drm_plane_helper.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/drivers/gpu/drm/drm_plane_helper.c b/drivers/gpu/drm/drm_plane_helper.c
> index 40c1db9ad7c3..2f0ed11024eb 100644
> --- a/drivers/gpu/drm/drm_plane_helper.c
> +++ b/drivers/gpu/drm/drm_plane_helper.c
> @@ -465,6 +465,9 @@ int drm_plane_helper_commit(struct drm_plane *plane,
> if (!crtc[i])
> continue;
>
> + if (crtc[i]->cursor == plane)
> + continue;
> +
> /* There's no other way to figure out whether the crtc is running. */
> ret = drm_crtc_vblank_get(crtc[i]);
> if (ret == 0) {
>
This one is
Reviewed-and-tested-by: Mario Kleiner <mario.kleiner.de at gmail.com>
I was looking into Weston performance and the cursor problem, so had
necessary tracing in place to test this. I can confirm that cursor
related blocking in Westons drm-backend execution are gone with this
patch applied, whereas they are still present when using hardware
overlays on Intel, as expected.
So hardware cursors should be fine again, once the patch also ends in
stable kernels.
thanks,
-mario
More information about the wayland-devel
mailing list