[PATCH xf86-video-ati] Make radeon_scanout_do_update take a PixmapPtr instead of a DrawablePtr
Deucher, Alexander
Alexander.Deucher at amd.com
Thu Aug 17 12:46:18 UTC 2017
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Michel Dänzer
> Sent: Thursday, August 17, 2017 3:23 AM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH xf86-video-ati] Make radeon_scanout_do_update take a
> PixmapPtr instead of a DrawablePtr
>
> From: Michel Dänzer <michel.daenzer at amd.com>
>
> All callers were already passing in a pixmap.
>
> This allows simplifying the rotated scanout case slightly.
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> src/drmmode_display.c | 6 +++---
> src/radeon.h | 2 +-
> src/radeon_kms.c | 13 ++++++-------
> 3 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index 90588671d..4839b415c 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -842,7 +842,7 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc,
> DisplayModePtr mode,
> *x = *y = 0;
>
> radeon_scanout_do_update(crtc, scanout_id,
> - &screen-
> >GetWindowPixmap(screen->root)->drawable,
> + screen->GetWindowPixmap(screen-
> >root),
> box);
> radeon_bo_wait(drmmode_crtc->scanout[scanout_id].bo);
> }
> @@ -3050,8 +3050,8 @@ Bool radeon_do_pageflip(ScrnInfoPtr scrn,
> ClientPtr client,
> goto error;
> }
>
> - radeon_scanout_do_update(crtc, scanout_id,
> - &new_front->drawable,
> &extents);
> + radeon_scanout_do_update(crtc, scanout_id,
> new_front,
> + &extents);
>
>
> drmmode_crtc_wait_pending_event(drmmode_crtc, pRADEONEnt-
> >fd,
> drmmode_crtc-
> >scanout_update_pending);
> diff --git a/src/radeon.h b/src/radeon.h
> index bba344340..71123c7c7 100644
> --- a/src/radeon.h
> +++ b/src/radeon.h
> @@ -665,7 +665,7 @@ Bool radeon_dri3_screen_init(ScreenPtr screen);
>
> /* radeon_kms.c */
> Bool radeon_scanout_do_update(xf86CrtcPtr xf86_crtc, int scanout_id,
> - DrawablePtr src_draw, BoxPtr extents);
> + PixmapPtr src_pix, BoxPtr extents);
> void RADEONWindowExposures_oneshot(WindowPtr pWin, RegionPtr
> pRegion
> #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,16,99,901,0)
> , RegionPtr pBSRegion
> diff --git a/src/radeon_kms.c b/src/radeon_kms.c
> index 4c001a31f..ca2d36d04 100644
> --- a/src/radeon_kms.c
> +++ b/src/radeon_kms.c
> @@ -904,7 +904,7 @@ radeon_dirty_update(ScrnInfoPtr scrn)
>
> Bool
> radeon_scanout_do_update(xf86CrtcPtr xf86_crtc, int scanout_id,
> - DrawablePtr src_draw, BoxPtr extents)
> + PixmapPtr src_pix, BoxPtr extents)
> {
> drmmode_crtc_private_ptr drmmode_crtc = xf86_crtc->driver_private;
> RegionRec region = { .extents = *extents, .data = NULL };
> @@ -937,10 +937,9 @@ radeon_scanout_do_update(xf86CrtcPtr xf86_crtc,
> int scanout_id,
> PictFormatPtr format = PictureWindowFormat(pScreen->root);
> int error;
> PicturePtr src, dst;
> - XID include_inferiors = IncludeInferiors;
>
> - src = CreatePicture(None, src_draw, format, CPSubwindowMode,
> - &include_inferiors, serverClient, &error);
> + src = CreatePicture(None, &src_pix->drawable, format, 0L, NULL,
> + serverClient, &error);
> if (!src) {
> ErrorF("Failed to create source picture for transformed scanout "
> "update\n");
> @@ -984,7 +983,7 @@ radeon_scanout_do_update(xf86CrtcPtr xf86_crtc,
> int scanout_id,
> GCPtr gc = GetScratchGC(pDraw->depth, pScreen);
>
> ValidateGC(pDraw, gc);
> - (*gc->ops->CopyArea)(src_draw, pDraw, gc,
> + (*gc->ops->CopyArea)(&src_pix->drawable, pDraw, gc,
> xf86_crtc->x + extents->x1, xf86_crtc->y +
> extents->y1,
> extents->x2 - extents->x1, extents->y2 - extents-
> >y1,
> extents->x1, extents->y1);
> @@ -1018,7 +1017,7 @@ radeon_scanout_update_handler(xf86CrtcPtr crtc,
> uint32_t frame, uint64_t usec,
> !drmmode_crtc->flip_pending &&
> drmmode_crtc->dpms_mode == DPMSModeOn) {
> if (radeon_scanout_do_update(crtc, drmmode_crtc->scanout_id,
> - &screen->GetWindowPixmap(screen-
> >root)->drawable,
> + screen->GetWindowPixmap(screen-
> >root),
> ®ion->extents))
> RegionEmpty(region);
> }
> @@ -1099,7 +1098,7 @@ radeon_scanout_flip(ScreenPtr pScreen,
> RADEONInfoPtr info,
>
> scanout_id = drmmode_crtc->scanout_id ^ 1;
> if (!radeon_scanout_do_update(xf86_crtc, scanout_id,
> - &pScreen->GetWindowPixmap(pScreen-
> >root)->drawable,
> + pScreen->GetWindowPixmap(pScreen-
> >root),
> ®ion->extents))
> return;
> RegionEmpty(region);
> --
> 2.14.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list