[PATCH xf86-video-ati] Restore location of radeon_set_pixmap_bo call in drmmode_create_bo_pixmap

Michel Dänzer michel at daenzer.net
Thu Oct 13 07:34:35 UTC 2016


From: Michel Dänzer <michel.daenzer at amd.com>

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
Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/drmmode_display.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/drmmode_display.c b/src/drmmode_display.c
index 1b1b3e6..a8054c1 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)))
-- 
2.9.3



More information about the amd-gfx mailing list