On Mon, 2011-05-02 at 00:01 +0200, Marcin Slusarz wrote: 
> We need cursor data to land in destination buffer before drmModeSetCursor.
> It fixes "cursor lag" at least on nv50.
> ---
>  src/gallium/state_trackers/xorg/xorg_crtc.c |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/src/gallium/state_trackers/xorg/xorg_crtc.c 
> b/src/gallium/state_trackers/xorg/xorg_crtc.c
> index b8d9474..e8ca631 100644
> --- a/src/gallium/state_trackers/xorg/xorg_crtc.c
> +++ b/src/gallium/state_trackers/xorg/xorg_crtc.c
> @@ -247,6 +247,7 @@ crtc_load_cursor_argb_ga3d(xf86CrtcPtr crtc, CARD32 * 
> image)
>                  64, 64, (void*)image, 64 * 4, 0, 0);
>      ms->ctx->transfer_unmap(ms->ctx, transfer);
>      ms->ctx->transfer_destroy(ms->ctx, transfer);
> +    ms->ctx->flush(ms->ctx, NULL);
>  
>      if (crtc->cursor_shown)
>       drmModeSetCursor(ms->fd, crtcp->drm_crtc->crtc_id,

To guarantee that the data lands before drmModeSetCursor, you'd have to
take a fence from the flush and finish that as well.


-- 
Earthling Michel Dänzer           |                http://www.vmware.com
Libre software enthusiast         |          Debian, X and DRI developer
_______________________________________________
mesa-dev mailing list
mesa-dev@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/mesa-dev

Reply via email to