From 35106fc0a948957cbb7e1e9649c89993a3d5c95c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michel=20D=C3=A4nzer?= Date: Thu, 27 Jul 2017 15:22:02 +0900 Subject: Only handle reflection in the driver with Xorg < 1.16 Xorg doesn't handle the hardware cursor correctly in that case for rotation and general transforms, and we can't force the SW cursor. Fixes: ba2aa0a8c12a ("Handle rotation in the driver also with Xorg 1.12-1.18") (Cherry picked from radeon commit 7d7abf99b5441ddb04dbee99bc8fa7abc30d4c46) Reviewed-by: Alex Deucher --- src/drmmode_display.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/drmmode_display.c b/src/drmmode_display.c index 567d146..9b33d4d 100644 --- a/src/drmmode_display.c +++ b/src/drmmode_display.c @@ -615,10 +615,16 @@ drmmode_handle_transform(xf86CrtcPtr crtc) { Bool ret; +#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,15,99,903,0) if (crtc->transformPresent || crtc->rotation != RR_Rotate_0) crtc->driverIsPerformingTransform = XF86DriverTransformOutput; else crtc->driverIsPerformingTransform = XF86DriverTransformNone; +#else + crtc->driverIsPerformingTransform = !crtc->transformPresent && + crtc->rotation != RR_Rotate_0 && + (crtc->rotation & 0xf) == RR_Rotate_0; +#endif ret = xf86CrtcRotate(crtc); -- cgit v1.2.3