[PATCH xf86-video-amdgpu 3/3] Make amdgpu_scanout_do_update take a PixmapPtr instead of a DrawablePtr
Deucher, Alexander
Alexander.Deucher at amd.com
Fri Aug 18 14:27:40 UTC 2017
> -----Original Message-----
> From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf
> Of Michel Dänzer
> Sent: Friday, August 18, 2017 4:55 AM
> To: amd-gfx at lists.freedesktop.org
> Subject: [PATCH xf86-video-amdgpu 3/3] Make
> amdgpu_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.
>
> (Ported from radeon commit d822a0f47070374ad0c1a97b559bae27724dc52a)
>
> Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
Series is:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> src/amdgpu_drv.h | 2 +-
> src/amdgpu_kms.c | 13 ++++++-------
> src/drmmode_display.c | 6 +++---
> 3 files changed, 10 insertions(+), 11 deletions(-)
>
> diff --git a/src/amdgpu_drv.h b/src/amdgpu_drv.h
> index 13237470a..75c2a2653 100644
> --- a/src/amdgpu_drv.h
> +++ b/src/amdgpu_drv.h
> @@ -341,7 +341,7 @@ Bool amdgpu_dri3_screen_init(ScreenPtr screen);
>
> /* amdgpu_kms.c */
> Bool amdgpu_scanout_do_update(xf86CrtcPtr xf86_crtc, int scanout_id,
> - DrawablePtr src_draw, BoxPtr extents);
> + PixmapPtr src_pix, BoxPtr extents);
> void AMDGPUWindowExposures_oneshot(WindowPtr pWin, RegionPtr
> pRegion
> #if XORG_VERSION_CURRENT < XORG_VERSION_NUMERIC(1,16,99,901,0)
> , RegionPtr pBSRegion
> diff --git a/src/amdgpu_kms.c b/src/amdgpu_kms.c
> index f665a01cd..e0b735819 100644
> --- a/src/amdgpu_kms.c
> +++ b/src/amdgpu_kms.c
> @@ -806,7 +806,7 @@ amdgpu_dirty_update(ScrnInfoPtr scrn)
>
> Bool
> amdgpu_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 };
> @@ -834,10 +834,9 @@ amdgpu_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");
> @@ -880,7 +879,7 @@ amdgpu_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);
> @@ -912,7 +911,7 @@ amdgpu_scanout_update_handler(xf86CrtcPtr crtc,
> uint32_t frame, uint64_t usec,
> !drmmode_crtc->flip_pending &&
> drmmode_crtc->dpms_mode == DPMSModeOn) {
> if (amdgpu_scanout_do_update(crtc, drmmode_crtc-
> >scanout_id,
> - &screen-
> >GetWindowPixmap(screen->root)->drawable,
> + screen-
> >GetWindowPixmap(screen->root),
> ®ion->extents))
> RegionEmpty(region);
> }
> @@ -993,7 +992,7 @@ amdgpu_scanout_flip(ScreenPtr pScreen,
> AMDGPUInfoPtr info,
>
> scanout_id = drmmode_crtc->scanout_id ^ 1;
> if (!amdgpu_scanout_do_update(xf86_crtc, scanout_id,
> - &pScreen->GetWindowPixmap(pScreen-
> >root)->drawable,
> + pScreen->GetWindowPixmap(pScreen-
> >root),
> ®ion->extents))
> return;
> RegionEmpty(region);
> diff --git a/src/drmmode_display.c b/src/drmmode_display.c
> index edd955ece..ad3325be6 100644
> --- a/src/drmmode_display.c
> +++ b/src/drmmode_display.c
> @@ -779,7 +779,7 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc,
> DisplayModePtr mode,
> *x = *y = 0;
>
> amdgpu_scanout_do_update(crtc, scanout_id,
> - &screen-
> >GetWindowPixmap(screen->root)->drawable,
> + screen->GetWindowPixmap(screen-
> >root),
> box);
> amdgpu_glamor_finish(scrn);
> }
> @@ -2850,8 +2850,8 @@ Bool amdgpu_do_pageflip(ScrnInfoPtr scrn,
> ClientPtr client,
> goto error;
> }
>
> - amdgpu_scanout_do_update(crtc, scanout_id,
> - &new_front->drawable,
> &extents);
> + amdgpu_scanout_do_update(crtc, scanout_id,
> new_front,
> + &extents);
>
>
> drmmode_crtc_wait_pending_event(drmmode_crtc, pAMDGPUEnt-
> >fd,
> drmmode_crtc-
> >scanout_update_pending);
> --
> 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