hwc->ee =NULL;
}
+static Eina_Bool
+_e_hwc_prefer_gbm_check(void)
+{
+ const char *backend_name;
+ struct gbm_device *gdevice;
+
+ if (e_comp->hwc_prefer_gbm)
+ return EINA_TRUE;
+
+ gdevice = e_comp_screen_gbm_device_get(e_comp->e_comp_screen);
+ if (!gdevice) return EINA_FALSE;
+
+ backend_name = gbm_device_get_backend_name(gdevice);
+ if (!backend_name) return EINA_FALSE;
+ if (!e_util_strcmp(backend_name, "gbm_tbm")) return EINA_FALSE;
+
+ return EINA_TRUE;
+}
+
EINTERN Eina_Bool
e_hwc_ecore_evas_init(void)
{
(e_comp_config_get()->engine == E_COMP_ENGINE_GL))
{
e_main_ts_begin("\tEE_GL_TBM New");
- if (e_comp->hwc_prefer_gbm)
+ if (_e_hwc_prefer_gbm_check())
{
ee = _e_hwc_ecore_evas_gbm_alloc(hwc, scr_w, scr_h);
if (!ee)