diff options
author | Michel Dänzer <michel.daenzer@amd.com> | 2016-10-13 16:33:45 +0900 |
---|---|---|
committer | Michel Dänzer <michel@daenzer.net> | 2016-10-13 16:36:22 +0900 |
commit | d016f20b14ffe4f90f7457375b2d9f5cf0f5650f (patch) | |
tree | f7923c446b0c0dc4df3dd557c21d594fefb17661 | |
parent | 937398f6cd50db105d5e53ab553eb284d44121f4 (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.c | 7 |
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))) |