diff options
author | Derek Foreman <derekf@osg.samsung.com> | 2018-06-26 15:28:07 -0400 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2018-06-26 15:28:07 -0400 |
commit | 7d54989f9beccb4d260681d11bf83e177bc75f9e (patch) | |
tree | 60b71cea65976ec68ae9c0a64c09e19237267c0b /src | |
parent | 80baf516a3267b5ae02a2c8d931ff153f3b1f64a (diff) |
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
Diffstat (limited to '')
-rw-r--r-- | src/lib/ecore_drm2/ecore_drm2_plane.c | 4 |
1 files changed, 3 insertions, 1 deletions
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: | |||
112 | plane->type = pstate->type.value; | 112 | plane->type = pstate->type.value; |
113 | plane->output = output; | 113 | plane->output = output; |
114 | 114 | ||
115 | output->planes = eina_list_append(output->planes, plane); | ||
116 | |||
115 | if (!_fb_atomic_flip_test(output)) | 117 | if (!_fb_atomic_flip_test(output)) |
116 | { | 118 | { |
119 | output->planes = eina_list_remove(output->planes, plane); | ||
117 | plane->state->in_use = EINA_FALSE; | 120 | plane->state->in_use = EINA_FALSE; |
118 | free(plane); | 121 | free(plane); |
119 | 122 | ||
@@ -122,7 +125,6 @@ out: | |||
122 | 125 | ||
123 | _ecore_drm2_fb_ref(fb); | 126 | _ecore_drm2_fb_ref(fb); |
124 | DBG("FB %d assigned to Plane %d", fb->id, pstate->obj_id); | 127 | DBG("FB %d assigned to Plane %d", fb->id, pstate->obj_id); |
125 | output->planes = eina_list_append(output->planes, plane); | ||
126 | 128 | ||
127 | if (fb->status_handler) | 129 | if (fb->status_handler) |
128 | fb->status_handler(fb, | 130 | fb->status_handler(fb, |