mirror of
https://github.com/X11Libre/xf86-video-ati.git
synced 2026-03-24 01:24:43 +00:00
Simplify drmmode_crtc_scanout_update
Use our own BoxRec for the extents, and RegionEmpty for clearing the scanout damage region. (Ported from amdgpu commit 72c3e9c7308fbcdf85708b72f9be14a5f2f8e7b5) Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
committed by
Michel Dänzer
parent
e07c386492
commit
9f2409c4d3
@@ -765,8 +765,8 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
|
||||
if (drmmode_crtc->scanout[scanout_id].pixmap &&
|
||||
(!drmmode_crtc->tear_free ||
|
||||
drmmode_crtc->scanout[scanout_id ^ 1].pixmap)) {
|
||||
RegionPtr region;
|
||||
BoxPtr box;
|
||||
BoxRec extents = { .x1 = 0, .y1 = 0,
|
||||
.x2 = scrn->virtualX, .y2 = scrn->virtualY };
|
||||
|
||||
if (!drmmode_crtc->scanout_damage) {
|
||||
drmmode_crtc->scanout_damage =
|
||||
@@ -778,21 +778,13 @@ drmmode_crtc_scanout_update(xf86CrtcPtr crtc, DisplayModePtr mode,
|
||||
drmmode_crtc->scanout_damage);
|
||||
}
|
||||
|
||||
region = DamageRegion(drmmode_crtc->scanout_damage);
|
||||
RegionUninit(region);
|
||||
region->data = NULL;
|
||||
box = RegionExtents(region);
|
||||
box->x1 = 0;
|
||||
box->y1 = 0;
|
||||
box->x2 = max(box->x2, scrn->virtualX);
|
||||
box->y2 = max(box->y2, scrn->virtualY);
|
||||
|
||||
*fb = radeon_pixmap_get_fb(drmmode_crtc->scanout[scanout_id].pixmap);
|
||||
*x = *y = 0;
|
||||
|
||||
radeon_scanout_do_update(crtc, scanout_id,
|
||||
screen->GetWindowPixmap(screen->root),
|
||||
*box);
|
||||
extents);
|
||||
RegionEmpty(DamageRegion(drmmode_crtc->scanout_damage));
|
||||
radeon_finish(scrn, drmmode_crtc->scanout[scanout_id].bo);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user