diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch')
-rw-r--r-- | meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch new file mode 100644 index 000000000..e9b880c26 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-benchmark/glmark2/files/0001-fix-dispmanx-build.patch @@ -0,0 +1,125 @@ +From 56e4959f0bc3e442c813d78e8ab6b3bf64b4ac66 Mon Sep 17 00:00:00 2001 +From: OpenEmbedded <oe.patch@oe> +Date: Wed, 2 Dec 2020 20:27:42 +0000 +Subject: [PATCH] fix dispmanx build + +For when the user is building "--with-flavors dispmanx-glesv2", fixes a bunch +of "redeclared as different kind of symbol" problems. + +This patch is almost entirely from: + https://github.com/glmark2/glmark2/commit/3b1a0f78d03ae126b78ee52a7c434809115e5993 + +Which was created by: Alexandros Frantzis <alexandros.frantzis@collabora.com> + +See: + https://github.com/glmark2/glmark2/issues/80 + +My contribution is to tweak the wscript to link all the required libraries. + +Upstream-status: submitted [https://github.com/glmark2/glmark2/pull/135] +Signed-off-by: Trevor Woerner <twoerner@gmail.com> +--- + src/native-state-dispmanx.cpp | 22 +++++++++++++++++----- + src/native-state-dispmanx.h | 7 +++---- + wscript | 2 +- + 3 files changed, 21 insertions(+), 10 deletions(-) + +diff --git a/src/native-state-dispmanx.cpp b/src/native-state-dispmanx.cpp +index 2117386..49f74e7 100644 +--- a/src/native-state-dispmanx.cpp ++++ b/src/native-state-dispmanx.cpp +@@ -23,13 +23,25 @@ + #include "native-state-dispmanx.h" + #include "log.h" + ++#include "EGL/egl.h" ++ + #include <cstring> + #include <csignal> + ++struct NativeStateDispmanx::Private ++{ ++ Private() ++ { ++ memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window)); ++ } ++ ++ EGL_DISPMANX_WINDOW_T egl_dispmanx_window; ++}; ++ + NativeStateDispmanx::NativeStateDispmanx() ++ : priv{std::make_unique<Private>()} + { + memset(&properties_, 0, sizeof(properties_)); +- memset(&egl_dispmanx_window, 0, sizeof(egl_dispmanx_window)); + } + + NativeStateDispmanx::~NativeStateDispmanx() +@@ -99,9 +111,9 @@ NativeStateDispmanx::create_window(WindowProperties const& properties) + 0 /*clamp*/, + DISPMANX_NO_ROTATE); + +- egl_dispmanx_window.element = dispmanx_element; +- egl_dispmanx_window.width = dst_rect.width; +- egl_dispmanx_window.height = dst_rect.height; ++ priv->egl_dispmanx_window.element = dispmanx_element; ++ priv->egl_dispmanx_window.width = dst_rect.width; ++ priv->egl_dispmanx_window.height = dst_rect.height; + vc_dispmanx_update_submit_sync(dispmanx_update); + + return true; +@@ -111,7 +123,7 @@ void* + NativeStateDispmanx::window(WindowProperties &properties) + { + properties = properties_; +- return &egl_dispmanx_window; ++ return &priv->egl_dispmanx_window; + } + + void +diff --git a/src/native-state-dispmanx.h b/src/native-state-dispmanx.h +index a6ed3d4..794b2d3 100644 +--- a/src/native-state-dispmanx.h ++++ b/src/native-state-dispmanx.h +@@ -24,10 +24,8 @@ + #define GLMARK2_NATIVE_STATE_DISPMANX_H_ + + #include <vector> ++#include <memory> + #include "bcm_host.h" +-#include "GLES/gl.h" +-#include "EGL/egl.h" +-#include "EGL/eglext.h" + + #include "native-state.h" + +@@ -46,11 +44,12 @@ public: + void flip(); + + private: ++ struct Private; + DISPMANX_DISPLAY_HANDLE_T dispmanx_display; + DISPMANX_UPDATE_HANDLE_T dispmanx_update; + DISPMANX_ELEMENT_HANDLE_T dispmanx_element; +- EGL_DISPMANX_WINDOW_T egl_dispmanx_window; + WindowProperties properties_; ++ std::unique_ptr<Private> priv; + }; + + #endif /* GLMARK2_NATIVE_STATE_DISPMANX_H_ */ +diff --git a/wscript b/wscript +index e09fa78..6c3869c 100644 +--- a/wscript ++++ b/wscript +@@ -205,7 +205,7 @@ def configure_linux(ctx): + + ctx.check_cxx(lib = 'brcmGLESv2', uselib_store = 'glesv2', libpath='/opt/vc/lib') + ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2'], uselib_store = 'egl', libpath='/opt/vc/lib') +- ctx.check_cxx(lib = ['bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib') ++ ctx.check_cxx(lib = ['brcmEGL', 'brcmGLESv2', 'vchostif', 'bcm_host', 'vcos', 'vchiq_arm'], uselib_store = 'dispmanx', libpath='/opt/vc/lib') + + # Check optional packages + opt_pkgs = [('x11', 'x11', None, list_contains(ctx.options.flavors, 'x11')), +-- +2.28.0.497.g54e85e7af1 + |