diff --git a/src/bin/e_pixmap.c b/src/bin/e_pixmap.c index ed63c18b9..3dd608ef0 100644 --- a/src/bin/e_pixmap.c +++ b/src/bin/e_pixmap.c @@ -1107,25 +1107,24 @@ e_pixmap_dmabuf_test(struct linux_dmabuf_buffer *dmabuf) { Evas_Native_Surface ns; Evas_Object *test; + Eina_Bool ret; int size; void *data; memset(&ns, 0, sizeof(ns)); - if (e_comp->gl) - { - Eina_Bool ret; - ns.type = EVAS_NATIVE_SURFACE_WL_DMABUF; - ns.version = EVAS_NATIVE_SURFACE_VERSION; - ns.data.wl_dmabuf.attr = &dmabuf->attributes; - ns.data.wl_dmabuf.resource = NULL; - test = evas_object_image_add(e_comp->evas); - evas_object_image_native_surface_set(test, &ns); - ret = evas_object_image_load_error_get(test) == EVAS_LOAD_ERROR_NONE; - evas_object_del(test); - if (!ns.data.wl_dmabuf.attr) return EINA_FALSE; - return ret; - } + ns.type = EVAS_NATIVE_SURFACE_WL_DMABUF; + ns.version = EVAS_NATIVE_SURFACE_VERSION; + ns.data.wl_dmabuf.attr = &dmabuf->attributes; + ns.data.wl_dmabuf.resource = NULL; + test = evas_object_image_add(e_comp->evas); + evas_object_image_native_surface_set(test, &ns); + ret = evas_object_image_load_error_get(test) == EVAS_LOAD_ERROR_NONE; + evas_object_del(test); + if (!ns.data.wl_dmabuf.attr) return EINA_FALSE; + + if (e_comp->gl || !ret) + return ret; /* TODO: Software rendering for multi-plane formats */ if (dmabuf->attributes.n_planes != 1) return EINA_FALSE;