summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2/ecore_drm2_private.h
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-04-27 16:02:59 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-05-05 12:53:22 -0500
commit63dbf061a993a3a81c03bc79806b646003c85e4e (patch)
treee74340be1005c11d815a0598f47fa55466049987 /src/lib/ecore_drm2/ecore_drm2_private.h
parent6482367aa2010c244bf109c26e0460f34f85332d (diff)
ecore_drm2: Move atomic state into an output state struct
This should make it easier to share code paths between atomic and non atomic operations.
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_private.h')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_private.h20
1 files changed, 17 insertions, 3 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index 09a9c46ee8..d97b7cddef 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -723,6 +723,19 @@ struct _Ecore_Drm2_Output_Mode
723 drmModeModeInfo info; 723 drmModeModeInfo info;
724}; 724};
725 725
726/* A half step - we still keep an fb for the canvas
727 * and an atomic_req for all atomic state (including
728 * the canvas fb).
729 * The non atomic code only uses the canvas fb.
730 */
731typedef struct _Ecore_Drm2_Output_State
732{
733 Ecore_Drm2_Fb *fb;
734# ifdef HAVE_ATOMIC_DRM
735 drmModeAtomicReq *atomic_req;
736# endif
737} Ecore_Drm2_Output_State;
738
726struct _Ecore_Drm2_Output 739struct _Ecore_Drm2_Output
727{ 740{
728 Eina_Stringshare *name; 741 Eina_Stringshare *name;
@@ -755,6 +768,10 @@ struct _Ecore_Drm2_Output
755 768
756 drmModeCrtcPtr ocrtc; 769 drmModeCrtcPtr ocrtc;
757 770
771 /* prep is for state we're preparing and have never
772 * attempted to commit */
773 Ecore_Drm2_Output_State prep;
774
758 Ecore_Drm2_Fb *current, *next, *pending; 775 Ecore_Drm2_Fb *current, *next, *pending;
759 776
760 Eina_Matrix4 matrix, inverse; 777 Eina_Matrix4 matrix, inverse;
@@ -776,9 +793,6 @@ struct _Ecore_Drm2_Output
776 Eina_List *plane_states; 793 Eina_List *plane_states;
777 Eina_List *planes; 794 Eina_List *planes;
778 795
779# ifdef HAVE_ATOMIC_DRM
780 drmModeAtomicReq *atomic_req;
781# endif
782 796
783 Eina_Bool connected : 1; 797 Eina_Bool connected : 1;
784 Eina_Bool primary : 1; 798 Eina_Bool primary : 1;