aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch6
-rw-r--r--recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch14
-rw-r--r--recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch6
-rw-r--r--recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch6
-rw-r--r--recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch6
-rw-r--r--recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch6
-rw-r--r--recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch6
-rw-r--r--recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch6
-rw-r--r--recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch6
-rw-r--r--recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch6
-rw-r--r--recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch6
-rw-r--r--recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch6
-rw-r--r--recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch6
-rw-r--r--recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch6
-rw-r--r--recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch6
-rw-r--r--recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch145
-rw-r--r--recipes-graphics/userland/userland_git.bb5
17 files changed, 197 insertions, 51 deletions
diff --git a/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch b/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
index 5861c4e..933f279 100644
--- a/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
+++ b/recipes-graphics/userland/userland/0001-Allow-applications-to-set-next-resource-handle.patch
@@ -1,7 +1,7 @@
-From e45bc677368d0f8d42720aad242f33f6e2687fb1 Mon Sep 17 00:00:00 2001
+From 0a64dc61d3d7db69389157ae757203b4b3afdbfa Mon Sep 17 00:00:00 2001
From: Dom Cobley <dc4@broadcom.com>
Date: Tue, 9 Jul 2013 09:26:26 -0400
-Subject: [PATCH 01/15] Allow applications to set next resource handle
+Subject: [PATCH 01/16] Allow applications to set next resource handle
This patch adds provisions in userland to
let apps callers set the next rendereing dispmanx resource.
@@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644
FN(void, eglIntGetColorData_impl, (EGL_SURFACE_ID_T s, KHRN_IMAGE_FORMAT_T format, uint32_t width, uint32_t height, int32_t stride, uint32_t y_offset, void *data))
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
index d6e6476..e9c7058 100644
--- a/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
+++ b/recipes-graphics/userland/userland/0002-wayland-Add-support-for-the-Wayland-winsys.patch
@@ -1,7 +1,7 @@
-From 15fb270f438f4ef1413192b5ce1e0dc784b45d9e Mon Sep 17 00:00:00 2001
+From 5608ec8002be8370e78c9dbb1e07cee4cfb18b58 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 02/15] wayland: Add support for the Wayland winsys
+Subject: [PATCH 02/16] wayland: Add support for the Wayland winsys
* Adds EGL_WL_bind_wayland_display extension
* Adds wayland-egl library
@@ -89,13 +89,13 @@ index cfc8ae5..673a5ad 100644
# Global include paths
diff --git a/README.md b/README.md
-index 358d2b4..4da4448 100644
+index 94b93b8..50b90b1 100644
--- a/README.md
+++ b/README.md
-@@ -4,3 +4,7 @@ EGL, mmal, GLESv2, vcos, openmaxil, vchiq_arm, bcm_host, WFC, OpenVG.
-
- Use buildme to build. It requires cmake to be installed and an arm cross compiler. It is set up to use this one:
+@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake to be installed and an arm cross compile
https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
+
+ Note that this repository does not contain the source for the edid_parser and vcdbg binaries due to licensing restrictions.
+
+To build support for the Wayland winsys in EGL, execute the buildme script like this:
+
@@ -1884,5 +1884,5 @@ index 0000000..ad90d30
+ set(${_sources} ${${_sources}} PARENT_SCOPE)
+endfunction()
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch b/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
index 1d78755..e3a0cf2 100644
--- a/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
+++ b/recipes-graphics/userland/userland/0003-wayland-Add-Wayland-example.patch
@@ -1,7 +1,7 @@
-From b0437cf318a26c62119ad60649430903f58bbab4 Mon Sep 17 00:00:00 2001
+From 20ac7c6af4e826b5c536b6a7c8b2d1d266ced81e Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200
-Subject: [PATCH 03/15] wayland: Add Wayland example
+Subject: [PATCH 03/16] wayland: Add Wayland example
---
.../linux/apps/hello_pi/CMakeLists.txt | 1 +
@@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
-
+make -C hello_wayland
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
index d60c432..713fc3e 100644
--- a/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
+++ b/recipes-graphics/userland/userland/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
@@ -1,7 +1,7 @@
-From cae4ff834eef23c8f23126ba4d630db395f13aee Mon Sep 17 00:00:00 2001
+From f17879b691984b5c4950e4b94ebf102c78797ede Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Aug 2015 02:38:27 -0700
-Subject: [PATCH 04/15] wayland-egl: Add bcm_host to dependencies
+Subject: [PATCH 04/16] wayland-egl: Add bcm_host to dependencies
It uses headers like vcos_platform_types.h but does not
depend on module which should add the required include paths
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir}
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
index 676f34c..8d78333 100644
--- a/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
+++ b/recipes-graphics/userland/userland/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
@@ -1,7 +1,7 @@
-From 8ee4f6eedb81e9bfe0e603a21606c52f9501e609 Mon Sep 17 00:00:00 2001
+From 0273b7b9d7a27d8fe7d3ad8680b799f997e75dca Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sat, 24 Jan 2015 22:07:19 +0100
-Subject: [PATCH 05/15] interface: remove faulty assert() to make weston happy
+Subject: [PATCH 05/16] interface: remove faulty assert() to make weston happy
at runtime
This was removed after a discussion on IRC with the weston guys
@@ -25,5 +25,5 @@ index eab146e..29e0dee 100755
}
} else {
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
index a8f1f24..43eb7f0 100644
--- a/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
+++ b/recipes-graphics/userland/userland/0006-zero-out-wl-buffers-in-egl_surface_free.patch
@@ -1,7 +1,7 @@
-From 789b0b0c04b741c21dd573b78eded970721d14c2 Mon Sep 17 00:00:00 2001
+From 0d678cd2042551cc4e26ec42fa3aba7c72d033b4 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:10:47 -0800
-Subject: [PATCH 06/15] zero-out wl buffers in egl_surface_free
+Subject: [PATCH 06/16] zero-out wl buffers in egl_surface_free
origins from buildroot
@@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
#endif
}
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch b/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
index ad2636a..987740b 100644
--- a/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
+++ b/recipes-graphics/userland/userland/0007-initialize-front-back-wayland-buffers.patch
@@ -1,7 +1,7 @@
-From 762dd3156775f167ff0dfd44322dbb19a85822a7 Mon Sep 17 00:00:00 2001
+From ec2e00989bf614b259bc9a47b5035f8586e8a214 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:11:41 -0800
-Subject: [PATCH 07/15] initialize front back wayland buffers
+Subject: [PATCH 07/16] initialize front back wayland buffers
origins from metrological wayland support
@@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
}
#endif
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch b/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
index 1e66813..4bf05c1 100644
--- a/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
+++ b/recipes-graphics/userland/userland/0008-Remove-RPC_FLUSH.patch
@@ -1,7 +1,7 @@
-From f8929adbf95ad3d44491cf6fc8a84a686b71193e Mon Sep 17 00:00:00 2001
+From 59ba66c2ea17f7a57124b9fd6c9bdff4325ff5c9 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:09:18 -0800
-Subject: [PATCH 08/15] Remove RPC_FLUSH
+Subject: [PATCH 08/16] Remove RPC_FLUSH
Origins from buildroot
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
}
#endif
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch b/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
index 214d5e2..a2c1df5 100644
--- a/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
+++ b/recipes-graphics/userland/userland/0009-fix-cmake-dependency-race.patch
@@ -1,7 +1,7 @@
-From f53e028f33f261f85883c9168977dd5486e9b47c Mon Sep 17 00:00:00 2001
+From 264d82387ea1e607b2e5c899ff6bd46807c7b185 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 13:12:47 -0800
-Subject: [PATCH 09/15] fix cmake dependency race
+Subject: [PATCH 09/16] fix cmake dependency race
Fixes errors like
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
struct wl_resource *resource;
struct wl_dispmanx *dispmanx;
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch b/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
index 9f77920..a6c9a59 100644
--- a/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
+++ b/recipes-graphics/userland/userland/0010-Fix-for-framerate-with-nested-composition.patch
@@ -1,7 +1,7 @@
-From 6559a57c66c5f55571a1aa29cf14d9130a9ef2c9 Mon Sep 17 00:00:00 2001
+From 7c51c2d37bfadaabbbf205237d932b685b09d34f Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Mar 2016 20:38:30 -0700
-Subject: [PATCH 10/15] Fix for framerate with nested composition
+Subject: [PATCH 10/16] Fix for framerate with nested composition
frame rate appears irregular and lower than expected when using nested composition.
@@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
#ifdef ANDROID
CLIENT_UNLOCK();
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch b/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
index 5ee5cbd..55a5be8 100644
--- a/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
+++ b/recipes-graphics/userland/userland/0011-build-shared-library-for-vchostif.patch
@@ -1,7 +1,7 @@
-From 3e396f0b514f3acf90c02f5d55b3816028367a55 Mon Sep 17 00:00:00 2001
+From fb3002f77a175633af31019c513754d2ef5f3ac0 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:37:24 -0700
-Subject: [PATCH 11/15] build shared library for vchostif
+Subject: [PATCH 11/16] build shared library for vchostif
Fixes #149
@@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
#add_library(bufman vc_vchi_bufman.c )
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
index 48af588..28a5fc6 100644
--- a/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
+++ b/recipes-graphics/userland/userland/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
@@ -1,7 +1,7 @@
-From f5b2263c8d65e307cb085414e08118cbbe00a94c Mon Sep 17 00:00:00 2001
+From df8b9633a45069bdd1bf256d974636ef11aa39cb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:54:59 -0700
-Subject: [PATCH 12/15] implement buffer wrapping interface for dispmanx
+Subject: [PATCH 12/16] implement buffer wrapping interface for dispmanx
Courtesy: Zan Dobersek
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
</protocol>
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch b/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch
index d3a9840..ebff314 100644
--- a/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch
+++ b/recipes-graphics/userland/userland/0013-Implement-triple-buffering-for-wayland.patch
@@ -1,7 +1,7 @@
-From 10ba55489002c2ccdf96d221301ec059c4574811 Mon Sep 17 00:00:00 2001
+From 2e0e331da8556fecd841349cfae294baf0f14485 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Thu, 19 Jan 2017 18:56:07 +0000
-Subject: [PATCH 13/15] Implement triple buffering for wayland
+Subject: [PATCH 13/16] Implement triple buffering for wayland
Change from double to triple buffering for wayland.
This enables higher frame rates without tearing artifacts
@@ -86,5 +86,5 @@ index e328b77..58a3184 100644
back_wl_buffer
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch b/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
index b596056..025b6bc 100644
--- a/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
+++ b/recipes-graphics/userland/userland/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
@@ -1,7 +1,7 @@
-From d750c738b5c23bba24531cb713292e4ab3f2ec56 Mon Sep 17 00:00:00 2001
+From 8d9299d219a2a4f76f8278973584e1a9f7116c78 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 May 2017 06:39:34 +0000
-Subject: [PATCH 14/15] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
+Subject: [PATCH 14/16] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
weston code uses these defines
Upstream-Status: Pending
@@ -26,5 +26,5 @@ index 4eacf7f..283e3e1 100644
#ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch b/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch
index f10740b..605d0c0 100644
--- a/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch
+++ b/recipes-graphics/userland/userland/0015-EGL-glplatform.h-define-EGL_CAST.patch
@@ -1,7 +1,7 @@
-From 827907f2223df93918e680101a1ac6228ba0f07e Mon Sep 17 00:00:00 2001
+From a2182e5437a6664cdb0f3330f6cbee873b6f975a Mon Sep 17 00:00:00 2001
From: Andrea Galbusera <gizero@gmail.com>
Date: Fri, 14 Jul 2017 09:52:54 +0200
-Subject: [PATCH 15/15] EGL/glplatform.h: define EGL_CAST
+Subject: [PATCH 15/16] EGL/glplatform.h: define EGL_CAST
C++ / C typecast macros for special EGL handle values: used by libepoxy code
The definition comes from the updated version of this header in mesa.
@@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644
+
#endif /* __eglplatform_h */
--
-2.15.0
+2.16.1
diff --git a/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch b/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
new file mode 100644
index 0000000..d20ec82
--- /dev/null
+++ b/recipes-graphics/userland/userland/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
@@ -0,0 +1,145 @@
+From 6b4c4d469d435bfcfb464356b6ccc9421c6b8fd5 Mon Sep 17 00:00:00 2001
+From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
+Date: Sat, 27 Jan 2018 12:28:31 -0500
+Subject: [PATCH 16/16] Allow multiple wayland compositor state data per
+ process
+
+When eglBindWaylandDisplayWL is called store the wl_global
+created in a list associated with the wayland display.
+This allows multiple wayland compositor instances to be
+created and used per process. This scenario is common for
+applications integrating externl process UI elements
+via embedded composition e.g. westeros
+
+Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+---
+ interface/khronos/common/khrn_client.c | 2 +-
+ interface/khronos/common/khrn_client.h | 11 +++++++-
+ interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++++++++++----
+ 3 files changed, 55 insertions(+), 8 deletions(-)
+
+diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
+index d7e798e..60bdb63 100644
+--- a/interface/khronos/common/khrn_client.c
++++ b/interface/khronos/common/khrn_client.c
+@@ -147,7 +147,7 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
+ {
+ if (!process->inited) {
+ #ifdef BUILD_WAYLAND
+- process->wl_global = NULL;
++ process->wlStateMap = NULL;
+ #endif
+
+ if (!khrn_pointer_map_init(&process->contexts, 64))
+diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
+index 615f7b4..4fa86f7 100644
+--- a/interface/khronos/common/khrn_client.h
++++ b/interface/khronos/common/khrn_client.h
+@@ -170,6 +170,15 @@ static INLINE CLIENT_THREAD_STATE_T *CLIENT_GET_CHECK_THREAD_STATE(void)
+ return (CLIENT_THREAD_STATE_T *)platform_tls_get_check(client_tls);
+ }
+
++#ifdef BUILD_WAYLAND
++typedef struct WAYLAND_STATE
++{
++ struct WAYLAND_STATE *next;
++ struct wl_display *display;
++ struct wl_global *wl_global;
++} WAYLAND_STATE_T;
++#endif
++
+ /*
+ per-process state
+
+@@ -318,7 +327,7 @@ struct CLIENT_PROCESS_STATE {
+ struct wl_event_queue *wl_queue;
+
+ /* Compositor-side Wayland state */
+- struct wl_global *wl_global;
++ WAYLAND_STATE_T *wlStateMap;
+ #endif
+ };
+
+diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
+index 9ef89cd..abd5ab3 100644
+--- a/interface/khronos/ext/egl_wayland.c
++++ b/interface/khronos/ext/egl_wayland.c
+@@ -208,17 +208,38 @@ eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
+ {
+ CLIENT_THREAD_STATE_T *thread;
+ CLIENT_PROCESS_STATE_T *process;
++ WAYLAND_STATE_T *stateIter;
++ WAYLAND_STATE_T *stateNew;
++ struct wl_global *wl_global;
+
+ if (!CLIENT_LOCK_AND_GET_STATES(dpy, &thread, &process))
+ return EGL_FALSE;
+
+- if (process->wl_global != NULL)
++ stateIter= process->wlStateMap;
++ while( stateIter )
++ {
++ if ( stateIter->display == display )
++ goto error;
++ stateIter= stateIter->next;
++ }
++
++ wl_global = wl_global_create(display, &wl_dispmanx_interface, 1,
++ NULL, bind_dispmanx);
++ if (wl_global == NULL)
+ goto error;
+
+- process->wl_global = wl_global_create(display, &wl_dispmanx_interface, 1,
+- NULL, bind_dispmanx);
+- if (process->wl_global == NULL)
++ stateNew= (WAYLAND_STATE_T*)calloc( 1, sizeof(WAYLAND_STATE_T));
++ if (stateNew == NULL )
++ {
++ wl_global_destroy(wl_global);
+ goto error;
++ }
++
++ stateNew->next= process->wlStateMap;
++ stateNew->display= display;
++ stateNew->wl_global= wl_global;
++ process->wlStateMap= stateNew;
++ CLIENT_UNLOCK();
+
+ return EGL_TRUE;
+
+@@ -232,12 +253,29 @@ eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display)
+ {
+ CLIENT_THREAD_STATE_T *thread;
+ CLIENT_PROCESS_STATE_T *process;
++ WAYLAND_STATE_T *stateIter;
++ WAYLAND_STATE_T *statePrev;
+
+ if (!CLIENT_LOCK_AND_GET_STATES(dpy, &thread, &process))
+ return EGL_FALSE;
+
+- wl_global_destroy(process->wl_global);
+- process->wl_global = NULL;
++ statePrev= NULL;
++ stateIter= process->wlStateMap;
++ while( stateIter )
++ {
++ if ( stateIter->display == display )
++ {
++ wl_global_destroy(stateIter->wl_global);
++ if ( statePrev )
++ statePrev->next= stateIter->next;
++ else
++ process->wlStateMap= stateIter->next;
++ free( stateIter );
++ break;
++ }
++ statePrev= stateIter;
++ stateIter= stateIter->next;
++ }
+
+ CLIENT_UNLOCK();
+
+--
+2.16.1
+
diff --git a/recipes-graphics/userland/userland_git.bb b/recipes-graphics/userland/userland_git.bb
index bf0e672..de0b3c7 100644
--- a/recipes-graphics/userland/userland_git.bb
+++ b/recipes-graphics/userland/userland_git.bb
@@ -14,11 +14,11 @@ COMPATIBLE_MACHINE = "^rpi$"
SRCBRANCH = "master"
SRCFORK = "raspberrypi"
-SRCREV = "bc3c52a51315399a9f31ed24049eb4bc81fd1c60"
+SRCREV = "1c3a9eb76da9d6107cadd360301cf20004496b04"
# Use the date of the above commit as the package version. Update this when
# SRCREV is changed.
-PV = "20171114"
+PV = "20180130"
SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \
@@ -37,6 +37,7 @@ SRC_URI = "\
file://0013-Implement-triple-buffering-for-wayland.patch \
file://0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch \
file://0015-EGL-glplatform.h-define-EGL_CAST.patch \
+ file://0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch \
"
S = "${WORKDIR}/git"