[PATCH 1/2] DRI2: Don't ignore rotated CRTCs in amdgpu_dri2_drawable_crtc

Michel Dänzer michel at daenzer.net
Wed Aug 19 02:17:28 PDT 2015


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

Waiting for vblank interrupts works fine with rotated CRTCs. The only
case we can't handle with rotation is page flipping, which is handled
in can_exchange().

This fixes gnome-shell hanging on rotation, probably because
amdgpu_dri2_get_msc returned MSC/UST 0 for rotated CRTCs.

(Ported from amdgpu commit 7b3212e33cd36fb6f122774df27b56ec4e1a22b8)

Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
---
 src/radeon_dri2.c | 9 +--------
 1 file changed, 1 insertion(+), 8 deletions(-)

diff --git a/src/radeon_dri2.c b/src/radeon_dri2.c
index 7587a0c..09a84b5 100644
--- a/src/radeon_dri2.c
+++ b/src/radeon_dri2.c
@@ -559,19 +559,12 @@ xf86CrtcPtr radeon_dri2_drawable_crtc(DrawablePtr pDraw, Bool consider_disabled)
 {
     ScreenPtr pScreen = pDraw->pScreen;
     ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-    xf86CrtcPtr crtc;
 
-    crtc = radeon_pick_best_crtc(pScrn, consider_disabled,
+    return radeon_pick_best_crtc(pScrn, consider_disabled,
 				 pDraw->x,
 				 pDraw->x + pDraw->width,
 				 pDraw->y,
 				 pDraw->y + pDraw->height);
-
-    /* Make sure the CRTC is valid and this is the real front buffer */
-    if (crtc != NULL && !crtc->rotatedData)
-	return crtc;
-    else
-	return NULL;
 }
 
 static void
-- 
2.5.0



More information about the xorg-driver-ati mailing list