diff --git a/src/radeon_kms.c b/src/radeon_kms.c index 06c8a47f..5fcd8f0b 100644 --- a/src/radeon_kms.c +++ b/src/radeon_kms.c @@ -570,7 +570,11 @@ dirty_region(PixmapDirtyUpdatePtr dirty) static void redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) { - ScrnInfoPtr pScrn = xf86ScreenToScrn(dirty->slave_dst->drawable.pScreen); +#ifdef HAS_DIRTYTRACKING_DRAWABLE_SRC + ScrnInfoPtr src_scrn = xf86ScreenToScrn(dirty->src->pScreen); +#else + ScrnInfoPtr src_scrn = xf86ScreenToScrn(dirty->src->drawable.pScreen); +#endif if (RegionNil(region)) goto out; @@ -584,7 +588,7 @@ redisplay_dirty(PixmapDirtyUpdatePtr dirty, RegionPtr region) PixmapSyncDirtyHelper(dirty, region); #endif - radeon_cs_flush_indirect(pScrn); + radeon_cs_flush_indirect(src_scrn); if (dirty->slave_dst->master_pixmap) DamageRegionProcessPending(&dirty->slave_dst->drawable);