aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2022-09-03 00:27:30 -0700
committerKhem Raj <raj.khem@gmail.com>2022-09-11 23:27:08 -0700
commit1bd5688a0b9d2df7a079783cc28f7a92d9d9af0d (patch)
tree3416a26929da126c664fc99a64bb3c185ab813d9 /meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
parent21928e8aede47d87a27be5a0506d8d26813ce1e3 (diff)
downloadmeta-openembedded-contrib-1bd5688a0b9d2df7a079783cc28f7a92d9d9af0d.tar.gz
vulkan-cts,opengl-es-cts: Upgrade to1.3.3.1 and 3.2.8 respectively
Add needed depednency on vulkan-docs, jsoncpp and python3-xml-native as they are added newly in these versions. Delete patches already applied in this release Backport one amber patch to fix compile with clang Forward port the remaining patches Add mechanism to run target test binaries using qemu usermode Override WAYLAND_SCANNER and WAYLAND_PROTOCOLS_DIR Let these variables be set via cmake cmdline before enquiring via pkg-config Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc')
-rw-r--r--meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc30
1 files changed, 22 insertions, 8 deletions
diff --git a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
index 7d73bfbf31..f9074556f1 100644
--- a/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
+++ b/meta-oe/recipes-graphics/vk-gl-cts/khronos-cts.inc
@@ -7,23 +7,24 @@ SRC_URI = "\
git://github.com/KhronosGroup/glslang.git;protocol=https;destsuffix=git/external/glslang/src;name=glslang;branch=master \
git://github.com/KhronosGroup/SPIRV-Headers.git;protocol=https;destsuffix=git/external/spirv-headers/src;name=spirv-headers;branch=master \
git://github.com/KhronosGroup/SPIRV-Tools.git;protocol=https;destsuffix=git/external/spirv-tools/src;name=spirv-tools;branch=master \
- https://raw.githubusercontent.com/baldurk/renderdoc/v1.1/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
+ git://github.com/open-source-parsers/jsoncpp.git;protocol=https;destsuffix=git/external/jsoncpp/src;name=jsoncpp;branch=master \
+ git://github.com/KhronosGroup/Vulkan-Docs.git;protocol=https;destsuffix=git/external/vulkan-docs/src;name=vulkan-docs;branch=main \
+ https://raw.githubusercontent.com/baldurk/renderdoc/fcdea67879fa1991e56cf7734ce0ce27866b665f/renderdoc/api/app/renderdoc_app.h;subdir=git/external/renderdoc/src;name=renderdoc \
"
S = "${WORKDIR}/git"
-SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools"
+SRCREV_FORMAT = "vk-gl-cts_amber_glslang_spirv-headers_spirv-tools_jsoncpp_vulkan-docs"
S = "${WORKDIR}/git"
-inherit pkgconfig cmake features_check
+inherit pkgconfig cmake features_check python3native qemu
ANY_OF_DISTRO_FEATURES += "opengl wayland"
-DEPENDS += "libpng zlib virtual/libgles2"
+DEPENDS += "python3-lxml-native libpng zlib virtual/libgles2 qemu-native"
-SRC_URI += "file://0001-Workaround-for-GCC-11-uninit-variable-warnings-946.patch;patchdir=external/amber/src \
- file://0001-Include-limits-header-for-numeric_limits.patch;patchdir=external/vulkancts \
+SRC_URI += " \
file://0001-vulkancts.patch \
file://0001-use-library-sonames-for-linking.patch \
"
@@ -37,6 +38,8 @@ SRC_URI:append:toolchain-clang = "\
file://fix-clang-private-operator.patch \
"
+EXTRA_OECMAKE:prepend:class-target = "-DCMAKE_CROSSCOMPILING_EMULATOR=${WORKDIR}/qemuwrapper -DWAYLAND_SCANNER=${STAGING_BINDIR_NATIVE}/wayland-scanner -DWAYLAND_PROTOCOLS_DIR=${STAGING_DATADIR}/wayland-protocols"
+
# The best thing for the user to do is to not specify any of the following
# PACKAGECONFIGs (i.e. leave it blank) which tells the project to do its own
# probing and build what it thinks is appropriate.
@@ -44,11 +47,22 @@ SRC_URI:append:toolchain-clang = "\
# to override this behaviour.
PACKAGECONFIG ??= ""
PACKAGECONFIG[surfaceless] = "-DDEQP_TARGET=surfaceless,,,,,wayland x11_egl x11_glx x11_egl_glx"
-PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,,wayland,,,surfaceless x11_egl x11_glx x11_egl_glx"
+PACKAGECONFIG[wayland] = "-DDEQP_TARGET=wayland,,wayland-native wayland wayland-protocols,,,surfaceless x11_egl x11_glx x11_egl_glx"
PACKAGECONFIG[x11_egl] = "-DDEQP_TARGET=x11_egl,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_glx x11_egl_glx"
PACKAGECONFIG[x11_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11,,,surfaceless wayland x11_egl x11_egl_glx"
PACKAGECONFIG[x11_egl_glx] = "-DDEQP_TARGET=x11_glx,,virtual/libx11 virtual/egl,,,surfaceless wayland x11_egl x11_glx"
+do_configure:append() {
+ # Write out a qemu wrapper that will be used by cmake
+ # so that it can run target helper binaries through that.
+ qemu_binary="${@qemu_wrapper_cmdline(d, d.getVar('STAGING_DIR_HOST'), [d.expand('${STAGING_DIR_HOST}${libdir}'),d.expand('${STAGING_DIR_HOST}${base_libdir}')])}"
+ cat > ${WORKDIR}/qemuwrapper << EOF
+#!/bin/sh
+$qemu_binary "\$@"
+EOF
+ chmod +x ${WORKDIR}/qemuwrapper
+}
+
python __anonymous() {
# if the user doesn't specify any PACKAGECONFIG then the cts build system
# is going to probe the sysroot to try to figure out what to build
@@ -57,7 +71,7 @@ python __anonymous() {
distrofeatures = (d.getVar("DISTRO_FEATURES") or "")
if not bb.utils.contains_any("PACKAGECONFIG", ["surfaceless", "wayland", "x11_egl", "x11_glx", "x11_egl_glx"], True, False, d):
if "wayland" in distrofeatures:
- d.appendVar("DEPENDS", " wayland ")
+ d.appendVar("DEPENDS", " wayland-native wayland wayland-protocols")
if "x11" in distrofeatures:
d.appendVar("DEPENDS", " virtual/libx11 virtual/egl ")
}