[Mesa-dev] [PATCH mesa 1/3] egl: rewire the build systems to use libwayland-egl

Eric Engestrom eric.engestrom at intel.com
Tue May 29 14:41:28 UTC 2018


Cc: Emil Velikov <emil.l.velikov at gmail.com>
Cc: Daniel Stone <daniels at collabora.com>
Signed-off-by: Eric Engestrom <eric.engestrom at intel.com>
---
A couple things worth mentioning:
- I chose to add libwayland-egl as a separate dependency for EGL rather
  than bumping the libwayland required version, so that old libwayland
  can still be used if EGL is not needed. I'm happy to squash those if
  we'd rather simply bump the libwayland version.
- There is one non-build-system change in there, in platform_wayland.c,
  because the wayland-egl-backend.h we had and the one in wayland have
  diverged (for C++ compatibility IIRC, which we didn't need). I'm
  thinking it might be best to split this out as a separate change
  before the move in this commit, but it would probably involve so much
  changes (like the testing scripts) that I preferred to just squash it
  in here.
---
 configure.ac                                       |  6 ++++--
 meson.build                                        |  3 +++
 src/Makefile.am                                    |  5 -----
 src/egl/Makefile.am                                |  3 ++-
 src/egl/drivers/dri2/platform_wayland.c            |  7 +++----
 src/egl/meson.build                                | 10 ++--------
 src/gallium/state_trackers/omx/tizonia/Makefile.am |  2 +-
 7 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/configure.ac b/configure.ac
index 62063c1c8a7690bbea72..b13cbfb8a95b8f21aa4b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -90,6 +90,7 @@ LIBOMXIL_TIZONIA_REQUIRED=0.10.0
 LIBVA_REQUIRED=0.39.0
 VDPAU_REQUIRED=1.1
 WAYLAND_REQUIRED=1.11
+WAYLAND_EGL_REQUIRED=1.15
 WAYLAND_PROTOCOLS_REQUIRED=1.8
 XCB_REQUIRED=1.9.3
 XCBDRI2_REQUIRED=1.8
@@ -1808,6 +1809,9 @@ for plat in $platforms; do
         PKG_CHECK_MODULES([WAYLAND_CLIENT], [wayland-client >= $WAYLAND_REQUIRED])
         PKG_CHECK_MODULES([WAYLAND_SERVER], [wayland-server >= $WAYLAND_REQUIRED])
         PKG_CHECK_MODULES([WAYLAND_PROTOCOLS], [wayland-protocols >= $WAYLAND_PROTOCOLS_REQUIRED])
+        if test "x$enable_egl" = xyes; then
+          PKG_CHECK_MODULES([WAYLAND_EGL], [wayland-egl >= $WAYLAND_EGL_REQUIRED])
+        fi
         WAYLAND_PROTOCOLS_DATADIR=`$PKG_CONFIG --variable=pkgdatadir wayland-protocols`
 
         PKG_CHECK_MODULES([WAYLAND_SCANNER], [wayland-scanner],
@@ -3019,8 +3023,6 @@ AC_CONFIG_FILES([Makefile
                  src/egl/Makefile
                  src/egl/main/egl.pc
                  src/egl/wayland/wayland-drm/Makefile
-                 src/egl/wayland/wayland-egl/Makefile
-                 src/egl/wayland/wayland-egl/wayland-egl.pc
                  src/gallium/Makefile
                  src/gallium/auxiliary/Makefile
                  src/gallium/auxiliary/pipe-loader/Makefile
diff --git a/meson.build b/meson.build
index d0cb896163814873eb5f..551dea1371803657ce07 100644
--- a/meson.build
+++ b/meson.build
@@ -1231,6 +1231,9 @@ if with_platform_wayland
   dep_wl_protocols = dependency('wayland-protocols', version : '>= 1.8')
   dep_wayland_client = dependency('wayland-client', version : '>=1.11')
   dep_wayland_server = dependency('wayland-server', version : '>=1.11')
+  if with_egl
+    dep_wayland_egl = dependency('wayland-egl', version : '>=1.15')
+  endif
   wayland_dmabuf_xml = join_paths(
     dep_wl_protocols.get_pkgconfig_variable('pkgdatadir'), 'unstable',
     'linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'
diff --git a/src/Makefile.am b/src/Makefile.am
index fd5ae445502c710c726e..9bb3bce3c07717186883 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -95,11 +95,6 @@ if HAVE_GBM
 SUBDIRS += gbm
 endif
 
-## Optionally required by EGL
-if HAVE_PLATFORM_WAYLAND
-SUBDIRS += egl/wayland/wayland-egl
-endif
-
 if HAVE_EGL
 SUBDIRS += egl
 endif
diff --git a/src/egl/Makefile.am b/src/egl/Makefile.am
index 086a4a1e63020caa8c05..be3547d968fb0304414c 100644
--- a/src/egl/Makefile.am
+++ b/src/egl/Makefile.am
@@ -84,6 +84,8 @@ drivers/dri2/egl_dri2.lo: drivers/dri2/linux-dmabuf-unstable-v1-client-protocol.
 AM_CFLAGS += $(WAYLAND_CLIENT_CFLAGS)
 libEGL_common_la_LIBADD += $(WAYLAND_CLIENT_LIBS)
 libEGL_common_la_LIBADD += $(LIBDRM_LIBS)
+AM_CFLAGS += $(WAYLAND_EGL_CFLAGS)
+libEGL_common_la_LIBADD += $(WAYLAND_EGL_LIBS)
 AM_CFLAGS += $(WAYLAND_SERVER_CFLAGS)
 libEGL_common_la_LIBADD += $(top_builddir)/src/egl/wayland/wayland-drm/libwayland-drm.la
 libEGL_common_la_LIBADD += $(WAYLAND_SERVER_LIBS)
@@ -114,7 +116,6 @@ AM_CFLAGS += \
 	-I$(top_builddir)/src/egl/drivers/dri2 \
 	-I$(top_srcdir)/src/egl/drivers/dri2 \
 	-I$(top_srcdir)/src/gbm/backends/dri \
-	-I$(top_srcdir)/src/egl/wayland/wayland-egl \
 	-I$(top_builddir)/src/egl/wayland/wayland-drm \
 	-I$(top_srcdir)/src/egl/wayland/wayland-drm \
 	-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
diff --git a/src/egl/drivers/dri2/platform_wayland.c b/src/egl/drivers/dri2/platform_wayland.c
index 63da21cdf557d0dcc3e0..11026f9fbf4ba0ed0749 100644
--- a/src/egl/drivers/dri2/platform_wayland.c
+++ b/src/egl/drivers/dri2/platform_wayland.c
@@ -45,12 +45,11 @@
 #include "util/u_vector.h"
 #include "eglglobals.h"
 
+#include <wayland-egl-backend.h>
 #include <wayland-client.h>
 #include "wayland-drm-client-protocol.h"
 #include "linux-dmabuf-unstable-v1-client-protocol.h"
 
-#include "wayland/wayland-egl/wayland-egl-backend.h"
-
 #ifndef DRM_FORMAT_MOD_INVALID
 #define DRM_FORMAT_MOD_INVALID ((1ULL << 56) - 1)
 #endif
@@ -298,7 +297,7 @@ dri2_wl_create_window_surface(_EGLDriver *drv, _EGLDisplay *disp,
                       dri2_surf->wl_queue);
 
    dri2_surf->wl_win = window;
-   dri2_surf->wl_win->private = dri2_surf;
+   dri2_surf->wl_win->driver_private = dri2_surf;
    dri2_surf->wl_win->destroy_window_callback = destroy_window_callback;
    if (dri2_dpy->flush)
       dri2_surf->wl_win->resize_callback = resize_callback;
@@ -384,7 +383,7 @@ dri2_wl_destroy_surface(_EGLDriver *drv, _EGLDisplay *disp, _EGLSurface *surf)
       wl_callback_destroy(dri2_surf->throttle_callback);
 
    if (dri2_surf->wl_win) {
-      dri2_surf->wl_win->private = NULL;
+      dri2_surf->wl_win->driver_private = NULL;
       dri2_surf->wl_win->resize_callback = NULL;
       dri2_surf->wl_win->destroy_window_callback = NULL;
    }
diff --git a/src/egl/meson.build b/src/egl/meson.build
index 9050d763a6cd9c4effe9..dc67b7b1536bbc46fbff 100644
--- a/src/egl/meson.build
+++ b/src/egl/meson.build
@@ -116,7 +116,7 @@ if with_platform_surfaceless
   files_egl += files('drivers/dri2/platform_surfaceless.c')
 endif
 if with_platform_wayland
-  deps_for_egl += [dep_wayland_client, dep_wayland_server]
+  deps_for_egl += [dep_wayland_client, dep_wayland_server, dep_wayland_egl]
   link_for_egl += libwayland_drm
   files_egl += files('drivers/dri2/platform_wayland.c')
   files_egl += [
@@ -124,9 +124,7 @@ if with_platform_wayland
     linux_dmabuf_unstable_v1_client_protocol_h,
     wayland_drm_client_protocol_h,
   ]
-  incs_for_egl += include_directories(
-    'wayland/wayland-egl', 'wayland/wayland-drm',
-  )
+  incs_for_egl += include_directories('wayland/wayland-drm')
 endif
 if with_platform_android
   deps_for_egl += dep_android
@@ -198,10 +196,6 @@ pkg.generate(
   extra_cflags : gl_pkgconfig_c_flags,
 )
 
-if with_platform_wayland
-  subdir('wayland/wayland-egl')
-endif
-
 if with_tests
   if with_glvnd
     # TODO: add glvnd symbol check
diff --git a/src/gallium/state_trackers/omx/tizonia/Makefile.am b/src/gallium/state_trackers/omx/tizonia/Makefile.am
index 0eac85a319ee388b5b4b..ac72affa326dbc732f90 100644
--- a/src/gallium/state_trackers/omx/tizonia/Makefile.am
+++ b/src/gallium/state_trackers/omx/tizonia/Makefile.am
@@ -29,7 +29,6 @@ AM_CFLAGS = \
 	-I$(top_srcdir)/src/mesa/drivers/dri/common \
 	-I$(top_srcdir)/src/egl \
 	-I$(top_srcdir)/src/egl/drivers/dri2 \
-	-I$(top_srcdir)/src/egl/wayland/wayland-egl \
 	-I$(top_srcdir)/src/egl/main \
 	-I$(top_srcdir)/src/gbm/main \
 	-I$(top_srcdir)/src/loader \
@@ -38,6 +37,7 @@ AM_CFLAGS = \
 	-I$(top_srcdir)/src/gallium/state_trackers/omx \
 	$(GALLIUM_CFLAGS) \
 	$(LIBDRM_CFLAGS) \
+	$(WAYLAND_EGL_CFLAGS) \
 	$(VISIBILITY_CFLAGS) \
 	$(VL_CFLAGS) \
 	$(XCB_DRI3_CFLAGS) \
-- 
Cheers,
  Eric



More information about the mesa-dev mailing list