userland: Update to latest master

Signed-off-by: Khem Raj <raj.khem@gmail.com>
This commit is contained in:
Khem Raj 2018-11-20 23:43:41 -08:00 committed by Andrei Gherzan
parent 981376b1c4
commit 7c94afee2b
19 changed files with 345 additions and 305 deletions

View File

@ -1,7 +1,7 @@
From 0a64dc61d3d7db69389157ae757203b4b3afdbfa Mon Sep 17 00:00:00 2001 From 08d56c1174e27573ae8df2a7b9e6632afd0bfe86 Mon Sep 17 00:00:00 2001
From: Dom Cobley <dc4@broadcom.com> From: Dom Cobley <dc4@broadcom.com>
Date: Tue, 9 Jul 2013 09:26:26 -0400 Date: Tue, 9 Jul 2013 09:26:26 -0400
Subject: [PATCH 01/16] Allow applications to set next resource handle Subject: [PATCH 01/18] Allow applications to set next resource handle
This patch adds provisions in userland to This patch adds provisions in userland to
let apps callers set the next rendereing dispmanx resource. let apps callers set the next rendereing dispmanx resource.
@ -9,10 +9,10 @@ It's useful for implementing, say, a buffer carousel.
--- ---
interface/khronos/common/khrn_client_rpc.h | 2 ++ interface/khronos/common/khrn_client_rpc.h | 2 ++
interface/khronos/common/khrn_int_ids.h | 2 ++ interface/khronos/common/khrn_int_ids.h | 2 ++
interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++++++++++--- interface/khronos/egl/egl_client.c | 30 +++++++++++++++++++---
interface/khronos/egl/egl_client_surface.c | 24 +++++++++++++++++++++++- interface/khronos/egl/egl_client_surface.c | 24 ++++++++++++++++-
interface/khronos/egl/egl_client_surface.h | 3 ++- interface/khronos/egl/egl_client_surface.h | 3 ++-
interface/khronos/egl/egl_int_impl.h | 5 +++-- interface/khronos/egl/egl_int_impl.h | 5 ++--
6 files changed, 59 insertions(+), 7 deletions(-) 6 files changed, 59 insertions(+), 7 deletions(-)
diff --git a/interface/khronos/common/khrn_client_rpc.h b/interface/khronos/common/khrn_client_rpc.h diff --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
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)) 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.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 5608ec8002be8370e78c9dbb1e07cee4cfb18b58 Mon Sep 17 00:00:00 2001 From da60a2a34a48e2b324fceae608964814488cc8fb Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com> From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200 Date: Tue, 1 Oct 2013 13:19:20 +0200
Subject: [PATCH 02/16] wayland: Add support for the Wayland winsys Subject: [PATCH 02/18] wayland: Add support for the Wayland winsys
* Adds EGL_WL_bind_wayland_display extension * Adds EGL_WL_bind_wayland_display extension
* Adds wayland-egl library * Adds wayland-egl library
@ -16,38 +16,40 @@ a DispmanX display from the clients.
TODO: wl_dispmanx_server_buffer should probably be defined in a TODO: wl_dispmanx_server_buffer should probably be defined in a
private header that can be included from EGL and vc_* instead of in private header that can be included from EGL and vc_* instead of in
vc_vchi_dispmanx.h vc_vchi_dispmanx.h
Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- ---
.gitignore | 1 + .gitignore | 1 +
CMakeLists.txt | 11 + CMakeLists.txt | 11 +
README.md | 4 + README.md | 4 +
buildme | 10 +- buildme | 10 +-
.../linux/apps/raspicam/CMakeLists.txt | 2 +- .../linux/apps/raspicam/CMakeLists.txt | 2 +-
interface/khronos/CMakeLists.txt | 53 ++++- interface/khronos/CMakeLists.txt | 54 +++-
interface/khronos/common/khrn_client.c | 15 ++ interface/khronos/common/khrn_client.c | 15 ++
interface/khronos/common/khrn_client.h | 10 + interface/khronos/common/khrn_client.h | 10 +
interface/khronos/common/khrn_client_mangle.h | 3 + interface/khronos/common/khrn_client_mangle.h | 3 +
interface/khronos/common/khrn_client_platform.h | 8 + .../khronos/common/khrn_client_platform.h | 8 +
interface/khronos/common/khrn_client_unmangle.h | 3 + .../khronos/common/khrn_client_unmangle.h | 3 +
.../common/linux/khrn_client_platform_linux.c | 115 ++++++++-- .../common/linux/khrn_client_platform_linux.c | 115 +++++++-
interface/khronos/common/linux/khrn_wayland.c | 215 ++++++++++++++++++ interface/khronos/common/linux/khrn_wayland.c | 215 +++++++++++++++
.../common/linux/khrn_wayland.h} | 46 +--- .../common/linux/khrn_wayland.h} | 46 +---
interface/khronos/egl/egl_client.c | 92 +++++--- interface/khronos/egl/egl_client.c | 92 +++++--
interface/khronos/egl/egl_client_get_proc.c | 11 + interface/khronos/egl/egl_client_get_proc.c | 11 +
interface/khronos/egl/egl_client_surface.c | 42 +++- interface/khronos/egl/egl_client_surface.c | 42 ++-
interface/khronos/egl/egl_client_surface.h | 38 +++- interface/khronos/egl/egl_client_surface.h | 38 ++-
interface/khronos/egl/egl_int_impl.h | 2 +- interface/khronos/egl/egl_int_impl.h | 2 +-
interface/khronos/ext/egl_wayland.c | 246 +++++++++++++++++++++ interface/khronos/ext/egl_wayland.c | 246 ++++++++++++++++++
interface/khronos/include/EGL/eglext.h | 23 ++ interface/khronos/include/EGL/eglext.h | 23 ++
interface/khronos/wayland-egl/wayland-egl-priv.h | 53 +++++ .../khronos/wayland-egl/wayland-egl-priv.h | 53 ++++
interface/khronos/wayland-egl/wayland-egl.c | 59 +++++ interface/khronos/wayland-egl/wayland-egl.c | 59 +++++
interface/khronos/wayland-egl/wayland-egl.pc.in | 10 + .../khronos/wayland-egl/wayland-egl.pc.in | 10 +
interface/vmcs_host/CMakeLists.txt | 21 +- interface/vmcs_host/CMakeLists.txt | 21 +-
interface/vmcs_host/vc_dispmanx.h | 10 + interface/vmcs_host/vc_dispmanx.h | 10 +
interface/vmcs_host/vc_vchi_dispmanx.c | 42 ++++ interface/vmcs_host/vc_vchi_dispmanx.c | 42 +++
interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++ interface/vmcs_host/vc_vchi_dispmanx.h | 15 ++
interface/wayland/dispmanx.xml | 123 +++++++++++ interface/wayland/dispmanx.xml | 123 +++++++++
makefiles/cmake/Wayland.cmake | 72 ++++++ makefiles/cmake/Wayland.cmake | 72 +++++
30 files changed, 1257 insertions(+), 98 deletions(-) 30 files changed, 1257 insertions(+), 99 deletions(-)
create mode 100644 interface/khronos/common/linux/khrn_wayland.c create mode 100644 interface/khronos/common/linux/khrn_wayland.c
copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%) copy interface/{vmcs_host/vc_vchi_dispmanx.h => khronos/common/linux/khrn_wayland.h} (56%)
create mode 100644 interface/khronos/ext/egl_wayland.c create mode 100644 interface/khronos/ext/egl_wayland.c
@ -57,20 +59,20 @@ vc_vchi_dispmanx.h
create mode 100644 interface/wayland/dispmanx.xml create mode 100644 interface/wayland/dispmanx.xml
create mode 100644 makefiles/cmake/Wayland.cmake create mode 100644 makefiles/cmake/Wayland.cmake
Index: git/.gitignore diff --git a/.gitignore b/.gitignore
=================================================================== index 63570f1..1459436 100644
--- git.orig/.gitignore --- a/.gitignore
+++ git/.gitignore +++ b/.gitignore
@@ -30,3 +30,4 @@ build/ @@ -30,3 +30,4 @@ build/
*.pts *.pts
*.ppm *.ppm
*.mkv *.mkv
+*~ +*~
Index: git/CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt
=================================================================== index cfc8ae5..673a5ad 100644
--- git.orig/CMakeLists.txt --- a/CMakeLists.txt
+++ git/CMakeLists.txt +++ b/CMakeLists.txt
@@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings. @@ -24,6 +24,17 @@ include(makefiles/cmake/global_settings.cmake)
include(makefiles/cmake/arm-linux.cmake) include(makefiles/cmake/arm-linux.cmake)
include(makefiles/cmake/vmcs.cmake) include(makefiles/cmake/vmcs.cmake)
@ -88,11 +90,11 @@ Index: git/CMakeLists.txt
enable_language(ASM) enable_language(ASM)
# Global include paths # Global include paths
Index: git/README.md diff --git a/README.md b/README.md
=================================================================== index 94b93b8..50b90b1 100644
--- git.orig/README.md --- a/README.md
+++ git/README.md +++ b/README.md
@@ -6,3 +6,7 @@ Use buildme to build. It requires cmake @@ -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 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. 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
+To build support for the Wayland winsys in EGL, execute the buildme script like this: +To build support for the Wayland winsys in EGL, execute the buildme script like this:
+ +
+$ BUILD_WAYLAND=1 ./buildme. +$ BUILD_WAYLAND=1 ./buildme.
Index: git/buildme diff --git a/buildme b/buildme
=================================================================== index b8fd440..a780bb6 100755
--- git.orig/buildme --- a/buildme
+++ git/buildme +++ b/buildme
@@ -8,6 +8,10 @@ fi @@ -8,6 +8,10 @@ fi
BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`; BUILDSUBDIR=`echo $BUILDTYPE | tr '[A-Z]' '[a-z]'`;
@ -130,23 +132,23 @@ Index: git/buildme
make -j `nproc` make -j `nproc`
if [ "$1" != "" ]; then if [ "$1" != "" ]; then
Index: git/host_applications/linux/apps/raspicam/CMakeLists.txt diff --git a/host_applications/linux/apps/raspicam/CMakeLists.txt b/host_applications/linux/apps/raspicam/CMakeLists.txt
=================================================================== index 42636e8..d47ad55 100644
--- git.orig/host_applications/linux/apps/raspicam/CMakeLists.txt --- a/host_applications/linux/apps/raspicam/CMakeLists.txt
+++ git/host_applications/linux/apps/raspicam/CMakeLists.txt +++ b/host_applications/linux/apps/raspicam/CMakeLists.txt
@@ -28,7 +28,7 @@ add_executable(raspividyuv ${COMMON_SOU @@ -33,7 +33,7 @@ add_executable(raspividyuv ${COMMON_SOURCES} RaspiVidYUV.c)
set (MMAL_LIBS mmal_core mmal_util mmal_vc_client) set (MMAL_LIBS mmal_core mmal_util mmal_vc_client)
-target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m) -target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl)
+target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES}) +target_link_libraries(raspistill ${MMAL_LIBS} vcos bcm_host brcmGLESv2 brcmEGL m dl ${WAYLAND_SERVER_LIBRARIES} ${WAYLAND_CLIENT_LIBRARIES})
target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspiyuv ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspivid ${MMAL_LIBS} vcos bcm_host)
target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host) target_link_libraries(raspividyuv ${MMAL_LIBS} vcos bcm_host)
Index: git/interface/khronos/CMakeLists.txt diff --git a/interface/khronos/CMakeLists.txt b/interface/khronos/CMakeLists.txt
=================================================================== index 9ad615b..95c0e11 100644
--- git.orig/interface/khronos/CMakeLists.txt --- a/interface/khronos/CMakeLists.txt
+++ git/interface/khronos/CMakeLists.txt +++ b/interface/khronos/CMakeLists.txt
@@ -6,6 +6,12 @@ @@ -6,6 +6,12 @@
# have quite a few circular dependencies, and so the only way # have quite a few circular dependencies, and so the only way
# to make it work seems to be to have everything static. # to make it work seems to be to have everything static.
@ -216,7 +218,7 @@ Index: git/interface/khronos/CMakeLists.txt
# TODO do we need EGL_static and GLESv2_static now that khrn_static exists? # TODO do we need EGL_static and GLESv2_static now that khrn_static exists?
add_library(EGL_static STATIC ${EGL_SOURCE}) add_library(EGL_static STATIC ${EGL_SOURCE})
add_library(GLESv2_static STATIC ${GLES_SOURCE}) add_library(GLESv2_static STATIC ${GLES_SOURCE})
@@ -72,8 +121,7 @@ include_directories (../../host_applicat @@ -72,8 +121,7 @@ include_directories (../../host_applications/linux/libs/sm )
set(VCSM_LIBS vcsm) set(VCSM_LIBS vcsm)
add_definitions(-DKHRONOS_HAVE_VCSM) add_definitions(-DKHRONOS_HAVE_VCSM)
endif() endif()
@ -226,7 +228,7 @@ Index: git/interface/khronos/CMakeLists.txt
target_link_libraries(GLESv2 EGL khrn_client vcos) target_link_libraries(GLESv2 EGL khrn_client vcos)
target_link_libraries(WFC EGL) target_link_libraries(WFC EGL)
target_link_libraries(OpenVG EGL) target_link_libraries(OpenVG EGL)
@@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_ @@ -87,7 +135,7 @@ add_library(brcmGLESv2 ${SHARED} ${GLES_SOURCE})
add_library(brcmOpenVG ${SHARED} ${VG_SOURCE}) add_library(brcmOpenVG ${SHARED} ${VG_SOURCE})
add_library(brcmWFC ${SHARED} ${WFC_SOURCE}) add_library(brcmWFC ${SHARED} ${WFC_SOURCE})
@ -235,11 +237,11 @@ Index: git/interface/khronos/CMakeLists.txt
target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos) target_link_libraries(brcmGLESv2 brcmEGL khrn_client vcos)
target_link_libraries(brcmWFC brcmEGL) target_link_libraries(brcmWFC brcmEGL)
target_link_libraries(brcmOpenVG brcmEGL) target_link_libraries(brcmOpenVG brcmEGL)
Index: git/interface/khronos/common/khrn_client.c diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
=================================================================== index ef4babd..d7e798e 100644
--- git.orig/interface/khronos/common/khrn_client.c --- a/interface/khronos/common/khrn_client.c
+++ git/interface/khronos/common/khrn_client.c +++ b/interface/khronos/common/khrn_client.c
@@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -54,6 +54,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "applications/vmcs/khronos/khronos_server.h" #include "applications/vmcs/khronos/khronos_server.h"
#endif #endif
@ -250,7 +252,7 @@ Index: git/interface/khronos/common/khrn_client.c
VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN); VCOS_LOG_CAT_T khrn_client_log = VCOS_LOG_INIT("khrn_client", VCOS_LOG_WARN);
/* /*
@@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PRO @@ -142,6 +146,10 @@ void client_try_unload_server(CLIENT_PROCESS_STATE_T *process)
bool client_process_state_init(CLIENT_PROCESS_STATE_T *process) bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
{ {
if (!process->inited) { if (!process->inited) {
@ -261,7 +263,7 @@ Index: git/interface/khronos/common/khrn_client.c
if (!khrn_pointer_map_init(&process->contexts, 64)) if (!khrn_pointer_map_init(&process->contexts, 64))
return false; return false;
@@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PR @@ -194,6 +202,13 @@ bool client_process_state_init(CLIENT_PROCESS_STATE_T *process)
} }
#endif #endif
@ -275,10 +277,10 @@ Index: git/interface/khronos/common/khrn_client.c
process->inited = true; process->inited = true;
} }
Index: git/interface/khronos/common/khrn_client.h diff --git a/interface/khronos/common/khrn_client.h b/interface/khronos/common/khrn_client.h
=================================================================== index 804039b..615f7b4 100644
--- git.orig/interface/khronos/common/khrn_client.h --- a/interface/khronos/common/khrn_client.h
+++ git/interface/khronos/common/khrn_client.h +++ b/interface/khronos/common/khrn_client.h
@@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE { @@ -310,6 +310,16 @@ struct CLIENT_PROCESS_STATE {
#ifdef RPC_LIBRARY #ifdef RPC_LIBRARY
KHRONOS_SERVER_CONNECTION_T khrn_connection; KHRONOS_SERVER_CONNECTION_T khrn_connection;
@ -296,11 +298,11 @@ Index: git/interface/khronos/common/khrn_client.h
}; };
extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process); extern bool client_process_state_init(CLIENT_PROCESS_STATE_T *process);
Index: git/interface/khronos/common/khrn_client_mangle.h diff --git a/interface/khronos/common/khrn_client_mangle.h b/interface/khronos/common/khrn_client_mangle.h
=================================================================== index b3c04f4..b7b21c5 100644
--- git.orig/interface/khronos/common/khrn_client_mangle.h --- a/interface/khronos/common/khrn_client_mangle.h
+++ git/interface/khronos/common/khrn_client_mangle.h +++ b/interface/khronos/common/khrn_client_mangle.h
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM #define eglReleaseGlobalImageBRCM mangled_eglReleaseGlobalImageBRCM
#define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM #define eglInitGlobalImageBRCM mangled_eglInitGlobalImageBRCM
#define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM #define eglTermGlobalImageBRCM mangled_eglTermGlobalImageBRCM
@ -310,11 +312,11 @@ Index: git/interface/khronos/common/khrn_client_mangle.h
/* OpenGL ES 1.1 and 2.0 functions */ /* OpenGL ES 1.1 and 2.0 functions */
Index: git/interface/khronos/common/khrn_client_platform.h diff --git a/interface/khronos/common/khrn_client_platform.h b/interface/khronos/common/khrn_client_platform.h
=================================================================== index 1c9da3a..715c67e 100644
--- git.orig/interface/khronos/common/khrn_client_platform.h --- a/interface/khronos/common/khrn_client_platform.h
+++ git/interface/khronos/common/khrn_client_platform.h +++ b/interface/khronos/common/khrn_client_platform.h
@@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -48,6 +48,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h" #include "interface/khronos/common/vcos/khrn_client_platform_filler_vcos.h"
#endif #endif
@ -334,11 +336,11 @@ Index: git/interface/khronos/common/khrn_client_platform.h
+#endif +#endif
+ +
#endif // KHRN_CLIENT_PLATFORM_H #endif // KHRN_CLIENT_PLATFORM_H
Index: git/interface/khronos/common/khrn_client_unmangle.h diff --git a/interface/khronos/common/khrn_client_unmangle.h b/interface/khronos/common/khrn_client_unmangle.h
=================================================================== index 4f3ce49..84f6ec0 100644
--- git.orig/interface/khronos/common/khrn_client_unmangle.h --- a/interface/khronos/common/khrn_client_unmangle.h
+++ git/interface/khronos/common/khrn_client_unmangle.h +++ b/interface/khronos/common/khrn_client_unmangle.h
@@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -83,6 +83,9 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#undef eglReleaseGlobalImageBRCM #undef eglReleaseGlobalImageBRCM
#undef eglInitGlobalImageBRCM #undef eglInitGlobalImageBRCM
#undef eglTermGlobalImageBRCM #undef eglTermGlobalImageBRCM
@ -348,11 +350,11 @@ Index: git/interface/khronos/common/khrn_client_unmangle.h
/* OpenGL ES 1.1 and 2.0 functions */ /* OpenGL ES 1.1 and 2.0 functions */
Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c diff --git a/interface/khronos/common/linux/khrn_client_platform_linux.c b/interface/khronos/common/linux/khrn_client_platform_linux.c
=================================================================== index 710d20f..50d60a6 100644
--- git.orig/interface/khronos/common/linux/khrn_client_platform_linux.c --- a/interface/khronos/common/linux/khrn_client_platform_linux.c
+++ git/interface/khronos/common/linux/khrn_client_platform_linux.c +++ b/interface/khronos/common/linux/khrn_client_platform_linux.c
@@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -37,6 +37,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "X11/Xlib.h" #include "X11/Xlib.h"
#endif #endif
@ -364,7 +366,7 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
extern VCOS_LOG_CAT_T khrn_client_log; extern VCOS_LOG_CAT_T khrn_client_log;
extern void vc_vchi_khronos_init(); extern void vc_vchi_khronos_init();
@@ -464,14 +469,37 @@ EGLDisplay khrn_platform_set_display_id( @@ -464,13 +469,36 @@ EGLDisplay khrn_platform_set_display_id(EGLNativeDisplayType display_id)
return EGL_NO_DISPLAY; return EGL_NO_DISPLAY;
} }
#else #else
@ -392,19 +394,18 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+#endif +#endif
+ return EGL_NO_DISPLAY; + return EGL_NO_DISPLAY;
+ } + }
+} }
+ +
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+struct wl_display *khrn_platform_get_wl_display() +struct wl_display *khrn_platform_get_wl_display()
+{ +{
+ return hacky_display; + return hacky_display;
} +}
#endif
+#endif +#endif
#endif
#ifdef WANT_X #ifdef WANT_X
static void dump_hierarchy(Window w, Window thisw, Window look, int level) @@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_default(EGLNativeWindowType win)
@@ -805,22 +833,81 @@ static EGL_DISPMANX_WINDOW_T *check_defa
void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win, void platform_get_dimensions(EGLDisplay dpy, EGLNativeWindowType win,
uint32_t *width, uint32_t *height, uint32_t *swapchain_count) uint32_t *width, uint32_t *height, uint32_t *swapchain_count)
{ {
@ -435,8 +436,8 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+ } + }
+#endif +#endif
+} }
+
+#ifdef BUILD_WAYLAND +#ifdef BUILD_WAYLAND
+static DISPMANX_ELEMENT_HANDLE_T create_dummy_element() +static DISPMANX_ELEMENT_HANDLE_T create_dummy_element()
+{ +{
@ -467,9 +468,9 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
+ vc_dispmanx_display_close(display); + vc_dispmanx_display_close(display);
+ +
+ return element; + return element;
} +}
+#endif +#endif
+
uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win) uint32_t platform_get_handle(EGLDisplay dpy, EGLNativeWindowType win)
{ {
- EGL_DISPMANX_WINDOW_T *dwin = check_default(win); - EGL_DISPMANX_WINDOW_T *dwin = check_default(win);
@ -498,10 +499,11 @@ Index: git/interface/khronos/common/linux/khrn_client_platform_linux.c
} }
#endif #endif
Index: git/interface/khronos/common/linux/khrn_wayland.c diff --git a/interface/khronos/common/linux/khrn_wayland.c b/interface/khronos/common/linux/khrn_wayland.c
=================================================================== new file mode 100644
index 0000000..0e1b9e7
--- /dev/null --- /dev/null
+++ git/interface/khronos/common/linux/khrn_wayland.c +++ b/interface/khronos/common/linux/khrn_wayland.c
@@ -0,0 +1,215 @@ @@ -0,0 +1,215 @@
+/* +/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
@ -718,72 +720,74 @@ Index: git/interface/khronos/common/linux/khrn_wayland.c
+ +
+ return wl_dispmanx_client_buffer; + return wl_dispmanx_client_buffer;
+} +}
Index: git/interface/vmcs_host/vc_vchi_dispmanx.h diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/khronos/common/linux/khrn_wayland.h
=================================================================== similarity index 56%
--- git.orig/interface/vmcs_host/vc_vchi_dispmanx.h copy from interface/vmcs_host/vc_vchi_dispmanx.h
+++ git/interface/vmcs_host/vc_vchi_dispmanx.h copy to interface/khronos/common/linux/khrn_wayland.h
@@ -66,4 +66,19 @@ typedef struct { index b723b76..b9bf08c 100644
#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4) --- a/interface/vmcs_host/vc_vchi_dispmanx.h
#define ELEMENT_CHANGE_TRANSFORM (1<<5) +++ b/interface/khronos/common/linux/khrn_wayland.h
@@ -1,5 +1,5 @@
+#ifdef BUILD_WAYLAND /*
+/* XXX: This should be in a private header that can be included from EGL and vc_* */ -Copyright (c) 2012, Broadcom Europe Ltd
+#include <wayland-server.h>
+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
+struct wl_dispmanx_server_buffer {
+ struct wl_resource *resource;
+ struct wl_dispmanx *dispmanx;
+ enum wl_dispmanx_format format;
+ DISPMANX_RESOURCE_HANDLE_T handle;
+ int32_t width;
+ int32_t height;
+ int in_use;
+};
+#endif
+
#endif
Index: git/interface/khronos/common/linux/khrn_wayland.h
===================================================================
--- /dev/null
+++ git/interface/khronos/common/linux/khrn_wayland.h
@@ -0,0 +1,33 @@
+/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
+All rights reserved. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met: @@ -25,45 +25,9 @@ ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * Redistributions of source code must retain the above copyright SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ notice, this list of conditions and the following disclaimer. */
+ * Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in the -#ifndef VC_VCHI_DISPMANX_H
+ documentation and/or other materials provided with the distribution. -#define VC_VCHI_DISPMANX_H
+ * Neither the name of the copyright holder nor the
+ names of its contributors may be used to endorse or promote products
+ derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
+
+#include "interface/khronos/common/khrn_client.h" +#include "interface/khronos/common/khrn_client.h"
+
-#include "interface/peer/vc_vchi_dispmanx_common.h"
+int init_process_wayland(CLIENT_PROCESS_STATE_T *process); +int init_process_wayland(CLIENT_PROCESS_STATE_T *process);
+int do_wl_roundtrip(); +int do_wl_roundtrip();
+
-#define VC_NUM_HOST_RESOURCES 64
-#define DISPMANX_MSGFIFO_SIZE 1024
-#define DISPMANX_CLIENT_NAME MAKE_FOURCC("DISP")
-#define DISPMANX_NOTIFY_NAME MAKE_FOURCC("UPDH")
-
-//Or with command to indicate we don't need a response
-#define DISPMANX_NO_REPLY_MASK (1<<31)
-
-typedef struct {
- char description[32];
- uint32_t width;
- uint32_t height;
- uint32_t aspect_pixwidth;
- uint32_t aspect_pixheight;
- uint32_t fieldrate_num;
- uint32_t fieldrate_denom;
- uint32_t fields_per_frame;
- uint32_t transform;
-} GET_MODES_DATA_T;
-
-typedef struct {
- int32_t response;
- uint32_t width;
- uint32_t height;
- uint32_t transform;
- uint32_t input_format;
-} GET_INFO_DATA_T;
-
-//Attributes changes flag mask
-#define ELEMENT_CHANGE_LAYER (1<<0)
-#define ELEMENT_CHANGE_OPACITY (1<<1)
-#define ELEMENT_CHANGE_DEST_RECT (1<<2)
-#define ELEMENT_CHANGE_SRC_RECT (1<<3)
-#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
-#define ELEMENT_CHANGE_TRANSFORM (1<<5)
-
-#endif
+struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color); +struct wl_dispmanx_client_buffer *allocate_wl_buffer(struct wl_egl_window *window, KHRN_IMAGE_FORMAT_T color);
Index: git/interface/khronos/egl/egl_client.c diff --git a/interface/khronos/egl/egl_client.c b/interface/khronos/egl/egl_client.c
=================================================================== index b8bb374..03fe67b 100644
--- git.orig/interface/khronos/egl/egl_client.c --- a/interface/khronos/egl/egl_client.c
+++ git/interface/khronos/egl/egl_client.c +++ b/interface/khronos/egl/egl_client.c
@@ -153,6 +153,10 @@ by an attribute value" @@ -153,6 +153,10 @@ by an attribute value"
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
@ -795,7 +799,7 @@ Index: git/interface/khronos/egl/egl_client.c
#include "interface/khronos/egl/egl_client_cr.c" #include "interface/khronos/egl/egl_client_cr.c"
@@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_P @@ -162,17 +166,6 @@ static void egl_current_release(CLIENT_PROCESS_STATE_T *process, EGL_CURRENT_T *
void egl_gl_flush_callback(bool wait); void egl_gl_flush_callback(bool wait);
void egl_vg_flush_callback(bool wait); void egl_vg_flush_callback(bool wait);
@ -813,17 +817,17 @@ Index: git/interface/khronos/egl/egl_client.c
/* /*
TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate) TODO: do an RPC call to make sure the Khronos vll is loaded (and that it stays loaded until eglTerminate)
Also affects global image (and possibly others?) Also affects global image (and possibly others?)
@@ -451,6 +444,9 @@ EGLAPI const char EGLAPIENTRY * eglQuery @@ -450,6 +443,9 @@ EGLAPI const char EGLAPIENTRY * eglQueryString(EGLDisplay dpy, EGLint name)
#ifdef EGL_KHR_fence_sync
"EGL_KHR_fence_sync " "EGL_KHR_fence_sync "
#endif #endif
#endif +#endif
+#if EGL_WL_bind_wayland_display +#if EGL_WL_bind_wayland_display
+ "EGL_WL_bind_wayland_display " + "EGL_WL_bind_wayland_display "
+#endif #endif
; ;
break; break;
case EGL_VENDOR: @@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig c
@@ -655,8 +651,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateW
false, false,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
@ -833,7 +837,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP @@ -901,7 +896,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig
mipmap_texture, mipmap_texture,
texture_format, texture_format,
texture_target, texture_target,
@ -842,7 +846,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreateP @@ -1043,7 +1038,7 @@ EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig c
false, false,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
EGL_NO_TEXTURE, EGL_NO_TEXTURE,
@ -851,7 +855,7 @@ Index: git/interface/khronos/egl/egl_client.c
if (surface) { if (surface) {
if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) { if (khrn_pointer_map_insert(&process->surfaces, process->next_surface, surface)) {
@@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf @@ -2245,6 +2240,9 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
CLIENT_THREAD_STATE_T *thread; CLIENT_THREAD_STATE_T *thread;
CLIENT_PROCESS_STATE_T *process; CLIENT_PROCESS_STATE_T *process;
EGLBoolean result; EGLBoolean result;
@ -861,7 +865,7 @@ Index: git/interface/khronos/egl/egl_client.c
vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf); vcos_log_trace("eglSwapBuffers start. dpy=%d. surf=%d.", (int)dpy, (int)surf);
@@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuf @@ -2315,18 +2313,58 @@ EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surf)
vcos_log_trace("eglSwapBuffers server call"); vcos_log_trace("eglSwapBuffers server call");
@ -932,11 +936,11 @@ Index: git/interface/khronos/egl/egl_client.c
RPC_CALL6(eglIntSwapBuffers_impl, RPC_CALL6(eglIntSwapBuffers_impl,
thread, thread,
EGLINTSWAPBUFFERS_ID, EGLINTSWAPBUFFERS_ID,
Index: git/interface/khronos/egl/egl_client_get_proc.c diff --git a/interface/khronos/egl/egl_client_get_proc.c b/interface/khronos/egl/egl_client_get_proc.c
=================================================================== index 4cfa9ff..6a715af 100644
--- git.orig/interface/khronos/egl/egl_client_get_proc.c --- a/interface/khronos/egl/egl_client_get_proc.c
+++ git/interface/khronos/egl/egl_client_get_proc.c +++ b/interface/khronos/egl/egl_client_get_proc.c
@@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAdd @@ -254,6 +254,17 @@ EGLAPI void EGLAPIENTRY (* eglGetProcAddress(const char *procname))(void)
return (void(*)(void))eglQueryGlobalImageBRCM; return (void(*)(void))eglQueryGlobalImageBRCM;
#endif #endif
@ -954,11 +958,11 @@ Index: git/interface/khronos/egl/egl_client_get_proc.c
return (void(*)(void)) NULL; return (void(*)(void)) NULL;
} }
Index: git/interface/khronos/egl/egl_client_surface.c diff --git a/interface/khronos/egl/egl_client_surface.c b/interface/khronos/egl/egl_client_surface.c
=================================================================== index 128325e..42350bf 100644
--- git.orig/interface/khronos/egl/egl_client_surface.c --- a/interface/khronos/egl/egl_client_surface.c
+++ git/interface/khronos/egl/egl_client_surface.c +++ b/interface/khronos/egl/egl_client_surface.c
@@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -46,6 +46,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "interface/khronos/egl/egl_int_impl.h" #include "interface/khronos/egl/egl_int_impl.h"
#endif #endif
@ -1032,7 +1036,7 @@ Index: git/interface/khronos/egl/egl_client_surface.c
RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl, RPC_CALL15_OUT_CTRL(eglIntCreateSurface_impl,
thread, thread,
EGLINTCREATESURFACE_ID, EGLINTCREATESURFACE_ID,
@@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *sur @@ -663,6 +685,18 @@ void egl_surface_free(EGL_SURFACE_T *surface)
if( surface->type == WINDOW ) { if( surface->type == WINDOW ) {
vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle..."); vcos_log_trace("egl_surface_free: calling platform_destroy_winhandle...");
platform_destroy_winhandle( surface->win, surface->internal_handle ); platform_destroy_winhandle( surface->win, surface->internal_handle );
@ -1051,10 +1055,10 @@ Index: git/interface/khronos/egl/egl_client_surface.c
} }
/* return value ignored -- read performed to ensure blocking. we want this to /* return value ignored -- read performed to ensure blocking. we want this to
* block so clients can safely destroy the surface's window as soon as the * block so clients can safely destroy the surface's window as soon as the
Index: git/interface/khronos/egl/egl_client_surface.h diff --git a/interface/khronos/egl/egl_client_surface.h b/interface/khronos/egl/egl_client_surface.h
=================================================================== index b5bf70a..e328b77 100644
--- git.orig/interface/khronos/egl/egl_client_surface.h --- a/interface/khronos/egl/egl_client_surface.h
+++ git/interface/khronos/egl/egl_client_surface.h +++ b/interface/khronos/egl/egl_client_surface.h
@@ -288,6 +288,41 @@ typedef struct { @@ -288,6 +288,41 @@ typedef struct {
type == PIXMAP type == PIXMAP
*/ */
@ -1097,7 +1101,7 @@ Index: git/interface/khronos/egl/egl_client_surface.h
} EGL_SURFACE_T; } EGL_SURFACE_T;
extern bool egl_surface_check_attribs( extern bool egl_surface_check_attribs(
@@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create @@ -322,8 +357,7 @@ extern EGL_SURFACE_T *egl_surface_create(
EGLenum texture_format, EGLenum texture_format,
EGLenum texture_target, EGLenum texture_target,
EGLNativePixmapType pixmap, EGLNativePixmapType pixmap,
@ -1107,10 +1111,10 @@ Index: git/interface/khronos/egl/egl_client_surface.h
extern EGL_SURFACE_T *egl_surface_from_vg_image( extern EGL_SURFACE_T *egl_surface_from_vg_image(
VGImage vg_handle, VGImage vg_handle,
EGLSurface name, EGLSurface name,
Index: git/interface/khronos/egl/egl_int_impl.h diff --git a/interface/khronos/egl/egl_int_impl.h b/interface/khronos/egl/egl_int_impl.h
=================================================================== index 51b3580..6863a3b 100644
--- git.orig/interface/khronos/egl/egl_int_impl.h --- a/interface/khronos/egl/egl_int_impl.h
+++ git/interface/khronos/egl/egl_int_impl.h +++ b/interface/khronos/egl/egl_int_impl.h
@@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, ( @@ -57,7 +57,7 @@ FN(int, eglIntCreateSurface_impl, (
uint32_t sem, uint32_t sem,
uint32_t type, uint32_t type,
@ -1120,10 +1124,11 @@ Index: git/interface/khronos/egl/egl_int_impl.h
FN(int, eglIntCreatePbufferFromVGImage_impl, ( FN(int, eglIntCreatePbufferFromVGImage_impl, (
VGImage vg_handle, VGImage vg_handle,
Index: git/interface/khronos/ext/egl_wayland.c diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
=================================================================== new file mode 100644
index 0000000..5730743
--- /dev/null --- /dev/null
+++ git/interface/khronos/ext/egl_wayland.c +++ b/interface/khronos/ext/egl_wayland.c
@@ -0,0 +1,246 @@ @@ -0,0 +1,246 @@
+/* +/*
+Copyright (c) 2013, Raspberry Pi Foundation +Copyright (c) 2013, Raspberry Pi Foundation
@ -1371,11 +1376,11 @@ Index: git/interface/khronos/ext/egl_wayland.c
+ +
+ return EGL_FALSE; + return EGL_FALSE;
+} +}
Index: git/interface/khronos/include/EGL/eglext.h diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
=================================================================== index 89a3369..d7e5ba7 100755
--- git.orig/interface/khronos/include/EGL/eglext.h --- a/interface/khronos/include/EGL/eglext.h
+++ git/interface/khronos/include/EGL/eglext.h +++ b/interface/khronos/include/EGL/eglext.h
@@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLG @@ -191,6 +191,29 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLGETSYNCATTRIBKHRPROC) (EGLDisplay dpy, EG
#endif #endif
@ -1405,10 +1410,11 @@ Index: git/interface/khronos/include/EGL/eglext.h
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h diff --git a/interface/khronos/wayland-egl/wayland-egl-priv.h b/interface/khronos/wayland-egl/wayland-egl-priv.h
=================================================================== new file mode 100644
index 0000000..8e38d36
--- /dev/null --- /dev/null
+++ git/interface/khronos/wayland-egl/wayland-egl-priv.h +++ b/interface/khronos/wayland-egl/wayland-egl-priv.h
@@ -0,0 +1,53 @@ @@ -0,0 +1,53 @@
+/* Copied from Mesa */ +/* Copied from Mesa */
+ +
@ -1463,10 +1469,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl-priv.h
+#endif +#endif
+ +
+#endif +#endif
Index: git/interface/khronos/wayland-egl/wayland-egl.c diff --git a/interface/khronos/wayland-egl/wayland-egl.c b/interface/khronos/wayland-egl/wayland-egl.c
=================================================================== new file mode 100644
index 0000000..b8f050b
--- /dev/null --- /dev/null
+++ git/interface/khronos/wayland-egl/wayland-egl.c +++ b/interface/khronos/wayland-egl/wayland-egl.c
@@ -0,0 +1,59 @@ @@ -0,0 +1,59 @@
+/* Copied from Mesa */ +/* Copied from Mesa */
+ +
@ -1527,10 +1534,11 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.c
+ if (height) + if (height)
+ *height = egl_window->attached_height; + *height = egl_window->attached_height;
+} +}
Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in diff --git a/interface/khronos/wayland-egl/wayland-egl.pc.in b/interface/khronos/wayland-egl/wayland-egl.pc.in
=================================================================== new file mode 100644
index 0000000..8bafc15
--- /dev/null --- /dev/null
+++ git/interface/khronos/wayland-egl/wayland-egl.pc.in +++ b/interface/khronos/wayland-egl/wayland-egl.pc.in
@@ -0,0 +1,10 @@ @@ -0,0 +1,10 @@
+prefix=@CMAKE_INSTALL_PREFIX@ +prefix=@CMAKE_INSTALL_PREFIX@
+exec_prefix=${prefix} +exec_prefix=${prefix}
@ -1542,10 +1550,10 @@ Index: git/interface/khronos/wayland-egl/wayland-egl.pc.in
+Version: @PROJECT_APIVER@ +Version: @PROJECT_APIVER@
+Libs: -L${libdir} -lwayland-egl +Libs: -L${libdir} -lwayland-egl
+Cflags: -I${includedir} +Cflags: -I${includedir}
Index: git/interface/vmcs_host/CMakeLists.txt diff --git a/interface/vmcs_host/CMakeLists.txt b/interface/vmcs_host/CMakeLists.txt
=================================================================== index fde18da..6718215 100755
--- git.orig/interface/vmcs_host/CMakeLists.txt --- a/interface/vmcs_host/CMakeLists.txt
+++ git/interface/vmcs_host/CMakeLists.txt +++ b/interface/vmcs_host/CMakeLists.txt
@@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing) @@ -9,13 +9,24 @@ add_definitions(-fno-strict-aliasing)
include_directories(${VMCS_TARGET}/vcfiled) include_directories(${VMCS_TARGET}/vcfiled)
@ -1576,11 +1584,11 @@ Index: git/interface/vmcs_host/CMakeLists.txt
#add_library(bufman vc_vchi_bufman.c ) #add_library(bufman vc_vchi_bufman.c )
# OpenMAX/IL component service # OpenMAX/IL component service
Index: git/interface/vmcs_host/vc_dispmanx.h diff --git a/interface/vmcs_host/vc_dispmanx.h b/interface/vmcs_host/vc_dispmanx.h
=================================================================== index 37fdae1..fe3619a 100755
--- git.orig/interface/vmcs_host/vc_dispmanx.h --- a/interface/vmcs_host/vc_dispmanx.h
+++ git/interface/vmcs_host/vc_dispmanx.h +++ b/interface/vmcs_host/vc_dispmanx.h
@@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBI @@ -39,6 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@ -1592,7 +1600,7 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
// Same function as above, to aid migration of code. // Same function as above, to aid migration of code.
VCHPRE_ int VCHPOST_ vc_dispman_init( void ); VCHPRE_ int VCHPOST_ vc_dispman_init( void );
// Stop the service from being used // Stop the service from being used
@@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resourc @@ -135,6 +140,11 @@ VCHPRE_ int VCHPOST_ vc_dispmanx_resource_set_palette( DISPMANX_RESOURCE_HANDLE_
// Start triggering callbacks synced to vsync // Start triggering callbacks synced to vsync
VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg ); VCHPRE_ int VCHPOST_ vc_dispmanx_vsync_callback( DISPMANX_DISPLAY_HANDLE_T display, DISPMANX_CALLBACK_FUNC_T cb_func, void *cb_arg );
@ -1604,11 +1612,11 @@ Index: git/interface/vmcs_host/vc_dispmanx.h
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
Index: git/interface/vmcs_host/vc_vchi_dispmanx.c diff --git a/interface/vmcs_host/vc_vchi_dispmanx.c b/interface/vmcs_host/vc_vchi_dispmanx.c
=================================================================== index 7a6cdcd..eab146e 100755
--- git.orig/interface/vmcs_host/vc_vchi_dispmanx.c --- a/interface/vmcs_host/vc_vchi_dispmanx.c
+++ git/interface/vmcs_host/vc_vchi_dispmanx.c +++ b/interface/vmcs_host/vc_vchi_dispmanx.c
@@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void @@ -1319,3 +1319,45 @@ static void *dispmanx_notify_func( void *arg ) {
} }
return 0; return 0;
} }
@ -1654,10 +1662,35 @@ Index: git/interface/vmcs_host/vc_vchi_dispmanx.c
+ buffer->in_use = in_use; + buffer->in_use = in_use;
+} +}
+#endif +#endif
Index: git/interface/wayland/dispmanx.xml diff --git a/interface/vmcs_host/vc_vchi_dispmanx.h b/interface/vmcs_host/vc_vchi_dispmanx.h
=================================================================== index b723b76..f0bae30 100644
--- a/interface/vmcs_host/vc_vchi_dispmanx.h
+++ b/interface/vmcs_host/vc_vchi_dispmanx.h
@@ -66,4 +66,19 @@ typedef struct {
#define ELEMENT_CHANGE_MASK_RESOURCE (1<<4)
#define ELEMENT_CHANGE_TRANSFORM (1<<5)
+#ifdef BUILD_WAYLAND
+/* XXX: This should be in a private header that can be included from EGL and vc_* */
+#include <wayland-server.h>
+#include "interface/vmcs_host/wayland-dispmanx-server-protocol.h"
+struct wl_dispmanx_server_buffer {
+ struct wl_resource *resource;
+ struct wl_dispmanx *dispmanx;
+ enum wl_dispmanx_format format;
+ DISPMANX_RESOURCE_HANDLE_T handle;
+ int32_t width;
+ int32_t height;
+ int in_use;
+};
+#endif
+
#endif
diff --git a/interface/wayland/dispmanx.xml b/interface/wayland/dispmanx.xml
new file mode 100644
index 0000000..c18626d
--- /dev/null --- /dev/null
+++ git/interface/wayland/dispmanx.xml +++ b/interface/wayland/dispmanx.xml
@@ -0,0 +1,123 @@ @@ -0,0 +1,123 @@
+<?xml version="1.0" encoding="UTF-8"?> +<?xml version="1.0" encoding="UTF-8"?>
+<protocol name="dispmanx"> +<protocol name="dispmanx">
@ -1782,10 +1815,11 @@ Index: git/interface/wayland/dispmanx.xml
+ </interface> + </interface>
+ +
+</protocol> +</protocol>
Index: git/makefiles/cmake/Wayland.cmake diff --git a/makefiles/cmake/Wayland.cmake b/makefiles/cmake/Wayland.cmake
=================================================================== new file mode 100644
index 0000000..ad90d30
--- /dev/null --- /dev/null
+++ git/makefiles/cmake/Wayland.cmake +++ b/makefiles/cmake/Wayland.cmake
@@ -0,0 +1,72 @@ @@ -0,0 +1,72 @@
+#============================================================================= +#=============================================================================
+# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> +# Copyright (C) 2012-2013 Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
@ -1859,3 +1893,6 @@ Index: git/makefiles/cmake/Wayland.cmake
+ list(APPEND ${_sources} "${_server_header}") + list(APPEND ${_sources} "${_server_header}")
+ set(${_sources} ${${_sources}} PARENT_SCOPE) + set(${_sources} ${${_sources}} PARENT_SCOPE)
+endfunction() +endfunction()
--
2.19.1

View File

@ -1,16 +1,16 @@
From 20ac7c6af4e826b5c536b6a7c8b2d1d266ced81e Mon Sep 17 00:00:00 2001 From 976cc9355fe18487cd84e313e76f397ab47a4bf8 Mon Sep 17 00:00:00 2001
From: Tomeu Vizoso <tomeu.vizoso@collabora.com> From: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Date: Tue, 1 Oct 2013 13:19:20 +0200 Date: Tue, 1 Oct 2013 13:19:20 +0200
Subject: [PATCH 03/16] wayland: Add Wayland example Subject: [PATCH 03/18] wayland: Add Wayland example
--- ---
.../linux/apps/hello_pi/CMakeLists.txt | 1 + .../linux/apps/hello_pi/CMakeLists.txt | 1 +
.../apps/hello_pi/hello_wayland/CMakeLists.txt | 8 + .../hello_pi/hello_wayland/CMakeLists.txt | 8 +
.../apps/hello_pi/hello_wayland/Djenne_128_128.raw | 3 + .../hello_pi/hello_wayland/Djenne_128_128.raw | 3 +
.../linux/apps/hello_pi/hello_wayland/Makefile | 5 + .../apps/hello_pi/hello_wayland/Makefile | 5 +
.../hello_wayland/cube_texture_and_coords.h | 100 ++++ .../hello_wayland/cube_texture_and_coords.h | 100 +++
.../linux/apps/hello_pi/hello_wayland/triangle.c | 666 +++++++++++++++++++++ .../apps/hello_pi/hello_wayland/triangle.c | 666 ++++++++++++++++++
host_applications/linux/apps/hello_pi/rebuild.sh | 3 +- .../linux/apps/hello_pi/rebuild.sh | 3 +-
7 files changed, 785 insertions(+), 1 deletion(-) 7 files changed, 785 insertions(+), 1 deletion(-)
create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/CMakeLists.txt create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/CMakeLists.txt
create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/Djenne_128_128.raw create mode 100644 host_applications/linux/apps/hello_pi/hello_wayland/Djenne_128_128.raw
@ -862,5 +862,5 @@ index 8225dd5..0be6ce7 100755
- -
+make -C hello_wayland +make -C hello_wayland
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From f17879b691984b5c4950e4b94ebf102c78797ede Mon Sep 17 00:00:00 2001 From c379bd2dc575256084d9e36fc11a347e20660130 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Mon, 10 Aug 2015 02:38:27 -0700 Date: Mon, 10 Aug 2015 02:38:27 -0700
Subject: [PATCH 04/16] wayland-egl: Add bcm_host to dependencies Subject: [PATCH 04/18] wayland-egl: Add bcm_host to dependencies
It uses headers like vcos_platform_types.h but does not It uses headers like vcos_platform_types.h but does not
depend on module which should add the required include paths depend on module which should add the required include paths
@ -24,5 +24,5 @@ index 8bafc15..fd259c9 100644
Libs: -L${libdir} -lwayland-egl Libs: -L${libdir} -lwayland-egl
Cflags: -I${includedir} Cflags: -I${includedir}
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 0273b7b9d7a27d8fe7d3ad8680b799f997e75dca Mon Sep 17 00:00:00 2001 From bd940c32878d401f311215270579ff513c2f3999 Mon Sep 17 00:00:00 2001
From: "Yann E. MORIN" <yann.morin.1998@free.fr> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Date: Sat, 24 Jan 2015 22:07:19 +0100 Date: Sat, 24 Jan 2015 22:07:19 +0100
Subject: [PATCH 05/16] interface: remove faulty assert() to make weston happy Subject: [PATCH 05/18] interface: remove faulty assert() to make weston happy
at runtime at runtime
This was removed after a discussion on IRC with the weston guys This was removed after a discussion on IRC with the weston guys
@ -25,5 +25,5 @@ index eab146e..29e0dee 100755
} }
} else { } else {
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 0d678cd2042551cc4e26ec42fa3aba7c72d033b4 Mon Sep 17 00:00:00 2001 From 466f28ce302f68ac39be750f4b55285791f43ab1 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:10:47 -0800 Date: Sat, 6 Feb 2016 11:10:47 -0800
Subject: [PATCH 06/16] zero-out wl buffers in egl_surface_free Subject: [PATCH 06/18] zero-out wl buffers in egl_surface_free
origins from buildroot origins from buildroot
@ -29,5 +29,5 @@ index 42350bf..1f923d9 100644
#endif #endif
} }
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From ec2e00989bf614b259bc9a47b5035f8586e8a214 Mon Sep 17 00:00:00 2001 From b4a2967513f7d0f5f3caee8cf6cbc7a7a085ebac Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:11:41 -0800 Date: Sat, 6 Feb 2016 11:11:41 -0800
Subject: [PATCH 07/16] initialize front back wayland buffers Subject: [PATCH 07/18] initialize front back wayland buffers
origins from metrological wayland support origins from metrological wayland support
@ -30,5 +30,5 @@ index 1f923d9..9a9582c 100644
} }
#endif #endif
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 59ba66c2ea17f7a57124b9fd6c9bdff4325ff5c9 Mon Sep 17 00:00:00 2001 From 14c22987dfa9fec02794856cd15b2d64b4b81c32 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 11:09:18 -0800 Date: Sat, 6 Feb 2016 11:09:18 -0800
Subject: [PATCH 08/16] Remove RPC_FLUSH Subject: [PATCH 08/18] Remove RPC_FLUSH
Origins from buildroot Origins from buildroot
@ -23,5 +23,5 @@ index f9b7287..b04ffef 100644
} }
#endif #endif
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 264d82387ea1e607b2e5c899ff6bd46807c7b185 Mon Sep 17 00:00:00 2001 From e510be221276d06e630ab93452ecb712d3921790 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 6 Feb 2016 13:12:47 -0800 Date: Sat, 6 Feb 2016 13:12:47 -0800
Subject: [PATCH 09/16] fix cmake dependency race Subject: [PATCH 09/18] fix cmake dependency race
Fixes errors like Fixes errors like
@ -74,5 +74,5 @@ index f0bae30..8c44c58 100644
struct wl_resource *resource; struct wl_resource *resource;
struct wl_dispmanx *dispmanx; struct wl_dispmanx *dispmanx;
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 7c51c2d37bfadaabbbf205237d932b685b09d34f Mon Sep 17 00:00:00 2001 From 8e6cde08077eadfe563dc17c19995ebc48e30b97 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Tue, 29 Mar 2016 20:38:30 -0700 Date: Tue, 29 Mar 2016 20:38:30 -0700
Subject: [PATCH 10/16] Fix for framerate with nested composition Subject: [PATCH 10/18] Fix for framerate with nested composition
frame rate appears irregular and lower than expected when using nested composition. frame rate appears irregular and lower than expected when using nested composition.
@ -56,5 +56,5 @@ index 03fe67b..13a110c 100644
#ifdef ANDROID #ifdef ANDROID
CLIENT_UNLOCK(); CLIENT_UNLOCK();
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From fb3002f77a175633af31019c513754d2ef5f3ac0 Mon Sep 17 00:00:00 2001 From 9a97d60262999093d6ce8cb688279506c210d802 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:37:24 -0700 Date: Sat, 2 Apr 2016 10:37:24 -0700
Subject: [PATCH 11/16] build shared library for vchostif Subject: [PATCH 11/18] build shared library for vchostif
Fixes #149 Fixes #149
@ -24,5 +24,5 @@ index c415176..d0cca1a 100755
#add_library(bufman vc_vchi_bufman.c ) #add_library(bufman vc_vchi_bufman.c )
-- --
2.16.1 2.19.1

View File

@ -1,14 +1,14 @@
From df8b9633a45069bdd1bf256d974636ef11aa39cb Mon Sep 17 00:00:00 2001 From fedd7668152049c15ed58c7058e5f4a9c1fac7cb Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sat, 2 Apr 2016 10:54:59 -0700 Date: Sat, 2 Apr 2016 10:54:59 -0700
Subject: [PATCH 12/16] implement buffer wrapping interface for dispmanx Subject: [PATCH 12/18] implement buffer wrapping interface for dispmanx
Courtesy: Zan Dobersek Courtesy: Zan Dobersek
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- ---
interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++++++++++ interface/khronos/ext/egl_wayland.c | 42 +++++++++++++++++++++++++++++
interface/wayland/dispmanx.xml | 10 +++++++++ interface/wayland/dispmanx.xml | 10 +++++++
2 files changed, 52 insertions(+) 2 files changed, 52 insertions(+)
diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c diff --git a/interface/khronos/ext/egl_wayland.c b/interface/khronos/ext/egl_wayland.c
@ -88,5 +88,5 @@ index c18626d..11ed1ef 100644
</protocol> </protocol>
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 2e0e331da8556fecd841349cfae294baf0f14485 Mon Sep 17 00:00:00 2001 From 65f8bca55aead676cd06fc3210aeffef1f2158c6 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Thu, 19 Jan 2017 18:56:07 +0000 Date: Thu, 19 Jan 2017 18:56:07 +0000
Subject: [PATCH 13/16] Implement triple buffering for wayland Subject: [PATCH 13/18] Implement triple buffering for wayland
Change from double to triple buffering for wayland. Change from double to triple buffering for wayland.
This enables higher frame rates without tearing artifacts This enables higher frame rates without tearing artifacts
@ -86,5 +86,5 @@ index e328b77..58a3184 100644
back_wl_buffer back_wl_buffer
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 6e8562b45a2e14490da2ca258c9ce3d7bc8375f3 Mon Sep 17 00:00:00 2001 From dc1d07d835e1fe70c957a655d6fbb8cde65775af Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Wed, 10 May 2017 06:39:34 +0000 Date: Wed, 10 May 2017 06:39:34 +0000
Subject: [PATCH 14/16] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT Subject: [PATCH 14/18] GLES2/gl2ext.h: Define GL_R8_EXT and GL_RG8_EXT
weston code uses these defines weston code uses these defines
Upstream-Status: Pending Upstream-Status: Pending
@ -31,5 +31,5 @@ index 4eacf7f..b1acc9f 100644
#ifndef GL_EXT_texture_type_2_10_10_10_REV #ifndef GL_EXT_texture_type_2_10_10_10_REV
#define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368 #define GL_UNSIGNED_INT_2_10_10_10_REV_EXT 0x8368
-- --
2.18.0 2.19.1

View File

@ -1,7 +1,7 @@
From a2182e5437a6664cdb0f3330f6cbee873b6f975a Mon Sep 17 00:00:00 2001 From b5fa294c0d8fcb6dd5bfbfb96a0885dd9f3ae609 Mon Sep 17 00:00:00 2001
From: Andrea Galbusera <gizero@gmail.com> From: Andrea Galbusera <gizero@gmail.com>
Date: Fri, 14 Jul 2017 09:52:54 +0200 Date: Fri, 14 Jul 2017 09:52:54 +0200
Subject: [PATCH 15/16] EGL/glplatform.h: define EGL_CAST Subject: [PATCH 15/18] EGL/glplatform.h: define EGL_CAST
C++ / C typecast macros for special EGL handle values: used by libepoxy code 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. The definition comes from the updated version of this header in mesa.
@ -28,5 +28,5 @@ index 1f7c930..c39d425 100644
+ +
#endif /* __eglplatform_h */ #endif /* __eglplatform_h */
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,7 @@
From 6b4c4d469d435bfcfb464356b6ccc9421c6b8fd5 Mon Sep 17 00:00:00 2001 From bff03f92c0d8bae113e0c7234c719f8385808b38 Mon Sep 17 00:00:00 2001
From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com> From: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Date: Sat, 27 Jan 2018 12:28:31 -0500 Date: Sat, 27 Jan 2018 12:28:31 -0500
Subject: [PATCH 16/16] Allow multiple wayland compositor state data per Subject: [PATCH 16/18] Allow multiple wayland compositor state data per
process process
When eglBindWaylandDisplayWL is called store the wl_global When eglBindWaylandDisplayWL is called store the wl_global
@ -15,8 +15,8 @@ Signed-off-by: Jeff Wannamaker <jeff_wannamaker@cable.comcast.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
--- ---
interface/khronos/common/khrn_client.c | 2 +- interface/khronos/common/khrn_client.c | 2 +-
interface/khronos/common/khrn_client.h | 11 +++++++- interface/khronos/common/khrn_client.h | 11 +++++-
interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++++++++++---- interface/khronos/ext/egl_wayland.c | 50 ++++++++++++++++++++++----
3 files changed, 55 insertions(+), 8 deletions(-) 3 files changed, 55 insertions(+), 8 deletions(-)
diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c diff --git a/interface/khronos/common/khrn_client.c b/interface/khronos/common/khrn_client.c
@ -141,5 +141,5 @@ index 9ef89cd..abd5ab3 100644
CLIENT_UNLOCK(); CLIENT_UNLOCK();
-- --
2.16.1 2.19.1

View File

@ -1,7 +1,8 @@
From 8403fb3869f56ea7492fa6265bd6cd1dd5146e6e Mon Sep 17 00:00:00 2001 From 8efd81e96bdd3be68063a6fd32be4755225e93b2 Mon Sep 17 00:00:00 2001
From: Hugo Hromic <hhromic@gmail.com> From: Hugo Hromic <hhromic@gmail.com>
Date: Sun, 13 May 2018 10:49:04 +0100 Date: Sun, 13 May 2018 10:49:04 +0100
Subject: [PATCH] khronos: backport typedef for EGL_EXT_image_dma_buf_import Subject: [PATCH 17/18] khronos: backport typedef for
EGL_EXT_image_dma_buf_import
The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which The `gstreamer1.0-plugins-base` package version `1.14` uses `EGL_EXT_image_dma_buf_import`, which
expects the `EGLuint64KHR` typedef that is present in recent versions of Khronos. expects 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>
Submitted to userland in <https://github.com/raspberrypi/userland/pull/467> Submitted to userland in <https://github.com/raspberrypi/userland/pull/467>
Upstream-Status: Submitted Upstream-Status: Submitted
--- ---
interface/khronos/include/EGL/eglext.h | 4 ++++ interface/khronos/include/EGL/eglext.h | 4 ++++
1 file changed, 4 insertions(+) 1 file changed, 4 insertions(+)
diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h diff --git a/interface/khronos/include/EGL/eglext.h b/interface/khronos/include/EGL/eglext.h
index d7e5ba7..4ce762d 100755 index d7e5ba7..dcc90ce 100755
--- a/interface/khronos/include/EGL/eglext.h --- a/interface/khronos/include/EGL/eglext.h
+++ b/interface/khronos/include/EGL/eglext.h +++ b/interface/khronos/include/EGL/eglext.h
@@ -190,6 +190,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSy @@ -190,6 +190,10 @@ typedef EGLBoolean (EGLAPIENTRYP PFNEGLSIGNALSYNCKHRPROC) (EGLDisplay dpy, EGLSy
@ -33,3 +33,6 @@ index d7e5ba7..4ce762d 100755
#ifndef EGL_WL_bind_wayland_display #ifndef EGL_WL_bind_wayland_display
#define EGL_WL_bind_wayland_display 1 #define EGL_WL_bind_wayland_display 1
--
2.19.1

View File

@ -1,7 +1,7 @@
From ca43aae3e1879d2595cfee80032322f5fdfdea11 Mon Sep 17 00:00:00 2001 From 9cfea4761ba68776fd9bfac671b74c7174f99029 Mon Sep 17 00:00:00 2001
From: Khem Raj <raj.khem@gmail.com> From: Khem Raj <raj.khem@gmail.com>
Date: Sun, 15 Jul 2018 00:48:38 -0700 Date: Sun, 15 Jul 2018 00:48:38 -0700
Subject: [PATCH] Add EGL_IMG_context_priority related defines Subject: [PATCH 18/18] Add EGL_IMG_context_priority related defines
These defines are needed for compiling weston 4.x These defines are needed for compiling weston 4.x
taken from Khronos headers taken from Khronos headers
@ -31,5 +31,5 @@ index dcc90ce..6842bf9 100755
#define EGL_KHR_vg_parent_image 1 #define EGL_KHR_vg_parent_image 1
#define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */ #define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */
-- --
2.18.0 2.19.1

View File

@ -12,11 +12,11 @@ COMPATIBLE_MACHINE = "^rpi$"
SRCBRANCH = "master" SRCBRANCH = "master"
SRCFORK = "raspberrypi" SRCFORK = "raspberrypi"
SRCREV = "409dfcd90bae0a09b1b8c1f718a532728d26cde2" SRCREV = "d574b51a60a075baefe863670466ee24e6c4256e"
# Use the date of the above commit as the package version. Update this when # Use the date of the above commit as the package version. Update this when
# SRCREV is changed. # SRCREV is changed.
PV = "20180702" PV = "20181120"
SRC_URI = "\ SRC_URI = "\
git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \ git://github.com/${SRCFORK}/userland.git;protocol=git;branch=${SRCBRANCH} \