path: root/src/lib/ecore_drm2/ecore_drm2_private.h
diff options
authorDerek Foreman <>2017-05-04 16:28:10 -0500
committerDerek Foreman <>2017-05-05 12:53:25 -0500
commitc722466a602794002b374ef0f84de0a92d9cd531 (patch)
tree51c5a8b1a9d66356b7fb260fac8cc1186b2f4936 /src/lib/ecore_drm2/ecore_drm2_private.h
parent1071c9f3a8731e37e4e83d024519a44cd56a44f2 (diff)
ecore_drm2: Replace plane state release flag with plane dead flag
The release flag is actually less useful than the existing in_use flag for determining if a plane is unused. If a new plane is assigned before the next flip cleans up released planes, then it can point to a released plane state, and both it and the previous user will be freed on the next commit, leaking a plane. Putting the flag in the plane structure fixes this while still allowing us to keep released planes around to ensure a recently released plane is cleared from atomic state.
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_private.h')
1 files changed, 2 insertions, 1 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index f73f8bcb49..860bb70c66 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -652,7 +652,7 @@ typedef struct _Ecore_Drm2_Plane_State
652 uint32_t num_formats; 652 uint32_t num_formats;
653 uint32_t *formats; 653 uint32_t *formats;
654 654
655 Eina_Bool in_use, release; 655 Eina_Bool in_use;
656} Ecore_Drm2_Plane_State; 656} Ecore_Drm2_Plane_State;
657 657
658struct _Ecore_Drm2_Atomic_State 658struct _Ecore_Drm2_Atomic_State
@@ -712,6 +712,7 @@ struct _Ecore_Drm2_Plane
712 int type; 712 int type;
713 Ecore_Drm2_Plane_State *state; 713 Ecore_Drm2_Plane_State *state;
714 Ecore_Drm2_Output *output; 714 Ecore_Drm2_Output *output;
715 Eina_Bool dead;
715}; 716};
716 717
717struct _Ecore_Drm2_Output_Mode 718struct _Ecore_Drm2_Output_Mode