Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved) - Complete sources/ directory with all BitBake recipes - Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl) - Full traceability for Softwarefreigabeantrag - GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4 - License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
|
||||
@@ -0,0 +1,73 @@
|
||||
SUMMARY = "Userspace interface to the kernel DRM services"
|
||||
DESCRIPTION = "The runtime library for accessing the kernel DRM services. DRM \
|
||||
stands for \"Direct Rendering Manager\", which is the kernel portion of the \
|
||||
\"Direct Rendering Infrastructure\" (DRI). DRI is required for many hardware \
|
||||
accelerated OpenGL drivers."
|
||||
HOMEPAGE = "http://dri.freedesktop.org"
|
||||
SECTION = "x11/base"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=9eb1f4831351ab42d762c40b3ebb7add \
|
||||
file://xf86drm.c;beginline=9;endline=32;md5=c8a3b961af7667c530816761e949dc71"
|
||||
PROVIDES = "drm"
|
||||
DEPENDS = "libpthread-stubs"
|
||||
|
||||
SRC_URI = "${IMX_LIBDRM_SRC};branch=${SRCBRANCH}"
|
||||
IMX_LIBDRM_SRC ?= "git://github.com/nxp-imx/libdrm-imx.git;protocol=https"
|
||||
SRCBRANCH = "libdrm-imx-2.4.116"
|
||||
SRCREV = "2f1797674f94572ae8c365c8cbffb0263337ed57"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
|
||||
|
||||
inherit meson pkgconfig manpages
|
||||
|
||||
PACKAGECONFIG ??= "intel radeon amdgpu nouveau vmwgfx omap freedreno vc4 etnaviv tests install-test-programs"
|
||||
PACKAGECONFIG[intel] = "-Dintel=enabled,-Dintel=disabled,libpciaccess"
|
||||
PACKAGECONFIG[radeon] = "-Dradeon=enabled,-Dradeon=disabled"
|
||||
PACKAGECONFIG[amdgpu] = "-Damdgpu=enabled,-Damdgpu=disabled"
|
||||
PACKAGECONFIG[nouveau] = "-Dnouveau=enabled,-Dnouveau=disabled"
|
||||
PACKAGECONFIG[vmwgfx] = "-Dvmwgfx=enabled,-Dvmwgfx=disabled"
|
||||
PACKAGECONFIG[omap] = "-Domap=enabled,-Domap=disabled"
|
||||
PACKAGECONFIG[exynos] = "-Dexynos=enabled,-Dexynos=disabled"
|
||||
PACKAGECONFIG[freedreno] = "-Dfreedreno=enabled,-Dfreedreno=disabled"
|
||||
PACKAGECONFIG[tegra] = "-Dtegra=enabled,-Dtegra=disabled"
|
||||
PACKAGECONFIG[vc4] = "-Dvc4=enabled,-Dvc4=disabled"
|
||||
PACKAGECONFIG[etnaviv] = "-Detnaviv=enabled,-Detnaviv=disabled"
|
||||
PACKAGECONFIG[freedreno-kgsl] = "-Dfreedreno-kgsl=true,-Dfreedreno-kgsl=false"
|
||||
PACKAGECONFIG[valgrind] = "-Dvalgrind=enabled,-Dvalgrind=disabled,valgrind"
|
||||
PACKAGECONFIG[install-test-programs] = "-Dinstall-test-programs=true,-Dinstall-test-programs=false"
|
||||
PACKAGECONFIG[cairo-tests] = "-Dcairo-tests=enabled,-Dcairo-tests=disabled"
|
||||
PACKAGECONFIG[tests] = "-Dtests=true,-Dtests=false"
|
||||
PACKAGECONFIG[udev] = "-Dudev=true,-Dudev=false,udev"
|
||||
PACKAGECONFIG[manpages] = "-Dman-pages=enabled,-Dman-pages=disabled,libxslt-native xmlto-native python3-docutils-native"
|
||||
|
||||
ALLOW_EMPTY:${PN}-drivers = "1"
|
||||
PACKAGES =+ "${PN}-tests ${PN}-drivers ${PN}-radeon ${PN}-nouveau ${PN}-omap \
|
||||
${PN}-intel ${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
|
||||
${PN}-etnaviv"
|
||||
|
||||
RRECOMMENDS:${PN}-drivers = "${PN}-radeon ${PN}-nouveau ${PN}-omap ${PN}-intel \
|
||||
${PN}-exynos ${PN}-freedreno ${PN}-amdgpu \
|
||||
${PN}-etnaviv"
|
||||
|
||||
FILES:${PN}-tests = "${bindir}/*"
|
||||
FILES:${PN}-radeon = "${libdir}/libdrm_radeon.so.*"
|
||||
FILES:${PN}-nouveau = "${libdir}/libdrm_nouveau.so.*"
|
||||
FILES:${PN}-omap = "${libdir}/libdrm_omap.so.*"
|
||||
FILES:${PN}-intel = "${libdir}/libdrm_intel.so.*"
|
||||
FILES:${PN}-exynos = "${libdir}/libdrm_exynos.so.*"
|
||||
FILES:${PN}-freedreno = "${libdir}/libdrm_freedreno.so.*"
|
||||
FILES:${PN}-amdgpu = "${libdir}/libdrm_amdgpu.so.* ${datadir}/${PN}/amdgpu.ids"
|
||||
FILES:${PN}-etnaviv = "${libdir}/libdrm_etnaviv.so.*"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
PACKAGES:prepend:imxgpu = "${PN}-vivante "
|
||||
RRECOMMENDS:${PN}-drivers:append:imxgpu = " ${PN}-vivante"
|
||||
FILES:${PN}-vivante = "${libdir}/libdrm_vivante.so.*"
|
||||
PACKAGECONFIG:append:imxgpu = " vivante"
|
||||
PACKAGECONFIG[vivante] = "-Dvivante=true,-Dvivante=false"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
@@ -0,0 +1 @@
|
||||
PACKAGECONFIG:imxgpu = "egl-gles2"
|
||||
@@ -0,0 +1 @@
|
||||
DEPENDS:append:imxgpu2d = " virtual/egl"
|
||||
@@ -0,0 +1,5 @@
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
|
||||
@@ -0,0 +1,3 @@
|
||||
# FIXME: i.MX6SL cannot use mesa for Graphics and it lacks GL support,
|
||||
# so for now we skip it.
|
||||
CORE_IMAGE_BASE_INSTALL:remove:mx6sl-nxp-bsp = "clutter-1.0-examples"
|
||||
@@ -0,0 +1,47 @@
|
||||
# Copyright (C) 2016 Freescale Semiconductor
|
||||
# Copyright 2017-2024 NXP
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
DESCRIPTION = "G2D library using i.MX DPU"
|
||||
LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ca53281cc0caa7e320d4945a896fb837"
|
||||
|
||||
DEPENDS = "libdrm ${LIBGAL_IMX}"
|
||||
LIBGAL_IMX = ""
|
||||
LIBGAL_IMX:imxviv = "libgal-imx"
|
||||
|
||||
PROVIDES += "virtual/libg2d"
|
||||
|
||||
SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;fsl-eula=true;name=${IMX_SRC_URI_NAME}"
|
||||
IMX_BIN_NAME = "${BPN}-${IMX_SRC_URI_NAME}-${PV}-${IMX_SRCREV_ABBREV}"
|
||||
|
||||
IMX_SRCREV_ABBREV = "e2dce80"
|
||||
IMX_SRC_URI_NAME = "v1"
|
||||
SRC_URI[v1.sha256sum] = "d43b5d4b8e6015a029c6e8854982aa5d57de25bc0e3ff8209d4aab7679c2d240"
|
||||
|
||||
IMX_SRCREV_ABBREV:imxmali = "e2dce80"
|
||||
IMX_SRC_URI_NAME:imxmali = "v2"
|
||||
SRC_URI[v2.sha256sum] = "d9845356e0c9c959b1d57ebb3ee668ba6aa2b864999263a8c33cb053b83584e6"
|
||||
|
||||
S = "${WORKDIR}/${IMX_BIN_NAME}"
|
||||
|
||||
inherit fsl-eula-unpack
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
install -d ${D}${includedir}
|
||||
cp -d ${S}/g2d/usr/lib/*.so* ${D}${libdir}
|
||||
cp -Pr ${S}/g2d/usr/include/* ${D}${includedir}
|
||||
}
|
||||
|
||||
INSANE_SKIP:append:libc-musl = " file-rdeps"
|
||||
RDEPENDS:${PN}:append:libc-musl = " gcompat"
|
||||
|
||||
# The packaged binaries have been stripped of debug info, so disable
|
||||
# operations accordingly.
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_SYSROOT_STRIP = "1"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(imxdpu)"
|
||||
@@ -0,0 +1,76 @@
|
||||
SUMMARY = "i.MX G2D Samples"
|
||||
DESCRIPTION = "Set of sample applications for i.MX G2D"
|
||||
LICENSE = "BSD-3-Clause"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=0858ec9c7a80c4a2cf16e4f825a2cc91"
|
||||
|
||||
DEPENDS = "cairo"
|
||||
|
||||
PV = "2.2+git${SRCPV}"
|
||||
|
||||
SRC_URI = "${GPU_G2D_SAMPLES_SRC};branch=${SRCBRANCH}"
|
||||
GPU_G2D_SAMPLES_SRC ?= "git://github.com/nxp-imx/g2d-samples.git;protocol=https"
|
||||
SRCBRANCH = "imx_2.2"
|
||||
SRCREV = "431f311a41ca052902ea0d6445e74defe0a4df2d"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit pkgconfig
|
||||
|
||||
PACKAGECONFIG ??= "${PACKAGECONFIG_IMPLEMENTATION}"
|
||||
PACKAGECONFIG_IMPLEMENTATION = ""
|
||||
PACKAGECONFIG_IMPLEMENTATION:imxgpu2d:imxdpu = "dpu"
|
||||
PACKAGECONFIG_IMPLEMENTATION:mx95-nxp-bsp = "dpu95"
|
||||
PACKAGECONFIG_IMPLEMENTATION:imxgpu2d = "gpu-drm"
|
||||
PACKAGECONFIG_IMPLEMENTATION:imxgpu2d:imxfbdev = "gpu-fbdev"
|
||||
PACKAGECONFIG_IMPLEMENTATION:mx93-nxp-bsp = "pxp"
|
||||
|
||||
PACKAGECONFIG[dpu] = " \
|
||||
BUILD_IMPLEMENTATION=dpu, \
|
||||
, \
|
||||
imx-dpu-g2d wayland-native wayland wayland-protocols, \
|
||||
, \
|
||||
, \
|
||||
dpu95 gpu-drm gpu-fbdev pxp"
|
||||
PACKAGECONFIG[dpu95] = " \
|
||||
BUILD_IMPLEMENTATION=dpu95, \
|
||||
, \
|
||||
imx-dpu-g2d wayland-native wayland wayland-protocols, \
|
||||
, \
|
||||
, \
|
||||
dpu gpu-drm gpu-fbdev pxp"
|
||||
PACKAGECONFIG[gpu-drm] = " \
|
||||
BUILD_IMPLEMENTATION=gpu-drm, \
|
||||
, \
|
||||
imx-gpu-g2d wayland-native wayland wayland-protocols, \
|
||||
, \
|
||||
, \
|
||||
dpu dpu95 gpu-fbdev pxp"
|
||||
PACKAGECONFIG[gpu-fbdev] = " \
|
||||
BUILD_IMPLEMENTATION=gpu-fbdev, \
|
||||
, \
|
||||
imx-gpu-g2d, \
|
||||
, \
|
||||
, \
|
||||
dpu dpu95 gpu-drm pxp"
|
||||
PACKAGECONFIG[pxp] = " \
|
||||
BUILD_IMPLEMENTATION=pxp, \
|
||||
, \
|
||||
imx-pxp-g2d wayland-native wayland wayland-protocols, \
|
||||
, \
|
||||
, \
|
||||
dpu dpu95 gpu-drm gpu-fbdev"
|
||||
|
||||
EXTRA_OEMAKE += " \
|
||||
SDKTARGETSYSROOT=${STAGING_DIR_HOST} \
|
||||
${PACKAGECONFIG_CONFARGS} \
|
||||
"
|
||||
|
||||
do_install() {
|
||||
oe_runmake install DESTDIR=${D}
|
||||
}
|
||||
|
||||
FILES:${PN} += "/opt"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
|
||||
COMPATIBLE_MACHINE = "(imxgpu2d|mx93-nxp-bsp|mx95-nxp-bsp)"
|
||||
@@ -0,0 +1,42 @@
|
||||
# Copyright (C) 2016 Freescale Semiconductor
|
||||
# Copyright 2017-2022 NXP
|
||||
# Copyright 2018 (C) O.S. Systems Software LTDA.
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
DESCRIPTION = "G2D library using i.MX GPU"
|
||||
LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
|
||||
DEPENDS = "libgal-imx"
|
||||
PROVIDES = "virtual/libg2d"
|
||||
|
||||
SRC_URI = "${FSL_MIRROR}/${IMX_BIN_NAME}.bin;name=${TARGET_ARCH};fsl-eula=true"
|
||||
IMX_BIN_NAME = "${BP}-${TARGET_ARCH}-${IMX_SRCREV_ABBREV}"
|
||||
IMX_SRCREV_ABBREV = "4402ac2"
|
||||
SRC_URI[aarch64.sha256sum] = "f82208abc84453c94fdc737ed6267cd689e68c23af9e4154bee6ce0651c075b1"
|
||||
SRC_URI[arm.sha256sum] = "bdfe4d48da0239d264b766ad46b89982f78af04ca4d5051aaf7615473b4de86a"
|
||||
|
||||
S = "${WORKDIR}/${IMX_BIN_NAME}"
|
||||
|
||||
inherit fsl-eula-unpack
|
||||
|
||||
SOC_INSTALL_DIR = "SOC_INSTALL_DIR_NOT_SET"
|
||||
SOC_INSTALL_DIR:mx8mm-nxp-bsp = "mx8mm"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
install -d ${D}${includedir}
|
||||
cp -d ${S}/g2d/usr/lib/*.so* ${D}${libdir}
|
||||
if [ -d ${S}/g2d/usr/lib/${SOC_INSTALL_DIR} ]; then
|
||||
cp -d ${S}/g2d/usr/lib/${SOC_INSTALL_DIR}/*.so* ${D}${libdir}
|
||||
fi
|
||||
cp -Pr ${S}/g2d/usr/include/* ${D}${includedir}
|
||||
}
|
||||
|
||||
# The packaged binaries have been stripped of debug info, so disable
|
||||
# operations accordingly.
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_SYSROOT_STRIP = "1"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(imxgpu2d)"
|
||||
@@ -0,0 +1,29 @@
|
||||
# Copyright (C) 2016 Freescale Semiconductor
|
||||
# Copyright 2017-2024 NXP
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
DESCRIPTION = "G2D library using i.MX PXP"
|
||||
LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=ca53281cc0caa7e320d4945a896fb837"
|
||||
|
||||
PROVIDES += "virtual/libg2d"
|
||||
|
||||
PV = "2.2+git${SRCPV}"
|
||||
|
||||
SRC_URI = "${IMX_PXP_G2D_SRC};branch=${SRCBRANCH}"
|
||||
IMX_PXP_G2D_SRC ?= "git://github.com/nxp-imx/imx-g2d-pxp.git;protocol=https"
|
||||
SRCBRANCH = "imx_2.2"
|
||||
SRCREV = "5e633f895a84cec809ca98d77c879af3591b3b20"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit use-imx-headers
|
||||
|
||||
EXTRA_OEMAKE = "PLATFORM=IMX93 INCLUDE='-I${STAGING_INCDIR_IMX}' DEST_DIR=${D}"
|
||||
|
||||
do_install() {
|
||||
oe_runmake install
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(mx93-nxp-bsp)"
|
||||
@@ -0,0 +1,30 @@
|
||||
From d11884c88eac803c174f759414d0162154450b6a Mon Sep 17 00:00:00 2001
|
||||
From: Andrey Zhizhikin <andrey.z@gmail.com>
|
||||
Date: Thu, 2 Sep 2021 09:43:33 +0000
|
||||
Subject: [PATCH] dlsym: workaround glibc 2.34 build failure
|
||||
|
||||
As suggested in [1], upstream component does not have a solution for the
|
||||
issue, and therefore for glibc version >= 2.34 dlsym wrappers should be
|
||||
skipped.
|
||||
|
||||
Link: [1]: https://github.com/apitrace/apitrace/issues/756
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Andrey Zhizhikin <andrey.z@gmail.com>
|
||||
---
|
||||
wrappers/dlsym.cpp | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: git/wrappers/dlsym.cpp
|
||||
===================================================================
|
||||
--- git.orig/wrappers/dlsym.cpp
|
||||
+++ git/wrappers/dlsym.cpp
|
||||
@@ -34,7 +34,7 @@
|
||||
#include "os.hpp"
|
||||
|
||||
|
||||
-#if defined(__GLIBC__) && !defined(__UCLIBC__)
|
||||
+#if defined(__GLIBC__) && !defined(__UCLIBC__) && !(__GLIBC__ == 2 && __GLIBC_MINOR__ >= 34)
|
||||
|
||||
|
||||
#include <dlfcn.h>
|
||||
@@ -0,0 +1,51 @@
|
||||
# Copyright 2018 (C) O.S. Systems Software LTDA.
|
||||
SUMMARY = "Samples for OpenGL ES"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=aeb969185a143c3c25130bc2c3ef9a50"
|
||||
DEPENDS = "zlib libpng procps"
|
||||
|
||||
SRC_URI = "git://github.com/nxp-imx/apitrace-imx.git;protocol=https;branch=imx_10.0 \
|
||||
file://0001-dlsym-workaround-glibc-2.34-build-failure.patch \
|
||||
"
|
||||
SRCREV = "522cb2981289b7ba20d6dd4b4bf75097e079815b"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
inherit cmake pkgconfig perlnative python3native
|
||||
|
||||
PACKAGECONFIG ??= " \
|
||||
egl \
|
||||
${PACKAGECONFIG_BACKEND} \
|
||||
${PACKAGECONFIG_GPU2D} \
|
||||
"
|
||||
PACKAGECONFIG_BACKEND = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'waffle', \
|
||||
bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
|
||||
'', d), d)} \
|
||||
"
|
||||
PACKAGECONFIG_GPU2D = ""
|
||||
PACKAGECONFIG_GPU2D:imxviv:imxgpu2d = "vivante"
|
||||
|
||||
PACKAGECONFIG[egl] = "-DENABLE_EGL=ON,-DENABLE_EGL=OFF,virtual/egl"
|
||||
PACKAGECONFIG[gui] = "-DENABLE_GUI=ON,-DENABLE_GUI=OFF"
|
||||
PACKAGECONFIG[multiarch] = "-DENABLE_MULTIARCH=ON,-DENABLE_MULTIARCH=OFF"
|
||||
PACKAGECONFIG[waffle] = "-DENABLE_WAFFLE=ON,-DENABLE_WAFFLE=OFF,waffle"
|
||||
PACKAGECONFIG[x11] = "-DENABLE_X11=ON,-DENABLE_X11=OFF"
|
||||
PACKAGECONFIG[vivante] = "-DENABLE_VIVANTE=ON,-DENABLE_VIVANTE=OFF,virtual/libg2d"
|
||||
|
||||
SOLIBS = ".so"
|
||||
FILES_SOLIBSDEV = ""
|
||||
FILES:${PN} += " \
|
||||
${libdir}/apitrace/scripts/* \
|
||||
${libdir}/apitrace/wrappers/* \
|
||||
"
|
||||
EXTRA_OECMAKE += "\
|
||||
-DENABLE_GUI=OFF \
|
||||
-DENABLE_STATIC_LIBGCC=OFF \
|
||||
-DENABLE_STATIC_LIBSTDCXX=OFF \
|
||||
-DPython3_ROOT_DIR=/usr/bin/python3-native \
|
||||
"
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(imxgpu)"
|
||||
SECURITY_CFLAGS:toolchain-clang = ""
|
||||
|
||||
@@ -0,0 +1,419 @@
|
||||
# Copyright (C) 2012-2016 Freescale Semiconductor
|
||||
# Copyright (C) 2012-2018 O.S. Systems Software LTDA.
|
||||
# Copyright 2017-2024 NXP
|
||||
# Released under the MIT license (see COPYING.MIT for the terms)
|
||||
|
||||
DESCRIPTION = "GPU driver and apps for i.MX"
|
||||
SECTION = "libs"
|
||||
LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=ea25d099982d035af85d193c88a1b479"
|
||||
|
||||
DEPENDS += " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
|
||||
bb.utils.contains('DISTRO_FEATURES', 'x11', 'virtual/libx11 libxdamage libxext libxfixes', \
|
||||
'', d), d)} \
|
||||
"
|
||||
DEPENDS += " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'libxcb libxshmfence libxxf86vm', \
|
||||
'', d)} \
|
||||
"
|
||||
DEPENDS:append:imxdrm = " libdrm wayland"
|
||||
DEPENDS:append:mx8-nxp-bsp = " patchelf-native"
|
||||
|
||||
DEPENDS:append:libc-musl = " gcompat"
|
||||
|
||||
PROVIDES += " \
|
||||
imx-gpu-viv \
|
||||
libgal-imx \
|
||||
virtual/egl \
|
||||
virtual/libopenvg \
|
||||
${EXTRA_PROVIDES} \
|
||||
"
|
||||
EXTRA_PROVIDES = " \
|
||||
${PROVIDES_OPENCL} \
|
||||
${PROVIDES_OPENVX} \
|
||||
"
|
||||
EXTRA_PROVIDES:append:imxgpu3d = " \
|
||||
virtual/libgles1 \
|
||||
virtual/libgles2 \
|
||||
virtual/libgles3 \
|
||||
"
|
||||
EXTRA_PROVIDES:append:mx8-nxp-bsp = " \
|
||||
virtual/libgbm \
|
||||
"
|
||||
|
||||
PROVIDES_OPENCL = " \
|
||||
opencl-headers \
|
||||
opencl-clhpp \
|
||||
opencl-icd-loader \
|
||||
virtual/opencl-icd \
|
||||
"
|
||||
PROVIDES_OPENCL:mx7-nxp-bsp = ""
|
||||
PROVIDES_OPENCL:mx8mm-nxp-bsp = ""
|
||||
|
||||
# Note: OpenVX is fully supported on i.MX 8 QuadMax and 8 QuadPlus.
|
||||
# However, only limited support is provided on other i.MX 8 machines
|
||||
# as needed for i.MX machine learning packages.
|
||||
PROVIDES_OPENVX = ""
|
||||
PROVIDES_OPENVX:mx8-nxp-bsp = "virtual/libopenvx"
|
||||
PROVIDES_OPENVX:mx8mm-nxp-bsp = ""
|
||||
|
||||
RPROVIDES:${PN}:imxgpu3d += "imx-gpu-viv"
|
||||
|
||||
RPROVIDES_OPENCL = "opencl-icd-loader-dev"
|
||||
RPROVIDES_OPENCL:mx7-nxp-bsp = ""
|
||||
RPROVIDES_OPENCL:mx8mm-nxp-bsp = ""
|
||||
|
||||
RPROVIDES:${PN}:append:imx-nxp-bsp = " ${RPROVIDES_OPENCL}"
|
||||
|
||||
PE = "1"
|
||||
|
||||
inherit fsl-eula-unpack
|
||||
|
||||
FILESEXTRAPATHS:append := "${THISDIR}/imx-gpu-viv:"
|
||||
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true \
|
||||
file://imx_icd.json"
|
||||
|
||||
S = "${WORKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}"
|
||||
|
||||
PACKAGECONFIG ?= ""
|
||||
|
||||
# Enables valgrind annotations for libgal-imx
|
||||
PACKAGECONFIG[valgrind] = ""
|
||||
|
||||
# Note : If you add a package here, to prevent a naming conflict see the python_anonymous() futher below
|
||||
PACKAGES =+ " \
|
||||
libgles1-imx libgles1-imx-dev \
|
||||
libgles2-imx libgles2-imx-dev \
|
||||
libgles3-imx-dev \
|
||||
libglslc-imx libglslc-imx-dev \
|
||||
${PACKAGES_OPENCL} \
|
||||
libopenvg-imx libopenvg-imx-dev \
|
||||
libvdk-imx libvdk-imx-dev \
|
||||
libegl-imx libegl-imx-dev \
|
||||
libgal-imx libgal-imx-dev \
|
||||
libvsc-imx \
|
||||
${PACKAGES_GBM} \
|
||||
imx-gpu-viv-tools \
|
||||
imx-gpu-viv-demos \
|
||||
${PACKAGES_VULKAN} \
|
||||
${PACKAGES_OPENVX} \
|
||||
libnn-imx \
|
||||
libspirv-imx \
|
||||
"
|
||||
|
||||
PACKAGES_GBM = ""
|
||||
PACKAGES_GBM:mx8-nxp-bsp = "libgbm-imx libgbm-imx-dev"
|
||||
|
||||
PACKAGES_OPENCL = "libclc-imx libopencl-imx libopencl-imx-dev"
|
||||
PACKAGES_OPENCL:mx7-nxp-bsp = ""
|
||||
PACKAGES_OPENCL:mx8mm-nxp-bsp = ""
|
||||
|
||||
PACKAGES_OPENVX = \
|
||||
"${@bb.utils.contains("PROVIDES_OPENVX", "virtual/libopenvx", \
|
||||
"libopenvx-imx libopenvx-imx-dev", "", d)}"
|
||||
|
||||
PACKAGES_VULKAN = ""
|
||||
PACKAGES_VULKAN:imxvulkan = "libvulkan-imx libvulkan-imx-dev"
|
||||
PACKAGES_VULKAN:mx8mm-nxp-bsp = "libvulkan-imx libvulkan-imx-dev"
|
||||
|
||||
python __anonymous () {
|
||||
has_vivante_kernel_driver_support = (d.getVar('MACHINE_HAS_VIVANTE_KERNEL_DRIVER_SUPPORT') or '0')
|
||||
if has_vivante_kernel_driver_support != '1':
|
||||
raise bb.parse.SkipPackage('The kernel of machine needs to have Vivante kernel driver support for this recipe to be used.')
|
||||
}
|
||||
|
||||
BACKEND = "${@bb.utils.contains("DISTRO_FEATURES", "wayland", "wayland", "fb", d)}"
|
||||
|
||||
# The packaged binaries have been stripped of debug info, so disable
|
||||
# operations accordingly.
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_SYSROOT_STRIP = "1"
|
||||
|
||||
# FIXME: The provided binary doesn't provide soname. If in future BSP
|
||||
# release the libraries are fixed, we can drop this hack.
|
||||
REALSOLIBS := "${SOLIBS}"
|
||||
SOLIBS = "${SOLIBSDEV}"
|
||||
|
||||
python __anonymous() {
|
||||
# FIXME: All binaries lack GNU_HASH in elf binary but as we don't have
|
||||
# the source we cannot fix it. Disable the insane check for now.
|
||||
packages = d.getVar('PACKAGES').split()
|
||||
for p in packages:
|
||||
d.appendVar("INSANE_SKIP:%s" % p, " ldflags")
|
||||
|
||||
# For the packages that make up the OpenGL interfaces, inject variables so that
|
||||
# they don't get Debian-renamed (which would remove the -imx suffix).
|
||||
for p in (("libegl", "libegl1"),
|
||||
("libgles1", "libglesv1-cm1"), ("libgles2", "libglesv2-2"),
|
||||
("libgles3",), ("libgbm",)):
|
||||
fullp = p[0] + "-imx"
|
||||
pkgs = "".join(' %s' % i for i in p)
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
|
||||
# For -dev, the first element is both the Debian and original name
|
||||
fullp += "-dev"
|
||||
pkgs = p[0] + "-dev"
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
}
|
||||
|
||||
IS_MX6SL = "0"
|
||||
IS_MX6SL:mx6sl-nxp-bsp = "1"
|
||||
|
||||
IS_MX8 = "0"
|
||||
IS_MX8:mx8-nxp-bsp = "1"
|
||||
|
||||
PACKAGE_FP_TYPE = "hardfp"
|
||||
|
||||
HAS_GBM = "false"
|
||||
HAS_GBM:mx8-nxp-bsp = "true"
|
||||
|
||||
IMX_SOC = "IMX_SOC_NOT_SET"
|
||||
IMX_SOC:mx8qm-nxp-bsp = "mx8qm"
|
||||
IMX_SOC:mx8qxp-nxp-bsp = "mx8qxp"
|
||||
IMX_SOC:mx8dx-nxp-bsp = "mx8qxp"
|
||||
IMX_SOC:mx8mp-nxp-bsp = "mx8mp"
|
||||
IMX_SOC:mx8mq-nxp-bsp = "mx8mq"
|
||||
IMX_SOC:mx8mn-nxp-bsp = "mx8mn"
|
||||
IMX_SOC:mx8ulp-nxp-bsp = "mx8ulp"
|
||||
|
||||
LIBVULKAN_API_VERSION = "1.3.204"
|
||||
|
||||
do_install () {
|
||||
install -d ${D}${libdir}
|
||||
install -d ${D}${includedir}
|
||||
install -d ${D}${bindir}
|
||||
|
||||
cp -P ${S}/gpu-core/usr/lib/*.so* ${D}${libdir}
|
||||
cp -r ${S}/gpu-core/usr/include/* ${D}${includedir}
|
||||
cp -r ${S}/gpu-demos/opt ${D}
|
||||
cp -r ${S}/gpu-tools/gmem-info/usr/bin/* ${D}${bindir}
|
||||
|
||||
# Use vulkan header from vulkan-headers recipe to support vkmark
|
||||
rm -rf ${D}${includedir}/vulkan/
|
||||
|
||||
# Install SOC-specific drivers
|
||||
if [ -d ${S}/gpu-core/usr/lib/${IMX_SOC} ]; then
|
||||
cp -r ${S}/gpu-core/usr/lib/${IMX_SOC}/* ${D}${libdir}
|
||||
fi
|
||||
|
||||
install -d ${D}${libdir}/pkgconfig
|
||||
if ${HAS_GBM}; then
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gbm.pc ${D}${libdir}/pkgconfig/gbm.pc
|
||||
fi
|
||||
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv1_cm.pc ${D}${libdir}/pkgconfig/glesv1_cm.pc
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/glesv2.pc ${D}${libdir}/pkgconfig/glesv2.pc
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/vg.pc ${D}${libdir}/pkgconfig/vg.pc
|
||||
|
||||
# Install backend-specific drivers
|
||||
if [ "${BACKEND}" = "wayland" ]; then
|
||||
# Wayland backend
|
||||
if ! ${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'true', 'false', d)}; then
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/gl.pc ${D}${libdir}/pkgconfig/gl.pc
|
||||
fi
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_wayland.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||
cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
|
||||
elif [ "${IS_MX8}" != "1" ]; then
|
||||
# Framebuffer backend for i.MX 6 and 7
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl_linuxfb.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||
cp -r ${S}/gpu-core/usr/lib/fb/* ${D}${libdir}
|
||||
else
|
||||
# Framebuffer backend for i.MX 8 and beyond
|
||||
install -m 0644 ${S}/gpu-core/usr/lib/pkgconfig/egl.pc ${D}${libdir}/pkgconfig/egl.pc
|
||||
cp -r ${S}/gpu-core/usr/lib/wayland/* ${D}${libdir}
|
||||
set -f
|
||||
for f in ${FILES:libvdk-imx} ${FILES:libvdk-imx-dev}; do
|
||||
set +f
|
||||
rm -rf ${D}/$f
|
||||
done
|
||||
rm -rf \
|
||||
${D}/opt/viv_samples/es20 \
|
||||
${D}/opt/viv_samples/tiger \
|
||||
${D}/opt/viv_samples/vdk
|
||||
fi
|
||||
if [ "${BACKEND}" = "wayland" ] && [ "${IS_MX8}" != "1" ]; then
|
||||
# Special case for libVDK on Wayland backend, deliver fb library as well.
|
||||
cp ${S}/gpu-core/usr/lib/fb/libVDK.so.1.2.0 ${D}${libdir}/libVDK-fb.so.1.2.0
|
||||
fi
|
||||
|
||||
if [ -z "${PACKAGES_OPENCL}" ]; then
|
||||
set -f
|
||||
for f in ${FILES:libopencl-imx} ${FILES:libopencl-imx-dev} ${FILES:libclc-imx}; do
|
||||
set +f
|
||||
rm -rf ${D}$f
|
||||
done
|
||||
rm -rf ${D}/opt/viv_samples/cl11
|
||||
else
|
||||
# Install Vendor ICDs for OpenCL's installable client driver loader (ICDs Loader)
|
||||
install -d ${D}${sysconfdir}/OpenCL/vendors/
|
||||
install -m 0644 ${S}/gpu-core/etc/Vivante.icd ${D}${sysconfdir}/OpenCL/vendors/Vivante.icd
|
||||
|
||||
if [ "${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}" = "" ]; then
|
||||
rm -f ${D}${includedir}/CL/cl_viv_vx_ext.h
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -z "${PACKAGES_OPENVX}" ]; then
|
||||
set -f
|
||||
for f in ${FILES:libopenvx-imx} ${FILES:libopenvx-imx-dev}; do
|
||||
set +f
|
||||
rm -rf ${D}$f
|
||||
done
|
||||
fi
|
||||
|
||||
if [ "${IS_MX8}" = "1" ]; then
|
||||
if [ -z "${PACKAGES_VULKAN}" ]; then
|
||||
set -f
|
||||
for f in ${FILES:libvulkan-imx} ${FILES:libvulkan-imx-dev}; do
|
||||
set +f
|
||||
rm -rf ${D}$f
|
||||
done
|
||||
else
|
||||
install -Dm 0644 ${WORKDIR}/imx_icd.json ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
|
||||
sed -i "s,%libdir%,${libdir}," ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
|
||||
sed -i "s,%api_version%,${LIBVULKAN_API_VERSION}," ${D}${sysconfdir}/vulkan/icd.d/imx_icd.json
|
||||
fi
|
||||
fi
|
||||
|
||||
# FIXME: MX6SL does not have 3D support; hack it for now
|
||||
if [ "${IS_MX6SL}" = "1" ]; then
|
||||
rm -rf ${D}${libdir}/libCLC* ${D}${includedir}/CL \
|
||||
\
|
||||
${D}${libdir}/libGLES* ${D}${libdir}/pkgconfig/gles*.pc \
|
||||
\
|
||||
${D}${libdir}/libOpenCL* ${D}${includedir}/CL \
|
||||
\
|
||||
${D}${libdir}/libOpenVG.3d.so \
|
||||
\
|
||||
${D}${libdir}/libVivanteOpenCL.so \
|
||||
\
|
||||
${D}/opt/viv_samples/vdk \
|
||||
${D}/opt/viv_samples/es20 ${D}/opt/viv_samples/cl11
|
||||
|
||||
ln -sf libOpenVG.2d.so ${D}${libdir}/libOpenVG.so
|
||||
fi
|
||||
|
||||
find ${D}${libdir} -type f -exec chmod 644 {} \;
|
||||
find ${D}${includedir} -type f -exec chmod 644 {} \;
|
||||
|
||||
chown -R root:root "${D}"
|
||||
}
|
||||
|
||||
do_install:append:libc-musl() {
|
||||
# libs
|
||||
for f in `find ${D}${libdir} -name '*.so*' -type f`
|
||||
do
|
||||
patchelf --add-needed libgcompat.so.0 $f
|
||||
done
|
||||
# binaries
|
||||
for f in `find ${D}/opt ${D}${bindir} -name '*' -type f -executable`
|
||||
do
|
||||
# prune scripts
|
||||
if `patchelf --print-interpreter $f 2>&1 > /dev/null`
|
||||
then
|
||||
patchelf --set-interpreter ${root_prefix}`patchelf --print-interpreter $f` $f
|
||||
patchelf --add-needed libgcompat.so.0 $f
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
|
||||
FILES:libclc-imx = "${libdir}/libCLC${SOLIBS}"
|
||||
|
||||
FILES:libegl-imx = "${libdir}/libEGL${REALSOLIBS} ${libdir}/libEGL${SOLIBS} "
|
||||
FILES:libegl-imx-dev = "${includedir}/EGL ${includedir}/KHR ${libdir}/pkgconfig/egl.pc"
|
||||
# libEGL.so is used by some demo apps from Freescale
|
||||
INSANE_SKIP:libegl-imx += "dev-so"
|
||||
|
||||
FILES:libgal-imx = "${libdir}/libGAL${SOLIBS} ${libdir}/libGAL_egl${SOLIBS}"
|
||||
FILES:libgal-imx-dev = "${includedir}/HAL"
|
||||
RDEPENDS:libgal-imx += "${@bb.utils.contains('PACKAGECONFIG', 'valgrind', 'valgrind', '', d)}"
|
||||
RPROVIDES:libgal-imx += "libgal-imx"
|
||||
RRECOMMENDS:libgal-imx += "kernel-module-imx-gpu-viv"
|
||||
INSANE_SKIP:libgal-imx += "build-deps"
|
||||
|
||||
FILES:libvsc-imx = "${libdir}/libVSC${SOLIBS}"
|
||||
|
||||
FILES:libgbm-imx = "${libdir}/libgbm*${REALSOLIBS} ${libdir}/libgbm${SOLIBS} ${libdir}/libgbm_viv${SOLIBS}"
|
||||
FILES:libgbm-imx-dev = "${libdir}/pkgconfig/gbm.pc ${includedir}/gbm.h"
|
||||
RDEPENDS:libgbm-imx:append = " libdrm"
|
||||
INSANE_SKIP:libgbm-imx += "dev-so"
|
||||
|
||||
FILES:libvulkan-imx = "\
|
||||
${libdir}/libvulkan_VSI${REALSOLIBS} \
|
||||
${sysconfdir}/vulkan"
|
||||
FILES:libvulkan-imx-dev = "${includedir}/vulkan ${libdir}/libvulkan_VSI${SOLIBSDEV}"
|
||||
|
||||
FILES:libspirv-imx = " \
|
||||
${libdir}/libSPIRV_viv${SOLIBS} \
|
||||
"
|
||||
|
||||
FILES:libopenvx-imx = " \
|
||||
${libdir}/libOpenVX${REALSOLIBS} \
|
||||
${libdir}/libOpenVXC${SOLIBS} \
|
||||
${libdir}/libOpenVXU${SOLIBS} \
|
||||
${libdir}/libOvx*${SOLIBS} \
|
||||
${libdir}/libArchModelSw${SOLIBS} \
|
||||
"
|
||||
FILES:libopenvx-imx-dev = "${includedir}/VX ${libdir}/libOpenVX${SOLIBSDEV}"
|
||||
RDEPENDS:libopenvx-imx = "libnn-imx ${OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES}"
|
||||
OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES = ""
|
||||
OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8qm-nxp-bsp = "libclc-imx libopencl-imx-dev"
|
||||
OPENCL_VX_INTRINSIC_EXTENSION_PACKAGES:mx8mp-nxp-bsp = "libclc-imx libopencl-imx-dev"
|
||||
INSANE_SKIP:libopenvx-imx += "dev-deps"
|
||||
|
||||
FILES:libgles1-imx = "${libdir}/libGLESv1*${REALSOLIBS} ${libdir}/libGLESv1*${SOLIBS} ${libdir}/libGLES_*${REALSOLIBS} ${libdir}/libGLES_*${SOLIBS}"
|
||||
FILES:libgles1-imx-dev = "${includedir}/GLES ${libdir}/pkgconfig/glesv1_cm.pc"
|
||||
RPROVIDES:libgles1-imx = "libgles-imx"
|
||||
RPROVIDES:libgles1-imx-dev = "libgles-imx-dev"
|
||||
# libEGL does dlopen of libGLESv1.so
|
||||
INSANE_SKIP:libgles1-imx += "dev-so"
|
||||
|
||||
FILES:libgles2-imx = "${libdir}/libGLESv2${REALSOLIBS} ${libdir}/libGLESv2${SOLIBS}"
|
||||
FILES:libgles2-imx-dev = "${includedir}/GLES2 ${libdir}/pkgconfig/glesv2.pc"
|
||||
RDEPENDS:libgles2-imx = "libglslc-imx"
|
||||
# libEGL does dlopen of libGLESv2.so
|
||||
INSANE_SKIP:libgles2-imx += "dev-so"
|
||||
|
||||
FILES:libgles3-imx-dev = "${includedir}/GLES3"
|
||||
# as long as there is no libgles3: ship libgles3-dev along with
|
||||
# libgles2-dev - otherwise GLES3 headers have to be added manually
|
||||
RDEPENDS:libgles2-imx-dev += "libgles3-imx-dev"
|
||||
|
||||
FILES:libglslc-imx = "${libdir}/libGLSLC${SOLIBS}"
|
||||
|
||||
FILES:libopencl-imx = "${libdir}/libOpenCL${REALSOLIBS} \
|
||||
${libdir}/libVivanteOpenCL${SOLIBS} \
|
||||
${libdir}/libLLVM_viv${SOLIBS} \
|
||||
${sysconfdir}/OpenCL/vendors/Vivante.icd"
|
||||
FILES:libopencl-imx-dev = "${includedir}/CL ${libdir}/libOpenCL${SOLIBSDEV}"
|
||||
RDEPENDS:libopencl-imx= "libclc-imx"
|
||||
|
||||
FILES:libopenvg-imx = "${libdir}/libOpenVG*${REALSOLIBS} ${libdir}/libOpenVG*${SOLIBS}"
|
||||
FILES:libopenvg-imx-dev = "${includedir}/VG ${libdir}/pkgconfig/vg.pc"
|
||||
# libEGL does dlopen of libOpenVG.so
|
||||
INSANE_SKIP:libopenvg-imx += "dev-so"
|
||||
|
||||
FILES:libvdk-imx = "${libdir}/libVDK*${REALSOLIBS}"
|
||||
FILES:libvdk-imx-dev = "${includedir}/*vdk*.h ${libdir}/libVDK${SOLIBSDEV}"
|
||||
|
||||
FILES:imx-gpu-viv-tools = "${bindir}/gmem_info"
|
||||
|
||||
FILES:imx-gpu-viv-demos = "/opt"
|
||||
INSANE_SKIP:imx-gpu-viv-demos += "rpaths dev-deps"
|
||||
|
||||
FILES:libnn-imx = "${libdir}/libNN*${SOLIBS}"
|
||||
|
||||
# It will use gcompat at runtime therefore checking for these at compile time wont be useful as
|
||||
# they dont match musl/gcompat but it should run fine
|
||||
INSANE_SKIP:append:libc-musl = " file-rdeps"
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"file_format_version": "1.0.0",
|
||||
"ICD": {
|
||||
"library_path": "%libdir%/libvulkan_VSI.so.1",
|
||||
"api_version": "%api_version%"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
require imx-gpu-viv-6.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
|
||||
|
||||
IMX_SRCREV_ABBREV = "4402ac2"
|
||||
|
||||
SRC_URI[sha256sum] = "06617e2569144edbe5dd585be18c6b89bdf2da6ab56e04149c4c076e73f7884d"
|
||||
|
||||
COMPATIBLE_MACHINE = "(mx6q-nxp-bsp|mx6dl-nxp-bsp|mx6sx-nxp-bsp|mx6sl-nxp-bsp|mx7ulp-nxp-bsp)"
|
||||
@@ -0,0 +1,9 @@
|
||||
require imx-gpu-viv-6.inc
|
||||
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
|
||||
|
||||
IMX_SRCREV_ABBREV = "4402ac2"
|
||||
|
||||
SRC_URI[sha256sum] = "869c45f15fc3c93f9dd179410b9ee0e65e152c0e59b595a37ac1d55409e2c51d"
|
||||
|
||||
COMPATIBLE_MACHINE = "(mx8-nxp-bsp)"
|
||||
@@ -0,0 +1,5 @@
|
||||
# Append EGL_CFLAGS to CFLAGS
|
||||
CFLAGS:append:imxgpu = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \
|
||||
"
|
||||
@@ -0,0 +1,11 @@
|
||||
PACKAGECONFIG:append:imx-nxp-bsp = " ${PACKAGECONFIG_LIBDECOR}"
|
||||
PACKAGECONFIG_LIBDECOR ??= "libdecor"
|
||||
|
||||
# what vivante driver does libsdl2 mean? Anyway it fails with missing functions as
|
||||
# VIVANTE_Create VIVANTE_GLES_GetProcAddress VIVANTE_GLES_UnloadLibrary ...
|
||||
EXTRA_OECMAKE:append:imxgpu = " -DSDL_VIVANTE=OFF"
|
||||
|
||||
CFLAGS:append:imxgpu = " -DLINUX \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', '', '-DEGL_API_FB', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '-DWL_EGL_PLATFORM', '', d)} \
|
||||
"
|
||||
@@ -0,0 +1 @@
|
||||
PACKAGECONFIG:remove:imxgpu = "glx"
|
||||
107
sources/meta-freescale/recipes-graphics/mali/mali-imx.inc
Normal file
107
sources/meta-freescale/recipes-graphics/mali/mali-imx.inc
Normal file
@@ -0,0 +1,107 @@
|
||||
SUMMARY = "Graphics libraries and driver for i.MX Mali GPU"
|
||||
SECTION = "libs"
|
||||
DEPENDS = " \
|
||||
libdrm \
|
||||
vulkan-loader \
|
||||
wayland \
|
||||
wayland-protocols"
|
||||
PROVIDES = " \
|
||||
virtual/egl \
|
||||
virtual/libgbm \
|
||||
virtual/libgles1 \
|
||||
virtual/libgles2 \
|
||||
virtual/libgles3"
|
||||
|
||||
# The packaged binaries have been stripped of debug info, so disable
|
||||
# operations accordingly.
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
INHIBIT_PACKAGE_STRIP = "1"
|
||||
INHIBIT_SYSROOT_STRIP = "1"
|
||||
|
||||
PACKAGES =+ " \
|
||||
${PN}-libegl ${PN}-libegl-dev \
|
||||
${PN}-libgbm ${PN}-libgbm-dev \
|
||||
${PN}-libgles1 ${PN}-libgles1-dev \
|
||||
${PN}-libgles2 ${PN}-libgles2-dev \
|
||||
${PN}-libgles3 ${PN}-libgles3-dev \
|
||||
${PN}-libvulkan \
|
||||
${PN}-opencl-icd ${PN}-opencl-icd-dev"
|
||||
|
||||
# Since libmali.so is loaded by dlopen, include it in the main package
|
||||
FILES:${PN} += " \
|
||||
${libdir}/libmali.so \
|
||||
${nonarch_base_libdir}/firmware"
|
||||
FILES_SOLIBSDEV = ""
|
||||
INSANE_SKIP:${PN} = "dev-so"
|
||||
FILES:${PN}-libegl = " \
|
||||
${libdir}/libEGL${SOLIBS}"
|
||||
FILES:${PN}-libgbm = " \
|
||||
${libdir}/libgbm${SOLIBS}"
|
||||
FILES:${PN}-libgles1 = " \
|
||||
${libdir}/libGLESv1_CM${SOLIBS}"
|
||||
FILES:${PN}-libgles2 = " \
|
||||
${libdir}/libGLESv2${SOLIBS}"
|
||||
FILES:${PN}-opencl-icd = " \
|
||||
${sysconfdir}/OpenCL"
|
||||
FILES:${PN}-libvulkan = " \
|
||||
${sysconfdir}/vulkan"
|
||||
|
||||
FILES:${PN}-dev = " \
|
||||
${bindir}/malisc"
|
||||
FILES:${PN}-libegl-dev = " \
|
||||
${includedir}/EGL \
|
||||
${includedir}/KHR \
|
||||
${libdir}/libEGL${SOLIBSDEV} \
|
||||
${libdir}/pkgconfig/egl.pc"
|
||||
FILES:${PN}-libgbm-dev = " \
|
||||
${includedir}/gbm.h \
|
||||
${libdir}/libgbm${SOLIBSDEV} \
|
||||
${libdir}/pkgconfig/gbm.pc"
|
||||
|
||||
# Consolidate GLES dev packages
|
||||
PACKAGES =+ "${PN}-libgles-dev"
|
||||
FILES:${PN}-libgles-dev = " \
|
||||
${includedir}/GLES* \
|
||||
${libdir}/libGLES*${SOLIBSDEV} \
|
||||
${libdir}/pkgconfig/gles*.pc"
|
||||
DEBIAN_NOAUTONAME:${PN}-libgles-dev = "1"
|
||||
RREPLACES:${PN}-libgles-dev = "libgles-dev"
|
||||
RPROVIDES:${PN}-libgles-dev = "libgles-dev"
|
||||
RCONFLICTS:${PN}-libgles-dev = "libgles-dev"
|
||||
ALLOW_EMPTY:${PN}-libgles1-dev = "1"
|
||||
ALLOW_EMPTY:${PN}-libgles2-dev = "1"
|
||||
ALLOW_EMPTY:${PN}-libgles3-dev = "1"
|
||||
RDEPENDS:${PN}-libgles1-dev = "${PN}-libgles-dev"
|
||||
RDEPENDS:${PN}-libgles2-dev = "${PN}-libgles-dev"
|
||||
RDEPENDS:${PN}-libgles3-dev = "${PN}-libgles-dev"
|
||||
|
||||
FILES:${PN}-opencl-icd-dev = " \
|
||||
${bindir}/mali_clcc"
|
||||
|
||||
python __anonymous() {
|
||||
|
||||
# Avoid Debian-renaming
|
||||
for p in (("libegl", "libegl1" ),
|
||||
("libgbm", "libgbm1" ),
|
||||
("libgles1", "libglesv1-cm1"),
|
||||
("libgles2", "libglesv2-2" ),
|
||||
("libgles3", )):
|
||||
fullp = "${PN}-" + p[0]
|
||||
pkgs = "".join(' %s' % i for i in p)
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
# libmali.so is loaded with dlopen, so an explicit runtime dependency is necessary
|
||||
d.appendVar("RDEPENDS:" + fullp, "${PN}")
|
||||
|
||||
# For -dev, the first element is both the Debian and original name
|
||||
fullp += "-dev"
|
||||
pkgs = p[0] + "-dev"
|
||||
d.setVar("DEBIAN_NOAUTONAME:" + fullp, "1")
|
||||
d.appendVar("RREPLACES:" + fullp, pkgs)
|
||||
d.appendVar("RPROVIDES:" + fullp, pkgs)
|
||||
d.appendVar("RCONFLICTS:" + fullp, pkgs)
|
||||
}
|
||||
|
||||
COMPATIBLE_MACHINE = "(mx95-nxp-bsp)"
|
||||
@@ -0,0 +1,25 @@
|
||||
require mali-imx.inc
|
||||
|
||||
LICENSE = "Proprietary"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=bc649096ad3928ec06a8713b8d787eac"
|
||||
|
||||
SRC_URI = "${FSL_MIRROR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}.bin;fsl-eula=true"
|
||||
SRC_URI[sha256sum] = "83a5be75384a92f0305516785ffbefe72683eba5a4ebf03ec7c1b7d7cdc76064"
|
||||
IMX_SRCREV_ABBREV = "696f9a6"
|
||||
|
||||
S = "${WORKDIR}/${BPN}-${PV}-${IMX_SRCREV_ABBREV}"
|
||||
|
||||
inherit fsl-eula-unpack
|
||||
|
||||
do_install () {
|
||||
install -d ${D}
|
||||
cp -r ${S}/etc ${S}/usr ${D}
|
||||
|
||||
# Move firmware to nonarch_base_libdir
|
||||
if [ "${base_libdir}" != "${nonarch_base_libdir}" ]; then
|
||||
install -d ${D}${nonarch_base_libdir}
|
||||
mv ${D}${base_libdir}/firmware ${D}${nonarch_base_libdir}
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
@@ -0,0 +1 @@
|
||||
REQUIRED_DISTRO_FEATURES:remove:imxgpu = "x11"
|
||||
@@ -0,0 +1,30 @@
|
||||
From cad7eb0f0487aea64c4460bd6ad95b5c9537d35a Mon Sep 17 00:00:00 2001
|
||||
From: Jiyu Yang <jiyu.yang@nxp.com>
|
||||
Date: Thu, 11 Apr 2024 16:30:50 +0800
|
||||
Subject: [PATCH] egl: clear backgrounds black
|
||||
|
||||
if 50% translucency used, the application render result can vary
|
||||
depending on the format chosen, such as R10G10B10A2 or RGB24.
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/mesa/demos/-/merge_requests/174]
|
||||
Signed-off-by: Jiyu Yang <jiyu.yang@nxp.com>
|
||||
---
|
||||
src/egl/opengles2/es2gears.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/egl/opengles2/es2gears.c b/src/egl/opengles2/es2gears.c
|
||||
index db67f3a9..4e81afe7 100644
|
||||
--- a/src/egl/opengles2/es2gears.c
|
||||
+++ b/src/egl/opengles2/es2gears.c
|
||||
@@ -515,7 +515,7 @@ gears_draw(void)
|
||||
GLfloat transform[16];
|
||||
identity(transform);
|
||||
|
||||
- glClearColor(0.0, 0.0, 0.0, 0.0);
|
||||
+ glClearColor(0.0, 0.0, 0.0, 1.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
/* Translate and rotate the view */
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,355 @@
|
||||
From 757649a766f90e745f24df1d191caeef15c71399 Mon Sep 17 00:00:00 2001
|
||||
From: Otavio Salvador <otavio@ossystems.com.br>
|
||||
Date: Tue, 4 Jun 2013 09:28:51 -0300
|
||||
Subject: [PATCH] Replace glWindowPos2iARB calls with glWindowPos2i
|
||||
|
||||
Vivante libGL does not provide the glWindowPos2iARB symbol, but
|
||||
glWindowPos2i. Use this instead.
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
|
||||
Reported-by: Jeremy Stashluk <jstashluk@dekaresearch.com>
|
||||
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
|
||||
---
|
||||
src/demos/copypix.c | 4 ++--
|
||||
src/demos/engine.c | 2 +-
|
||||
src/demos/fogcoord.c | 4 ++--
|
||||
src/glsl/shadow_sampler.c | 2 +-
|
||||
src/tests/auxbuffer.c | 2 +-
|
||||
src/tests/copypixrate.c | 2 +-
|
||||
src/tests/drawbuffers.c | 2 +-
|
||||
src/tests/drawbuffers2.c | 2 +-
|
||||
src/tests/fbotest1.c | 2 +-
|
||||
src/tests/fbotest2.c | 4 ++--
|
||||
src/tests/fbotest3.c | 2 +-
|
||||
src/tests/readrate.c | 10 +++++-----
|
||||
src/tests/viewmemory.c | 2 +-
|
||||
src/trivial/clear-fbo-scissor.c | 2 +-
|
||||
src/trivial/clear-fbo-tex.c | 2 +-
|
||||
src/trivial/clear-fbo.c | 2 +-
|
||||
src/trivial/readpixels.c | 2 +-
|
||||
src/trivial/tri-fbo.c | 2 +-
|
||||
src/xdemos/glxsnoop.c | 2 +-
|
||||
src/xdemos/wincopy.c | 4 ++--
|
||||
20 files changed, 28 insertions(+), 28 deletions(-)
|
||||
|
||||
diff --git a/src/demos/copypix.c b/src/demos/copypix.c
|
||||
index 286c5a9..041b567 100644
|
||||
--- a/src/demos/copypix.c
|
||||
+++ b/src/demos/copypix.c
|
||||
@@ -54,7 +54,7 @@ static void Display( void )
|
||||
glClear( GL_COLOR_BUFFER_BIT );
|
||||
|
||||
/* draw original image */
|
||||
- glWindowPos2iARB(dx, dy);
|
||||
+ glWindowPos2i(dx, dy);
|
||||
glDrawPixels(ImgWidth, ImgHeight, ImgFormat, GL_UNSIGNED_BYTE, Image);
|
||||
|
||||
if (Scissor)
|
||||
@@ -71,7 +71,7 @@ static void Display( void )
|
||||
|
||||
/* draw copy */
|
||||
glPixelZoom(Xzoom, Yzoom);
|
||||
- glWindowPos2iARB(Xpos, Ypos);
|
||||
+ glWindowPos2i(Xpos, Ypos);
|
||||
glCopyPixels(dx, dy, ImgWidth, ImgHeight, GL_COLOR);
|
||||
glPixelZoom(1, 1);
|
||||
|
||||
diff --git a/src/demos/engine.c b/src/demos/engine.c
|
||||
index 928fcbb..beace4c 100644
|
||||
--- a/src/demos/engine.c
|
||||
+++ b/src/demos/engine.c
|
||||
@@ -971,7 +971,7 @@ Draw(void)
|
||||
glDisable(GL_LIGHTING);
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glColor3f(1, 1 , 1);
|
||||
- glWindowPos2iARB(10, 10);
|
||||
+ glWindowPos2i(10, 10);
|
||||
PrintString(s);
|
||||
if (lit)
|
||||
glEnable(GL_LIGHTING);
|
||||
diff --git a/src/demos/fogcoord.c b/src/demos/fogcoord.c
|
||||
index 567eec0..e833009 100644
|
||||
--- a/src/demos/fogcoord.c
|
||||
+++ b/src/demos/fogcoord.c
|
||||
@@ -68,14 +68,14 @@ PrintInfo(void)
|
||||
|
||||
sprintf(s, "Mode(m): %s Start(s/S): %g End(e/E): %g Density(d/D): %g",
|
||||
ModeStr, fogStart, fogEnd, fogDensity);
|
||||
- glWindowPos2iARB(5, 20);
|
||||
+ glWindowPos2i(5, 20);
|
||||
PrintString(s);
|
||||
|
||||
sprintf(s, "Arrays(a): %s glFogCoord(c): %s EyeZ(z/z): %g",
|
||||
(Arrays ? "Yes" : "No"),
|
||||
(fogCoord ? "Yes" : "No"),
|
||||
camz);
|
||||
- glWindowPos2iARB(5, 5);
|
||||
+ glWindowPos2i(5, 5);
|
||||
PrintString(s);
|
||||
}
|
||||
|
||||
diff --git a/src/glsl/shadow_sampler.c b/src/glsl/shadow_sampler.c
|
||||
index b830030..eb82d8b 100644
|
||||
--- a/src/glsl/shadow_sampler.c
|
||||
+++ b/src/glsl/shadow_sampler.c
|
||||
@@ -85,7 +85,7 @@ Redisplay(void)
|
||||
glPopMatrix();
|
||||
|
||||
glUseProgram(0);
|
||||
- glWindowPos2iARB(80, 20);
|
||||
+ glWindowPos2i(80, 20);
|
||||
PrintString("white black white black");
|
||||
|
||||
{
|
||||
diff --git a/src/tests/auxbuffer.c b/src/tests/auxbuffer.c
|
||||
index 5fa399a..0cd5f47 100644
|
||||
--- a/src/tests/auxbuffer.c
|
||||
+++ b/src/tests/auxbuffer.c
|
||||
@@ -419,7 +419,7 @@ event_loop(Display *dpy, Window win)
|
||||
/* Copy aux buffer image to back color buffer */
|
||||
glReadBuffer(GL_AUX0);
|
||||
glDrawBuffer(GL_BACK);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glCopyPixels(0, 0, WinWidth, WinHeight, GL_COLOR);
|
||||
glEnable(GL_DEPTH_TEST);
|
||||
diff --git a/src/tests/copypixrate.c b/src/tests/copypixrate.c
|
||||
index 2f64e0a..df1f9b0 100644
|
||||
--- a/src/tests/copypixrate.c
|
||||
+++ b/src/tests/copypixrate.c
|
||||
@@ -91,7 +91,7 @@ BlitOne(void)
|
||||
else
|
||||
#endif
|
||||
{
|
||||
- glWindowPos2iARB(x, y);
|
||||
+ glWindowPos2i(x, y);
|
||||
glCopyPixels(0, 0, ImgWidth, ImgHeight, GL_COLOR);
|
||||
}
|
||||
}
|
||||
diff --git a/src/tests/drawbuffers.c b/src/tests/drawbuffers.c
|
||||
index fa2f8a7..cd5033f 100644
|
||||
--- a/src/tests/drawbuffers.c
|
||||
+++ b/src/tests/drawbuffers.c
|
||||
@@ -88,7 +88,7 @@ Display(void)
|
||||
glUseProgram(0);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/tests/drawbuffers2.c b/src/tests/drawbuffers2.c
|
||||
index 5bcf0b2..84d444b 100644
|
||||
--- a/src/tests/drawbuffers2.c
|
||||
+++ b/src/tests/drawbuffers2.c
|
||||
@@ -112,7 +112,7 @@ Display(void)
|
||||
glUseProgram(0);
|
||||
glDisable(GL_DEPTH_TEST);
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/tests/fbotest1.c b/src/tests/fbotest1.c
|
||||
index 161903c..5930a6d 100644
|
||||
--- a/src/tests/fbotest1.c
|
||||
+++ b/src/tests/fbotest1.c
|
||||
@@ -61,7 +61,7 @@ Display( void )
|
||||
|
||||
/* draw to window */
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/tests/fbotest2.c b/src/tests/fbotest2.c
|
||||
index 6ef7f12..11c867e 100644
|
||||
--- a/src/tests/fbotest2.c
|
||||
+++ b/src/tests/fbotest2.c
|
||||
@@ -72,7 +72,7 @@ Display( void )
|
||||
|
||||
glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
|
||||
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glCopyPixels(0, 0, Width, Height, GL_COLOR);
|
||||
}
|
||||
else if (blitPix) {
|
||||
@@ -95,7 +95,7 @@ Display( void )
|
||||
/* draw to window */
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/tests/fbotest3.c b/src/tests/fbotest3.c
|
||||
index 19f684d..e6d7710 100644
|
||||
--- a/src/tests/fbotest3.c
|
||||
+++ b/src/tests/fbotest3.c
|
||||
@@ -79,7 +79,7 @@ Display( void )
|
||||
/* draw to window */
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
glDisable(GL_DEPTH_TEST); /* in case window has depth buffer */
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/tests/readrate.c b/src/tests/readrate.c
|
||||
index 3859cf4..81eb8a3 100644
|
||||
--- a/src/tests/readrate.c
|
||||
+++ b/src/tests/readrate.c
|
||||
@@ -85,7 +85,7 @@ MeasureFormat(struct format_type *fmt, GLint width, GLint height, GLuint pbo)
|
||||
glEnd();
|
||||
|
||||
#if DRAW
|
||||
- glWindowPos2iARB(0,0);
|
||||
+ glWindowPos2i(0,0);
|
||||
glDrawPixels(width, height,
|
||||
fmt->Format, fmt->Type, Buffer);
|
||||
glFinish();
|
||||
@@ -137,21 +137,21 @@ Draw(void)
|
||||
|
||||
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
|
||||
|
||||
- glWindowPos2iARB(10, y);
|
||||
+ glWindowPos2i(10, y);
|
||||
sprintf(str, "ReadPixels size: %d x %d", width, height);
|
||||
PrintString(str);
|
||||
y -= 14;
|
||||
|
||||
- glWindowPos2iARB(10, y);
|
||||
+ glWindowPos2i(10, y);
|
||||
PrintString("Press up/down/left/right to change image size.");
|
||||
y -= 14;
|
||||
|
||||
- glWindowPos2iARB(10, y);
|
||||
+ glWindowPos2i(10, y);
|
||||
PrintString("Press 'b' to run benchmark test.");
|
||||
y -= 14;
|
||||
|
||||
if (Benchmark) {
|
||||
- glWindowPos2iARB(10, y);
|
||||
+ glWindowPos2i(10, y);
|
||||
PrintString("Testing...");
|
||||
}
|
||||
|
||||
diff --git a/src/tests/viewmemory.c b/src/tests/viewmemory.c
|
||||
index 16044b9..3584c33 100644
|
||||
--- a/src/tests/viewmemory.c
|
||||
+++ b/src/tests/viewmemory.c
|
||||
@@ -95,7 +95,7 @@ Draw(void)
|
||||
|
||||
glDisable(GL_TEXTURE_2D);
|
||||
glColor3f(0, 1, 0);
|
||||
- glWindowPos2iARB(10, 10);
|
||||
+ glWindowPos2i(10, 10);
|
||||
PrintString(s);
|
||||
|
||||
glutSwapBuffers();
|
||||
diff --git a/src/trivial/clear-fbo-scissor.c b/src/trivial/clear-fbo-scissor.c
|
||||
index a30935c..5c15200 100644
|
||||
--- a/src/trivial/clear-fbo-scissor.c
|
||||
+++ b/src/trivial/clear-fbo-scissor.c
|
||||
@@ -182,7 +182,7 @@ Draw(void)
|
||||
|
||||
/* draw to window */
|
||||
glBindFramebufferEXT(GL_FRAMEBUFFER_EXT, 0);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/trivial/clear-fbo-tex.c b/src/trivial/clear-fbo-tex.c
|
||||
index de84f98..f0fbdf6 100644
|
||||
--- a/src/trivial/clear-fbo-tex.c
|
||||
+++ b/src/trivial/clear-fbo-tex.c
|
||||
@@ -140,7 +140,7 @@ static void Draw( void )
|
||||
glClearColor(0.8, 0.8, 0, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
- glWindowPos2iARB(30, 30);
|
||||
+ glWindowPos2i(30, 30);
|
||||
glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/trivial/clear-fbo.c b/src/trivial/clear-fbo.c
|
||||
index 10d830b..3fee3e3 100644
|
||||
--- a/src/trivial/clear-fbo.c
|
||||
+++ b/src/trivial/clear-fbo.c
|
||||
@@ -116,7 +116,7 @@ Draw(void)
|
||||
glClearColor(0.8, 0.8, 0, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
- glWindowPos2iARB(30, 30);
|
||||
+ glWindowPos2i(30, 30);
|
||||
glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
free(buffer);
|
||||
diff --git a/src/trivial/readpixels.c b/src/trivial/readpixels.c
|
||||
index ccce4ed..74e0546 100644
|
||||
--- a/src/trivial/readpixels.c
|
||||
+++ b/src/trivial/readpixels.c
|
||||
@@ -71,7 +71,7 @@ static void Draw(void)
|
||||
printf("Pixel(0,0) = %f, %f, %f, %f\n",
|
||||
image[0], image[1], image[2], image[3]);
|
||||
/* draw to right half of window */
|
||||
- glWindowPos2iARB(Width, 0);
|
||||
+ glWindowPos2i(Width, 0);
|
||||
glPixelZoom(Zoom, Zoom);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_FLOAT, image);
|
||||
free(image);
|
||||
diff --git a/src/trivial/tri-fbo.c b/src/trivial/tri-fbo.c
|
||||
index d5800b2..dd1f21a 100644
|
||||
--- a/src/trivial/tri-fbo.c
|
||||
+++ b/src/trivial/tri-fbo.c
|
||||
@@ -119,7 +119,7 @@ static void Draw( void )
|
||||
glClearColor(0.8, 0.8, 0, 0.0);
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
- glWindowPos2iARB(30, 30);
|
||||
+ glWindowPos2i(30, 30);
|
||||
glDrawPixels(Width-60, Height-60, GL_RGBA, GL_UNSIGNED_BYTE, buffer);
|
||||
|
||||
|
||||
diff --git a/src/xdemos/glxsnoop.c b/src/xdemos/glxsnoop.c
|
||||
index 2215cfd..13d2b2d 100644
|
||||
--- a/src/xdemos/glxsnoop.c
|
||||
+++ b/src/xdemos/glxsnoop.c
|
||||
@@ -91,7 +91,7 @@ redraw(Display *dpy, Window srcWin, Window dstWin )
|
||||
}
|
||||
|
||||
glXMakeCurrent(dpy, dstWin, Context);
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glDrawBuffer(GL_FRONT);
|
||||
glDrawPixels(Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, image);
|
||||
glFlush();
|
||||
diff --git a/src/xdemos/wincopy.c b/src/xdemos/wincopy.c
|
||||
index f670983..d010085 100644
|
||||
--- a/src/xdemos/wincopy.c
|
||||
+++ b/src/xdemos/wincopy.c
|
||||
@@ -156,11 +156,11 @@ Redraw(void)
|
||||
glClear(GL_COLOR_BUFFER_BIT);
|
||||
|
||||
if (TestClipping) {
|
||||
- glWindowPos2iARB(-2, -2);
|
||||
+ glWindowPos2i(-2, -2);
|
||||
glCopyPixels(-2, -2, Width[0] + 4, Height[0] + 4, GL_COLOR);
|
||||
}
|
||||
else {
|
||||
- glWindowPos2iARB(0, 0);
|
||||
+ glWindowPos2i(0, 0);
|
||||
glCopyPixels(0, 0, Width[0], Height[0], GL_COLOR);
|
||||
}
|
||||
|
||||
--
|
||||
1.8.1
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
mesa-demos: Add extension header to fix build break now that gl1 is removed
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
diff --git a/src/egl/opengles1/clear.c b/src/egl/opengles1/clear.c
|
||||
index 9fe1b5291e1905fd6fe572063ed707d59ce45a81..ca9954a21b5f475709dbdef07f90b900962fcbc7 100644
|
||||
--- a/src/egl/opengles1/clear.c
|
||||
+++ b/src/egl/opengles1/clear.c
|
||||
@@ -34,7 +34,7 @@
|
||||
#include <stdio.h>
|
||||
#include <EGL/egl.h>
|
||||
#include <GLES/gl.h>
|
||||
-
|
||||
+#include <GLES/glext.h>
|
||||
#include "eglut.h"
|
||||
|
||||
typedef void (GL_APIENTRY *type_ClearColor)(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
|
||||
@@ -0,0 +1,24 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:imxgpu = " \
|
||||
file://Replace-glWindowPos2iARB-calls-with-glWindowPos2i.patch \
|
||||
file://fix-clear-build-break.patch \
|
||||
file://0001-egl-clear-backgrounds-black.patch"
|
||||
|
||||
REQUIRED_DISTRO_FEATURES:remove:imxgpu = "x11"
|
||||
|
||||
PACKAGECONFIG:remove = " \
|
||||
${PACKAGECONFIG_REMOVE_IF_2D_ONLY} \
|
||||
${PACKAGECONFIG_REMOVE_IF_GPU}"
|
||||
PACKAGECONFIG_REMOVE_IF_2D_ONLY = ""
|
||||
PACKAGECONFIG_REMOVE_IF_2D_ONLY:imxgpu2d = "gles1 gles2"
|
||||
PACKAGECONFIG_REMOVE_IF_2D_ONLY:imxgpu3d = ""
|
||||
PACKAGECONFIG_REMOVE_IF_GPU = ""
|
||||
PACKAGECONFIG_REMOVE_IF_GPU:imxgpu = "x11"
|
||||
|
||||
PACKAGECONFIG:append = " \
|
||||
${PACKAGECONFIG_APPEND_IF_GPU}"
|
||||
PACKAGECONFIG_APPEND_IF_GPU = ""
|
||||
PACKAGECONFIG_APPEND_IF_GPU:imxgpu = "glu"
|
||||
|
||||
PACKAGECONFIG[glu] = ",,libglu"
|
||||
@@ -0,0 +1,3 @@
|
||||
[Manager]
|
||||
DefaultEnvironment=MESA_GL_VERSION_OVERRIDE=2.1 ETNA_MESA_DEBUG=nir
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
export MESA_GL_VERSION_OVERRIDE=2.1
|
||||
export ETNA_MESA_DEBUG=nir
|
||||
@@ -0,0 +1,31 @@
|
||||
SUMMARY = "Mesa environment variables for etnaviv on xserver"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_ARCH}"
|
||||
|
||||
SRC_URI = "\
|
||||
file://mesa-etnaviv.conf \
|
||||
file://mesa-etnaviv.sh \
|
||||
"
|
||||
|
||||
do_configure[noexec] = "1"
|
||||
do_compile[noexec] = "1"
|
||||
|
||||
do_install:use-mainline-bsp() {
|
||||
# MESA global envirronment variables
|
||||
|
||||
# systemd
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'systemd', 'true', 'false', d)}; then
|
||||
install -D -m 644 ${WORKDIR}/mesa-etnaviv.conf \
|
||||
${D}${sysconfdir}/systemd/system.conf.d/mesa-etnaviv.conf
|
||||
fi
|
||||
|
||||
# sysvinit
|
||||
if ${@bb.utils.contains('DISTRO_FEATURES', 'sysvinit', 'true', 'false', d)}; then
|
||||
install -D -m 644 ${WORKDIR}/mesa-etnaviv.sh \
|
||||
${D}${sysconfdir}/profile.d/mesa-etnaviv.sh
|
||||
fi
|
||||
}
|
||||
|
||||
ALLOW_EMPTY:${PN} = "1"
|
||||
@@ -0,0 +1,8 @@
|
||||
DEPENDS:append:imxgpu = " virtual/egl"
|
||||
|
||||
do_install:append:imxgpu() {
|
||||
# imx-gpu-viv and mali-imx both provide /usr/include/KHR, so drop the mesa-gl one
|
||||
rm -rf ${D}${includedir}/KHR
|
||||
}
|
||||
|
||||
COMPATIBLE_MACHINE:imxgpu = "(imxgpu)"
|
||||
@@ -0,0 +1,47 @@
|
||||
From 612c3dc98d5d050b9cfee16ec77ca3c8358caa0d Mon Sep 17 00:00:00 2001
|
||||
From: Wujian Sun <wujian.sun_1@nxp.com>
|
||||
Date: Mon, 29 Apr 2024 17:29:16 +0800
|
||||
Subject: [PATCH] MGS-7599 cso: fix virgl driver assert issue
|
||||
|
||||
A workaround that remove PIPE_MAX_SAMPLERS and
|
||||
PIPE_MAX_CONSTANT_BUFFERS assert.
|
||||
|
||||
Upstream-Status: Inappropriate [i.MX-specific]
|
||||
|
||||
Signed-off-by: Wujian Sun <wujian.sun_1@nxp.com>
|
||||
---
|
||||
src/gallium/auxiliary/cso_cache/cso_context.c | 2 --
|
||||
src/gallium/drivers/virgl/virgl_screen.c | 2 +-
|
||||
2 files changed, 1 insertion(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/gallium/auxiliary/cso_cache/cso_context.c b/src/gallium/auxiliary/cso_cache/cso_context.c
|
||||
index 3e86def31c5..ffc6d22da9c 100644
|
||||
--- a/src/gallium/auxiliary/cso_cache/cso_context.c
|
||||
+++ b/src/gallium/auxiliary/cso_cache/cso_context.c
|
||||
@@ -403,10 +403,8 @@ cso_unbind_context(struct cso_context *ctx)
|
||||
PIPE_SHADER_CAP_MAX_CONST_BUFFERS);
|
||||
int maximg = scr->get_shader_param(scr, sh,
|
||||
PIPE_SHADER_CAP_MAX_SHADER_IMAGES);
|
||||
- assert(maxsam <= PIPE_MAX_SAMPLERS);
|
||||
assert(maxview <= PIPE_MAX_SHADER_SAMPLER_VIEWS);
|
||||
assert(maxssbo <= PIPE_MAX_SHADER_BUFFERS);
|
||||
- assert(maxcb <= PIPE_MAX_CONSTANT_BUFFERS);
|
||||
assert(maximg <= PIPE_MAX_SHADER_IMAGES);
|
||||
if (maxsam > 0) {
|
||||
ctx->base.pipe->bind_sampler_states(ctx->base.pipe, sh, 0, maxsam, zeros);
|
||||
diff --git a/src/gallium/drivers/virgl/virgl_screen.c b/src/gallium/drivers/virgl/virgl_screen.c
|
||||
index 389a1935cc3..7c7f8ba576b 100644
|
||||
--- a/src/gallium/drivers/virgl/virgl_screen.c
|
||||
+++ b/src/gallium/drivers/virgl/virgl_screen.c
|
||||
@@ -435,7 +435,7 @@ virgl_get_shader_param(struct pipe_screen *screen,
|
||||
return 1;
|
||||
case PIPE_SHADER_CAP_MAX_TEXTURE_SAMPLERS:
|
||||
return MIN2(vscreen->caps.caps.v2.max_shader_sampler_views,
|
||||
- PIPE_MAX_SHADER_SAMPLER_VIEWS);
|
||||
+ PIPE_MAX_SAMPLERS);
|
||||
case PIPE_SHADER_CAP_INTEGERS:
|
||||
return vscreen->caps.caps.v1.glsl_level >= 130;
|
||||
case PIPE_SHADER_CAP_MAX_CONTROL_FLOW_DEPTH:
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
From 188d7b01037e5a0249e63c2600cf15a288a9ff3f Mon Sep 17 00:00:00 2001
|
||||
From: Wujian Sun <wujian.sun_1@nxp.com>
|
||||
Date: Fri, 19 Apr 2024 18:38:17 +0800
|
||||
Subject: [PATCH] MGS-7673 egl/dri2: fix video showing wrong frame
|
||||
|
||||
Softpipe driver doesn't support EGL_EXT_image_dma_buf_import_modifiers
|
||||
extension.
|
||||
Should not report the extension.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Wujian Sun <wujian.sun_1@nxp.com>
|
||||
---
|
||||
src/egl/drivers/dri2/egl_dri2.c | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/src/egl/drivers/dri2/egl_dri2.c b/src/egl/drivers/dri2/egl_dri2.c
|
||||
index 992f0e3d46d..6ee209d4b47 100644
|
||||
--- a/src/egl/drivers/dri2/egl_dri2.c
|
||||
+++ b/src/egl/drivers/dri2/egl_dri2.c
|
||||
@@ -942,7 +942,8 @@ dri2_setup_screen(_EGLDisplay *disp)
|
||||
|
||||
#ifdef HAVE_LIBDRM
|
||||
if (dri2_dpy->image->base.version >= 8 &&
|
||||
- dri2_dpy->image->createImageFromDmaBufs) {
|
||||
+ dri2_dpy->image->createImageFromDmaBufs &&
|
||||
+ strcmp("softpipe", pscreen->get_name(pscreen))) {
|
||||
disp->Extensions.EXT_image_dma_buf_import = EGL_TRUE;
|
||||
disp->Extensions.EXT_image_dma_buf_import_modifiers = EGL_TRUE;
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
50
sources/meta-freescale/recipes-graphics/mesa/mesa_%.bbappend
Normal file
50
sources/meta-freescale/recipes-graphics/mesa/mesa_%.bbappend
Normal file
@@ -0,0 +1,50 @@
|
||||
PROVIDES:remove:imxgpu = "virtual/egl"
|
||||
PROVIDES:remove:imxgpu3d = "virtual/libgl virtual/libgles1 virtual/libgles2"
|
||||
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
SRC_URI:append:mx93-nxp-bsp = " file://0001-MGS-7673-egl-dri2-fix-video-showing-wrong-frame.patch"
|
||||
SRC_URI:append:imx-nxp-bsp = " file://0001-MGS-7599-cso-fix-virgl-driver-assert-issue.patch"
|
||||
|
||||
PACKAGECONFIG:remove:imxgpu = "egl gbm"
|
||||
PACKAGECONFIG:remove:imxgpu3d = "gles"
|
||||
|
||||
# FIXME: mesa should support 'x11-no-tls' option
|
||||
python () {
|
||||
overrides = d.getVar("OVERRIDES").split(":")
|
||||
if "imxgpu2d" not in overrides:
|
||||
return
|
||||
|
||||
x11flag = d.getVarFlag("PACKAGECONFIG", "x11", False)
|
||||
d.setVarFlag("PACKAGECONFIG", "x11", x11flag.replace("--enable-glx-tls", "--enable-glx"))
|
||||
}
|
||||
|
||||
# Enable Etnaviv and Freedreno support
|
||||
PACKAGECONFIG:append:use-mainline-bsp = " gallium etnaviv kmsro freedreno"
|
||||
|
||||
# For NXP BSP, GPU drivers don't support dri
|
||||
PACKAGECONFIG:remove:imxgpu:use-nxp-bsp = "dri"
|
||||
|
||||
# mainline/etnaviv:
|
||||
RRECOMMENDS:${PN}-megadriver:append:use-mainline-bsp = " libdrm-etnaviv mesa-etnaviv-env"
|
||||
|
||||
BACKEND = \
|
||||
"${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
|
||||
bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', \
|
||||
'fb', d), d)}"
|
||||
|
||||
# FIXME: Dirty hack to allow use of Vivante GPU libGL binary
|
||||
do_install:append:imxgpu3d () {
|
||||
rm -f ${D}${libdir}/libGL.* \
|
||||
${D}${includedir}/GL/gl.h \
|
||||
${D}${includedir}/GL/glcorearb.h \
|
||||
${D}${includedir}/GL/glext.h \
|
||||
${D}${includedir}/GL/glx.h \
|
||||
${D}${includedir}/GL/glxext.h
|
||||
if [ "${BACKEND}" = "x11" ]; then
|
||||
rm -f ${D}${libdir}/pkgconfig/gl.pc
|
||||
fi
|
||||
}
|
||||
|
||||
do_install:append:imxgpu () {
|
||||
rm -rf ${D}${includedir}/KHR
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
|
||||
@@ -0,0 +1,6 @@
|
||||
PACKAGECONFIG:remove:imxgpu = "glx"
|
||||
|
||||
PACKAGECONFIG:append:mx8-nxp-bsp = " opencl"
|
||||
PACKAGECONFIG:append:mx9-nxp-bsp = " opencl"
|
||||
|
||||
CFLAGS:append:imxgpu:toolchain-clang = " -Wno-error=int-conversion"
|
||||
@@ -0,0 +1,52 @@
|
||||
From 3448c245b15928aa5a5a3695d9271fb201eb2e3b Mon Sep 17 00:00:00 2001
|
||||
From: Yuan Tian <yuan.tian@nxp.com>
|
||||
Date: Sat, 27 Apr 2024 06:06:54 +0800
|
||||
Subject: [PATCH] LF-11869 change mali wsi layer activating order
|
||||
|
||||
Upstream-Status: Inappropriate [i.MX specific]
|
||||
|
||||
Signed-off-by: Yuan Tian <yuan.tian@nxp.com>
|
||||
---
|
||||
loader/loader.c | 12 ++++++++++++
|
||||
1 file changed, 12 insertions(+)
|
||||
|
||||
diff --git a/loader/loader.c b/loader/loader.c
|
||||
index e646b28b4..55912c178 100644
|
||||
--- a/loader/loader.c
|
||||
+++ b/loader/loader.c
|
||||
@@ -2906,6 +2906,7 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
|
||||
#if !defined(_WIN32)
|
||||
char temp_path[2048];
|
||||
#endif
|
||||
+ bool has_wsi_layer = false;
|
||||
|
||||
// Now, parse the paths
|
||||
next_file = search_path;
|
||||
@@ -2965,6 +2966,10 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
|
||||
name = full_path;
|
||||
|
||||
VkResult local_res;
|
||||
+ if(!strcmp(name,"/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json")) {
|
||||
+ has_wsi_layer = true;
|
||||
+ continue;
|
||||
+ }
|
||||
local_res = add_if_manifest_file(inst, name, out_files);
|
||||
|
||||
// Incomplete means this was not a valid data file.
|
||||
@@ -2975,6 +2980,13 @@ VkResult add_data_files(const struct loader_instance *inst, char *search_path, s
|
||||
break;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ if(has_wsi_layer) {
|
||||
+ name = "/etc/vulkan/implicit_layer.d/VkLayer_window_system_integration.json";
|
||||
+ vk_result = add_if_manifest_file(inst, name, out_files);
|
||||
+ has_wsi_layer = false;
|
||||
+ }
|
||||
+
|
||||
loader_closedir(inst, dir_stream);
|
||||
if (vk_result != VK_SUCCESS) {
|
||||
goto out;
|
||||
--
|
||||
2.34.1
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
FILESEXTRAPATHS:prepend:imx-nxp-bsp := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:imx-nxp-bsp = " \
|
||||
file://0001-LF-11869-change-mali-wsi-layer-activating-order.patch \
|
||||
"
|
||||
|
||||
# libvulkan.so is loaded dynamically, so put it in the main package
|
||||
SOLIBS = ".so*"
|
||||
FILES_SOLIBSDEV = ""
|
||||
INSANE_SKIP:${PN} += "dev-so"
|
||||
|
||||
# Override default mesa drivers with i.MX GPU drivers
|
||||
RRECOMMENDS:${PN}:imxviv = "libvulkan-imx"
|
||||
RRECOMMENDS:${PN}:imxmali = "mali-imx-libvulkan"
|
||||
@@ -0,0 +1,47 @@
|
||||
From 87fc7761cff5931a58984c7f7e78f421a0660e0e Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Date: Wed, 22 Apr 2020 13:40:04 -0500
|
||||
Subject: [PATCH] meson: Add missing wayland dependency on EGL
|
||||
|
||||
The build was not finding egl.pc due to this
|
||||
missing dependency.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
|
||||
---
|
||||
meson.build | 6 ++++--
|
||||
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||
|
||||
Index: git/meson.build
|
||||
===================================================================
|
||||
--- git.orig/meson.build
|
||||
+++ git/meson.build
|
||||
@@ -65,6 +65,7 @@ dep_gl = _dep_null
|
||||
dep_egl = _dep_null
|
||||
dep_wayland_client = _dep_null
|
||||
dep_wayland_egl = _dep_null
|
||||
+dep_wayland_wayland_egl = _dep_null
|
||||
dep_wayland_scanner = _dep_null
|
||||
dep_wayland_proto = _dep_null
|
||||
dep_x11_xcb = _dep_null
|
||||
@@ -106,7 +107,8 @@ else
|
||||
dep_wayland_client = dependency(
|
||||
'wayland-client', version : '>= 1.10', required : get_option('wayland'),
|
||||
)
|
||||
- dep_wayland_egl = dependency(
|
||||
+ dep_wayland_egl = dependency('egl', required : get_option('wayland'))
|
||||
+ dep_wayland_wayland_egl = dependency(
|
||||
'wayland-egl', version : '>= 9.1', required : get_option('wayland'),
|
||||
)
|
||||
dep_wayland_scanner = dependency(
|
||||
@@ -124,7 +126,7 @@ else
|
||||
wayland_xdg_shell_xml = join_paths(dep_wayland_proto.get_variable(pkgconfig: 'pkgdatadir'),
|
||||
'stable/xdg-shell/xdg-shell.xml')
|
||||
endif
|
||||
- build_wayland = dep_egl.found() and dep_wayland_client.found() and dep_wayland_egl.found() and dep_wayland_scanner.found() and dep_wayland_proto.found()
|
||||
+ build_wayland = dep_egl.found() and dep_wayland_client.found() and dep_wayland_egl.found() and dep_wayland_scanner.found() and dep_wayland_proto.found() and dep_wayland_wayland_egl.found()
|
||||
|
||||
# We're interested only in the headers provided
|
||||
# FINISHME: make x11_xcb and udev compile-only dependency
|
||||
@@ -0,0 +1,40 @@
|
||||
From 12ac4372cc6a66e83b61f8510bdaa4f11c72113d Mon Sep 17 00:00:00 2001
|
||||
From: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
Date: Wed, 22 Apr 2020 14:08:36 -0500
|
||||
Subject: [PATCH] meson: Separate surfaceless option from x11
|
||||
|
||||
Allow surfaceless build separate from the x11 option.
|
||||
Also require gbm for surfaceless build.
|
||||
|
||||
Upstream-Status: Pending
|
||||
|
||||
Signed-off-by: Tom Hochstein <tom.hochstein@nxp.com>
|
||||
|
||||
---
|
||||
meson.build | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
--- a/meson.build
|
||||
+++ b/meson.build
|
||||
@@ -72,6 +72,7 @@ dep_udev = _dep_null
|
||||
dep_cocoa = _dep_null
|
||||
dep_core_foundation = _dep_null
|
||||
dep_gl_headers = _dep_null
|
||||
+dep_surfaceless = _dep_null
|
||||
|
||||
# Get dependencies
|
||||
if build_wgl
|
||||
@@ -96,10 +97,11 @@ else
|
||||
dep_egl = dependency('egl', required : get_option('gbm'))
|
||||
dep_gbm = dependency('gbm', required : get_option('gbm'))
|
||||
dep_udev = dependency('libudev', required : get_option('gbm'))
|
||||
+ dep_surfaceless_egl = dependency('egl', required : get_option('surfaceless_egl'))
|
||||
+ dep_surfaceless_gbm = dependency('gbm', required : get_option('surfaceless_egl'))
|
||||
build_gbm = dep_egl.found() and dep_gbm.found() and dep_udev.found()
|
||||
|
||||
- dep_egl = dependency('egl', required : get_option('surfaceless_egl'))
|
||||
- build_surfaceless = dep_egl.found()
|
||||
+ build_surfaceless = dep_surfaceless_egl.found() and dep_surfaceless_gbm.found()
|
||||
|
||||
dep_egl = dependency('egl', required : get_option('wayland'))
|
||||
dep_wayland_client = dependency(
|
||||
@@ -0,0 +1,18 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI += " \
|
||||
file://0001-meson-Add-missing-wayland-dependency-on-EGL.patch \
|
||||
file://0002-meson-Separate-surfaceless-option-from-x11.patch \
|
||||
"
|
||||
|
||||
PACKAGECONFIG_IMXGPU_X11 = ""
|
||||
PACKAGECONFIG_IMXGPU_X11:imxgpu3d = "x11-egl glx"
|
||||
PACKAGECONFIG_IMXGPU_GBM = "gbm"
|
||||
PACKAGECONFIG_IMXGPU_GBM:mx6-nxp-bsp = ""
|
||||
PACKAGECONFIG_IMXGPU_GBM:mx7-nxp-bsp = ""
|
||||
PACKAGECONFIG:imxgpu = " \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', \
|
||||
bb.utils.contains('DISTRO_FEATURES', 'x11', '${PACKAGECONFIG_IMXGPU_X11}', \
|
||||
'', d), d)} \
|
||||
${PACKAGECONFIG_IMXGPU_GBM} \
|
||||
"
|
||||
@@ -0,0 +1,8 @@
|
||||
# distro features required by weston recipes
|
||||
|
||||
inherit features_check
|
||||
|
||||
# requires pam enabled if started via systemd
|
||||
#
|
||||
REQUIRED_DISTRO_FEATURES = "wayland opengl ${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'systemd', 'pam', '', d)}"
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
SUMMARY = "Collection of additional Wayland protocols"
|
||||
DESCRIPTION = "Wayland protocols that add functionality not \
|
||||
available in the Wayland core protocol. Such protocols either add \
|
||||
completely new functionality, or extend the functionality of some other \
|
||||
protocol either in Wayland core, or some other protocol in \
|
||||
wayland-protocols."
|
||||
HOMEPAGE = "http://wayland.freedesktop.org"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://LICENSE;md5=c7b12b6702da38ca028ace54aae3d484 \
|
||||
file://stable/presentation-time/presentation-time.xml;endline=26;md5=4646cd7d9edc9fa55db941f2d3a7dc53"
|
||||
|
||||
SRC_URI = "${WAYLAND_PROTOCOLS_SRC};branch=${SRCBRANCH}"
|
||||
WAYLAND_PROTOCOLS_SRC ?= "git://github.com/nxp-imx/wayland-protocols-imx.git;protocol=https"
|
||||
SRCBRANCH = "wayland-protocols-imx-${@oe.utils.trim_version("${PV}", 2)}"
|
||||
SRCREV = "7ece577d467f8afb2f5a2f7fff3761a1e0ee9dad"
|
||||
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
|
||||
|
||||
# NOTE: For i.MX drop allarch since the recipe is SOCARCH
|
||||
#inherit meson pkgconfig allarch
|
||||
inherit meson pkgconfig
|
||||
|
||||
EXTRA_OEMESON += "-Dtests=false"
|
||||
|
||||
PACKAGES = "${PN}"
|
||||
FILES:${PN} += "${datadir}/pkgconfig/wayland-protocols.pc"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(mx6-nxp-bsp|mx7-nxp-bsp|mx8-nxp-bsp|mx9-nxp-bsp)"
|
||||
@@ -0,0 +1,41 @@
|
||||
From 77eba6f6b04ff21b77c41500657495b4fd12a5f6 Mon Sep 17 00:00:00 2001
|
||||
From: Max Krummenacher <max.krummenacher@toradex.com>
|
||||
Date: Mon, 11 Jul 2022 19:38:19 +0000
|
||||
Subject: [PATCH] Revert "protocol: no found wayland-scanner with Yocto
|
||||
toolchain"
|
||||
|
||||
This reverts commit 7859a762617682bd804e210ad3bda6bdcd3ea24a.
|
||||
|
||||
With openembedded commit e525db4eb9 ("wayland: update 1.20.0 -> 1.21.0")
|
||||
package config seems no longer to provide the path to the native
|
||||
weston scanner.
|
||||
|
||||
Thus the build fails with:
|
||||
|
||||
| Run-time dependency wayland-scanner found: YES 1.21.0
|
||||
| Program /usr/bin/wayland-scanner found: NO
|
||||
|
|
||||
| ../git/protocol/meson.build:2:0: ERROR: Program '/usr/bin/wayland-scanner' not found or not executable
|
||||
|
||||
Dropping weston 9.0.0-imx commit 7859a762 (protocol: no found
|
||||
wayland-scanner with Yocto toolchain") fixes the issue.
|
||||
|
||||
Upstream-Status: Inappropriate [Cross-compile Specific]
|
||||
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
||||
---
|
||||
protocol/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/protocol/meson.build b/protocol/meson.build
|
||||
index bdd322ac..e50b23bb 100644
|
||||
--- a/protocol/meson.build
|
||||
+++ b/protocol/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-dep_scanner = dependency('wayland-scanner', native: false)
|
||||
+dep_scanner = dependency('wayland-scanner', native: true)
|
||||
prog_scanner = find_program(dep_scanner.get_pkgconfig_variable('wayland_scanner'))
|
||||
|
||||
dep_wp = dependency('wayland-protocols', version: '>= 1.24')
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,34 @@
|
||||
From 4afe9b2f9ef24ce0c9bf1cd41f94ca45afa4f445 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Mon, 12 Sep 2022 20:58:14 -0700
|
||||
Subject: [PATCH] g2d-renderer.c: Include sys/stat.h
|
||||
|
||||
This is needed for getting stat() prototype, its flagged with clang-15
|
||||
as error.
|
||||
|
||||
| ../git/libweston/renderer-g2d/g2d-renderer.c:2057:6: error: call to undeclared function 'stat'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
|
||||
| if (stat(gr->drm_device, &dev_stat) != 0) {
|
||||
| ^
|
||||
| 1 error generated.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
libweston/renderer-g2d/g2d-renderer.c | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/libweston/renderer-g2d/g2d-renderer.c b/libweston/renderer-g2d/g2d-renderer.c
|
||||
index f59fc4ee..36a458fc 100644
|
||||
--- a/libweston/renderer-g2d/g2d-renderer.c
|
||||
+++ b/libweston/renderer-g2d/g2d-renderer.c
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <drm_fourcc.h>
|
||||
#include <poll.h>
|
||||
#include <errno.h>
|
||||
+#include <sys/stat.h> /* stat() */
|
||||
|
||||
#include <libweston/libweston.h>
|
||||
#include "g2d-renderer.h"
|
||||
--
|
||||
2.37.3
|
||||
|
||||
@@ -0,0 +1,94 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
# OpenGL is not required for parts with GPU support for 2D but not 3D
|
||||
IMX_REQUIRED_DISTRO_FEATURES_REMOVE = ""
|
||||
IMX_REQUIRED_DISTRO_FEATURES_REMOVE:imxgpu2d = "opengl"
|
||||
IMX_REQUIRED_DISTRO_FEATURES_REMOVE:imxgpu3d = ""
|
||||
REQUIRED_DISTRO_FEATURES:remove = "${IMX_REQUIRED_DISTRO_FEATURES_REMOVE}"
|
||||
|
||||
SRC_URI:append:mx6sl-nxp-bsp = " file://weston.config"
|
||||
|
||||
PACKAGECONFIG ??= " \
|
||||
no-idle-timeout \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'xwayland', '', d)} \
|
||||
${PACKAGECONFIG_GBM_FORMAT} \
|
||||
${PACKAGECONFIG_REPAINT_WINDOW} \
|
||||
${PACKAGECONFIG_SIZE} \
|
||||
${PACKAGECONFIG_USE_G2D} \
|
||||
"
|
||||
|
||||
# Mainline BSPs dont support xwayland
|
||||
PACKAGECONFIG:remove:use-mainline-bsp = "xwayland"
|
||||
|
||||
PACKAGECONFIG_GBM_FORMAT ?= ""
|
||||
PACKAGECONFIG_GBM_FORMAT:mx8mq-nxp-bsp ?= "gbm-format"
|
||||
PACKAGECONFIG_GBM_FORMAT:mx93-nxp-bsp ?= "gbm-format"
|
||||
|
||||
GBM_FORMAT_VALUE:mx8mq-nxp-bsp = "argb8888"
|
||||
GBM_FORMAT_VALUE:mx93-nxp-bsp = "argb8888"
|
||||
|
||||
PACKAGECONFIG_REPAINT_WINDOW ?= ""
|
||||
PACKAGECONFIG_REPAINT_WINDOW:mx8-nxp-bsp ?= "repaint-window"
|
||||
PACKAGECONFIG_REPAINT_WINDOW:mx9-nxp-bsp ?= "repaint-window"
|
||||
|
||||
PACKAGECONFIG_SIZE ?= ""
|
||||
PACKAGECONFIG_SIZE:mx8mq-nxp-bsp ?= "size"
|
||||
|
||||
SIZE_VALUE:mx8mq-nxp-bsp = "1920x1080"
|
||||
|
||||
HAS_G2D = "false"
|
||||
HAS_G2D:imxgpu2d = "true"
|
||||
|
||||
PACKAGECONFIG_USE_G2D ?= ""
|
||||
PACKAGECONFIG_USE_G2D:imxgpu2d ?= "use-g2d"
|
||||
PACKAGECONFIG_USE_G2D:mx8qm-nxp-bsp ?= ""
|
||||
PACKAGECONFIG_USE_G2D:mx8qxp-nxp-bsp ?= ""
|
||||
PACKAGECONFIG_USE_G2D:mx8dx-nxp-bsp ?= ""
|
||||
PACKAGECONFIG_USE_G2D:mx93-nxp-bsp ?= "use-g2d"
|
||||
|
||||
USE_G2D_VALUE = "true"
|
||||
USE_G2D_VALUE:mx6-nxp-bsp = "1"
|
||||
USE_G2D_VALUE:mx7-nxp-bsp = "1"
|
||||
|
||||
PACKAGECONFIG[gbm-format] = ",,"
|
||||
PACKAGECONFIG[rdp] = ",,"
|
||||
PACKAGECONFIG[repaint-window] = ",,"
|
||||
PACKAGECONFIG[size] = ",,"
|
||||
PACKAGECONFIG[use-g2d] = ",,"
|
||||
PACKAGECONFIG[xwayland] = ",,"
|
||||
|
||||
do_install:append() {
|
||||
# Replace the template variables
|
||||
sed -i -e 's,@bindir@,${bindir},g' ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
|
||||
if [ -f "${WORKDIR}/weston.config" ]; then
|
||||
install -Dm0755 ${WORKDIR}/weston.config ${D}${sysconfdir}/default/weston
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'gbm-format', 'yes', 'no', d)}" = "yes" ]; then
|
||||
sed -i -e "/^\[core\]/a gbm-format=${GBM_FORMAT_VALUE}" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'rdp', 'yes', 'no', d)}" = "yes" ]; then
|
||||
sed -i -e "s|^command=${bindir}/weston .*|& --rdp-tls-cert=${sysconfdir}/freerdp/keys/server.crt --rdp-tls-key=${sysconfdir}/freerdp/keys/server.key|" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
sed -i -e "/^\[core\]/a modules=screen-share.so" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'repaint-window', 'yes', 'no', d)}" = "yes" ]; then
|
||||
sed -i -e "/^\[core\]/a repaint-window=16" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'size', 'yes', 'no', d)}" = "yes" ]; then
|
||||
sed -i -e "/^\[shell\]/a size=${SIZE_VALUE}" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'use-g2d', 'yes', 'no', d)}" = "yes" ]; then
|
||||
sed -i -e "/^\[core\]/a use-g2d=${USE_G2D_VALUE}" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
elif ${HAS_G2D}; then
|
||||
sed -i -e "/^\[core\]/a #use-g2d=${USE_G2D_VALUE}" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "no" ]; then
|
||||
sed -i -e "s/^xwayland=true/#xwayland=true/g" ${D}${sysconfdir}/xdg/weston/weston.ini
|
||||
fi
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
[core]
|
||||
#enable-overlay-view=1
|
||||
|
||||
[shell]
|
||||
|
||||
[libinput]
|
||||
touchscreen_calibrator=true
|
||||
|
||||
#[output]
|
||||
#name=HDMI-A-1
|
||||
#mode=1920x1080@60
|
||||
#transform=rotate-90
|
||||
|
||||
#[output]
|
||||
#name=HDMI-A-2
|
||||
#mode=off
|
||||
# WIDTHxHEIGHT Resolution size width and height in pixels
|
||||
# off Disables the output
|
||||
# preferred Uses the preferred mode
|
||||
# current Uses the current crt controller mode
|
||||
#transform=rotate-90
|
||||
|
||||
[screen-share]
|
||||
command=@bindir@/weston --backend=rdp-backend.so --shell=fullscreen-shell.so --no-clients-resize
|
||||
#start-on-startup=true
|
||||
@@ -0,0 +1 @@
|
||||
FB_MULTI_BUFFER=1
|
||||
@@ -0,0 +1,38 @@
|
||||
From 3aa4024ac4107e68552be4dfe5fce511900629c9 Mon Sep 17 00:00:00 2001
|
||||
From: Max Krummenacher <max.krummenacher@toradex.com>
|
||||
Date: Mon, 11 Jul 2022 19:38:19 +0000
|
||||
Subject: [PATCH] Revert "protocol: no found wayland-scanner with Yocto
|
||||
toolchain"
|
||||
|
||||
This reverts commit 7859a762617682bd804e210ad3bda6bdcd3ea24a.
|
||||
|
||||
With openembedded commit e525db4eb9 ("wayland: update 1.20.0 -> 1.21.0")
|
||||
package config seems no longer to provide the path to the native
|
||||
weston scanner.
|
||||
|
||||
Thus the build fails with:
|
||||
|
||||
| Run-time dependency wayland-scanner found: YES 1.21.0
|
||||
| Program /usr/bin/wayland-scanner found: NO
|
||||
|
|
||||
| ../git/protocol/meson.build:2:0: ERROR: Program '/usr/bin/wayland-scanner' not found or not executable
|
||||
|
||||
Dropping weston 9.0.0-imx commit 7859a762 (protocol: no found
|
||||
wayland-scanner with Yocto toolchain") fixes the issue.
|
||||
|
||||
Upstream-Status: Inappropriate [Cross-compile specific]
|
||||
Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
|
||||
---
|
||||
protocol/meson.build | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
Index: git/protocol/meson.build
|
||||
===================================================================
|
||||
--- git.orig/protocol/meson.build
|
||||
+++ git/protocol/meson.build
|
||||
@@ -1,4 +1,4 @@
|
||||
-dep_scanner = dependency('wayland-scanner', native: false)
|
||||
+dep_scanner = dependency('wayland-scanner', native: true)
|
||||
prog_scanner = find_program(dep_scanner.get_variable(pkgconfig: 'wayland_scanner'))
|
||||
|
||||
dep_wp = dependency('wayland-protocols', version: '>= 1.31',
|
||||
@@ -0,0 +1,45 @@
|
||||
From 2a7c1797dd65467b7a0be63aa598307b92fb83b5 Mon Sep 17 00:00:00 2001
|
||||
From: Khem Raj <raj.khem@gmail.com>
|
||||
Date: Thu, 14 Dec 2023 09:13:54 -0800
|
||||
Subject: [PATCH] libweston,tools: Include libgen.h for basename signature
|
||||
|
||||
Latest musl has removed the declaration from string.h [1] as it only
|
||||
implements POSIX version alone and string.h in glibc implements GNU
|
||||
version of basename. This now results in compile errors on musl.
|
||||
|
||||
This might be a warning with older compilers but it is error with
|
||||
Clang-17+ as it treats -Wimplicit-function-declaration as error
|
||||
|
||||
[1] https://git.musl-libc.org/cgit/musl/commit/?id=725e17ed6dff4d0cd22487bb64470881e86a92e7
|
||||
|
||||
Upstream-Status: Submitted [https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1420]
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
libweston/backend-drm/libbacklight.c | 1 +
|
||||
tools/zunitc/src/zunitc_impl.c | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/libweston/backend-drm/libbacklight.c b/libweston/backend-drm/libbacklight.c
|
||||
index ca7f2d68..74690fa7 100644
|
||||
--- a/libweston/backend-drm/libbacklight.c
|
||||
+++ b/libweston/backend-drm/libbacklight.c
|
||||
@@ -41,6 +41,7 @@
|
||||
#include <drm.h>
|
||||
#include <fcntl.h>
|
||||
#include <malloc.h>
|
||||
+#include <libgen.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
diff --git a/tools/zunitc/src/zunitc_impl.c b/tools/zunitc/src/zunitc_impl.c
|
||||
index 18f03015..9b460fa0 100644
|
||||
--- a/tools/zunitc/src/zunitc_impl.c
|
||||
+++ b/tools/zunitc/src/zunitc_impl.c
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
+#include <libgen.h>
|
||||
#include <stdarg.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
@@ -0,0 +1,9 @@
|
||||
#!/bin/sh
|
||||
|
||||
# SPDX-FileCopyrightText: Huawei Inc.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
|
||||
if [[ -x "/usr/lib/weston/systemd-notify.so" ]]; then
|
||||
add_weston_module "systemd-notify.so"
|
||||
fi
|
||||
@@ -0,0 +1,9 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
Type=Application
|
||||
Name=Weston
|
||||
Comment=Wayland Compostitor
|
||||
Exec=weston
|
||||
Icon=weston
|
||||
Terminal=false
|
||||
Categories=Utility;
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 2.3 KiB |
@@ -0,0 +1,6 @@
|
||||
#!/bin/sh
|
||||
|
||||
if type Xwayland >/dev/null 2>/dev/null; then
|
||||
mkdir -m 775 -p /tmp/.X11-unix
|
||||
chown root:video /tmp/.X11-unix
|
||||
fi
|
||||
@@ -0,0 +1,211 @@
|
||||
# This recipe is for the i.MX fork of weston. For ease of
|
||||
# maintenance, the top section is a verbatim copy of an OE-core
|
||||
# recipe. The second section customizes the recipe for i.MX.
|
||||
|
||||
########### OE-core copy ##################
|
||||
# Upstream hash: 4b42fd87da290ddea098605aea3a5cce1fb432a7
|
||||
|
||||
SUMMARY = "Weston, a Wayland compositor"
|
||||
DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
|
||||
HOMEPAGE = "http://wayland.freedesktop.org"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
|
||||
file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \
|
||||
"
|
||||
|
||||
SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
|
||||
file://weston.png \
|
||||
file://weston.desktop \
|
||||
file://xwayland.weston-start \
|
||||
file://systemd-notify.weston-start \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "89646ca0d9f8d413c2767e5c3828eaa3fa149c2a105b3729a6894fa7cf1549e7"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
|
||||
UPSTREAM_CHECK_REGEX = "weston-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
|
||||
|
||||
inherit meson pkgconfig useradd
|
||||
|
||||
# depends on virtual/egl
|
||||
#
|
||||
require ${THISDIR}/required-distro-features.inc
|
||||
|
||||
DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
|
||||
DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
|
||||
|
||||
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}"
|
||||
|
||||
WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
|
||||
|
||||
EXTRA_OEMESON += "-Dpipewire=false"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
|
||||
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
|
||||
${@oe.utils.conditional('VIRTUAL-RUNTIME_init_manager', 'sysvinit', 'launcher-libseat', '', d)} \
|
||||
image-jpeg \
|
||||
screenshare \
|
||||
shell-desktop \
|
||||
shell-fullscreen \
|
||||
shell-ivi"
|
||||
|
||||
# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all'
|
||||
SIMPLECLIENTS ?= "all"
|
||||
|
||||
#
|
||||
# Compositor choices
|
||||
#
|
||||
# Weston on KMS
|
||||
PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev"
|
||||
# Weston on Wayland (nested Weston)
|
||||
PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2"
|
||||
# Weston on X11
|
||||
PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcb libxcursor cairo"
|
||||
# Headless Weston
|
||||
PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
|
||||
# Weston on framebuffer
|
||||
PACKAGECONFIG[fbdev] = "-Ddeprecated-backend-fbdev=true,-Ddeprecated-backend-fbdev=false,udev mtdev"
|
||||
# Weston on RDP
|
||||
PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp"
|
||||
# weston-launch
|
||||
PACKAGECONFIG[launch] = "-Ddeprecated-weston-launch=true,-Ddeprecated-weston-launch=false,drm"
|
||||
# VA-API desktop recorder
|
||||
PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva"
|
||||
# Weston with EGL support
|
||||
PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl"
|
||||
# Weston with lcms support
|
||||
PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms"
|
||||
# Weston with webp support
|
||||
PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp"
|
||||
# Weston with systemd-login support
|
||||
PACKAGECONFIG[systemd] = "-Dsystemd=true -Dlauncher-logind=true,-Dsystemd=false -Dlauncher-logind=false,systemd dbus"
|
||||
# Weston with Xwayland support (requires X11 and Wayland)
|
||||
PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false"
|
||||
# colord CMS support
|
||||
PACKAGECONFIG[colord] = "-Dcolor-management-colord=true,-Dcolor-management-colord=false,colord"
|
||||
# Clients support
|
||||
PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
|
||||
# Virtual remote output with GStreamer on DRM backend
|
||||
PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
|
||||
# Weston with screen-share support
|
||||
PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false"
|
||||
# Traditional desktop shell
|
||||
PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false"
|
||||
# Fullscreen shell
|
||||
PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false"
|
||||
# In-Vehicle Infotainment (IVI) shell
|
||||
PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
|
||||
# JPEG image loading support
|
||||
PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
|
||||
# support libseat based launch
|
||||
PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd"
|
||||
|
||||
do_install:append() {
|
||||
# Weston doesn't need the .la files to load modules, so wipe them
|
||||
rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la
|
||||
|
||||
# If X11, ship a desktop file to launch it
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then
|
||||
install -d ${D}${datadir}/applications
|
||||
install ${WORKDIR}/weston.desktop ${D}${datadir}/applications
|
||||
|
||||
install -d ${D}${datadir}/icons/hicolor/48x48/apps
|
||||
install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
|
||||
install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then
|
||||
install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then
|
||||
chmod u+s ${D}${bindir}/weston-launch
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
|
||||
libweston-${WESTON_MAJOR_VERSION} ${PN}-examples"
|
||||
|
||||
FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so"
|
||||
FILES:${PN} = "${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}"
|
||||
|
||||
FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
|
||||
SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
|
||||
|
||||
FILES:${PN}-examples = "${bindir}/*"
|
||||
|
||||
FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
|
||||
RDEPENDS:${PN}-xwayland += "xwayland"
|
||||
|
||||
RDEPENDS:${PN} += "xkeyboard-config"
|
||||
RRECOMMENDS:${PN} = "weston-init liberation-fonts"
|
||||
RRECOMMENDS:${PN}-dev += "wayland-protocols"
|
||||
|
||||
USERADD_PACKAGES = "${PN}"
|
||||
GROUPADD_PARAM:${PN} = "--system weston-launch"
|
||||
|
||||
########### End of OE-core copy ###########
|
||||
|
||||
########### i.MX overrides ################
|
||||
|
||||
SUMMARY = "Weston, a Wayland compositor, i.MX fork"
|
||||
|
||||
LIC_FILES_CHKSUM:remove = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70"
|
||||
LIC_FILES_CHKSUM:append = "file://LICENSE;md5=d79ee9e66bb0f95d3386a7acae780b70"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI:remove = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz"
|
||||
SRC_URI:prepend = "git://github.com/nxp-imx/weston-imx.git;protocol=https;branch=${SRCBRANCH} "
|
||||
SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch \
|
||||
file://0001-g2d-renderer.c-Include-sys-stat.h.patch"
|
||||
SRCBRANCH = "weston-imx-10.0.5"
|
||||
SRCREV = "7129417ae04de57f9596ccf27f74ef967660a64f"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
# Disable OpenGL for parts with GPU support for 2D but not 3D
|
||||
REQUIRED_DISTRO_FEATURES = "opengl"
|
||||
REQUIRED_DISTRO_FEATURES:imxgpu2d = ""
|
||||
REQUIRED_DISTRO_FEATURES:imxgpu3d = "opengl"
|
||||
PACKAGECONFIG_OPENGL = "opengl"
|
||||
PACKAGECONFIG_OPENGL:imxgpu2d = ""
|
||||
PACKAGECONFIG_OPENGL:imxgpu3d = "opengl"
|
||||
|
||||
PACKAGECONFIG_IMX_REMOVALS ?= "wayland x11"
|
||||
PACKAGECONFIG:remove = "${PACKAGECONFIG_IMX_REMOVALS}"
|
||||
PACKAGECONFIG:append = " ${@bb.utils.filter('DISTRO_FEATURES', '${PACKAGECONFIG_OPENGL}', d)}"
|
||||
|
||||
PACKAGECONFIG:remove:imxfbdev = "kms"
|
||||
PACKAGECONFIG:append:imxfbdev = " fbdev clients"
|
||||
PACKAGECONFIG:append:imxgpu = " imxgpu"
|
||||
PACKAGECONFIG:append:imxgpu2d = " imxg2d"
|
||||
|
||||
SIMPLECLIENTS:imxfbdev = "damage,im,egl,shm,touch,dmabuf-v4l"
|
||||
|
||||
# Override
|
||||
PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcursor xwayland"
|
||||
# Weston with i.MX GPU support
|
||||
PACKAGECONFIG[imxgpu] = "-Dimxgpu=true,-Dimxgpu=false,virtual/egl"
|
||||
# Weston with i.MX G2D renderer
|
||||
PACKAGECONFIG[imxg2d] = "-Drenderer-g2d=true,-Drenderer-g2d=false,virtual/libg2d"
|
||||
# Weston with OpenGL support
|
||||
PACKAGECONFIG[opengl] = "-Dopengl=true,-Dopengl=false"
|
||||
|
||||
PACKAGECONFIG[fbdev] = "-Dbackend-fbdev=true,-Dbackend-fbdev=false,udev mtdev libdrm"
|
||||
EXTRA_OEMESON:append:imxfbdev = " -Dbackend-default=fbdev"
|
||||
|
||||
EXTRA_OEMESON += "-Ddeprecated-wl-shell=true"
|
||||
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(imxfbdev|imxgpu)"
|
||||
|
||||
########### End of i.MX overrides #########
|
||||
@@ -0,0 +1,199 @@
|
||||
# This recipe is for the i.MX fork of weston. For ease of
|
||||
# maintenance, the top section is a verbatim copy of an OE-core
|
||||
# recipe. The second section customizes the recipe for i.MX.
|
||||
|
||||
########### OE-core copy ##################
|
||||
# Upstream hash: 92a460b55e7290ec0006365219189761f7226f7c
|
||||
|
||||
SUMMARY = "Weston, a Wayland compositor"
|
||||
DESCRIPTION = "Weston is the reference implementation of a Wayland compositor"
|
||||
HOMEPAGE = "http://wayland.freedesktop.org"
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70 \
|
||||
file://libweston/compositor.c;endline=27;md5=eb6d5297798cabe2ddc65e2af519bcf0 \
|
||||
"
|
||||
|
||||
SRC_URI = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz \
|
||||
file://weston.png \
|
||||
file://weston.desktop \
|
||||
file://xwayland.weston-start \
|
||||
file://systemd-notify.weston-start \
|
||||
file://0001-libweston-tools-Include-libgen.h-for-basename-signat.patch \
|
||||
"
|
||||
|
||||
SRC_URI[sha256sum] = "eb686a7cf00992a23b17f192fca9a887313e92c346ee35d8575196983d656b4a"
|
||||
|
||||
UPSTREAM_CHECK_URI = "https://wayland.freedesktop.org/releases.html"
|
||||
UPSTREAM_CHECK_REGEX = "weston-(?P<pver>\d+\.\d+\.(?!9\d+)\d+)"
|
||||
|
||||
inherit meson pkgconfig useradd
|
||||
|
||||
# depends on virtual/egl
|
||||
#
|
||||
require ${THISDIR}/required-distro-features.inc
|
||||
|
||||
DEPENDS = "libxkbcommon gdk-pixbuf pixman cairo glib-2.0"
|
||||
DEPENDS += "wayland wayland-protocols libinput virtual/egl pango wayland-native"
|
||||
|
||||
LDFLAGS += "${@bb.utils.contains('DISTRO_FEATURES', 'lto', '-Wl,-z,undefs', '', d)}"
|
||||
|
||||
WESTON_MAJOR_VERSION = "${@'.'.join(d.getVar('PV').split('.')[0:1])}"
|
||||
|
||||
EXTRA_OEMESON += "-Dpipewire=false"
|
||||
|
||||
PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'kms wayland egl clients', '', d)} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'xwayland', '', d)} \
|
||||
${@bb.utils.filter('DISTRO_FEATURES', 'systemd x11', d)} \
|
||||
${@bb.utils.contains_any('DISTRO_FEATURES', 'wayland x11', '', 'headless', d)} \
|
||||
launcher-libseat \
|
||||
image-jpeg \
|
||||
screenshare \
|
||||
shell-desktop \
|
||||
shell-fullscreen \
|
||||
shell-ivi \
|
||||
shell-kiosk \
|
||||
"
|
||||
|
||||
# Can be 'damage', 'im', 'egl', 'shm', 'touch', 'dmabuf-feedback', 'dmabuf-v4l', 'dmabuf-egl' or 'all'
|
||||
SIMPLECLIENTS ?= "all"
|
||||
|
||||
#
|
||||
# Compositor choices
|
||||
#
|
||||
# Weston on KMS
|
||||
PACKAGECONFIG[kms] = "-Dbackend-drm=true,-Dbackend-drm=false,drm udev virtual/egl virtual/libgles2 virtual/libgbm mtdev"
|
||||
# Weston on Wayland (nested Weston)
|
||||
PACKAGECONFIG[wayland] = "-Dbackend-wayland=true,-Dbackend-wayland=false,virtual/egl virtual/libgles2"
|
||||
# Weston on X11
|
||||
PACKAGECONFIG[x11] = "-Dbackend-x11=true,-Dbackend-x11=false,virtual/libx11 libxcb libxcursor"
|
||||
# Headless Weston
|
||||
PACKAGECONFIG[headless] = "-Dbackend-headless=true,-Dbackend-headless=false"
|
||||
# Weston on RDP
|
||||
PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp"
|
||||
# VA-API desktop recorder
|
||||
PACKAGECONFIG[vaapi] = "-Dbackend-drm-screencast-vaapi=true,-Dbackend-drm-screencast-vaapi=false,libva"
|
||||
# Weston with EGL support
|
||||
PACKAGECONFIG[egl] = "-Drenderer-gl=true,-Drenderer-gl=false,virtual/egl"
|
||||
# Weston with lcms support
|
||||
PACKAGECONFIG[lcms] = "-Dcolor-management-lcms=true,-Dcolor-management-lcms=false,lcms"
|
||||
# Weston with webp support
|
||||
PACKAGECONFIG[webp] = "-Dimage-webp=true,-Dimage-webp=false,libwebp"
|
||||
# Weston with systemd support
|
||||
PACKAGECONFIG[systemd] = "-Dsystemd=true,-Dsystemd=false,systemd dbus"
|
||||
# Weston with Xwayland support (requires X11 and Wayland)
|
||||
PACKAGECONFIG[xwayland] = "-Dxwayland=true,-Dxwayland=false,libxcb libxcursor xcb-util-cursor xwayland"
|
||||
# colord CMS support
|
||||
PACKAGECONFIG[colord] = "-Ddeprecated-color-management-colord=true,-Ddeprecated-color-management-colord=false,colord"
|
||||
# Clients support
|
||||
PACKAGECONFIG[clients] = "-Dsimple-clients=${SIMPLECLIENTS} -Ddemo-clients=true,-Dsimple-clients= -Ddemo-clients=false"
|
||||
# Virtual remote output with GStreamer on DRM backend
|
||||
PACKAGECONFIG[remoting] = "-Dremoting=true,-Dremoting=false,gstreamer1.0 gstreamer1.0-plugins-base"
|
||||
# Weston with screen-share support
|
||||
PACKAGECONFIG[screenshare] = "-Dscreenshare=true,-Dscreenshare=false"
|
||||
# Traditional desktop shell
|
||||
PACKAGECONFIG[shell-desktop] = "-Dshell-desktop=true,-Dshell-desktop=false"
|
||||
# Fullscreen shell
|
||||
PACKAGECONFIG[shell-fullscreen] = "-Dshell-fullscreen=true,-Dshell-fullscreen=false"
|
||||
# In-Vehicle Infotainment (IVI) shell
|
||||
PACKAGECONFIG[shell-ivi] = "-Dshell-ivi=true,-Dshell-ivi=false"
|
||||
# Kiosk shell
|
||||
PACKAGECONFIG[shell-kiosk] = "-Dshell-kiosk=true,-Dshell-kiosk=false"
|
||||
# JPEG image loading support
|
||||
PACKAGECONFIG[image-jpeg] = "-Dimage-jpeg=true,-Dimage-jpeg=false, jpeg"
|
||||
# support libseat based launch
|
||||
PACKAGECONFIG[launcher-libseat] = "-Dlauncher-libseat=true,-Dlauncher-libseat=false,seatd"
|
||||
# deprecated and superseded by libseat launcher
|
||||
PACKAGECONFIG[launcher-logind] = "-Ddeprecated-launcher-logind=true,-Ddeprecated-launcher-logind=false,"
|
||||
# screencasting via PipeWire
|
||||
PACKAGECONFIG[pipewire] = "-Dbackend-pipewire=true,-Dbackend-pipewire=false,pipewire"
|
||||
# VNC remote screensharing
|
||||
PACKAGECONFIG[vnc] = "-Dbackend-vnc=true,-Dbackend-vnc=false,neatvnc"
|
||||
|
||||
|
||||
do_install:append() {
|
||||
# Weston doesn't need the .la files to load modules, so wipe them
|
||||
rm -f ${D}/${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.la
|
||||
|
||||
# If X11, ship a desktop file to launch it
|
||||
if [ "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}" ]; then
|
||||
install -d ${D}${datadir}/applications
|
||||
install ${WORKDIR}/weston.desktop ${D}${datadir}/applications
|
||||
|
||||
install -d ${D}${datadir}/icons/hicolor/48x48/apps
|
||||
install ${WORKDIR}/weston.png ${D}${datadir}/icons/hicolor/48x48/apps
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', 'yes', 'no', d)}" = "yes" ]; then
|
||||
install -Dm 644 ${WORKDIR}/xwayland.weston-start ${D}${datadir}/weston-start/xwayland
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'systemd', 'yes', 'no', d)}" = "yes" ]; then
|
||||
install -Dm 644 ${WORKDIR}/systemd-notify.weston-start ${D}${datadir}/weston-start/systemd-notify
|
||||
fi
|
||||
|
||||
if [ "${@bb.utils.contains('PACKAGECONFIG', 'launch', 'yes', 'no', d)}" = "yes" ]; then
|
||||
chmod u+s ${D}${bindir}/weston-launch
|
||||
fi
|
||||
}
|
||||
|
||||
PACKAGES += "${@bb.utils.contains('PACKAGECONFIG', 'xwayland', '${PN}-xwayland', '', d)} \
|
||||
libweston-${WESTON_MAJOR_VERSION} ${PN}-examples"
|
||||
|
||||
FILES:${PN}-dev += "${libdir}/${BPN}/libexec_weston.so"
|
||||
FILES:${PN} = "${sysconfdir} ${bindir}/weston ${bindir}/weston-terminal ${bindir}/weston-info ${bindir}/weston-launch ${bindir}/wcap-decode ${libexecdir} ${libdir}/${BPN}/*.so* ${datadir}"
|
||||
|
||||
FILES:libweston-${WESTON_MAJOR_VERSION} = "${libdir}/lib*${SOLIBS} ${libdir}/libweston-${WESTON_MAJOR_VERSION}/*.so"
|
||||
SUMMARY:libweston-${WESTON_MAJOR_VERSION} = "Helper library for implementing 'wayland window managers'."
|
||||
|
||||
FILES:${PN}-examples = "${bindir}/*"
|
||||
|
||||
FILES:${PN}-xwayland = "${libdir}/libweston-${WESTON_MAJOR_VERSION}/xwayland.so"
|
||||
RDEPENDS:${PN}-xwayland += "xwayland"
|
||||
|
||||
RDEPENDS:${PN} += "xkeyboard-config"
|
||||
RRECOMMENDS:${PN} = "weston-init liberation-fonts"
|
||||
RRECOMMENDS:${PN}-dev += "wayland-protocols"
|
||||
|
||||
USERADD_PACKAGES = "${PN}"
|
||||
GROUPADD_PARAM:${PN} = "--system weston-launch"
|
||||
|
||||
########### End of OE-core copy ###########
|
||||
|
||||
########### i.MX overrides ################
|
||||
|
||||
SUMMARY = "Weston, a Wayland compositor, i.MX fork"
|
||||
LIC_FILES_CHKSUM:remove = "file://COPYING;md5=d79ee9e66bb0f95d3386a7acae780b70"
|
||||
LIC_FILES_CHKSUM += "file://LICENSE;md5=d79ee9e66bb0f95d3386a7acae780b70"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
SRC_URI:remove = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${PV}/downloads/${BPN}-${PV}.tar.xz"
|
||||
SRC_URI:prepend = "${WESTON_SRC};branch=${SRCBRANCH} "
|
||||
WESTON_SRC ?= "git://github.com/nxp-imx/weston-imx.git;protocol=https"
|
||||
SRC_URI += "file://0001-Revert-protocol-no-found-wayland-scanner-with-Yocto-.patch"
|
||||
SRCBRANCH = "weston-imx-12.0.4"
|
||||
SRCREV = "de7f8df4b4275e9bb345cacab6962d1a490d9eab"
|
||||
S = "${WORKDIR}/git"
|
||||
|
||||
PACKAGECONFIG_IMX_REMOVALS ?= "wayland x11"
|
||||
PACKAGECONFIG:remove = "${PACKAGECONFIG_IMX_REMOVALS}"
|
||||
|
||||
PACKAGECONFIG:append = " ${PACKAGECONFIG_G2D}"
|
||||
PACKAGECONFIG_G2D ??= ""
|
||||
PACKAGECONFIG_G2D:imxgpu2d ??= "imxg2d"
|
||||
PACKAGECONFIG_G2D:mx93-nxp-bsp ??= "imxg2d"
|
||||
|
||||
# Weston with i.MX G2D renderer
|
||||
PACKAGECONFIG[imxg2d] = "-Drenderer-g2d=true,-Drenderer-g2d=false,virtual/libg2d"
|
||||
|
||||
# Weston on RDP, fix for base recipe
|
||||
PACKAGECONFIG[rdp] = "-Dbackend-rdp=true,-Dbackend-rdp=false,freerdp,freerdp"
|
||||
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
PACKAGE_ARCH = "${MACHINE_SOCARCH}"
|
||||
COMPATIBLE_MACHINE = "(imx-nxp-bsp)"
|
||||
|
||||
########### End of i.MX overrides #########
|
||||
@@ -0,0 +1,2 @@
|
||||
xinput set-int-prop "MXS touchscreen" "Evdev Axis Calibration" 32 194 3938 301 3878
|
||||
xinput set-int-prop "MXS touchscreen" "Evdev Axes Swap" 8 1
|
||||
@@ -0,0 +1,2 @@
|
||||
xinput set-int-prop "EETI eGalax Touch Screen" "Evdev Axis Calibration" 42060 2062 -8 -783544 1 1549 65536
|
||||
xinput set-int-prop "EETI eGalax Touch Screen" "Evdev Axes Swap" 8 0
|
||||
@@ -0,0 +1,2 @@
|
||||
# Append path for freescale layer to include bsp pointercal.xinput
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,16 @@
|
||||
Section "Device"
|
||||
Identifier "i.MX Accelerated Framebuffer Device"
|
||||
Driver "imx"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
# This option only recognized when "mxc_epdc_fb" frame buffer driver in
|
||||
# use. Values are "RGB565" (default, 16-bit RGB), "Y8" (8-bit gray),
|
||||
# and "Y8INV" (8-bit gray inverted).
|
||||
Option "FormatEPDC" "Y8INV"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,15 @@
|
||||
Section "Device"
|
||||
Identifier "i.MX Accelerated Framebuffer Device"
|
||||
Driver "vivante"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
Option "vivante_fbdev" "/dev/fb0"
|
||||
Option "HWcursor" "false"
|
||||
Option "DisplayEngine" "pxp"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,15 @@
|
||||
Section "Device"
|
||||
Identifier "i.MX Accelerated Framebuffer Device"
|
||||
Driver "vivante"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
Option "vivante_fbdev" "/dev/fb0"
|
||||
Option "HWcursor" "false"
|
||||
Option "DisplayEngine" "pxp"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,15 @@
|
||||
Section "Device"
|
||||
Identifier "i.MX Accelerated Framebuffer Device"
|
||||
Driver "vivante"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
Option "vivante_fbdev" "/dev/fb0"
|
||||
Option "HWcursor" "false"
|
||||
Option "VivCacheMem" "false"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "Kernel Framebuffer Device"
|
||||
Driver "fbdev"
|
||||
Option "fbdev" "/dev/fb0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,27 @@
|
||||
Section "Screen"
|
||||
Identifier "Builtin Default fbdev Screen 0"
|
||||
Device "Builtin Default fbdev Device 0"
|
||||
EndSection
|
||||
|
||||
Section "ServerLayout"
|
||||
Identifier "Builtin Default Layout"
|
||||
Screen "Builtin Default fbdev Screen 0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "DontZap" "0"
|
||||
EndSection
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "keyboard-all"
|
||||
Driver "evdev"
|
||||
MatchIsKeyboard "on"
|
||||
EndSection
|
||||
|
||||
|
||||
Section "InputClass"
|
||||
Identifier "mouse-all"
|
||||
Driver "evdev"
|
||||
MatchIsPointer "on"
|
||||
EndSection
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
Section "Device"
|
||||
Identifier "etnaviv"
|
||||
Driver "modesetting"
|
||||
Option "kmsdev" "/dev/dri/card1"
|
||||
Option "AccelMethod" "glamor"
|
||||
Option "Atomic" "On"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "AutoAddGPU" "false"
|
||||
Option "DRI" "3"
|
||||
EndSection
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
Section "Device"
|
||||
Identifier "DCU DRM/KMS using Modesetting"
|
||||
Driver "modesetting"
|
||||
Option "kmsdev" "/dev/dri/card0"
|
||||
EndSection
|
||||
|
||||
Section "ServerFlags"
|
||||
Option "BlankTime" "0"
|
||||
Option "StandbyTime" "0"
|
||||
Option "SuspendTime" "0"
|
||||
Option "OffTime" "0"
|
||||
EndSection
|
||||
@@ -0,0 +1,2 @@
|
||||
# Append path for freescale layer to include bsp xorg.conf
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
@@ -0,0 +1,36 @@
|
||||
From 8f50f62cf9030d1839e23a7f1ff9688dec2063e4 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Abrecht <public@danielabrecht.ch>
|
||||
Date: Wed, 21 Oct 2020 21:13:30 +0200
|
||||
Subject: [PATCH] Allow to enable atomic in modesetting DDX
|
||||
|
||||
The linux kernel blacklisted atomic for the modesetting DDX to deal with
|
||||
problems with old Xorg versions which didn't have it disabled by default.
|
||||
Ever since, it wasn't possible to enable atomic in modesetting at all
|
||||
anymore.
|
||||
|
||||
This change doesn't enable atomic by default, but it allows a user to
|
||||
enabled it again.
|
||||
|
||||
Upstream-Status: Pending
|
||||
Signed-off-by: Daniel Abrecht <public@danielabrecht.ch>
|
||||
|
||||
---
|
||||
hw/xfree86/drivers/modesetting/driver.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/hw/xfree86/drivers/modesetting/driver.c b/hw/xfree86/drivers/modesetting/driver.c
|
||||
index 535f49d..58a1c67 100644
|
||||
--- a/hw/xfree86/drivers/modesetting/driver.c
|
||||
+++ b/hw/xfree86/drivers/modesetting/driver.c
|
||||
@@ -1236,7 +1236,7 @@ PreInit(ScrnInfoPtr pScrn, int flags)
|
||||
ms->atomic_modeset_capable = (ret == 0);
|
||||
|
||||
if (xf86ReturnOptValBool(ms->drmmode.Options, OPTION_ATOMIC, FALSE)) {
|
||||
- ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 1);
|
||||
+ ret = drmSetClientCap(ms->fd, DRM_CLIENT_CAP_ATOMIC, 2);
|
||||
ms->atomic_modeset = (ret == 0);
|
||||
} else {
|
||||
ms->atomic_modeset = FALSE;
|
||||
--
|
||||
GitLab
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
From c76f5d2c0a0dda534888025d7236465202884665 Mon Sep 17 00:00:00 2001
|
||||
From: Xianzhong <xianzhong.li@nxp.com>
|
||||
Date: Thu, 5 Aug 2021 16:57:43 +0800
|
||||
Subject: [PATCH] glamor: Fix fbo pixmap format with GL_BGRA_EXT
|
||||
|
||||
Red and Blue channels are swizzled in GLES path,
|
||||
Fix color inverse problem with ximagesink command:
|
||||
gst-launch-1.0 videotestsrc pattern=6 num-buffers=1 ! video/x-raw,format=BGRx ! videoconvert ! ximagesink display=:0 -v
|
||||
|
||||
This fix requires GL_EXT_texture_format_BGRA8888 extention, not applicable for upstream.
|
||||
|
||||
Upstream-Status: Inappropriate
|
||||
|
||||
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
|
||||
---
|
||||
glamor/glamor.c | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/glamor/glamor.c
|
||||
+++ b/glamor/glamor.c
|
||||
@@ -586,10 +586,17 @@ glamor_setup_formats(ScreenPtr screen)
|
||||
|
||||
if (glamor_priv->is_gles) {
|
||||
assert(X_BYTE_ORDER == X_LITTLE_ENDIAN);
|
||||
+#if GL_EXT_texture_format_BGRA8888
|
||||
+ glamor_add_format(screen, 24, PICT_x8r8g8b8,
|
||||
+ GL_BGRA_EXT, GL_BGRA_EXT, GL_UNSIGNED_BYTE, TRUE);
|
||||
+ glamor_add_format(screen, 32, PICT_a8r8g8b8,
|
||||
+ GL_BGRA_EXT, GL_BGRA_EXT, GL_UNSIGNED_BYTE, TRUE);
|
||||
+#else
|
||||
glamor_add_format(screen, 24, PICT_x8b8g8r8,
|
||||
GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
|
||||
glamor_add_format(screen, 32, PICT_a8b8g8r8,
|
||||
GL_RGBA8, GL_RGBA, GL_UNSIGNED_BYTE, TRUE);
|
||||
+#endif
|
||||
} else {
|
||||
glamor_add_format(screen, 24, PICT_x8r8g8b8,
|
||||
GL_RGBA, GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, TRUE);
|
||||
@@ -0,0 +1,11 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:"
|
||||
|
||||
SRC_URI:append:use-mainline-bsp = " file://0001-Allow-to-enable-atomic-in-modesetting-DDX.patch"
|
||||
|
||||
SRC_URI:append:imxgpu = " file://0001-glamor-Fix-fbo-pixmap-format-with-GL_BGRA_EXT.patch"
|
||||
|
||||
IMX_OPENGL_PKGCONFIGS_REMOVE = ""
|
||||
IMX_OPENGL_PKGCONFIGS_REMOVE:imxgpu = "glamor"
|
||||
OPENGL_PKGCONFIGS:remove:mx6-nxp-bsp = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
|
||||
OPENGL_PKGCONFIGS:remove:mx7-nxp-bsp = "${IMX_OPENGL_PKGCONFIGS_REMOVE}"
|
||||
OPENGL_PKGCONFIGS:remove:imxdrm = "dri glx"
|
||||
@@ -0,0 +1,31 @@
|
||||
From e75a4d7b4474529967490de6e75ae4f1b7128937 Mon Sep 17 00:00:00 2001
|
||||
From: Xianzhong <xianzhong.li@nxp.com>
|
||||
Date: Sat, 22 Jan 2022 17:57:59 +0800
|
||||
Subject: [PATCH 1/3] Prefer to create GLES2 context for glamor EGL
|
||||
|
||||
created the initial patch for xwayland-21.1.2
|
||||
|
||||
Upstream-Status: Inappropriate [embedded specific]
|
||||
Signed-off-by: Xianzhong <xianzhong.li@nxp.com>
|
||||
---
|
||||
hw/xwayland/xwayland-glamor-gbm.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/hw/xwayland/xwayland-glamor-gbm.c b/hw/xwayland/xwayland-glamor-gbm.c
|
||||
index 12d820e44..8a89919be 100644
|
||||
--- a/hw/xwayland/xwayland-glamor-gbm.c
|
||||
+++ b/hw/xwayland/xwayland-glamor-gbm.c
|
||||
@@ -866,8 +866,8 @@ xwl_glamor_gbm_init_egl(struct xwl_screen *xwl_screen)
|
||||
goto error;
|
||||
}
|
||||
|
||||
- if (!xwl_glamor_try_big_gl_api(xwl_screen) &&
|
||||
- !xwl_glamor_try_gles_api(xwl_screen)) {
|
||||
+ if (!xwl_glamor_try_gles_api(xwl_screen) &&
|
||||
+ !xwl_glamor_try_big_gl_api(xwl_screen)) {
|
||||
ErrorF("Cannot use neither GL nor GLES2\n");
|
||||
goto error;
|
||||
}
|
||||
--
|
||||
2.17.1
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
# This recipe copy helps keep meta-freescale master branch compatible
|
||||
# with Yocto langdale.
|
||||
# (From OE-Core rev: 35fdbd0ea81650a0421d50fb53989d96c5956331)
|
||||
|
||||
SUMMARY = "XWayland is an X Server that runs under Wayland."
|
||||
DESCRIPTION = "XWayland is an X Server running as a Wayland client, \
|
||||
and thus is capable of displaying native X11 client applications in a \
|
||||
Wayland compositor environment. The goal of XWayland is to facilitate \
|
||||
the transition from X Window System to Wayland environments, providing \
|
||||
a way to run unported applications in the meantime."
|
||||
HOMEPAGE = "https://fedoraproject.org/wiki/Changes/XwaylandStandalone"
|
||||
|
||||
DEFAULT_PREFERENCE = "-1"
|
||||
|
||||
LICENSE = "MIT"
|
||||
LIC_FILES_CHKSUM = "file://COPYING;md5=5df87950af51ac2c5822094553ea1880"
|
||||
|
||||
SRC_URI = "https://www.x.org/archive/individual/xserver/${BP_ORIGINAL}.tar.xz"
|
||||
BP_ORIGINAL = "${BPN}-23.2.5"
|
||||
SRC_URI[sha256sum] = "33ec7ff2687a59faaa52b9b09aa8caf118e7ecb6aed8953f526a625ff9f4bd90"
|
||||
S = "${WORKDIR}/${BP_ORIGINAL}"
|
||||
|
||||
UPSTREAM_CHECK_REGEX = "xwayland-(?P<pver>\d+(\.(?!90\d)\d+)+)\.tar"
|
||||
|
||||
inherit meson features_check pkgconfig
|
||||
REQUIRED_DISTRO_FEATURES = "x11 opengl"
|
||||
|
||||
DEPENDS += "xorgproto xtrans pixman libxkbfile libxfont2 wayland wayland-native wayland-protocols libdrm libepoxy libxcvt"
|
||||
|
||||
OPENGL_PKGCONFIGS = "glx glamor dri3"
|
||||
PACKAGECONFIG ??= "${XORG_CRYPTO} \
|
||||
${@bb.utils.contains('DISTRO_FEATURES', 'opengl', '${OPENGL_PKGCONFIGS}', '', d)} \
|
||||
"
|
||||
PACKAGECONFIG[dri3] = "-Ddri3=true,-Ddri3=false,libxshmfence"
|
||||
PACKAGECONFIG[glx] = "-Dglx=true,-Dglx=false,virtual/libgl virtual/libx11"
|
||||
PACKAGECONFIG[glamor] = "-Dglamor=true,-Dglamor=false,libepoxy virtual/libgbm,libegl"
|
||||
PACKAGECONFIG[unwind] = "-Dlibunwind=true,-Dlibunwind=false,libunwind"
|
||||
PACKAGECONFIG[xinerama] = "-Dxinerama=true,-Dxinerama=false"
|
||||
|
||||
# Xorg requires a SHA1 implementation, pick one
|
||||
XORG_CRYPTO ??= "openssl"
|
||||
PACKAGECONFIG[openssl] = "-Dsha1=libcrypto,,openssl"
|
||||
PACKAGECONFIG[nettle] = "-Dsha1=libnettle,,nettle"
|
||||
PACKAGECONFIG[gcrypt] = "-Dsha1=libgcrypt,,libgcrypt"
|
||||
|
||||
do_install:append() {
|
||||
# remove files not needed and clashing with xserver-xorg
|
||||
rm -rf ${D}/${libdir}/xorg/
|
||||
}
|
||||
|
||||
FILES:${PN} += "${libdir}/xorg/protocol.txt"
|
||||
|
||||
RDEPENDS:${PN} += "xkbcomp"
|
||||
@@ -0,0 +1,18 @@
|
||||
FILESEXTRAPATHS:prepend := "${THISDIR}/${PN}:"
|
||||
|
||||
SRC_URI:append:imxgpu = " \
|
||||
file://0001-Prefer-to-create-GLES2-context-for-glamor-EGL.patch \
|
||||
"
|
||||
|
||||
OPENGL_PKGCONFIGS:remove:imxgpu = "${OPENGL_PKGCONFIGS_REMOVE_IMXGPU}"
|
||||
OPENGL_PKGCONFIGS_REMOVE_IMXGPU = ""
|
||||
OPENGL_PKGCONFIGS_REMOVE_IMXGPU:imx-nxp-bsp = "glamor glx"
|
||||
OPENGL_PKGCONFIGS_REMOVE_IMXGPU:mx8-nxp-bsp = "glx"
|
||||
|
||||
# links with imx-gpu libs which are pre-built for glibc
|
||||
# gcompat will address it during runtime
|
||||
LDFLAGS:append:imxgpu:libc-musl = " -Wl,--allow-shlib-undefined"
|
||||
|
||||
RDEPENDS:${PN}:append:imxgpu:libc-musl = " gcompat"
|
||||
|
||||
PACKAGE_ARCH:imxgpu = "${MACHINE_SOCARCH}"
|
||||
Reference in New Issue
Block a user