[PATCH xf86-video-amdgpu] DRI2: Don't ignore rotated CRTCs in amdgpu_dri2_drawable_crtc

Michel Dänzer michel at daenzer.net
Thu Jul 9 01:58:16 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.

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

diff --git a/src/amdgpu_dri2.c b/src/amdgpu_dri2.c
index bde36de..bbf286c 100644
--- a/src/amdgpu_dri2.c
+++ b/src/amdgpu_dri2.c
@@ -425,18 +425,11 @@ xf86CrtcPtr amdgpu_dri2_drawable_crtc(DrawablePtr pDraw, Bool consider_disabled)
 {
 	ScreenPtr pScreen = pDraw->pScreen;
 	ScrnInfoPtr pScrn = xf86ScreenToScrn(pScreen);
-	xf86CrtcPtr crtc;
 
-	crtc = amdgpu_pick_best_crtc(pScrn, consider_disabled,
+	return amdgpu_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.1.4



More information about the xorg-driver-ati mailing list