Add radeon_dirty_src_drawable helper

Allows tidying up radeon_dirty_src_equals and redisplay_dirty slightly.

(Cherry picked from amdgpu commit 1d65ac395971571094df21ca0408d5972c6b56ec)
Acked-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Michel Dänzer
2017-12-01 15:49:11 +01:00
parent fccfd75ecf
commit ee907e9b95
2 changed files with 13 additions and 16 deletions

View File

@@ -192,23 +192,23 @@ radeon_master_screen(ScreenPtr screen)
static inline ScreenPtr
radeon_dirty_master(PixmapDirtyUpdatePtr dirty)
{
#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC
ScreenPtr screen = dirty->src->pScreen;
#else
ScreenPtr screen = dirty->src->drawable.pScreen;
#endif
return radeon_master_screen(dirty->slave_dst->drawable.pScreen);
}
return radeon_master_screen(screen);
static inline DrawablePtr
radeon_dirty_src_drawable(PixmapDirtyUpdatePtr dirty)
{
#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC
return dirty->src;
#else
return &dirty->src->drawable;
#endif
}
static inline Bool
radeon_dirty_src_equals(PixmapDirtyUpdatePtr dirty, PixmapPtr pixmap)
{
#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC
return dirty->src == &pixmap->drawable;
#else
return dirty->src == pixmap;
#endif
return radeon_dirty_src_drawable(dirty) == &pixmap->drawable;
}

View File

@@ -570,11 +570,8 @@ dirty_region(PixmapDirtyUpdatePtr dirty)
static void
redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region)
{
#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC
ScrnInfoPtr src_scrn = xf86ScreenToScrn(dirty->src->pScreen);
#else
ScrnInfoPtr src_scrn = xf86ScreenToScrn(dirty->src->drawable.pScreen);
#endif
ScrnInfoPtr src_scrn =
xf86ScreenToScrn(radeon_dirty_src_drawable(dirty)->pScreen);
if (RegionNil(region))
goto out;