mirror of
https://github.com/X11Libre/xf86-video-ati.git
synced 2026-03-24 01:24:43 +00:00
Make radeon_scanout_do_update take a PixmapPtr instead of a DrawablePtr
All callers were already passing in a pixmap. This allows simplifying the rotated scanout case slightly. Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Michel Dänzer
parent
3e24770b1b
commit
d822a0f470
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user