> -----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