[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