From 7d54989f9beccb4d260681d11bf83e177bc75f9e Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Tue, 26 Jun 2018 15:28:07 -0400 Subject: [PATCH] ecore_drm2: Fix failure to properly set up new plane Summary: When we add a plane we need to add it to the list before doing the atomic test to ensure we're testing new state that includes the plane, and to ensure the next screen update includes the plane we just added. Fix T7066 Reviewers: devilhorns Subscribers: cedric, #committers, zmike Tags: #efl Maniphest Tasks: T7066 Differential Revision: https://phab.enlightenment.org/D6432 --- src/lib/ecore_drm2/ecore_drm2_plane.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_drm2/ecore_drm2_plane.c b/src/lib/ecore_drm2/ecore_drm2_plane.c index 796302dc1f..b9601cc347 100644 --- a/src/lib/ecore_drm2/ecore_drm2_plane.c +++ b/src/lib/ecore_drm2/ecore_drm2_plane.c @@ -112,8 +112,11 @@ out: plane->type = pstate->type.value; plane->output = output; + output->planes = eina_list_append(output->planes, plane); + if (!_fb_atomic_flip_test(output)) { + output->planes = eina_list_remove(output->planes, plane); plane->state->in_use = EINA_FALSE; free(plane); @@ -122,7 +125,6 @@ out: _ecore_drm2_fb_ref(fb); DBG("FB %d assigned to Plane %d", fb->id, pstate->obj_id); - output->planes = eina_list_append(output->planes, plane); if (fb->status_handler) fb->status_handler(fb,