summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2016-10-13 16:33:45 +0900
committerMichel Dänzer <michel@daenzer.net>2016-10-13 16:36:22 +0900
commitd016f20b14ffe4f90f7457375b2d9f5cf0f5650f (patch)
treef7923c446b0c0dc4df3dd557c21d594fefb17661
parent937398f6cd50db105d5e53ab553eb284d44121f4 (diff)
Restore location of radeon_set_pixmap_bo call in drmmode_create_bo_pixmap
radeon_set_pixmap_bo sets the tiling flags, so it needs to be called before radeon_get_pixmap_tiling_flags. Fixes a regression with EXA and TearFree. Fixes: 8523a733b6a5 ("Propagate failure from radeon_set_pixmap_bo") Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=98097 Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r--src/drmmode_display.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 3888e5c7..8f62caef 100644
--- a/src/drmmode_display.c
+++ b/src/drmmode_display.c
@@ -131,6 +131,10 @@ static PixmapPtr drmmode_create_bo_pixmap(ScrnInfoPtr pScrn,
if (!info->use_glamor)
exaMoveInPixmap(pixmap);
+
+ if (!radeon_set_pixmap_bo(pixmap, bo))
+ goto fail;
+
if (info->ChipFamily >= CHIP_FAMILY_R600) {
surface = radeon_get_pixmap_surface(pixmap);
if (surface && psurf)
@@ -170,9 +174,6 @@ static PixmapPtr drmmode_create_bo_pixmap(ScrnInfoPtr pScrn,
}
}
- if (!radeon_set_pixmap_bo(pixmap, bo))
- goto fail;
-
if (!info->use_glamor ||
radeon_glamor_create_textured_pixmap(pixmap,
radeon_get_pixmap_private(pixmap)))