summaryrefslogtreecommitdiffstats
path: root/recipes-graphics/userland/files
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2018-11-20 23:43:41 -0800
committerAndrei Gherzan <andrei@gherzan.ro>2018-11-21 17:56:52 +0200
commit7c94afee2b12a1cdef2f8c3c743c555af17a560b (patch)
treeb6d9a419f0cd8e2bb0a6989cb453edc24c182fba /recipes-graphics/userland/files
parent981376b1c43a97fbc7d0309ce1e97239dfd4f4f9 (diff)
downloadmeta-raspberrypi-7c94afee2b12a1cdef2f8c3c743c555af17a560b.tar.gz
userland: Update to latest master
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes-graphics/userland/files')
-rw-r--r--recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch12
-rw-r--r--recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch511
-rw-r--r--recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch20
-rw-r--r--recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch6
-rw-r--r--recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch6
-rw-r--r--recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch6
-rw-r--r--recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch6
-rw-r--r--recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch6
-rw-r--r--recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch6
-rw-r--r--recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch6
-rw-r--r--recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch6
-rw-r--r--recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch10
-rw-r--r--recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch6
-rw-r--r--recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch6
-rw-r--r--recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch6
-rw-r--r--recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch10
-rw-r--r--recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch11
-rw-r--r--recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch6
18 files changed, 343 insertions, 303 deletions
diff --git a/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch b/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch
index 933f279..d6b2abb 100644
--- a/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch
+++ b/recipes-graphics/userland/files/0001-Allow-applications-to-set-next-resource-handle.patch
@@ -1,7 +1,7 @@
1From 0a64dc61d3d7db69389157ae757203b4b3afdbfa Mon Sep 17 00:00:00 2001 1From 08d56c1174e27573ae8df2a7b9e6632afd0bfe86 Mon Sep 17 00:00:00 2001
2From: Dom Cobley <dc4@broadcom.com> 2From: Dom Cobley <dc4@broadcom.com>
3Date: Tue, 9 Jul 2013 09:26:26 -0400 3Date: Tue, 9 Jul 2013 09:26:26 -0400
4Subject: [PATCH 01/16] Allow applications to set next resource handle 4Subject: [PATCH 01/18] Allow applications to set next resource handle
5 5
6This patch adds provisions in userland to 6This patch adds provisions in userland to
7let apps callers set the next rendereing dispmanx resource. 7let apps callers set the next rendereing dispmanx resource.
@@ -9,10 +9,10 @@ It's useful for implementing, say, a buffer carousel.
9--- 9---
10 interface/khronos/common/khrn_client_rpc.h | 2 ++ 10 interface/khronos/common/khrn_client_rpc.h | 2 ++
11 interface/khronos/common/khrn_int_ids.h | 2 ++ 11 interface/khronos/common/khrn_int_ids.h | 2 ++
12 interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++++++++++--- 12 interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++---
13 interface/khronos/egl/egl_client_surface.c | 24 +++++++++++++++++++++++- 13 interface/khronos/egl/egl_client_surface.c | 24 ++++++++++++++++-
14 interface/khronos/egl/egl_client_surface.h | 3 ++- 14 interface/khronos/egl/egl_client_surface.h | 3 ++-
15 interface/khronos/egl/egl_int_impl.h | 5 +++-- 15 interface/khronos/egl/egl_int_impl.h | 5 ++--
16 6 files changed, 59 insertions(+), 7 deletions(-) 16 6 files changed, 59 insertions(+), 7 deletions(-)
17 17
18diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h 18diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h
@@ -204,5 +204,5 @@ index 8a5734c..51b3580 100644
204 204
205 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)) 205 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))
206-- 206--
2072.16.1 2072.19.1
208 208
diff --git a/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch b/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch
index 4613504..c41cde7 100644
--- a/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch
+++ b/recipes-graphics/userland/files/0002-wayland-Add-support-for-the-Wayland-winsys.patch
@@ -1,7 +1,7 @@
1From 5608ec8002be8370e78c9dbb1e07cee4cfb18b58 Mon Sep 17 00:00:00 2001 1From da60a2a34a48e2b324fceae608964814488cc8fb Mon Sep 17 00:00:00 2001
2From: Tomeu Vizoso <tomeu.vizoso@collabora.com> 2From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
3Date: Tue, 1 Oct 2013 13:19:20 +0200 3Date: Tue, 1 Oct 2013 13:19:20 +0200
4Subject: [PATCH 02/16] wayland: Add support for the Wayland winsys 4Subject: [PATCH 02/18] wayland: Add support for the Wayland winsys
5 5
6* Adds EGL_WL_bind_wayland_display extension 6* Adds EGL_WL_bind_wayland_display extension
7* Adds wayland-egl library 7* Adds wayland-egl library
@@ -16,38 +16,40 @@ a DispmanX display from the clients.
16TODO: wl_dispmanx_server_buffer should probably be defined in a 16TODO: wl_dispmanx_server_buffer should probably be defined in a
17private header that can be included from EGL and vc_* instead of in 17private header that can be included from EGL and vc_* instead of in
18vc_vchi_dispmanx.h 18vc_vchi_dispmanx.h
19
20Signed-off-by: Khem Raj <raj.khem@gmail.com>
19--- 21---
20 .gitignore | 1 + 22 .gitignore | 1 +
21 CMakeLists.txt | 11 + 23 CMakeLists.txt | 11 +
22 README.md | 4 + 24 README.md | 4 +
23 buildme | 10 +- 25 buildme | 10 +-
24 .../linux/apps/raspicam/CMakeLists.txt | 2 +- 26 .../linux/apps/raspicam/CMakeLists.txt | 2 +-
25 interface/khronos/CMakeLists.txt | 53 ++++- 27 interface/khronos/CMakeLists.txt | 54 +++-
26 interface/khronos/common/khrn_client.c | 15 ++ 28 interface/khronos/common/khrn_client.c | 15 ++
27 interface/khronos/common/khrn_client.h | 10 + 29 interface/khronos/common/khrn_client.h | 10 +
28 interface/khronos/common/khrn_client_mangle.h | 3 + 30 interface/khronos/common/khrn_client_mangle.h | 3 +
29 interface/khronos/common/khrn_client_platform.h | 8 + 31 .../khronos/common/khrn_client_platform.h | 8 +
30 interface/khronos/common/khrn_client_unmangle.h | 3 + 32 .../khronos/common/khrn_client_unmangle.h | 3 +
31 .../common/linux/khrn_client_platform_linux.c | 115 ++++++++-- 33 .../common/linux/khrn_client_platform_linux.c | 115 +++++++-
32 interface/khronos/common/linux/khrn_wayland.c | 215 ++++++++++++++++++ 34 interface/khronos/common/linux/khrn_wayland.c | 215 +++++++++++++++
33 .../common/linux/khrn_wayland.h} | 46 +--- 35 .../common/linux/khrn_wayland.h} | 46 +---
34 interface/khronos/egl/egl_client.c | 92 +++++--- 36 interface/khronos/egl/egl_client.c | 92 +++++--
35 interface/khronos/egl/egl_client_get_proc.c | 11 + 37 interface/khronos/egl/egl_client_get_proc.c | 11 +
36 interface/khronos/egl/egl_client_surface.c | 42 +++- 38 interface/khronos/egl/egl_client_surface.c | 42 ++-
37 interface/khronos/egl/egl_client_surface.h | 38 +++- 39 interface/khronos/egl/egl_client_surface.h | 38 ++-
38 interface/khronos/egl/egl_int_impl.h | 2 +- 40 interface/khronos/egl/egl_int_impl.h | 2 +-
39 interface/khronos/ext/egl_wayland.c | 246 +++++++++++++++++++++ 41 interface/khronos/ext/egl_wayland.c | 246 ++++++++++++++++++
40 interface/khronos/include/EGL/eglext.h | 23 ++ 42 interface/khronos/include/EGL/eglext.h | 23 ++
41 interface/khronos/wayland-egl/wayland-egl-priv.h | 53 +++++ 43 .../khronos/wayland-egl/wayland-egl-priv.h | 53 ++++
42 interface/khronos/wayland-egl/wayland-egl.c | 59 +++++ 44 interface/khronos/wayland-egl/wayland-egl.c | 59 +++++
43 interface/khronos/wayland-egl/wayland-egl.pc.in | 10 + 45 .../khronos/wayland-egl/wayland-egl.pc.in | 10 +
44 interface/vmcs_host/CMakeLists.txt | 21 +- 46 interface/vmcs_host/CMakeLists.txt | 21 +-
45 interface/vmcs_host/vc_dispmanx.h | 10 + 47 interface/vmcs_host/vc_dispmanx.h | 10 +
46 interface/vmcs_host/vc_vchi_dispmanx.c | 42 ++++ 48 interface/vmcs_host/vc_vchi_dispmanx.c | 42 +++
47 interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++ 49 interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
48 interface/wayland/dispmanx.xml | 123 +++++++++++ 50 interface/wayland/dispmanx.xml | 123 +++++++++
49 makefiles/cmake/Wayland.cmake | 72 ++++++ 51 makefiles/cmake/Wayland.cmake | 72 +++++
50 30 files changed, 1257 insertions(+), 98 deletions(-) 52 30 files changed, 1257 insertions(+), 99 deletions(-)
51 create mode 100644 interface/khronos/common/linux/khrn_wayland.c 53 create mode 100644 interface/khronos/common/linux/khrn_wayland.c
52 copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%) 54 copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
53 create mode 100644 interface/khronos/ext/egl_wayland.c 55 create mode 100644 interface/khronos/ext/egl_wayland.c
@@ -57,20 +59,20 @@ vc_vchi_dispmanx.h
57 create mode 100644 interface/wayland/dispmanx.xml 59 create mode 100644 interface/wayland/dispmanx.xml
58 create mode 100644 makefiles/cmake/Wayland.cmake 60 create mode 100644 makefiles/cmake/Wayland.cmake
59 61
60Index: git/.gitignore 62diff --git a/.gitignore b/.gitignore
61=================================================================== 63index 63570f1..1459436 100644
62--- git.orig/.gitignore 64--- a/.gitignore
63+++ git/.gitignore 65+++ b/.gitignore
64@@ -30,3 +30,4 @@ build/ 66@@ -30,3 +30,4 @@ build/
65 *.pts 67 *.pts
66 *.ppm 68 *.ppm
67 *.mkv 69 *.mkv
68+*~ 70+*~
69Index: git/CMakeLists.txt 71diff --git a/CMakeLists.txt b/CMakeLists.txt
70=================================================================== 72index cfc8ae5..673a5ad 100644
71--- git.orig/CMakeLists.txt 73--- a/CMakeLists.txt
72+++ git/CMakeLists.txt 74+++ b/CMakeLists.txt
73@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings. 75@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake)
74 include(makefiles/cmake/arm-linux.cmake) 76 include(makefiles/cmake/arm-linux.cmake)
75 include(makefiles/cmake/vmcs.cmake) 77 include(makefiles/cmake/vmcs.cmake)
76 78
@@ -88,11 +90,11 @@ Index: git/CMakeLists.txt
88 enable_language(ASM) 90 enable_language(ASM)
89 91
90 # Global include paths 92 # Global include paths
91Index: git/README.md 93diff --git a/README.md b/README.md
92=================================================================== 94index 94b93b8..50b90b1 100644
93--- git.orig/README.md 95--- a/README.md
94+++ git/README.md 96+++ b/README.md
95@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake 97@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake to be installed and an arm cross compile
96 https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian 98 https://github.com/raspberrypi/tools/tree/master/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian
97 99
98 Note that this repository does not contain the source for the edid_parser and vcdbg binaries due to licensing restrictions. 100 Note that this repository does not contain the source for the edid_parser and vcdbg binaries due to licensing restrictions.
@@ -100,10 +102,10 @@ Index: git/README.md
100+To build support for the Wayland winsys in EGL, execute the buildme script like this: 102+To build support for the Wayland winsys in EGL, execute the buildme script like this:
101+ 103+
102+$ BUILD_WAYLAND=1 ./buildme. 104+$ BUILD_WAYLAND=1 ./buildme.
103Index: git/buildme 105diff --git a/buildme b/buildme
104=================================================================== 106index b8fd440..a780bb6 100755
105--- git.orig/buildme 107--- a/buildme
106+++ git/buildme 108+++ b/buildme
107@@ -8,6 +8,10 @@ fi 109@@ -8,6 +8,10 @@ fi
108 110
109 BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`; 111 BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
@@ -130,23 +132,23 @@ Index: git/buildme
130 make -j `nproc` 132 make -j `nproc`
131 133
132 if [ "$1" != "" ]; then 134 if [ "$1" != "" ]; then
133Index: git/host_applications/linux/apps/raspicam/CMakeLists.txt 135diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
134=================================================================== 136index 42636e8..d47ad55 100644
135--- git.orig/host_applications/linux/apps/raspicam/CMakeLists.txt 137--- a/host_applications/linux/apps/raspicam/CMakeLists.txt
136+++ git/host_applications/linux/apps/raspicam/CMakeLists.txt 138+++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
137@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOU 139@@ -33,7 +33,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c)
138 140
139 set (MMAL_LIBS mmal_core mmal_util mmal_vc_client) 141 set (MMAL_LIBS mmal_core mmal_util mmal_vc_client)
140 142
141-target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m) 143-target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl)
142+target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES}) 144+target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES})
143 target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host) 145 target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host)
144 target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host) 146 target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host)
145 target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host) 147 target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host)
146Index: git/interface/khronos/CMakeLists.txt 148diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt
147=================================================================== 149index 9ad615b..95c0e11 100644
148--- git.orig/interface/khronos/CMakeLists.txt 150--- a/interface/khronos/CMakeLists.txt
149+++ git/interface/khronos/CMakeLists.txt 151+++ b/interface/khronos/CMakeLists.txt
150@@ -6,6 +6,12 @@ 152@@ -6,6 +6,12 @@
151 # have quite a few circular dependencies, and so the only way 153 # have quite a few circular dependencies, and so the only way
152 # to make it work seems to be to have everything static. 154 # to make it work seems to be to have everything static.
@@ -216,7 +218,7 @@ Index: git/interface/khronos/CMakeLists.txt
216 # TODO do we need EGL_static and GLESv2_static now that khrn_static exists? 218 # TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
217 add_library(EGL_static STATIC ${EGL_SOURCE}) 219 add_library(EGL_static STATIC ${EGL_SOURCE})
218 add_library(GLESv2_static STATIC ${GLES_SOURCE}) 220 add_library(GLESv2_static STATIC ${GLES_SOURCE})
219@@ -72,8 +121,7 @@ include_directories (../../host_applicat 221@@ -72,8 +121,7 @@ include_directories (../../host_applications/linux/libs/sm )
220 set(VCSM_LIBS vcsm) 222 set(VCSM_LIBS vcsm)
221 add_definitions(-DKHRONOS_HAVE_VCSM) 223 add_definitions(-DKHRONOS_HAVE_VCSM)
222 endif() 224 endif()
@@ -226,7 +228,7 @@ Index: git/interface/khronos/CMakeLists.txt
226 target_link_libraries(GLESv2 EGL khrn_client vcos) 228 target_link_libraries(GLESv2 EGL khrn_client vcos)
227 target_link_libraries(WFC EGL) 229 target_link_libraries(WFC EGL)
228 target_link_libraries(OpenVG EGL) 230 target_link_libraries(OpenVG EGL)
229@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_ 231@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_SOURCE})
230 add_library(brcmOpenVG ${SHARED} ${VG_SOURCE}) 232 add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
231 add_library(brcmWFC ${SHARED} ${WFC_SOURCE}) 233 add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
232 234
@@ -235,11 +237,11 @@ Index: git/interface/khronos/CMakeLists.txt
235 target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos) 237 target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos)
236 target_link_libraries(brcmWFC brcmEGL) 238 target_link_libraries(brcmWFC brcmEGL)
237 target_link_libraries(brcmOpenVG brcmEGL) 239 target_link_libraries(brcmOpenVG brcmEGL)
238Index: git/interface/khronos/common/khrn_client.c 240diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
239=================================================================== 241index ef4babd..d7e798e 100644
240--- git.orig/interface/khronos/common/khrn_client.c 242--- a/interface/khronos/common/khrn_client.c
241+++ git/interface/khronos/common/khrn_client.c 243+++ b/interface/khronos/common/khrn_client.c
242@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 244@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
243 #include "applications/vmcs/khronos/khronos_server.h" 245 #include "applications/vmcs/khronos/khronos_server.h"
244 #endif 246 #endif
245 247
@@ -250,7 +252,7 @@ Index: git/interface/khronos/common/khrn_client.c
250 VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN); 252 VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN);
251 253
252 /* 254 /*
253@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PRO 255@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PROCESS_STATE_T *process)
254 bool client_process_state_init(CLIENT_PROCESS_STATE_T *process) 256 bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
255 { 257 {
256 if (!process->inited) { 258 if (!process->inited) {
@@ -261,7 +263,7 @@ Index: git/interface/khronos/common/khrn_client.c
261 if (!khrn_pointer_map_init(&process->contexts, 64)) 263 if (!khrn_pointer_map_init(&process->contexts, 64))
262 return false; 264 return false;
263 265
264@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PR 266@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
265 } 267 }
266 #endif 268 #endif
267 269
@@ -275,10 +277,10 @@ Index: git/interface/khronos/common/khrn_client.c
275 process->inited = true; 277 process->inited = true;
276 } 278 }
277 279
278Index: git/interface/khronos/common/khrn_client.h 280diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
279=================================================================== 281index 804039b..615f7b4 100644
280--- git.orig/interface/khronos/common/khrn_client.h 282--- a/interface/khronos/common/khrn_client.h
281+++ git/interface/khronos/common/khrn_client.h 283+++ b/interface/khronos/common/khrn_client.h
282@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE { 284@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE {
283 #ifdef RPC_LIBRARY 285 #ifdef RPC_LIBRARY
284 KHRONOS_SERVER_CONNECTION_T khrn_connection; 286 KHRONOS_SERVER_CONNECTION_T khrn_connection;
@@ -296,11 +298,11 @@ Index: git/interface/khronos/common/khrn_client.h
296 }; 298 };
297 299
298 extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process); 300 extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process);
299Index: git/interface/khronos/common/khrn_client_mangle.h 301diff --git a/interface/khronos/common/khrn_client_mangle.h b/interface/khronos/common/khrn_client_mangle.h
300=================================================================== 302index b3c04f4..b7b21c5 100644
301--- git.orig/interface/khronos/common/khrn_client_mangle.h 303--- a/interface/khronos/common/khrn_client_mangle.h
302+++ git/interface/khronos/common/khrn_client_mangle.h 304+++ b/interface/khronos/common/khrn_client_mangle.h
303@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 305@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
304 #define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM 306 #define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM
305 #define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM 307 #define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM
306 #define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM 308 #define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM
@@ -310,11 +312,11 @@ Index: git/interface/khronos/common/khrn_client_mangle.h
310 312
311 /* OpenGL ES 1.1 and 2.0 functions */ 313 /* OpenGL ES 1.1 and 2.0 functions */
312 314
313Index: git/interface/khronos/common/khrn_client_platform.h 315diff --git a/interface/khronos/common/khrn_client_platform.h b/interface/khronos/common/khrn_client_platform.h
314=================================================================== 316index 1c9da3a..715c67e 100644
315--- git.orig/interface/khronos/common/khrn_client_platform.h 317--- a/interface/khronos/common/khrn_client_platform.h
316+++ git/interface/khronos/common/khrn_client_platform.h 318+++ b/interface/khronos/common/khrn_client_platform.h
317@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 319@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
318 #include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h" 320 #include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h"
319 #endif 321 #endif
320 322
@@ -334,11 +336,11 @@ Index: git/interface/khronos/common/khrn_client_platform.h
334+#endif 336+#endif
335+ 337+
336 #endif // KHRN_CLIENT_PLATFORM_H 338 #endif // KHRN_CLIENT_PLATFORM_H
337Index: git/interface/khronos/common/khrn_client_unmangle.h 339diff --git a/interface/khronos/common/khrn_client_unmangle.h b/interface/khronos/common/khrn_client_unmangle.h
338=================================================================== 340index 4f3ce49..84f6ec0 100644
339--- git.orig/interface/khronos/common/khrn_client_unmangle.h 341--- a/interface/khronos/common/khrn_client_unmangle.h
340+++ git/interface/khronos/common/khrn_client_unmangle.h 342+++ b/interface/khronos/common/khrn_client_unmangle.h
341@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 343@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
342 #undef eglReleaseGlobalImageBRCM 344 #undef eglReleaseGlobalImageBRCM
343 #undef eglInitGlobalImageBRCM 345 #undef eglInitGlobalImageBRCM
344 #undef eglTermGlobalImageBRCM 346 #undef eglTermGlobalImageBRCM
@@ -348,11 +350,11 @@ Index: git/interface/khronos/common/khrn_client_unmangle.h
348 350
349 /* OpenGL ES 1.1 and 2.0 functions */ 351 /* OpenGL ES 1.1 and 2.0 functions */
350 352
351Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c 353diff --git a/interface/khronos/common/linux/khrn_client_platform_linux.c b/interface/khronos/common/linux/khrn_client_platform_linux.c
352=================================================================== 354index 710d20f..50d60a6 100644
353--- git.orig/interface/khronos/common/linux/khrn_client_platform_linux.c 355--- a/interface/khronos/common/linux/khrn_client_platform_linux.c
354+++ git/interface/khronos/common/linux/khrn_client_platform_linux.c 356+++ b/interface/khronos/common/linux/khrn_client_platform_linux.c
355@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 357@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
356 #include "X11/Xlib.h" 358 #include "X11/Xlib.h"
357 #endif 359 #endif
358 360
@@ -364,7 +366,7 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
364 extern VCOS_LOG_CAT_T khrn_client_log; 366 extern VCOS_LOG_CAT_T khrn_client_log;
365 367
366 extern void vc_vchi_khronos_init(); 368 extern void vc_vchi_khronos_init();
367@@ -464,14 +469,37 @@ EGLDisplay khrn_platform_set_display_id( 369@@ -464,13 +469,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id)
368 return EGL_NO_DISPLAY; 370 return EGL_NO_DISPLAY;
369 } 371 }
370 #else 372 #else
@@ -392,19 +394,18 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
392+#endif 394+#endif
393+ return EGL_NO_DISPLAY; 395+ return EGL_NO_DISPLAY;
394+ } 396+ }
395+} 397 }
396+ 398+
397+#ifdef BUILD_WAYLAND 399+#ifdef BUILD_WAYLAND
398+struct wl_display *khrn_platform_get_wl_display() 400+struct wl_display *khrn_platform_get_wl_display()
399+{ 401+{
400+ return hacky_display; 402+ return hacky_display;
401 } 403+}
402 #endif
403+#endif 404+#endif
405 #endif
404 406
405 #ifdef WANT_X 407 #ifdef WANT_X
406 static void dump_hierarchy(Window w, Window thisw, Window look, int level) 408@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win)
407@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_defa
408 void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win, 409 void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win,
409 uint32_t *width, uint32_t *height, uint32_t *swapchain_count) 410 uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
410 { 411 {
@@ -435,8 +436,8 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
435+#ifdef BUILD_WAYLAND 436+#ifdef BUILD_WAYLAND
436+ } 437+ }
437+#endif 438+#endif
438+} 439 }
439+ 440
440+#ifdef BUILD_WAYLAND 441+#ifdef BUILD_WAYLAND
441+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element() 442+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element()
442+{ 443+{
@@ -467,9 +468,9 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
467+ vc_dispmanx_display_close(display); 468+ vc_dispmanx_display_close(display);
468+ 469+
469+ return element; 470+ return element;
470 } 471+}
471+#endif 472+#endif
472 473+
473 uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win) 474 uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win)
474 { 475 {
475- EGL_DISPMANX_WINDOW_T *dwin = check_default(win); 476- EGL_DISPMANX_WINDOW_T *dwin = check_default(win);
@@ -498,10 +499,11 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
498 } 499 }
499 500
500 #endif 501 #endif
501Index: git/interface/khronos/common/linux/khrn_wayland.c 502diff --git a/interface/khronos/common/linux/khrn_wayland.c b/interface/khronos/common/linux/khrn_wayland.c
502=================================================================== 503new file mode 100644
504index 0000000..0e1b9e7
503--- /dev/null 505--- /dev/null
504+++ git/interface/khronos/common/linux/khrn_wayland.c 506+++ b/interface/khronos/common/linux/khrn_wayland.c
505@@ -0,0 +1,215 @@ 507@@ -0,0 +1,215 @@
506+/* 508+/*
507+Copyright (c) 2013, Raspberry Pi Foundation 509+Copyright (c) 2013, Raspberry Pi Foundation
@@ -718,72 +720,74 @@ Index: git/interface/khronos/common/linux/khrn_wayland.c
718+ 720+
719+ return wl_dispmanx_client_buffer; 721+ return wl_dispmanx_client_buffer;
720+} 722+}
721Index: git/interface/vmcs_host/vc_vchi_dispmanx.h 723diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/khronos/common/linux/khrn_wayland.h
722=================================================================== 724similarity index 56%
723--- git.orig/interface/vmcs_host/vc_vchi_dispmanx.h 725copy from interface/vmcs_host/vc_vchi_dispmanx.h
724+++ git/interface/vmcs_host/vc_vchi_dispmanx.h 726copy to interface/khronos/common/linux/khrn_wayland.h
725@@ -66,4 +66,19 @@ typedef struct { 727index b723b76..b9bf08c 100644
726 #define ELEMENT_CHANGE_MASK_RESOURCE (1<<4) 728--- a/interface/vmcs_host/vc_vchi_dispmanx.h
727 #define ELEMENT_CHANGE_TRANSFORM (1<<5) 729+++ b/interface/khronos/common/linux/khrn_wayland.h
728 730@@ -1,5 +1,5 @@
729+#ifdef BUILD_WAYLAND 731 /*
730+/* XXX: This should be in a private header that can be included from EGL and vc_* */ 732-Copyright (c) 2012, Broadcom Europe Ltd
731+#include <wayland-server.h>
732+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
733+struct wl_dispmanx_server_buffer {
734+ struct wl_resource *resource;
735+ struct wl_dispmanx *dispmanx;
736+ enum wl_dispmanx_format format;
737+ DISPMANX_RESOURCE_HANDLE_T handle;
738+ int32_t width;
739+ int32_t height;
740+ int in_use;
741+};
742+#endif
743+
744 #endif
745Index: git/interface/khronos/common/linux/khrn_wayland.h
746===================================================================
747--- /dev/null
748+++ git/interface/khronos/common/linux/khrn_wayland.h
749@@ -0,0 +1,33 @@
750+/*
751+Copyright (c) 2013, Raspberry Pi Foundation 733+Copyright (c) 2013, Raspberry Pi Foundation
752+All rights reserved. 734 All rights reserved.
753+ 735
754+Redistribution and use in source and binary forms, with or without 736 Redistribution and use in source and binary forms, with or without
755+modification, are permitted provided that the following conditions are met: 737@@ -25,45 +25,9 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
756+ * Redistributions of source code must retain the above copyright 738 SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
757+ notice, this list of conditions and the following disclaimer. 739 */
758+ * Redistributions in binary form must reproduce the above copyright 740
759+ notice, this list of conditions and the following disclaimer in the 741-#ifndef VC_VCHI_DISPMANX_H
760+ documentation and/or other materials provided with the distribution. 742-#define VC_VCHI_DISPMANX_H
761+ * Neither the name of the copyright holder nor the
762+ names of its contributors may be used to endorse or promote products
763+ derived from this software without specific prior written permission.
764+
765+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
766+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
767+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
768+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
769+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
770+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
771+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
772+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
773+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
774+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
775+*/
776+
777+#include "interface/khronos/common/khrn_client.h" 743+#include "interface/khronos/common/khrn_client.h"
778+ 744
745-#include "interface/peer/vc_vchi_dispmanx_common.h"
779+int init_process_wayland(CLIENT_PROCESS_STATE_T *process); 746+int init_process_wayland(CLIENT_PROCESS_STATE_T *process);
780+int do_wl_roundtrip(); 747+int do_wl_roundtrip();
781+ 748
749-#define VC_NUM_HOST_RESOURCES 64
750-#define DISPMANX_MSGFIFO_SIZE 1024
751-#define DISPMANX_CLIENT_NAME MAKE_FOURCC("DISP")
752-#define DISPMANX_NOTIFY_NAME MAKE_FOURCC("UPDH")
753-
754-//Or with command to indicate we don't need a response
755-#define DISPMANX_NO_REPLY_MASK (1<<31)
756-
757-typedef struct {
758- char description[32];
759- uint32_t width;
760- uint32_t height;
761- uint32_t aspect_pixwidth;
762- uint32_t aspect_pixheight;
763- uint32_t fieldrate_num;
764- uint32_t fieldrate_denom;
765- uint32_t fields_per_frame;
766- uint32_t transform;
767-} GET_MODES_DATA_T;
768-
769-typedef struct {
770- int32_t response;
771- uint32_t width;
772- uint32_t height;
773- uint32_t transform;
774- uint32_t input_format;
775-} GET_INFO_DATA_T;
776-
777-//Attributes changes flag mask
778-#define ELEMENT_CHANGE_LAYER (1<<0)
779-#define ELEMENT_CHANGE_OPACITY (1<<1)
780-#define ELEMENT_CHANGE_DEST_RECT (1<<2)
781-#define ELEMENT_CHANGE_SRC_RECT (1<<3)
782-#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
783-#define ELEMENT_CHANGE_TRANSFORM (1<<5)
784-
785-#endif
782+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color); 786+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color);
783Index: git/interface/khronos/egl/egl_client.c 787diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
784=================================================================== 788index b8bb374..03fe67b 100644
785--- git.orig/interface/khronos/egl/egl_client.c 789--- a/interface/khronos/egl/egl_client.c
786+++ git/interface/khronos/egl/egl_client.c 790+++ b/interface/khronos/egl/egl_client.c
787@@ -153,6 +153,10 @@ by an attribute value" 791@@ -153,6 +153,10 @@ by an attribute value"
788 #include <stdlib.h> 792 #include <stdlib.h>
789 #include <string.h> 793 #include <string.h>
@@ -795,7 +799,7 @@ Index: git/interface/khronos/egl/egl_client.c
795 799
796 #include "interface/khronos/egl/egl_client_cr.c" 800 #include "interface/khronos/egl/egl_client_cr.c"
797 801
798@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_P 802@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T *
799 void egl_gl_flush_callback(bool wait); 803 void egl_gl_flush_callback(bool wait);
800 void egl_vg_flush_callback(bool wait); 804 void egl_vg_flush_callback(bool wait);
801 805
@@ -813,17 +817,17 @@ Index: git/interface/khronos/egl/egl_client.c
813 /* 817 /*
814 TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate) 818 TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate)
815 Also affects global image (and possibly others?) 819 Also affects global image (and possibly others?)
816@@ -451,6 +444,9 @@ EGLAPI const char EGLAPIENTRY * eglQuery 820@@ -450,6 +443,9 @@ EGLAPI const char EGLAPIENTRY * eglQueryString(EGLDisplay dpy, EGLint name)
821 #ifdef EGL_KHR_fence_sync
817 "EGL_KHR_fence_sync " 822 "EGL_KHR_fence_sync "
818 #endif 823 #endif
819 #endif 824+#endif
820+#if EGL_WL_bind_wayland_display 825+#if EGL_WL_bind_wayland_display
821+ "EGL_WL_bind_wayland_display " 826+ "EGL_WL_bind_wayland_display "
822+#endif 827 #endif
823 ; 828 ;
824 break; 829 break;
825 case EGL_VENDOR: 830@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c
826@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateW
827 false, 831 false,
828 EGL_NO_TEXTURE, 832 EGL_NO_TEXTURE,
829 EGL_NO_TEXTURE, 833 EGL_NO_TEXTURE,
@@ -833,7 +837,7 @@ Index: git/interface/khronos/egl/egl_client.c
833 837
834 if (surface) { 838 if (surface) {
835 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { 839 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
836@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP 840@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig
837 mipmap_texture, 841 mipmap_texture,
838 texture_format, 842 texture_format,
839 texture_target, 843 texture_target,
@@ -842,7 +846,7 @@ Index: git/interface/khronos/egl/egl_client.c
842 846
843 if (surface) { 847 if (surface) {
844 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { 848 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
845@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP 849@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig c
846 false, 850 false,
847 EGL_NO_TEXTURE, 851 EGL_NO_TEXTURE,
848 EGL_NO_TEXTURE, 852 EGL_NO_TEXTURE,
@@ -851,7 +855,7 @@ Index: git/interface/khronos/egl/egl_client.c
851 855
852 if (surface) { 856 if (surface) {
853 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { 857 if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
854@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf 858@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
855 CLIENT_THREAD_STATE_T *thread; 859 CLIENT_THREAD_STATE_T *thread;
856 CLIENT_PROCESS_STATE_T *process; 860 CLIENT_PROCESS_STATE_T *process;
857 EGLBoolean result; 861 EGLBoolean result;
@@ -861,7 +865,7 @@ Index: git/interface/khronos/egl/egl_client.c
861 865
862 vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf); 866 vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf);
863 867
864@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf 868@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
865 869
866 vcos_log_trace("eglSwapBuffers server call"); 870 vcos_log_trace("eglSwapBuffers server call");
867 871
@@ -932,11 +936,11 @@ Index: git/interface/khronos/egl/egl_client.c
932 RPC_CALL6(eglIntSwapBuffers_impl, 936 RPC_CALL6(eglIntSwapBuffers_impl,
933 thread, 937 thread,
934 EGLINTSWAPBUFFERS_ID, 938 EGLINTSWAPBUFFERS_ID,
935Index: git/interface/khronos/egl/egl_client_get_proc.c 939diff --git a/interface/khronos/egl/egl_client_get_proc.c b/interface/khronos/egl/egl_client_get_proc.c
936=================================================================== 940index 4cfa9ff..6a715af 100644
937--- git.orig/interface/khronos/egl/egl_client_get_proc.c 941--- a/interface/khronos/egl/egl_client_get_proc.c
938+++ git/interface/khronos/egl/egl_client_get_proc.c 942+++ b/interface/khronos/egl/egl_client_get_proc.c
939@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAdd 943@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAddress(const char *procname))(void)
940 return (void(*)(void))eglQueryGlobalImageBRCM; 944 return (void(*)(void))eglQueryGlobalImageBRCM;
941 #endif 945 #endif
942 946
@@ -954,11 +958,11 @@ Index: git/interface/khronos/egl/egl_client_get_proc.c
954 return (void(*)(void)) NULL; 958 return (void(*)(void)) NULL;
955 } 959 }
956 960
957Index: git/interface/khronos/egl/egl_client_surface.c 961diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
958=================================================================== 962index 128325e..42350bf 100644
959--- git.orig/interface/khronos/egl/egl_client_surface.c 963--- a/interface/khronos/egl/egl_client_surface.c
960+++ git/interface/khronos/egl/egl_client_surface.c 964+++ b/interface/khronos/egl/egl_client_surface.c
961@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 965@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
962 #include "interface/khronos/egl/egl_int_impl.h" 966 #include "interface/khronos/egl/egl_int_impl.h"
963 #endif 967 #endif
964 968
@@ -1032,7 +1036,7 @@ Index: git/interface/khronos/egl/egl_client_surface.c
1032 RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl, 1036 RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
1033 thread, 1037 thread,
1034 EGLINTCREATESURFACE_ID, 1038 EGLINTCREATESURFACE_ID,
1035@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *sur 1039@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *surface)
1036 if( surface->type == WINDOW ) { 1040 if( surface->type == WINDOW ) {
1037 vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle..."); 1041 vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle...");
1038 platform_destroy_winhandle( surface->win, surface->internal_handle ); 1042 platform_destroy_winhandle( surface->win, surface->internal_handle );
@@ -1051,10 +1055,10 @@ Index: git/interface/khronos/egl/egl_client_surface.c
1051 } 1055 }
1052 /* return value ignored -- read performed to ensure blocking. we want this to 1056 /* return value ignored -- read performed to ensure blocking. we want this to
1053 * block so clients can safely destroy the surface's window as soon as the 1057 * block so clients can safely destroy the surface's window as soon as the
1054Index: git/interface/khronos/egl/egl_client_surface.h 1058diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h
1055=================================================================== 1059index b5bf70a..e328b77 100644
1056--- git.orig/interface/khronos/egl/egl_client_surface.h 1060--- a/interface/khronos/egl/egl_client_surface.h
1057+++ git/interface/khronos/egl/egl_client_surface.h 1061+++ b/interface/khronos/egl/egl_client_surface.h
1058@@ -288,6 +288,41 @@ typedef struct { 1062@@ -288,6 +288,41 @@ typedef struct {
1059 type == PIXMAP 1063 type == PIXMAP
1060 */ 1064 */
@@ -1097,7 +1101,7 @@ Index: git/interface/khronos/egl/egl_client_surface.h
1097 } EGL_SURFACE_T; 1101 } EGL_SURFACE_T;
1098 1102
1099 extern bool egl_surface_check_attribs( 1103 extern bool egl_surface_check_attribs(
1100@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create 1104@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create(
1101 EGLenum texture_format, 1105 EGLenum texture_format,
1102 EGLenum texture_target, 1106 EGLenum texture_target,
1103 EGLNativePixmapType pixmap, 1107 EGLNativePixmapType pixmap,
@@ -1107,10 +1111,10 @@ Index: git/interface/khronos/egl/egl_client_surface.h
1107 extern EGL_SURFACE_T *egl_surface_from_vg_image( 1111 extern EGL_SURFACE_T *egl_surface_from_vg_image(
1108 VGImage vg_handle, 1112 VGImage vg_handle,
1109 EGLSurface name, 1113 EGLSurface name,
1110Index: git/interface/khronos/egl/egl_int_impl.h 1114diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h
1111=================================================================== 1115index 51b3580..6863a3b 100644
1112--- git.orig/interface/khronos/egl/egl_int_impl.h 1116--- a/interface/khronos/egl/egl_int_impl.h
1113+++ git/interface/khronos/egl/egl_int_impl.h 1117+++ b/interface/khronos/egl/egl_int_impl.h
1114@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, ( 1118@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, (
1115 uint32_t sem, 1119 uint32_t sem,
1116 uint32_t type, 1120 uint32_t type,
@@ -1120,10 +1124,11 @@ Index: git/interface/khronos/egl/egl_int_impl.h
1120 1124
1121 FN(int, eglIntCreatePbufferFromVGImage_impl, ( 1125 FN(int, eglIntCreatePbufferFromVGImage_impl, (
1122 VGImage vg_handle, 1126 VGImage vg_handle,
1123Index: git/interface/khronos/ext/egl_wayland.c 1127diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
1124=================================================================== 1128new file mode 100644
1129index 0000000..5730743
1125--- /dev/null 1130--- /dev/null
1126+++ git/interface/khronos/ext/egl_wayland.c 1131+++ b/interface/khronos/ext/egl_wayland.c
1127@@ -0,0 +1,246 @@ 1132@@ -0,0 +1,246 @@
1128+/* 1133+/*
1129+Copyright (c) 2013, Raspberry Pi Foundation 1134+Copyright (c) 2013, Raspberry Pi Foundation
@@ -1371,11 +1376,11 @@ Index: git/interface/khronos/ext/egl_wayland.c
1371+ 1376+
1372+ return EGL_FALSE; 1377+ return EGL_FALSE;
1373+} 1378+}
1374Index: git/interface/khronos/include/EGL/eglext.h 1379diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
1375=================================================================== 1380index 89a3369..d7e5ba7 100755
1376--- git.orig/interface/khronos/include/EGL/eglext.h 1381--- a/interface/khronos/include/EGL/eglext.h
1377+++ git/interface/khronos/include/EGL/eglext.h 1382+++ b/interface/khronos/include/EGL/eglext.h
1378@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLG 1383@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EG
1379 #endif 1384 #endif
1380 1385
1381 1386
@@ -1405,10 +1410,11 @@ Index: git/interface/khronos/include/EGL/eglext.h
1405 #ifdef __cplusplus 1410 #ifdef __cplusplus
1406 } 1411 }
1407 #endif 1412 #endif
1408Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h 1413diff --git a/interface/khronos/wayland-egl/wayland-egl-priv.h b/interface/khronos/wayland-egl/wayland-egl-priv.h
1409=================================================================== 1414new file mode 100644
1415index 0000000..8e38d36
1410--- /dev/null 1416--- /dev/null
1411+++ git/interface/khronos/wayland-egl/wayland-egl-priv.h 1417+++ b/interface/khronos/wayland-egl/wayland-egl-priv.h
1412@@ -0,0 +1,53 @@ 1418@@ -0,0 +1,53 @@
1413+/* Copied from Mesa */ 1419+/* Copied from Mesa */
1414+ 1420+
@@ -1463,10 +1469,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
1463+#endif 1469+#endif
1464+ 1470+
1465+#endif 1471+#endif
1466Index: git/interface/khronos/wayland-egl/wayland-egl.c 1472diff --git a/interface/khronos/wayland-egl/wayland-egl.c b/interface/khronos/wayland-egl/wayland-egl.c
1467=================================================================== 1473new file mode 100644
1474index 0000000..b8f050b
1468--- /dev/null 1475--- /dev/null
1469+++ git/interface/khronos/wayland-egl/wayland-egl.c 1476+++ b/interface/khronos/wayland-egl/wayland-egl.c
1470@@ -0,0 +1,59 @@ 1477@@ -0,0 +1,59 @@
1471+/* Copied from Mesa */ 1478+/* Copied from Mesa */
1472+ 1479+
@@ -1527,10 +1534,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.c
1527+ if (height) 1534+ if (height)
1528+ *height = egl_window->attached_height; 1535+ *height = egl_window->attached_height;
1529+} 1536+}
1530Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in 1537diff --git a/interface/khronos/wayland-egl/wayland-egl.pc.in b/interface/khronos/wayland-egl/wayland-egl.pc.in
1531=================================================================== 1538new file mode 100644
1539index 0000000..8bafc15
1532--- /dev/null 1540--- /dev/null
1533+++ git/interface/khronos/wayland-egl/wayland-egl.pc.in 1541+++ b/interface/khronos/wayland-egl/wayland-egl.pc.in
1534@@ -0,0 +1,10 @@ 1542@@ -0,0 +1,10 @@
1535+prefix=@CMAKE_INSTALL_PREFIX@ 1543+prefix=@CMAKE_INSTALL_PREFIX@
1536+exec_prefix=${prefix} 1544+exec_prefix=${prefix}
@@ -1542,10 +1550,10 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
1542+Version: @PROJECT_APIVER@ 1550+Version: @PROJECT_APIVER@
1543+Libs: -L${libdir} -lwayland-egl 1551+Libs: -L${libdir} -lwayland-egl
1544+Cflags: -I${includedir} 1552+Cflags: -I${includedir}
1545Index: git/interface/vmcs_host/CMakeLists.txt 1553diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
1546=================================================================== 1554index fde18da..6718215 100755
1547--- git.orig/interface/vmcs_host/CMakeLists.txt 1555--- a/interface/vmcs_host/CMakeLists.txt
1548+++ git/interface/vmcs_host/CMakeLists.txt 1556+++ b/interface/vmcs_host/CMakeLists.txt
1549@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing) 1557@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
1550 1558
1551 include_directories(${VMCS_TARGET}/vcfiled) 1559 include_directories(${VMCS_TARGET}/vcfiled)
@@ -1576,11 +1584,11 @@ Index: git/interface/vmcs_host/CMakeLists.txt
1576 #add_library(bufman vc_vchi_bufman.c ) 1584 #add_library(bufman vc_vchi_bufman.c )
1577 1585
1578 # OpenMAX/IL component service 1586 # OpenMAX/IL component service
1579Index: git/interface/vmcs_host/vc_dispmanx.h 1587diff --git a/interface/vmcs_host/vc_dispmanx.h b/interface/vmcs_host/vc_dispmanx.h
1580=================================================================== 1588index 37fdae1..fe3619a 100755
1581--- git.orig/interface/vmcs_host/vc_dispmanx.h 1589--- a/interface/vmcs_host/vc_dispmanx.h
1582+++ git/interface/vmcs_host/vc_dispmanx.h 1590+++ b/interface/vmcs_host/vc_dispmanx.h
1583@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI 1591@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
1584 #ifdef __cplusplus 1592 #ifdef __cplusplus
1585 extern "C" { 1593 extern "C" {
1586 #endif 1594 #endif
@@ -1592,7 +1600,7 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
1592 // Same function as above, to aid migration of code. 1600 // Same function as above, to aid migration of code.
1593 VCHPRE_ int VCHPOST_ vc_dispman_init( void ); 1601 VCHPRE_ int VCHPOST_ vc_dispman_init( void );
1594 // Stop the service from being used 1602 // Stop the service from being used
1595@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resourc 1603@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resource_set_palette( DISPMANX_RESOURCE_HANDLE_
1596 // Start triggering callbacks synced to vsync 1604 // Start triggering callbacks synced to vsync
1597 VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg ); 1605 VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg );
1598 1606
@@ -1604,11 +1612,11 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
1604 #ifdef __cplusplus 1612 #ifdef __cplusplus
1605 } 1613 }
1606 #endif 1614 #endif
1607Index: git/interface/vmcs_host/vc_vchi_dispmanx.c 1615diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
1608=================================================================== 1616index 7a6cdcd..eab146e 100755
1609--- git.orig/interface/vmcs_host/vc_vchi_dispmanx.c 1617--- a/interface/vmcs_host/vc_vchi_dispmanx.c
1610+++ git/interface/vmcs_host/vc_vchi_dispmanx.c 1618+++ b/interface/vmcs_host/vc_vchi_dispmanx.c
1611@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void 1619@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) {
1612 } 1620 }
1613 return 0; 1621 return 0;
1614 } 1622 }
@@ -1654,10 +1662,35 @@ Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
1654+ buffer->in_use = in_use; 1662+ buffer->in_use = in_use;
1655+} 1663+}
1656+#endif 1664+#endif
1657Index: git/interface/wayland/dispmanx.xml 1665diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h
1658=================================================================== 1666index b723b76..f0bae30 100644
1667--- a/interface/vmcs_host/vc_vchi_dispmanx.h
1668+++ b/interface/vmcs_host/vc_vchi_dispmanx.h
1669@@ -66,4 +66,19 @@ typedef struct {
1670 #define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
1671 #define ELEMENT_CHANGE_TRANSFORM (1<<5)
1672
1673+#ifdef BUILD_WAYLAND
1674+/* XXX: This should be in a private header that can be included from EGL and vc_* */
1675+#include <wayland-server.h>
1676+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
1677+struct wl_dispmanx_server_buffer {
1678+ struct wl_resource *resource;
1679+ struct wl_dispmanx *dispmanx;
1680+ enum wl_dispmanx_format format;
1681+ DISPMANX_RESOURCE_HANDLE_T handle;
1682+ int32_t width;
1683+ int32_t height;
1684+ int in_use;
1685+};
1686+#endif
1687+
1688 #endif
1689diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
1690new file mode 100644
1691index 0000000..c18626d
1659--- /dev/null 1692--- /dev/null
1660+++ git/interface/wayland/dispmanx.xml 1693+++ b/interface/wayland/dispmanx.xml
1661@@ -0,0 +1,123 @@ 1694@@ -0,0 +1,123 @@
1662+<?xml version="1.0" encoding="UTF-8"?> 1695+<?xml version="1.0" encoding="UTF-8"?>
1663+<protocol name="dispmanx"> 1696+<protocol name="dispmanx">
@@ -1782,10 +1815,11 @@ Index: git/interface/wayland/dispmanx.xml
1782+ </interface> 1815+ </interface>
1783+ 1816+
1784+</protocol> 1817+</protocol>
1785Index: git/makefiles/cmake/Wayland.cmake 1818diff --git a/makefiles/cmake/Wayland.cmake b/makefiles/cmake/Wayland.cmake
1786=================================================================== 1819new file mode 100644
1820index 0000000..ad90d30
1787--- /dev/null 1821--- /dev/null
1788+++ git/makefiles/cmake/Wayland.cmake 1822+++ b/makefiles/cmake/Wayland.cmake
1789@@ -0,0 +1,72 @@ 1823@@ -0,0 +1,72 @@
1790+#============================================================================= 1824+#=============================================================================
1791+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> 1825+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
@@ -1859,3 +1893,6 @@ Index: git/makefiles/cmake/Wayland.cmake
1859+ list(APPEND ${_sources} "${_server_header}") 1893+ list(APPEND ${_sources} "${_server_header}")
1860+ set(${_sources} ${${_sources}} PARENT_SCOPE) 1894+ set(${_sources} ${${_sources}} PARENT_SCOPE)
1861+endfunction() 1895+endfunction()
1896--
18972.19.1
1898
diff --git a/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch b/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch
index e3a0cf2..d83a9e5 100644
--- a/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch
+++ b/recipes-graphics/userland/files/0003-wayland-Add-Wayland-example.patch
@@ -1,16 +1,16 @@
1From 20ac7c6af4e826b5c536b6a7c8b2d1d266ced81e Mon Sep 17 00:00:00 2001 1From 976cc9355fe18487cd84e313e76f397ab47a4bf8 Mon Sep 17 00:00:00 2001
2From: Tomeu Vizoso <tomeu.vizoso@collabora.com> 2From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
3Date: Tue, 1 Oct 2013 13:19:20 +0200 3Date: Tue, 1 Oct 2013 13:19:20 +0200
4Subject: [PATCH 03/16] wayland: Add Wayland example 4Subject: [PATCH 03/18] wayland: Add Wayland example
5 5
6--- 6---
7 .../linux/apps/hello_pi/CMakeLists.txt | 1 + 7 .../linux/apps/hello_pi/CMakeLists.txt | 1 +
8 .../apps/hello_pi/hello_wayland/CMakeLists.txt | 8 + 8 .../hello_pi/hello_wayland/CMakeLists.txt | 8 +
9 .../apps/hello_pi/hello_wayland/Djenne_128_128.raw | 3 + 9 .../hello_pi/hello_wayland/Djenne_128_128.raw | 3 +
10 .../linux/apps/hello_pi/hello_wayland/Makefile | 5 + 10 .../apps/hello_pi/hello_wayland/Makefile | 5 +
11 .../hello_wayland/cube_texture_and_coords.h | 100 ++++ 11 .../hello_wayland/cube_texture_and_coords.h | 100 +++
12 .../linux/apps/hello_pi/hello_wayland/triangle.c | 666 +++++++++++++++++++++ 12 .../apps/hello_pi/hello_wayland/triangle.c | 666 ++++++++++++++++++
13 host_applications/linux/apps/hello_pi/rebuild.sh | 3 +- 13 .../linux/apps/hello_pi/rebuild.sh | 3 +-
14 7 files changed, 785 insertions(+), 1 deletion(-) 14 7 files changed, 785 insertions(+), 1 deletion(-)
15 create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/CMakeLists.txt 15 create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/CMakeLists.txt
16 create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/Djenne_128_128.raw 16 create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/Djenne_128_128.raw
@@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
862- 862-
863+make -C hello_wayland 863+make -C hello_wayland
864-- 864--
8652.16.1 8652.19.1
866 866
diff --git a/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch b/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
index 713fc3e..a42aa14 100644
--- a/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
+++ b/recipes-graphics/userland/files/0004-wayland-egl-Add-bcm_host-to-dependencies.patch
@@ -1,7 +1,7 @@
1From f17879b691984b5c4950e4b94ebf102c78797ede Mon Sep 17 00:00:00 2001 1From c379bd2dc575256084d9e36fc11a347e20660130 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Mon, 10 Aug 2015 02:38:27 -0700 3Date: Mon, 10 Aug 2015 02:38:27 -0700
4Subject: [PATCH 04/16] wayland-egl: Add bcm_host to dependencies 4Subject: [PATCH 04/18] wayland-egl: Add bcm_host to dependencies
5 5
6It uses headers like vcos_platform_types.h but does not 6It uses headers like vcos_platform_types.h but does not
7depend on module which should add the required include paths 7depend on module which should add the required include paths
@@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
24 Libs: -L${libdir} -lwayland-egl 24 Libs: -L${libdir} -lwayland-egl
25 Cflags: -I${includedir} 25 Cflags: -I${includedir}
26-- 26--
272.16.1 272.19.1
28 28
diff --git a/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch b/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
index 8d78333..bbaadda 100644
--- a/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
+++ b/recipes-graphics/userland/files/0005-interface-remove-faulty-assert-to-make-weston-happy-.patch
@@ -1,7 +1,7 @@
1From 0273b7b9d7a27d8fe7d3ad8680b799f997e75dca Mon Sep 17 00:00:00 2001 1From bd940c32878d401f311215270579ff513c2f3999 Mon Sep 17 00:00:00 2001
2From: "Yann E. MORIN" <yann.morin.1998@free.fr> 2From: "Yann E. MORIN" <yann.morin.1998@free.fr>
3Date: Sat, 24 Jan 2015 22:07:19 +0100 3Date: Sat, 24 Jan 2015 22:07:19 +0100
4Subject: [PATCH 05/16] interface: remove faulty assert() to make weston happy 4Subject: [PATCH 05/18] interface: remove faulty assert() to make weston happy
5 at runtime 5 at runtime
6 6
7This was removed after a discussion on IRC with the weston guys 7This was removed after a discussion on IRC with the weston guys
@@ -25,5 +25,5 @@ index eab146e..29e0dee 100755
25 } 25 }
26 } else { 26 } else {
27-- 27--
282.16.1 282.19.1
29 29
diff --git a/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch b/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch
index 43eb7f0..1a5e14f 100644
--- a/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch
+++ b/recipes-graphics/userland/files/0006-zero-out-wl-buffers-in-egl_surface_free.patch
@@ -1,7 +1,7 @@
1From 0d678cd2042551cc4e26ec42fa3aba7c72d033b4 Mon Sep 17 00:00:00 2001 1From 466f28ce302f68ac39be750f4b55285791f43ab1 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 6 Feb 2016 11:10:47 -0800 3Date: Sat, 6 Feb 2016 11:10:47 -0800
4Subject: [PATCH 06/16] zero-out wl buffers in egl_surface_free 4Subject: [PATCH 06/18] zero-out wl buffers in egl_surface_free
5 5
6origins from buildroot 6origins from buildroot
7 7
@@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
29 #endif 29 #endif
30 } 30 }
31-- 31--
322.16.1 322.19.1
33 33
diff --git a/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch b/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch
index 987740b..72264e4 100644
--- a/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch
+++ b/recipes-graphics/userland/files/0007-initialize-front-back-wayland-buffers.patch
@@ -1,7 +1,7 @@
1From ec2e00989bf614b259bc9a47b5035f8586e8a214 Mon Sep 17 00:00:00 2001 1From b4a2967513f7d0f5f3caee8cf6cbc7a7a085ebac Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 6 Feb 2016 11:11:41 -0800 3Date: Sat, 6 Feb 2016 11:11:41 -0800
4Subject: [PATCH 07/16] initialize front back wayland buffers 4Subject: [PATCH 07/18] initialize front back wayland buffers
5 5
6origins from metrological wayland support 6origins from metrological wayland support
7 7
@@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
30 } 30 }
31 #endif 31 #endif
32-- 32--
332.16.1 332.19.1
34 34
diff --git a/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch b/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch
index 4bf05c1..a100e39 100644
--- a/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch
+++ b/recipes-graphics/userland/files/0008-Remove-RPC_FLUSH.patch
@@ -1,7 +1,7 @@
1From 59ba66c2ea17f7a57124b9fd6c9bdff4325ff5c9 Mon Sep 17 00:00:00 2001 1From 14c22987dfa9fec02794856cd15b2d64b4b81c32 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 6 Feb 2016 11:09:18 -0800 3Date: Sat, 6 Feb 2016 11:09:18 -0800
4Subject: [PATCH 08/16] Remove RPC_FLUSH 4Subject: [PATCH 08/18] Remove RPC_FLUSH
5 5
6Origins from buildroot 6Origins from buildroot
7 7
@@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
23 } 23 }
24 #endif 24 #endif
25-- 25--
262.16.1 262.19.1
27 27
diff --git a/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch b/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch
index a2c1df5..4609455 100644
--- a/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch
+++ b/recipes-graphics/userland/files/0009-fix-cmake-dependency-race.patch
@@ -1,7 +1,7 @@
1From 264d82387ea1e607b2e5c899ff6bd46807c7b185 Mon Sep 17 00:00:00 2001 1From e510be221276d06e630ab93452ecb712d3921790 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 6 Feb 2016 13:12:47 -0800 3Date: Sat, 6 Feb 2016 13:12:47 -0800
4Subject: [PATCH 09/16] fix cmake dependency race 4Subject: [PATCH 09/18] fix cmake dependency race
5 5
6Fixes errors like 6Fixes errors like
7 7
@@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
74 struct wl_resource *resource; 74 struct wl_resource *resource;
75 struct wl_dispmanx *dispmanx; 75 struct wl_dispmanx *dispmanx;
76-- 76--
772.16.1 772.19.1
78 78
diff --git a/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch b/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch
index a6c9a59..dd0b95e 100644
--- a/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch
+++ b/recipes-graphics/userland/files/0010-Fix-for-framerate-with-nested-composition.patch
@@ -1,7 +1,7 @@
1From 7c51c2d37bfadaabbbf205237d932b685b09d34f Mon Sep 17 00:00:00 2001 1From 8e6cde08077eadfe563dc17c19995ebc48e30b97 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Tue, 29 Mar 2016 20:38:30 -0700 3Date: Tue, 29 Mar 2016 20:38:30 -0700
4Subject: [PATCH 10/16] Fix for framerate with nested composition 4Subject: [PATCH 10/18] Fix for framerate with nested composition
5 5
6frame rate appears irregular and lower than expected when using nested composition. 6frame rate appears irregular and lower than expected when using nested composition.
7 7
@@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
56 #ifdef ANDROID 56 #ifdef ANDROID
57 CLIENT_UNLOCK(); 57 CLIENT_UNLOCK();
58-- 58--
592.16.1 592.19.1
60 60
diff --git a/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch b/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch
index 55a5be8..4bd5320 100644
--- a/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch
+++ b/recipes-graphics/userland/files/0011-build-shared-library-for-vchostif.patch
@@ -1,7 +1,7 @@
1From fb3002f77a175633af31019c513754d2ef5f3ac0 Mon Sep 17 00:00:00 2001 1From 9a97d60262999093d6ce8cb688279506c210d802 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Apr 2016 10:37:24 -0700 3Date: Sat, 2 Apr 2016 10:37:24 -0700
4Subject: [PATCH 11/16] build shared library for vchostif 4Subject: [PATCH 11/18] build shared library for vchostif
5 5
6Fixes #149 6Fixes #149
7 7
@@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
24 #add_library(bufman vc_vchi_bufman.c ) 24 #add_library(bufman vc_vchi_bufman.c )
25 25
26-- 26--
272.16.1 272.19.1
28 28
diff --git a/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch b/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
index 28a5fc6..9684b4c 100644
--- a/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
+++ b/recipes-graphics/userland/files/0012-implement-buffer-wrapping-interface-for-dispmanx.patch
@@ -1,14 +1,14 @@
1From df8b9633a45069bdd1bf256d974636ef11aa39cb Mon Sep 17 00:00:00 2001 1From fedd7668152049c15ed58c7058e5f4a9c1fac7cb Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sat, 2 Apr 2016 10:54:59 -0700 3Date: Sat, 2 Apr 2016 10:54:59 -0700
4Subject: [PATCH 12/16] implement buffer wrapping interface for dispmanx 4Subject: [PATCH 12/18] implement buffer wrapping interface for dispmanx
5 5
6Courtesy: Zan Dobersek 6Courtesy: Zan Dobersek
7 7
8Signed-off-by: Khem Raj <raj.khem@gmail.com> 8Signed-off-by: Khem Raj <raj.khem@gmail.com>
9--- 9---
10 interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++ 10 interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++
11 interface/wayland/dispmanx.xml | 10 +++++++++ 11 interface/wayland/dispmanx.xml | 10 +++++++
12 2 files changed, 52 insertions(+) 12 2 files changed, 52 insertions(+)
13 13
14diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c 14diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
@@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
88 88
89 </protocol> 89 </protocol>
90-- 90--
912.16.1 912.19.1
92 92
diff --git a/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch b/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch
index ebff314..3052168 100644
--- a/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch
+++ b/recipes-graphics/userland/files/0013-Implement-triple-buffering-for-wayland.patch
@@ -1,7 +1,7 @@
1From 2e0e331da8556fecd841349cfae294baf0f14485 Mon Sep 17 00:00:00 2001 1From 65f8bca55aead676cd06fc3210aeffef1f2158c6 Mon Sep 17 00:00:00 2001
2From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> 2From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
3Date: Thu, 19 Jan 2017 18:56:07 +0000 3Date: Thu, 19 Jan 2017 18:56:07 +0000
4Subject: [PATCH 13/16] Implement triple buffering for wayland 4Subject: [PATCH 13/18] Implement triple buffering for wayland
5 5
6Change from double to triple buffering for wayland. 6Change from double to triple buffering for wayland.
7This enables higher frame rates without tearing artifacts 7This enables higher frame rates without tearing artifacts
@@ -86,5 +86,5 @@ index e328b77..58a3184 100644
86 back_wl_buffer 86 back_wl_buffer
87 87
88-- 88--
892.16.1 892.19.1
90 90
diff --git a/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch b/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
index 3da4a48..037d708 100644
--- a/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
+++ b/recipes-graphics/userland/files/0014-GLES2-gl2ext.h-Define-GL_R8_EXT-and-GL_RG8_EXT.patch
@@ -1,7 +1,7 @@
1From 6e8562b45a2e14490da2ca258c9ce3d7bc8375f3 Mon Sep 17 00:00:00 2001 1From dc1d07d835e1fe70c957a655d6fbb8cde65775af Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Wed, 10 May 2017 06:39:34 +0000 3Date: Wed, 10 May 2017 06:39:34 +0000
4Subject: [PATCH 14/16] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT 4Subject: [PATCH 14/18] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
5 5
6weston code uses these defines 6weston code uses these defines
7Upstream-Status: Pending 7Upstream-Status: Pending
@@ -31,5 +31,5 @@ index 4eacf7f..b1acc9f 100644
31 #ifndef GL_EXT_texture_type_2_10_10_10_REV 31 #ifndef GL_EXT_texture_type_2_10_10_10_REV
32 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 32 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
33-- 33--
342.18.0 342.19.1
35 35
diff --git a/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch b/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch
index 605d0c0..02cecb8 100644
--- a/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch
+++ b/recipes-graphics/userland/files/0015-EGL-glplatform.h-define-EGL_CAST.patch
@@ -1,7 +1,7 @@
1From a2182e5437a6664cdb0f3330f6cbee873b6f975a Mon Sep 17 00:00:00 2001 1From b5fa294c0d8fcb6dd5bfbfb96a0885dd9f3ae609 Mon Sep 17 00:00:00 2001
2From: Andrea Galbusera <gizero@gmail.com> 2From: Andrea Galbusera <gizero@gmail.com>
3Date: Fri, 14 Jul 2017 09:52:54 +0200 3Date: Fri, 14 Jul 2017 09:52:54 +0200
4Subject: [PATCH 15/16] EGL/glplatform.h: define EGL_CAST 4Subject: [PATCH 15/18] EGL/glplatform.h: define EGL_CAST
5 5
6C++ / C typecast macros for special EGL handle values: used by libepoxy code 6C++ / C typecast macros for special EGL handle values: used by libepoxy code
7The definition comes from the updated version of this header in mesa. 7The definition comes from the updated version of this header in mesa.
@@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644
28+ 28+
29 #endif /* __eglplatform_h */ 29 #endif /* __eglplatform_h */
30-- 30--
312.16.1 312.19.1
32 32
diff --git a/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch b/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
index d20ec82..34ad90c 100644
--- a/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
+++ b/recipes-graphics/userland/files/0016-Allow-multiple-wayland-compositor-state-data-per-pro.patch
@@ -1,7 +1,7 @@
1From 6b4c4d469d435bfcfb464356b6ccc9421c6b8fd5 Mon Sep 17 00:00:00 2001 1From bff03f92c0d8bae113e0c7234c719f8385808b38 Mon Sep 17 00:00:00 2001
2From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> 2From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
3Date: Sat, 27 Jan 2018 12:28:31 -0500 3Date: Sat, 27 Jan 2018 12:28:31 -0500
4Subject: [PATCH 16/16] Allow multiple wayland compositor state data per 4Subject: [PATCH 16/18] Allow multiple wayland compositor state data per
5 process 5 process
6 6
7When eglBindWaylandDisplayWL is called store the wl_global 7When eglBindWaylandDisplayWL is called store the wl_global
@@ -15,8 +15,8 @@ Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
15Signed-off-by: Khem Raj <raj.khem@gmail.com> 15Signed-off-by: Khem Raj <raj.khem@gmail.com>
16--- 16---
17 interface/khronos/common/khrn_client.c | 2 +- 17 interface/khronos/common/khrn_client.c | 2 +-
18 interface/khronos/common/khrn_client.h | 11 +++++++- 18 interface/khronos/common/khrn_client.h | 11 +++++-
19 interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++++++++++---- 19 interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++----
20 3 files changed, 55 insertions(+), 8 deletions(-) 20 3 files changed, 55 insertions(+), 8 deletions(-)
21 21
22diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c 22diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
@@ -141,5 +141,5 @@ index 9ef89cd..abd5ab3 100644
141 CLIENT_UNLOCK(); 141 CLIENT_UNLOCK();
142 142
143-- 143--
1442.16.1 1442.19.1
145 145
diff --git a/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch b/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch
index fbfdb86..546cd58 100644
--- a/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch
+++ b/recipes-graphics/userland/files/0017-khronos-backport-typedef-for-EGL_EXT_image_dma_buf_i.patch
@@ -1,7 +1,8 @@
1From 8403fb3869f56ea7492fa6265bd6cd1dd5146e6e Mon Sep 17 00:00:00 2001 1From 8efd81e96bdd3be68063a6fd32be4755225e93b2 Mon Sep 17 00:00:00 2001
2From: Hugo Hromic <hhromic@gmail.com> 2From: Hugo Hromic <hhromic@gmail.com>
3Date: Sun, 13 May 2018 10:49:04 +0100 3Date: Sun, 13 May 2018 10:49:04 +0100
4Subject: [PATCH] khronos: backport typedef for EGL_EXT_image_dma_buf_import 4Subject: [PATCH 17/18] khronos: backport typedef for
5 EGL_EXT_image_dma_buf_import
5 6
6The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which 7The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which
7expects the `EGLuint64KHR` typedef that is present in recent versions of Khronos. 8expects the `EGLuint64KHR` typedef that is present in recent versions of Khronos.
@@ -13,13 +14,12 @@ See: <https://www.khronos.org/registry/EGL/api/EGL/eglext.h>
13Submitted to userland in <https://github.com/raspberrypi/userland/pull/467> 14Submitted to userland in <https://github.com/raspberrypi/userland/pull/467>
14 15
15Upstream-Status: Submitted 16Upstream-Status: Submitted
16
17--- 17---
18 interface/khronos/include/EGL/eglext.h | 4 ++++ 18 interface/khronos/include/EGL/eglext.h | 4 ++++
19 1 file changed, 4 insertions(+) 19 1 file changed, 4 insertions(+)
20 20
21diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h 21diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
22index d7e5ba7..4ce762d 100755 22index d7e5ba7..dcc90ce 100755
23--- a/interface/khronos/include/EGL/eglext.h 23--- a/interface/khronos/include/EGL/eglext.h
24+++ b/interface/khronos/include/EGL/eglext.h 24+++ b/interface/khronos/include/EGL/eglext.h
25@@ -190,6 +190,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSy 25@@ -190,6 +190,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSy
@@ -33,3 +33,6 @@ index d7e5ba7..4ce762d 100755
33 33
34 #ifndef EGL_WL_bind_wayland_display 34 #ifndef EGL_WL_bind_wayland_display
35 #define EGL_WL_bind_wayland_display 1 35 #define EGL_WL_bind_wayland_display 1
36--
372.19.1
38
diff --git a/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch b/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch
index 330fb3e..f4d865e 100644
--- a/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch
+++ b/recipes-graphics/userland/files/0018-Add-EGL_IMG_context_priority-related-defines.patch
@@ -1,7 +1,7 @@
1From ca43aae3e1879d2595cfee80032322f5fdfdea11 Mon Sep 17 00:00:00 2001 1From 9cfea4761ba68776fd9bfac671b74c7174f99029 Mon Sep 17 00:00:00 2001
2From: Khem Raj <raj.khem@gmail.com> 2From: Khem Raj <raj.khem@gmail.com>
3Date: Sun, 15 Jul 2018 00:48:38 -0700 3Date: Sun, 15 Jul 2018 00:48:38 -0700
4Subject: [PATCH] Add EGL_IMG_context_priority related defines 4Subject: [PATCH 18/18] Add EGL_IMG_context_priority related defines
5 5
6These defines are needed for compiling weston 4.x 6These defines are needed for compiling weston 4.x
7taken from Khronos headers 7taken from Khronos headers
@@ -31,5 +31,5 @@ index dcc90ce..6842bf9 100755
31 #define EGL_KHR_vg_parent_image 1 31 #define EGL_KHR_vg_parent_image 1
32 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ 32 #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */
33-- 33--
342.18.0 342.19.1
35 35