[Mesa-dev] [PATCH 4/5] egl/wayland: move teardown code to the platform file

Dylan Baker dylan at pnwbakers.com
Thu Nov 16 18:33:45 UTC 2017


Hey Emil, this commit breaks mesa pretty badly, wflinfo segfaults:

40a01c9a0ef2c8110d79c284976ef34c0f73be92 is the first bad commit
commit 40a01c9a0ef2c8110d79c284976ef34c0f73be92
Author: Emil Velikov <emil.velikov at collabora.com>
Date:   Thu Nov 9 19:04:25 2017 +0000

    egl/drm: move teardown code to the platform file

    Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
    Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

:040000 040000 2b357f3f681f8c4a1a672dd7694f18b4866226d8 0b1507c3b436555f37c160ebed6757ebcd84e41a M      src

Quoting Emil Velikov (2017-11-13 06:06:13)
> From: Emil Velikov <emil.velikov at collabora.com>
> 
> Signed-off-by: Emil Velikov <emil.velikov at collabora.com>
> ---
>  src/egl/drivers/dri2/egl_dri2.c         | 21 +--------------------
>  src/egl/drivers/dri2/egl_dri2.h         |  4 ++++
>  src/egl/drivers/dri2/platform_wayland.c | 22 ++++++++++++++++++++++
>  3 files changed, 27 insertions(+), 20 deletions(-)
> 
> diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
> index fc56e6357a6..28a3591ed49 100644
> --- a/src/egl/drivers/dri2/egl_dri2.c
> +++ b/src/egl/drivers/dri2/egl_dri2.c
> @@ -994,28 +994,9 @@ dri2_display_destroy(_EGLDisplay *disp)
>     case _EGL_PLATFORM_DRM:
>        dri2_teardown_drm(disp);
>        break;
> -#ifdef HAVE_WAYLAND_PLATFORM
>     case _EGL_PLATFORM_WAYLAND:
> -      if (dri2_dpy->wl_drm)
> -          wl_drm_destroy(dri2_dpy->wl_drm);
> -      if (dri2_dpy->wl_dmabuf)
> -          zwp_linux_dmabuf_v1_destroy(dri2_dpy->wl_dmabuf);
> -      if (dri2_dpy->wl_shm)
> -          wl_shm_destroy(dri2_dpy->wl_shm);
> -      if (dri2_dpy->wl_registry)
> -         wl_registry_destroy(dri2_dpy->wl_registry);
> -      if (dri2_dpy->wl_queue)
> -         wl_event_queue_destroy(dri2_dpy->wl_queue);
> -      if (dri2_dpy->wl_dpy_wrapper)
> -         wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper);
> -      u_vector_finish(&dri2_dpy->wl_modifiers.argb8888);
> -      u_vector_finish(&dri2_dpy->wl_modifiers.xrgb8888);
> -      u_vector_finish(&dri2_dpy->wl_modifiers.rgb565);
> -      if (dri2_dpy->own_device) {
> -         wl_display_disconnect(dri2_dpy->wl_dpy);
> -      }
> +      dri2_teardown_wayland(disp);
>        break;
> -#endif
>     default:
>        break;
>     }
> diff --git a/src/egl/drivers/dri2/egl_dri2.h b/src/egl/drivers/dri2/egl_dri2.h
> index 9222fa122b2..ef375b68f82 100644
> --- a/src/egl/drivers/dri2/egl_dri2.h
> +++ b/src/egl/drivers/dri2/egl_dri2.h
> @@ -433,12 +433,16 @@ dri2_teardown_drm(struct dri2_egl_display *dri2_dpy) {}
>  #ifdef HAVE_WAYLAND_PLATFORM
>  EGLBoolean
>  dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp);
> +void
> +dri2_teardown_wayland(struct dri2_egl_display *dri2_dpy);
>  #else
>  static inline EGLBoolean
>  dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
>  {
>     return _eglError(EGL_NOT_INITIALIZED, "Wayland platform not built");
>  }
> +static inline void
> +dri2_teardown_wayland(struct dri2_egl_display *dri2_dpy) {}
>  #endif
>  
>  #ifdef HAVE_ANDROID_PLATFORM
> diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
> index b38eb1c3354..b8f644210b3 100644
> --- a/src/egl/drivers/dri2/platform_wayland.c
> +++ b/src/egl/drivers/dri2/platform_wayland.c
> @@ -1980,3 +1980,25 @@ dri2_initialize_wayland(_EGLDriver *drv, _EGLDisplay *disp)
>     return initialized;
>  
>  }
> +
> +void
> +dri2_teardown_wayland(struct dri2_egl_display *dri2_dpy)
> +{
> +   if (dri2_dpy->wl_drm)
> +      wl_drm_destroy(dri2_dpy->wl_drm);
> +   if (dri2_dpy->wl_dmabuf)
> +      zwp_linux_dmabuf_v1_destroy(dri2_dpy->wl_dmabuf);
> +   if (dri2_dpy->wl_shm)
> +      wl_shm_destroy(dri2_dpy->wl_shm);
> +   if (dri2_dpy->wl_registry)
> +      wl_registry_destroy(dri2_dpy->wl_registry);
> +   if (dri2_dpy->wl_queue)
> +      wl_event_queue_destroy(dri2_dpy->wl_queue);
> +   if (dri2_dpy->wl_dpy_wrapper)
> +      wl_proxy_wrapper_destroy(dri2_dpy->wl_dpy_wrapper);
> +   u_vector_finish(&dri2_dpy->wl_modifiers.argb8888);
> +   u_vector_finish(&dri2_dpy->wl_modifiers.xrgb8888);
> +   u_vector_finish(&dri2_dpy->wl_modifiers.rgb565);
> +   if (dri2_dpy->own_device)
> +      wl_display_disconnect(dri2_dpy->wl_dpy);
> +}
> -- 
> 2.15.0
> 
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: signature
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20171116/0a3a3dd1/attachment.sig>


More information about the mesa-dev mailing list