wayland_shm: Try a little harder to verify exynos dmabuf capabilities
authorDerek Foreman <derekf@osg.samsung.com>
Fri, 1 Sep 2017 19:49:22 +0000 (14:49 -0500)
committerDerek Foreman <derekf@osg.samsung.com>
Fri, 1 Sep 2017 19:50:40 +0000 (14:50 -0500)
Turns out the "device_open" function pretty much just tests calloc
functionality, and doesn't open any device.  So let's allocate a
tiny bo and discard it to make sure we're actually on exynos.

src/modules/evas/engines/wayland_shm/evas_dmabuf.c

index e06b11e..5c9619e 100644 (file)
@@ -269,6 +269,7 @@ _exynos_buffer_manager_setup(int fd)
 {
    Eina_Bool fail = EINA_FALSE;
    void *drm_exynos_lib;
+   struct exynos_bo *bo;
 
    drm_exynos_lib = dlopen("libdrm_exynos.so", RTLD_LAZY | RTLD_GLOBAL);
    if (!drm_exynos_lib) return EINA_FALSE;
@@ -285,6 +286,12 @@ _exynos_buffer_manager_setup(int fd)
    buffer_manager->priv = sym_exynos_device_create(fd);
    if (!buffer_manager->priv) goto err;
 
+   /* _device_create succeeds on any arch, test harder */
+   bo = sym_exynos_bo_create(buffer_manager->priv, 32, 0);
+   if (!bo) goto err;
+
+   sym_exynos_bo_destroy(bo);
+
    buffer_manager->alloc = _exynos_alloc;
    buffer_manager->map = _exynos_map;
    buffer_manager->unmap = _exynos_unmap;