Hi,
On 22 August 2016 at 05:53, Qiang Yu <[email protected]> wrote:
> Signed-off-by: Qiang Yu <[email protected]>
> ---
> hw/xfree86/drivers/modesetting/dri2.c | 237
> ++++++++++++++++++++++-
> hw/xfree86/drivers/modesetting/driver.h | 5 +-
> hw/xfree86/drivers/modesetting/drmmode_display.h | 3 +
> hw/xfree86/drivers/modesetting/pageflip.c | 7 +-
> hw/xfree86/drivers/modesetting/present.c | 20 +-
> 5 files changed, 257 insertions(+), 15 deletions(-)
>
> diff --git a/hw/xfree86/drivers/modesetting/dri2.c
> b/hw/xfree86/drivers/modesetting/dri2.c
> index 83cb3e0..125c413 100644
> --- a/hw/xfree86/drivers/modesetting/dri2.c
> +++ b/hw/xfree86/drivers/modesetting/dri2.c
...
> +static void
> +ms_dri2_exchange_buffers(DrawablePtr draw, DRI2BufferPtr front,
> + DRI2BufferPtr back)
> +{
> + ms_dri2_buffer_private_ptr front_priv = front->driverPrivate;
> + ms_dri2_buffer_private_ptr back_priv = back->driverPrivate;
> + ScreenPtr screen = draw->pScreen;
> + ScrnInfoPtr scrn = xf86ScreenToScrn(screen);
> + modesettingPtr ms = modesettingPTR(scrn);
> + msPixmapPrivPtr front_pix = msGetPixmapPriv(&ms->drmmode,
> front_priv->pixmap);
> + msPixmapPrivPtr back_pix = msGetPixmapPriv(&ms->drmmode,
> back_priv->pixmap);
> + msPixmapPrivRec tmp_pix;
> + RegionRec region;
> + int tmp;
> +
> + /* Swap BO names so DRI works */
> + tmp = front->name;
> + front->name = back->name;
> + back->name = tmp;
> +
> + /* Swap pixmap privates */
> + tmp_pix = *front_pix;
> + *front_pix = *back_pix;
> + *back_pix = tmp_pix;
> +
> + glamor_egl_exchange_buffers(front_priv->pixmap, back_priv->pixmap);
> +
> + /* Post damage on the front buffer so that listeners, such
> + * as DisplayLink know take a copy and shove it over the USB.
> + */
> + region.extents.x1 = region.extents.y1 = 0;
> + region.extents.x2 = front_priv->pixmap->drawable.width;
> + region.extents.y2 = front_priv->pixmap->drawable.width;
this looks like a copy'n'paste mistake.
> + region.data = NULL;
> + DamageRegionAppend(&front_priv->pixmap->drawable, ®ion);
> + DamageRegionProcessPending(&front_priv->pixmap->drawable);
> +}
> +
> static void
> ms_dri2_frame_event_handler(uint64_t msc,
> uint64_t usec,
Cheers,
Daniel Martin
_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: https://lists.x.org/mailman/listinfo/xorg-devel