Handle rotation in the driver also with Xorg 1.12-1.18

We cannot use the HW cursor in that case, but in turn we get more
efficient and less teary updates of rotated outputs.

(Ported from radeon commit f2bc882f1c1082bed9f496cfab6c8f07a76bc122)
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
Michel Dänzer
2017-03-02 16:55:38 +09:00
committed by Michel Dänzer
parent 7f3abf35a2
commit ba2aa0a8c1

View File

@@ -589,22 +589,20 @@ drmmode_can_use_hw_cursor(xf86CrtcPtr crtc)
#if XF86_CRTC_VERSION >= 4
#if XF86_CRTC_VERSION < 7
#define XF86DriverTransformOutput TRUE
#define XF86DriverTransformNone FALSE
#endif
static Bool
drmmode_handle_transform(xf86CrtcPtr crtc)
{
Bool ret;
#if XF86_CRTC_VERSION >= 7
if (crtc->transformPresent || crtc->rotation != RR_Rotate_0)
crtc->driverIsPerformingTransform = XF86DriverTransformOutput;
else
crtc->driverIsPerformingTransform = XF86DriverTransformNone;
#else
AMDGPUInfoPtr info = AMDGPUPTR(crtc->scrn);
crtc->driverIsPerformingTransform = crtc->transformPresent ||
(info->tear_free && crtc->rotation != RR_Rotate_0);
#endif
ret = xf86CrtcRotate(crtc);