[PATCH xf86-video-amdgpu] present: Check tiling info for flips

Michel Dänzer michel at daenzer.net
Thu Oct 27 02:26:09 UTC 2016


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

The kernel driver doesn't handle flipping between buffers with
different tiling parameters correctly.

Fixes display corruption with fullscreen apps using different tiling
modes (e.g. due to R600_DEBUG=notiling or R600_DEBUG=no2d) via DRI3.

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/amdgpu_present.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/src/amdgpu_present.c b/src/amdgpu_present.c
index e36778c..dcb18da 100644
--- a/src/amdgpu_present.c
+++ b/src/amdgpu_present.c
@@ -262,6 +262,13 @@ amdgpu_present_check_flip(RRCrtcPtr crtc, WindowPtr window, PixmapPtr pixmap,
 	if (info->drmmode.dri2_flipping)
 		return FALSE;
 
+	/* The kernel driver doesn't handle flipping between BOs with different
+	 * tiling parameters correctly yet
+	 */
+	if (amdgpu_pixmap_get_tiling_info(pixmap) !=
+	    amdgpu_pixmap_get_tiling_info(screen->GetScreenPixmap(screen)))
+		return FALSE;
+
 	return amdgpu_present_check_unflip(scrn);
 }
 
-- 
2.10.1



More information about the amd-gfx mailing list