added my Recipes

This commit is contained in:
2024-07-11 14:16:35 +02:00
parent 38bc4f53ac
commit 09b621d929
7118 changed files with 525762 additions and 3 deletions

View File

@@ -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

View File

@@ -0,0 +1,32 @@
From 110ef8357ebaf24bc3995e631ec809a2f84c3b87 Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Thu, 3 Dec 2020 07:16:58 -0500
Subject: [PATCH] run dispmanx fullscreen
The dispmanx flavour can only run fullscreen, therefore set the size to
fullscreen when glmark2-es2-dispmanx is run.
Upstream-Status: Submitted [https://github.com/glmark2/glmark2/pull/135]
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
src/main.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/main.cpp b/src/main.cpp
index d1077fe..d717cd4 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -202,6 +202,11 @@ main(int argc, char *argv[])
Options::size = std::pair<int,int>(800, 600);
}
+#if GLMARK2_USE_DISPMANX
+ /* dispmanx can only run fullscreen */
+ Options::size = std::pair<int,int>(-1, -1);
+#endif
+
// Create the canvas
#if GLMARK2_USE_EGL
GLStateEGL gl_state;
--
2.25.1

View File

@@ -0,0 +1,63 @@
SUMMARY = "OpenGL (ES) 2.0 benchmark"
DESCRIPTION = "glmark2 is a benchmark for OpenGL (ES) 2.0. \
It uses only the subset of the OpenGL 2.0 API that is compatible with OpenGL ES 2.0."
HOMEPAGE = "https://github.com/glmark2/glmark2"
BUGTRACKER = "https://github.com/glmark2/glmark2/issues"
LICENSE = "GPL-3.0-or-later & SGI-1"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504 \
file://COPYING.SGI;beginline=5;md5=269cdab4af6748677acce51d9aa13552"
DEPENDS = "libpng jpeg udev"
DEPENDS:append = " ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland-native wayland-protocols', '', d)}"
PV = "2023.01"
SRC_URI = " \
git://github.com/glmark2/glmark2.git;protocol=https;branch=master \
file://0001-fix-dispmanx-build.patch \
file://0002-run-dispmanx-fullscreen.patch \
"
SRCREV = "42e3d8fe3aa88743ef90348138f643f7b04a9237"
S = "${WORKDIR}/git"
inherit meson pkgconfig features_check
ANY_OF_DISTRO_FEATURES = "opengl dispmanx"
PACKAGECONFIG ?= "${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'x11-gles2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'wayland opengl', 'wayland-gles2', '', d)} \
${@bb.utils.contains('DISTRO_FEATURES', 'dispmanx', 'dispmanx', '', d)} \
drm-gles2 \
"
PACKAGECONFIG[x11-gl] = ",,virtual/libgl virtual/libx11"
PACKAGECONFIG[x11-gles2] = ",,virtual/libgles2 virtual/libx11"
PACKAGECONFIG[drm-gl] = ",,virtual/libgl libdrm virtual/libgbm"
PACKAGECONFIG[drm-gles2] = ",,virtual/libgles2 libdrm virtual/libgbm"
PACKAGECONFIG[wayland-gl] = ",,virtual/libgl wayland"
PACKAGECONFIG[wayland-gles2] = ",,virtual/libgles2 wayland"
PACKAGECONFIG[dispmanx] = ",,virtual/libgles2 virtual/libx11"
python __anonymous() {
packageconfig = (d.getVar("PACKAGECONFIG") or "").split()
flavors = []
if "x11-gles2" in packageconfig:
flavors.append("x11-glesv2")
if "x11-gl" in packageconfig:
flavors.append("x11-gl")
if "wayland-gles2" in packageconfig:
flavors.append("wayland-glesv2")
if "wayland-gl" in packageconfig:
flavors.append("wayland-gl")
if "drm-gles2" in packageconfig:
flavors.append("drm-glesv2")
if "drm-gl" in packageconfig:
flavors.append("drm-gl")
if "dispmanx" in packageconfig:
flavors = ["dispmanx-glesv2"]
if flavors:
d.appendVar("EXTRA_OEMESON", " -Dflavors=%s" % ",".join(flavors))
}