summaryrefslogtreecommitdiff
path: root/src/lib/ecore_drm2/ecore_drm2_private.h
diff options
context:
space:
mode:
authorDerek Foreman <derekf@osg.samsung.com>2017-05-12 14:41:03 -0500
committerDerek Foreman <derekf@osg.samsung.com>2017-05-12 17:51:34 -0500
commitedcbff59b72ef8b26af99c1cb3c38f4ffb48282a (patch)
tree3715fc4cdd8906b55969edf4214fdc3f1e7da9d6 /src/lib/ecore_drm2/ecore_drm2_private.h
parent69b941f018a5e289f4eb34adcfdc774c0d9a2409 (diff)
ecore_drm2: refcount fbs
Removes the previous "busy" flag, as now we might have an fb attached to multiple outputs at once, and need to be careful to destroy them only after they've been removed from all outputs. Removed the old "busy_set" API which nothing used, and renames fb_destroy to fb_discard to make it more clear that it's not immediately destroyed. It's all beta api, so I can do this.
Diffstat (limited to 'src/lib/ecore_drm2/ecore_drm2_private.h')
-rw-r--r--src/lib/ecore_drm2/ecore_drm2_private.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib/ecore_drm2/ecore_drm2_private.h b/src/lib/ecore_drm2/ecore_drm2_private.h
index b73add3667..2be6069b69 100644
--- a/src/lib/ecore_drm2/ecore_drm2_private.h
+++ b/src/lib/ecore_drm2/ecore_drm2_private.h
@@ -646,6 +646,7 @@ typedef struct _Ecore_Drm2_Plane_State
646 646
647 /* these are not part of an atomic state, but we store these here 647 /* these are not part of an atomic state, but we store these here
648 * so that we do not have to refetch properties when iterating planes */ 648 * so that we do not have to refetch properties when iterating planes */
649 Ecore_Drm2_Fb *fb;
649 uint32_t rotation_map[6]; 650 uint32_t rotation_map[6];
650 uint32_t supported_rotations; 651 uint32_t supported_rotations;
651 652
@@ -701,12 +702,11 @@ struct _Ecore_Drm2_Fb
701 uint32_t format; 702 uint32_t format;
702 703
703 void *gbm_bo; 704 void *gbm_bo;
705 void *mmap;
704 706
705 Eina_Bool gbm : 1; 707 Eina_Bool gbm : 1;
706 Eina_Bool dmabuf : 1; 708 Eina_Bool dmabuf : 1;
707 Eina_Bool busy : 1; 709 Eina_Bool dead : 1;
708
709 void *mmap;
710}; 710};
711 711
712struct _Ecore_Drm2_Plane 712struct _Ecore_Drm2_Plane
@@ -795,6 +795,7 @@ struct _Ecore_Drm2_Output
795 795
796 Eina_List *plane_states; 796 Eina_List *plane_states;
797 Eina_List *planes; 797 Eina_List *planes;
798 Eina_List *fbs;
798 799
799 Eina_Bool connected : 1; 800 Eina_Bool connected : 1;
800 Eina_Bool primary : 1; 801 Eina_Bool primary : 1;
@@ -837,6 +838,8 @@ struct _Ecore_Drm2_Device
837}; 838};
838 839
839Eina_Bool _fb_atomic_flip_test(Ecore_Drm2_Output *output); 840Eina_Bool _fb_atomic_flip_test(Ecore_Drm2_Output *output);
841void _ecore_drm2_fb_ref(Ecore_Drm2_Fb *);
842void _ecore_drm2_fb_deref(Ecore_Drm2_Fb *);
840 843
841/* extern int (*sym_drmClose)(int fd); */ 844/* extern int (*sym_drmClose)(int fd); */
842/* extern int (*sym_drmWaitVBlank)(int fd, drmVBlank *vbl); */ 845/* extern int (*sym_drmWaitVBlank)(int fd, drmVBlank *vbl); */