diff options
author | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-07-22 00:36:07 +0100 |
---|---|---|
committer | Carsten Haitzler (Rasterman) <raster@rasterman.com> | 2019-07-22 00:36:07 +0100 |
commit | de5eea226a705b908154e5b518c659d3917631c3 (patch) | |
tree | 204b4e355ffb6c73501c80b1392f89c5a5604451 /src/lib/ecore_wl2/ecore_wl2_buffer.c | |
parent | 3195cf6d5f8d3548c9d194fba3aed07c69e8551c (diff) |
ecore wl2 - fall back to shm if dmabuf fails in buf init
so even if shm was an allowed mode/flag, we never fell back to shm if
dmabufs were not possible (/dev/dri/renderD128 didn't exist or wansn't
open-able). that's decidedly a bad thing to do.
@fix
Diffstat (limited to 'src/lib/ecore_wl2/ecore_wl2_buffer.c')
-rw-r--r-- | src/lib/ecore_wl2/ecore_wl2_buffer.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/ecore_wl2/ecore_wl2_buffer.c b/src/lib/ecore_wl2/ecore_wl2_buffer.c index 8e2e164546..faa811a447 100644 --- a/src/lib/ecore_wl2/ecore_wl2_buffer.c +++ b/src/lib/ecore_wl2/ecore_wl2_buffer.c | |||
@@ -595,12 +595,17 @@ ecore_wl2_buffer_init(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer_Type types) | |||
595 | if (!getenv("EVAS_WAYLAND_SHM_DISABLE_DMABUF") && dmabuf) | 595 | if (!getenv("EVAS_WAYLAND_SHM_DISABLE_DMABUF") && dmabuf) |
596 | { | 596 | { |
597 | fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC); | 597 | fd = open("/dev/dri/renderD128", O_RDWR | O_CLOEXEC); |
598 | if (fd < 0) goto err_drm; | 598 | if (fd < 0) |
599 | { | ||
600 | ERR("Tried to use dmabufs, but can't find /dev/dri/renderD128 . Falling back to regular SHM"); | ||
601 | goto fallback_shm; | ||
602 | } | ||
599 | 603 | ||
600 | success = _intel_buffer_manager_setup(fd); | 604 | success = _intel_buffer_manager_setup(fd); |
601 | if (!success) success = _exynos_buffer_manager_setup(fd); | 605 | if (!success) success = _exynos_buffer_manager_setup(fd); |
602 | if (!success) success = _vc4_buffer_manager_setup(fd); | 606 | if (!success) success = _vc4_buffer_manager_setup(fd); |
603 | } | 607 | } |
608 | fallback_shm: | ||
604 | if (!success) success = shm && _wl_shm_buffer_manager_setup(0); | 609 | if (!success) success = shm && _wl_shm_buffer_manager_setup(0); |
605 | if (!success) goto err_bm; | 610 | if (!success) goto err_bm; |
606 | 611 | ||
@@ -610,7 +615,6 @@ ecore_wl2_buffer_init(Ecore_Wl2_Display *ewd, Ecore_Wl2_Buffer_Type types) | |||
610 | 615 | ||
611 | err_bm: | 616 | err_bm: |
612 | if (fd >= 0) close(fd); | 617 | if (fd >= 0) close(fd); |
613 | err_drm: | ||
614 | free(buffer_manager); | 618 | free(buffer_manager); |
615 | buffer_manager = NULL; | 619 | buffer_manager = NULL; |
616 | err_alloc: | 620 | err_alloc: |