derekf pushed a commit to branch master. http://git.enlightenment.org/core/enlightenment.git/commit/?id=6b0c55dd96c9d2cdcb500aad681e7645bd5a0e29
commit 6b0c55dd96c9d2cdcb500aad681e7645bd5a0e29 Author: Derek Foreman <[email protected]> Date: Wed May 11 09:44:00 2016 -0500 Track parent compositor dmabuf capabilities on wayland on wayland When running as a wayland compositor connected to another wayland compositor, we don't want to advertise dmabuf capabilities if the parent compositor doesn't support them. If it does, we'll want to proxy dmabuf requests to it instead of handling them ourselves. Expose this as new bools in e_comp_wl. --- src/bin/e_comp_wl.h | 3 +++ src/modules/wl_wl/e_mod_main.c | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/bin/e_comp_wl.h b/src/bin/e_comp_wl.h index 25b7c65..7a7f29a 100644 --- a/src/bin/e_comp_wl.h +++ b/src/bin/e_comp_wl.h @@ -251,6 +251,9 @@ struct _E_Comp_Wl_Data E_Drag *drag; E_Client *drag_client; void *drag_source; + + Eina_Bool dmabuf_disable : 1; + Eina_Bool dmabuf_proxy : 1; }; struct _E_Comp_Wl_Client_Data diff --git a/src/modules/wl_wl/e_mod_main.c b/src/modules/wl_wl/e_mod_main.c index a00c584..ad1162f 100644 --- a/src/modules/wl_wl/e_mod_main.c +++ b/src/modules/wl_wl/e_mod_main.c @@ -23,6 +23,11 @@ _cb_sync_done(void *data EINA_UNUSED, int type EINA_UNUSED, void *event) e_comp_canvas_resize(w * 2 / 3, h * 2 / 3); + if (!ecore_wl2_display_dmabuf_get(e_comp_wl->wl.client_disp)) + e_comp_wl->dmabuf_disable = EINA_TRUE; + else + e_comp_wl->dmabuf_proxy = EINA_TRUE; + return ECORE_CALLBACK_PASS_ON; } --
