From 9d301e4e033e4406ae3f50dbd9eb2789d11cefcf Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Fri, 22 Mar 2019 12:41:03 -0400 Subject: [PATCH] ecore-drm2: Don't use AtomicAddProperty for plane rotation Summary: Apparently something has been changed recently in libdrm that causes AtomicAddProperty to fail when trying to set plane rotation. Until this can be found & fixed, let's just disable trying to rotate hardware planes with atomic commits. ref T7690 @fix Reviewers: raster, cedric, zmike Subscribers: zmike, cedric Tags: #efl, #do_not_merge Maniphest Tasks: T7690 Differential Revision: https://phab.enlightenment.org/D8110 --- src/lib/ecore_drm2/ecore_drm2_fb.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/lib/ecore_drm2/ecore_drm2_fb.c b/src/lib/ecore_drm2/ecore_drm2_fb.c index 6888a3c2c1..017f981693 100644 --- a/src/lib/ecore_drm2/ecore_drm2_fb.c +++ b/src/lib/ecore_drm2/ecore_drm2_fb.c @@ -413,6 +413,25 @@ _fb_atomic_flip_test(Ecore_Drm2_Output *output) sym_drmModeAtomicAddProperty(req, pstate->obj_id, pstate->ch.id, pstate->ch.value); if (ret < 0) goto err; + +#if 0 + /* XXX: Disable hardware plane rotation for now as this has broken + * recently. The break happens because of an invalid argument, + * ie: the value being sent from pstate->rotation_map ends up being + * incorrect for some reason. I suspect the breakage to be from + * kernel drivers (linux 4.20.0) but have not confirmed that version */ + if ((pstate->rotation.id) && + (pstate->type.value == DRM_PLANE_TYPE_PRIMARY)) + { + DBG("Plane %d Atomic Rotation: %lu", + pstate->obj_id, pstate->rotation.value); + ret = + sym_drmModeAtomicAddProperty(req, pstate->obj_id, + pstate->rotation.id, + pstate->rotation_map[pstate->rotation.value]); + if (ret < 0) goto err; + } +#endif } ret =