summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichel Dänzer <michel.daenzer@amd.com>2017-07-27 15:22:02 +0900
committerMichel Dänzer <michel.daenzer@amd.com>2017-07-27 15:22:02 +0900
commit35106fc0a948957cbb7e1e9649c89993a3d5c95c (patch)
tree08e7bea5c6f52ce29c54822d779bb155824cc20a
parenta47c0093338d80d84e7033ad15d051925d542ca0 (diff)
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 <alexander.deucher@amd.com>
-rw-r--r--src/drmmode_display.c6
1 files changed, 6 insertions, 0 deletions
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);