From 583dc784bc619717ea4fd4162e83633a910d5e5b Mon Sep 17 00:00:00 2001 From: Gabriel Valcazar Date: Tue, 14 May 2019 14:07:21 +0200 Subject: [PATCH] vulkan: update vulkan recipes Make our vulkan sub-folder match NXP's by updating recipes, deleting ones that are no longer needed and adding new ones. Also, stop forcing 1.0.65% as the preferred vulkan version. https://jira.digi.com/browse/DEL-6603 Signed-off-by: Gabriel Valcazar --- meta-digi-dey/conf/distro/dey.conf | 3 - .../recipes-graphics/vulkan/assimp_4.1.0.bb | 20 ---- ...eLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch | 82 ------------- .../recipes-graphics/vulkan/glslang_git.bb | 10 +- .../vulkan/spirv-tools_git.bb | 6 +- ...s-Use-depth-format-supported-by-i.MX.patch | 56 +++++++++ .../recipes-graphics/vulkan/vkmark_1.0.bb | 7 +- .../vulkan/vulkan-demos_%.bbappend | 3 +- .../vulkan/vulkan-headers_%.bbappend | 3 + .../vulkan/vulkan-headers_1.1.92.0.bb | 20 ++++ ...d-to-change-the-App-s-apiVersion-to-.patch | 38 ++++++ .../vulkan/vulkan-loader_%.bbappend | 8 ++ .../vulkan/vulkan-loader_1.1.92.0.bb | 34 ++++++ .../vulkan/vulkan-tools_%.bbappend | 10 ++ .../vulkan/vulkan-tools_1.1.92.bb | 25 ++++ ...hange-the-installation-path-of-JSON-.patch | 38 ++++++ .../icd_VSI.json | 0 ...end => vulkan-validationlayers_%.bbappend} | 15 +-- ...bb => vulkan-validationlayers_1.1.92.0.bb} | 27 +++-- ...-Modify-the-library-path-to-point-to.patch | 27 ----- .../demos-Don-t-build-tri-or-cube.patch | 108 ------------------ 21 files changed, 268 insertions(+), 272 deletions(-) delete mode 100644 meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb delete mode 100644 meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vkmark/0001-scenes-Use-depth-format-supported-by-i.MX.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_1.1.92.0.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-loader/0001-STDIO-844-No-need-to-change-the-App-s-apiVersion-to-.patch create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_1.1.92.0.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_%.bbappend create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_1.1.92.bb create mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/0001-CMakeLists.txt-Change-the-installation-path-of-JSON-.patch rename meta-digi-dey/recipes-graphics/vulkan/{vulkan => vulkan-validationlayers}/icd_VSI.json (100%) rename meta-digi-dey/recipes-graphics/vulkan/{vulkan_%.bbappend => vulkan-validationlayers_%.bbappend} (69%) rename meta-digi-dey/recipes-graphics/vulkan/{vulkan_1.0.65.2.bb => vulkan-validationlayers_1.1.92.0.bb} (50%) delete mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to.patch delete mode 100644 meta-digi-dey/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch diff --git a/meta-digi-dey/conf/distro/dey.conf b/meta-digi-dey/conf/distro/dey.conf index 6d52fcf19..7a36eec5c 100644 --- a/meta-digi-dey/conf/distro/dey.conf +++ b/meta-digi-dey/conf/distro/dey.conf @@ -68,9 +68,6 @@ PREFERRED_PROVIDER_u-boot-fw-utils ?= "u-boot-fw-utils" # Use git recipe for libsoc PREFERRED_VERSION_libsoc = "git" -# Gstreamer 1.14.0 requires a specific vulkan version. -PREFERRED_VERSION_vulkan ?= "1.0.65%" - SDK_NAME = "${DISTRO}-${TCLIBC}-${SDK_ARCH}-${IMAGE_BASENAME}-${TUNE_PKGARCH}" SDKPATH = "/opt/${DISTRO}/${SDK_VERSION}" diff --git a/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb b/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb deleted file mode 100644 index 194cbe33c..000000000 --- a/meta-digi-dey/recipes-graphics/vulkan/assimp_4.1.0.bb +++ /dev/null @@ -1,20 +0,0 @@ -DESCRIPTION = "Open Asset Import Library is a portable Open Source library to import \ - various well-known 3D model formats in a uniform manner." -HOMEPAGE = "http://www.assimp.org/" -SECTION = "devel" - -LICENSE = "BSD-3-Clause" -LIC_FILES_CHKSUM = "file://LICENSE;md5=2119edef0916b0bd511cb3c731076271" - -DEPENDS = "zlib" - -SRC_URI = "git://github.com/assimp/assimp.git" -UPSTREAM_CHECK_GITTAGREGEX = "v(?P(\d+(\.\d+)+))" - -SRCREV = "80799bdbf90ce626475635815ee18537718a05b1" - -S = "${WORKDIR}/git" - -inherit cmake - -EXTRA_OECMAKE = "-DASSIMP_BUILD_ASSIMP_TOOLS=OFF -DASSIMP_BUILD_TESTS=OFF -DASSIMP_LIB_INSTALL_DIR=${baselib}" diff --git a/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch b/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch deleted file mode 100644 index cef3e8e61..000000000 --- a/meta-digi-dey/recipes-graphics/vulkan/glslang/0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 372422ed8ce32e1085cd524156c687df65095237 Mon Sep 17 00:00:00 2001 -From: Awais Belal -Date: Tue, 25 Oct 2016 14:44:20 +0500 -Subject: [PATCH] CMakeLists.txt: obey CMAKE_INSTALL_LIBDIR - -Not using the exact path that is set through cmake -will end up in a mixed configuration setup where -files are installed on hard-coded locations. - -Signed-off-by: Awais Belal ---- - OGLCompilersDLL/CMakeLists.txt | 2 +- - SPIRV/CMakeLists.txt | 2 +- - glslang/CMakeLists.txt | 2 +- - glslang/OSDependent/Unix/CMakeLists.txt | 2 +- - glslang/OSDependent/Windows/CMakeLists.txt | 2 +- - hlsl/CMakeLists.txt | 2 +- - 6 files changed, 6 insertions(+), 6 deletions(-) - -diff --git a/OGLCompilersDLL/CMakeLists.txt b/OGLCompilersDLL/CMakeLists.txt -index 4954db9..6b518d9 100644 ---- a/OGLCompilersDLL/CMakeLists.txt -+++ b/OGLCompilersDLL/CMakeLists.txt -@@ -8,4 +8,4 @@ if(WIN32) - endif(WIN32) - - install(TARGETS OGLCompiler -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -diff --git a/SPIRV/CMakeLists.txt b/SPIRV/CMakeLists.txt -index 48a6c46..c657d56 100755 ---- a/SPIRV/CMakeLists.txt -+++ b/SPIRV/CMakeLists.txt -@@ -41,4 +41,4 @@ if(WIN32) - endif(WIN32) - - install(TARGETS SPIRV SPVRemapper -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -diff --git a/glslang/CMakeLists.txt b/glslang/CMakeLists.txt -index ff91135..efb7f15 100644 ---- a/glslang/CMakeLists.txt -+++ b/glslang/CMakeLists.txt -@@ -89,4 +89,4 @@ if(WIN32) - endif(WIN32) - - install(TARGETS glslang -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -diff --git a/glslang/OSDependent/Unix/CMakeLists.txt b/glslang/OSDependent/Unix/CMakeLists.txt -index 174cc91..d98057b 100644 ---- a/glslang/OSDependent/Unix/CMakeLists.txt -+++ b/glslang/OSDependent/Unix/CMakeLists.txt -@@ -2,4 +2,4 @@ add_library(OSDependent STATIC ossource.cpp ../osinclude.h) - set_property(TARGET OSDependent PROPERTY FOLDER glslang) - - install(TARGETS OSDependent -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -diff --git a/glslang/OSDependent/Windows/CMakeLists.txt b/glslang/OSDependent/Windows/CMakeLists.txt -index 399760c..744bcbb 100644 ---- a/glslang/OSDependent/Windows/CMakeLists.txt -+++ b/glslang/OSDependent/Windows/CMakeLists.txt -@@ -14,4 +14,4 @@ if(WIN32) - endif(WIN32) - - install(TARGETS OSDependent -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) -diff --git a/hlsl/CMakeLists.txt b/hlsl/CMakeLists.txt -index c7537e2..5111661 100755 ---- a/hlsl/CMakeLists.txt -+++ b/hlsl/CMakeLists.txt -@@ -23,4 +23,4 @@ if(WIN32) - endif(WIN32) - - install(TARGETS HLSL -- ARCHIVE DESTINATION lib) -+ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}) --- -1.9.1 - diff --git a/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb b/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb index 15852cacd..1ee5b60f4 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb +++ b/meta-digi-dey/recipes-graphics/vulkan/glslang_git.bb @@ -10,13 +10,13 @@ HOMEPAGE = "https://www.khronos.org/opengles/sdk/tools/Reference-Compiler" inherit cmake LICENSE = "BSD" -LIC_FILES_CHKSUM = "file://glslang/Include/Types.h;beginline=1;endline=36;md5=6639a5f9543e833d71e2f4e4ff52f34b" +LIC_FILES_CHKSUM = "file://glslang/Include/Types.h;beginline=1;endline=36;md5=26473d85c7f85d955e24663f67a53818" S = "${WORKDIR}/git" -SRCREV = "81cd764b5ffc475bc73f1fb35f75fd1171bb2343" +SRCREV = "1bc601c674aecc2fee0dee8ff7a118db76b4c439" SRC_URI = "git://github.com/KhronosGroup/glslang \ - file://0001-CMakeLists.txt-obey-CMAKE_INSTALL_LIBDIR.patch" +" FILES_${PN} += "${libdir}/*" @@ -30,6 +30,10 @@ do_install_append() { cp -f ${S}/SPIRV/SPVRemapper.h ${D}${includedir}/SPIRV cp -f ${S}/SPIRV/spvIR.h ${D}${includedir}/SPIRV + # Remove redundant headers from spirv-headers + rm -rf ${D}${includedir}/SPIRV/GLSL.std.450.h + rm -rf ${D}${includedir}/SPIRV/spirv.hpp + install -d ${D}${includedir}/glslang/Include cp -f ${S}/glslang/Include/*.h ${D}${includedir}/glslang/Include install -d ${D}${includedir}/glslang/Public diff --git a/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb index f1682368a..8859b3400 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb +++ b/meta-digi-dey/recipes-graphics/vulkan/spirv-tools_git.bb @@ -12,10 +12,10 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57" S = "${WORKDIR}/git" SPIRV_HEADERS_LOCATION = "${S}/external/spirv-headers" -HEADERS_VERSION = "1.1" +HEADERS_VERSION = "unified1" -SRCREV_spirv-tools = "2c0ce872103d676bf8de5dc87a03ad2c32e215a2" -SRCREV_spirv-headers = "3a4dbdde9a9b2cf23736694ba70262dce27fbeaa" +SRCREV_spirv-tools = "9d699f6d4038f432c55310d5d0b4a6d507c1b686" +SRCREV_spirv-headers = "2434b89345a50c018c84f42a310b0fad4f3fd94f" SRC_URI = "git://github.com/KhronosGroup/SPIRV-Tools;protocol=http;name=spirv-tools \ git://github.com/KhronosGroup/SPIRV-Headers;name=spirv-headers;destsuffix=${SPIRV_HEADERS_LOCATION} \ file://0002-spirv-lesspipe.sh-allow-using-generic-shells.patch" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vkmark/0001-scenes-Use-depth-format-supported-by-i.MX.patch b/meta-digi-dey/recipes-graphics/vulkan/vkmark/0001-scenes-Use-depth-format-supported-by-i.MX.patch new file mode 100644 index 000000000..d1c71897f --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vkmark/0001-scenes-Use-depth-format-supported-by-i.MX.patch @@ -0,0 +1,56 @@ +From 436b5b09a0f5fcd3b4f2c1711e850b52b357befb Mon Sep 17 00:00:00 2001 +From: Tom Hochstein +Date: Wed, 13 Jun 2018 22:02:20 +0000 +Subject: [PATCH] scenes: Use depth format supported by i.MX + +Upstream-Status: Inappropriate [i.MX-specific] + +Signed-off-by: Tom Hochstein +--- + src/scenes/shading_scene.cpp | 2 +- + src/scenes/texture_scene.cpp | 2 +- + src/scenes/vertex_scene.cpp | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/scenes/shading_scene.cpp b/src/scenes/shading_scene.cpp +index fa496ba..3e19ee8 100644 +--- a/src/scenes/shading_scene.cpp ++++ b/src/scenes/shading_scene.cpp +@@ -64,7 +64,7 @@ void ShadingScene::setup( + vulkan = &vulkan_; + extent = vulkan_images[0].extent; + format = vulkan_images[0].format; +- depth_format = vk::Format::eD32Sfloat; ++ depth_format = vk::Format::eD24UnormS8Uint; + aspect = static_cast(extent.height) / extent.width; + + mesh = Model{"cat.3ds"}.to_mesh( +diff --git a/src/scenes/texture_scene.cpp b/src/scenes/texture_scene.cpp +index 04a8207..ccc9d2f 100644 +--- a/src/scenes/texture_scene.cpp ++++ b/src/scenes/texture_scene.cpp +@@ -65,7 +65,7 @@ void TextureScene::setup( + vulkan = &vulkan_; + extent = vulkan_images[0].extent; + format = vulkan_images[0].format; +- depth_format = vk::Format::eD32Sfloat; ++ depth_format = vk::Format::eD24UnormS8Uint; + aspect = static_cast(extent.height) / extent.width; + + mesh = Model{"cube.3ds"}.to_mesh( +diff --git a/src/scenes/vertex_scene.cpp b/src/scenes/vertex_scene.cpp +index 0fd7fe7..4f6d49a 100644 +--- a/src/scenes/vertex_scene.cpp ++++ b/src/scenes/vertex_scene.cpp +@@ -66,7 +66,7 @@ void VertexScene::setup( + vulkan = &vulkan_; + extent = vulkan_images[0].extent; + format = vulkan_images[0].format; +- depth_format = vk::Format::eD32Sfloat; ++ depth_format = vk::Format::eD24UnormS8Uint; + aspect = static_cast(extent.height) / extent.width; + + mesh = Model{"horse.3ds"}.to_mesh( +-- +2.7.4 + diff --git a/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb b/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb index f549fde41..871e9c5da 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb +++ b/meta-digi-dey/recipes-graphics/vulkan/vkmark_1.0.bb @@ -10,12 +10,13 @@ inherit meson S = "${WORKDIR}/git" -SRCREV = "${AUTOREV}" +SRCREV = "1ebd49364f03372a710f010c01dedd0d79456413" SRC_URI = "git://github.com/vkmark/vkmark;protocol=https" +SRC_URI += "file://0001-scenes-Use-depth-format-supported-by-i.MX.patch" VKMARK_INSTALL_DIR = "${WORKDIR}/vm-install" -DEPENDS = " vulkan imx-gpu-viv assimp glm ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ +DEPENDS = " vulkan-headers vulkan-loader imx-gpu-viv assimp glm ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', '', \ bb.utils.contains('DISTRO_FEATURES', 'x11', ' libxcb','libdrm libgbm', d), d)}" do_compile() { @@ -34,5 +35,3 @@ do_install() { } FILES_${PN} += "${bindir} ${datadir}" - -COMPATIBLE_MACHINE = "(mx8)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend index 2ab9f3ecd..a11dfbd09 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-demos_%.bbappend @@ -1,2 +1,3 @@ -COMPATIBLE_MACHINE = "(mx8)" +DEPENDS_remove = "vulkan" +DEPENDS_append = " vulkan-headers vulkan-loader" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_%.bbappend new file mode 100644 index 000000000..92e0a02a5 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_%.bbappend @@ -0,0 +1,3 @@ + +COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8mm = "(^$)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_1.1.92.0.bb b/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_1.1.92.0.bb new file mode 100644 index 000000000..172526d59 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-headers_1.1.92.0.bb @@ -0,0 +1,20 @@ +SUMMARY = "Vulkan Header files and API registry" +DESCRIPTION = "Vulkan is a new generation graphics and compute API \ +that provides efficient access to modern GPUs." +HOMEPAGE = "https://www.khronos.org/vulkan/" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Headers.git;branch=sdk-1.1.92 \ + " +SRCREV = "114c3546e195819bd53a34b39f5194b2989a5b12" +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +inherit cmake distro_features_check +ANY_OF_DISTRO_FEATURES = "x11 wayland" + +FILES_${PN} += "${datadir}/vulkan/registry" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader/0001-STDIO-844-No-need-to-change-the-App-s-apiVersion-to-.patch b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader/0001-STDIO-844-No-need-to-change-the-App-s-apiVersion-to-.patch new file mode 100644 index 000000000..c6c1a192a --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader/0001-STDIO-844-No-need-to-change-the-App-s-apiVersion-to-.patch @@ -0,0 +1,38 @@ +From 4f7fd011b47cb65c58b0a1ffaa3830f0b63b5b1d Mon Sep 17 00:00:00 2001 +From: Ella +Date: Thu, 7 Mar 2019 17:18:26 +0800 +Subject: [PATCH] STDIO-844 No need to change the App's apiVersion to ICD + version + +There is no need to do so, otherwise we won't catch the App's error and +Vulkan CTS will fail to reject the invalid api version. + +Date: 7th Mar, 2019 +Signed-off-by: Ella Feng +--- + loader/loader.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/loader/loader.c b/loader/loader.c +index 281851584..f2033b6ad 100644 +--- a/loader/loader.c ++++ b/loader/loader.c +@@ -5741,6 +5741,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateInstance(const VkInstanceCreateI + } + + // Create an instance, substituting the version to 1.0 if necessary ++#if 0 + VkApplicationInfo icd_app_info; + uint32_t icd_version_nopatch = VK_MAKE_VERSION(VK_VERSION_MAJOR(icd_version), VK_VERSION_MINOR(icd_version), 0); + uint32_t requested_version = pCreateInfo == NULL || pCreateInfo->pApplicationInfo == NULL ? VK_API_VERSION_1_0 : pCreateInfo->pApplicationInfo->apiVersion; +@@ -5753,6 +5754,7 @@ VKAPI_ATTR VkResult VKAPI_CALL terminator_CreateInstance(const VkInstanceCreateI + icd_app_info.apiVersion = icd_version; + icd_create_info.pApplicationInfo = &icd_app_info; + } ++#endif + icd_result = ptr_instance->icd_tramp_list.scanned_list[i].CreateInstance(&icd_create_info, pAllocator, &(icd_term->instance)); + if (VK_ERROR_OUT_OF_HOST_MEMORY == icd_result) { + // If out of memory, bail immediately. +-- +2.21.0 + diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_%.bbappend new file mode 100644 index 000000000..4bcbda8c8 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_%.bbappend @@ -0,0 +1,8 @@ + +# choose wayland +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" + +SRC_URI_append = " file://0001-STDIO-844-No-need-to-change-the-App-s-apiVersion-to-.patch" + +COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8mm = "(^$)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_1.1.92.0.bb b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_1.1.92.0.bb new file mode 100644 index 000000000..61789543e --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-loader_1.1.92.0.bb @@ -0,0 +1,34 @@ +SUMMARY = "Vulkan loader" +DESCRIPTION = "Vulkan loader is responsible for working with the various \ +layers as well as supporting multiple GPUs and their drivers.The loader is \ +critical to managing the proper dispatching of Vulkan functions to the appropriate \ +set of layers and ICDs." +HOMEPAGE = "https://www.khronos.org/vulkan/" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-Loader" +SECTION = "libs" + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57\ + file://loader/loader.c;endline=25;md5=151b392f46568aaedb4ad22b246237ec" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Loader.git;branch=sdk-1.1.92 \ + " +SRCREV = "4cd7e44fc1ca6c4d8361720b43a3588ddf9fc4b6" +UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" + +S = "${WORKDIR}/git" + +REQUIRED_DISTRO_FEATURES = "vulkan" + +inherit cmake python3native lib_package distro_features_check +ANY_OF_DISTRO_FEATURES = "x11 wayland" + +DEPENDS = "vulkan-headers" + +EXTRA_OECMAKE = "-DBUILD_TESTS=OFF" + +# must choose x11 or wayland or both +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" + +PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON -DDEMOS_WSI_SELECTION=XCB, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF -DDEMOS_WSI_SELECTION=WAYLAND, libxcb libx11 libxrandr" +PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_%.bbappend new file mode 100644 index 000000000..9d121953e --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_%.bbappend @@ -0,0 +1,10 @@ + +# choose wayland +PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" + +EXTRA_OECMAKE = "-DBUILD_CUBE=OFF" + +RDEPENDS_${PN} += "libvulkan-imx" + +COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8mm = "(^$)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_1.1.92.bb b/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_1.1.92.bb new file mode 100644 index 000000000..abfec91e7 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-tools_1.1.92.bb @@ -0,0 +1,25 @@ +SUMMARY = "Vulkan Tools" +DESCRIPTION = "This project provides Vulkan tools and utilities that \ + can assist development by enabling developers to verify their \ + applications correct use of the Vulkan API." +SECTION = "graphics" +HOMEPAGE = "https://github.com/LunarG/VulkanTools" + +DEPENDS = "vulkan-headers vulkan-loader" + +inherit cmake python3native + +LICENSE = "Apache-2.0" +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" + +S = "${WORKDIR}/git" + +SRCREV = "9bbdd552f0fd62741aa1f1e02ab3eafc45cf3c1e" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-Tools.git;branch=sdk-${PV} \ +" +# must choose x11 or wayland or both +PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '' ,d)} \ + ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" + +PACKAGECONFIG[x11] = "-DBUILD_WSI_XLIB_SUPPORT=ON -DBUILD_WSI_XCB_SUPPORT=ON -DCUBE_WSI_SELECTION=XCB, -DBUILD_WSI_XLIB_SUPPORT=OFF -DBUILD_WSI_XCB_SUPPORT=OFF -DCUBE_WSI_SELECTION=WAYLAND, libxcb libx11" +PACKAGECONFIG[wayland] = "-DBUILD_WSI_WAYLAND_SUPPORT=ON, -DBUILD_WSI_WAYLAND_SUPPORT=OFF, wayland" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/0001-CMakeLists.txt-Change-the-installation-path-of-JSON-.patch b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/0001-CMakeLists.txt-Change-the-installation-path-of-JSON-.patch new file mode 100644 index 000000000..9b06c3227 --- /dev/null +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/0001-CMakeLists.txt-Change-the-installation-path-of-JSON-.patch @@ -0,0 +1,38 @@ +From 23ed27a79b3c9afa3dcb2138abf89f466a308702 Mon Sep 17 00:00:00 2001 +From: Neena Busireddy +Date: Wed, 5 Dec 2018 13:33:10 -0600 +Subject: [PATCH] CMakeLists.txt: Change the installation path of JSON files + +Also modify the library path in JSON files to /usr/lib/libVK*.so + +Upstream-Status: Inappropriate [configuration] +Signed-off-by: Neena Busireddy +--- + layers/CMakeLists.txt | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt +index 5fd5b44..c4a7810 100644 +--- a/layers/CMakeLists.txt ++++ b/layers/CMakeLists.txt +@@ -105,7 +105,7 @@ if(WIN32) + elseif(UNIX) # UNIX includes APPLE + foreach(TARGET_NAME ${TARGET_NAMES}) + install(FILES ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${TARGET_NAME}.json +- DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/vulkan/explicit_layer.d) ++ DESTINATION ${CMAKE_INSTALL_SYSCONFDIR}/vulkan/explicit_layer.d) + endforeach() + endif() + +@@ -236,7 +236,7 @@ if(UNIX) + -DVK_VERSION=1.1.${vk_header_version}) + # If this json file is not a metalayer, get the needed properties from that target + if(TARGET ${TARGET_NAME}) +- set(INSTALL_DEFINES ${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY="$") ++ set(INSTALL_DEFINES ${INSTALL_DEFINES} -DRELATIVE_LAYER_BINARY="${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}/$") + endif() + add_custom_target(${TARGET_NAME}-staging-json ALL + COMMAND ${CMAKE_COMMAND} ${INSTALL_DEFINES} -P "${CMAKE_CURRENT_BINARY_DIR}/generator.cmake") +-- +2.7.4 + diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/icd_VSI.json similarity index 100% rename from meta-digi-dey/recipes-graphics/vulkan/vulkan/icd_VSI.json rename to meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers/icd_VSI.json diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_%.bbappend similarity index 69% rename from meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend rename to meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_%.bbappend index d2b0563a8..fb6d88f86 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan_%.bbappend +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_%.bbappend @@ -2,13 +2,12 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/${BPN}:" SRC_URI += " \ file://icd_VSI.json \ - file://0001-CMakeLists.txt-Modify-the-library-path-to-point-to.patch \ + file://0001-CMakeLists.txt-Change-the-installation-path-of-JSON-.patch \ " # choose wayland PACKAGECONFIG = "${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" -DEPENDS = "virtual/egl glslang spirv-tools" -RDEPENDS_${PN} += "libvulkan-imx" +DEPENDS += " virtual/egl glslang spirv-tools" EXTRA_OECMAKE_remove = "-DBUILD_LAYERS=OFF" # Enable validation layers @@ -20,13 +19,15 @@ do_install_append () { cp ${WORKDIR}/icd_VSI.json ${D}${sysconfdir}/vulkan/icd.d sed -i "s,/usr/lib,${libdir}," ${D}${sysconfdir}/vulkan/icd.d/icd_VSI.json sed -i "s,1.0.30,${PV}," ${D}${sysconfdir}/vulkan/icd.d/icd_VSI.json - -# Use some vulkan headers from imx-gpu-viv - rm -rf ${D}${includedir}/vulkan/vk_* } FILES_SOLIBSDEV = "" -FILES_${PN} += "${libdir}/libvulkan.so ${libdir}/libVkLayer_*.so" +FILES_${PN} += "${libdir}/libVkLayer_*.so" + +# The package libvulkan-imx is required to configure the imx-gpu-viv vulkan drivers for the validation layers +RDEPENDS_${PN} += "libvulkan-imx" + INSANE_SKIP_${PN} = "dev-so" COMPATIBLE_MACHINE = "(mx8)" +COMPATIBLE_MACHINE_mx8mm = "(^$)" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan_1.0.65.2.bb b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_1.1.92.0.bb similarity index 50% rename from meta-digi-dey/recipes-graphics/vulkan/vulkan_1.0.65.2.bb rename to meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_1.1.92.0.bb index 1c8a89550..e61cdd9f0 100644 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan_1.0.65.2.bb +++ b/meta-digi-dey/recipes-graphics/vulkan/vulkan-validationlayers_1.1.92.0.bb @@ -1,19 +1,16 @@ -SUMMARY = "3D graphics and compute API common loader" -DESCRIPTION = "Vulkan is a new generation graphics and compute API \ -that provides efficient access to modern GPUs. These packages \ -provide only the common vendor-agnostic library loader, headers and \ -the vulkaninfo utility." +SUMMARY = "Vulkan ValidationLayers" +DESCRIPTION = "This project provides Vulkan validation layers that \ +can be enabled to assist development by enabling developers to verify \ +their applications correct use of the Vulkan API." HOMEPAGE = "https://www.khronos.org/vulkan/" -BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers" +BUGTRACKER = "https://github.com/KhronosGroup/Vulkan-ValidationLayers" SECTION = "libs" LICENSE = "Apache-2.0" -LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=99c647ca3d4f6a4b9d8628f757aad156 \ - file://loader/loader.c;endline=25;md5=a87cd5442291c23d1fce4eece4cfde9d" -SRC_URI = "git://github.com/KhronosGroup/Vulkan-LoaderAndValidationLayers.git;branch=sdk-1.0.65 \ - file://demos-Don-t-build-tri-or-cube.patch \ +LIC_FILES_CHKSUM = "file://LICENSE.txt;md5=3b83ef96387f14655fc854ddc3c6bd57" +SRC_URI = "git://github.com/KhronosGroup/Vulkan-ValidationLayers.git;nobranch=1 \ " -SRCREV = "73486a1a169d862d5210e2ad520d95319a2383fa" +SRCREV = "6e6da6ccab8931f7c30815966ef839b1155e5bec" UPSTREAM_CHECK_GITTAGREGEX = "sdk-(?P\d+(\.\d+)+)" S = "${WORKDIR}/git" @@ -23,10 +20,12 @@ REQUIRED_DISTRO_FEATURES = "vulkan" inherit cmake python3native lib_package distro_features_check ANY_OF_DISTRO_FEATURES = "x11 wayland" -EXTRA_OECMAKE = "-DBUILD_WSI_MIR_SUPPORT=OFF \ - -DBUILD_LAYERS=OFF \ - -DBUILD_TESTS=OFF" +DEPENDS = "vulkan-headers vulkan-loader" +EXTRA_OECMAKE = " \ + -DBUILD_LAYERS=OFF \ + -DGLSLANG_INSTALL_DIR=${STAGING_DIR_HOST}/usr \ +" # must choose x11 or wayland or both PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11', '' ,d)} \ ${@bb.utils.contains('DISTRO_FEATURES', 'wayland', 'wayland', '' ,d)}" diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to.patch b/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to.patch deleted file mode 100644 index 6e18c92cb..000000000 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan/0001-CMakeLists.txt-Modify-the-library-path-to-point-to.patch +++ /dev/null @@ -1,27 +0,0 @@ -From abb274c45150373c91bf74d4511b86e039f08306 Mon Sep 17 00:00:00 2001 -From: Neena Busireddy -Date: Tue, 31 Jul 2018 18:22:49 -0500 -Subject: [PATCH] CMakeLists.txt: Modify the library path to point to - /usr/lib/libVK.so in json files - -Signed-off-by: Neena Busireddy ---- - layers/CMakeLists.txt | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/layers/CMakeLists.txt b/layers/CMakeLists.txt -index 35a1b41..9e761a5 100644 ---- a/layers/CMakeLists.txt -+++ b/layers/CMakeLists.txt -@@ -92,7 +92,7 @@ if(UNIX) - add_custom_target(${config_file}-staging-json ALL - COMMAND mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/staging-json - COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json ${CMAKE_CURRENT_BINARY_DIR}/staging-json -- COMMAND sed -i -e "/\"library_path\":/s$./libVkLayer$libVkLayer$" ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json -+ COMMAND sed -i -e "/\"library_path\":/s$./libVkLayer$/usr/lib/libVkLayer$" ${CMAKE_CURRENT_BINARY_DIR}/staging-json/${config_file}.json - VERBATIM - DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/linux/${config_file}.json - ) --- -1.9.1 - diff --git a/meta-digi-dey/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch b/meta-digi-dey/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch deleted file mode 100644 index bcf84a5a3..000000000 --- a/meta-digi-dey/recipes-graphics/vulkan/vulkan/demos-Don-t-build-tri-or-cube.patch +++ /dev/null @@ -1,108 +0,0 @@ -commit f63cbe944107b5cd8f150ceaaec43b26099d5688 -Author: Adam Jackson -Date: Tue Feb 16 10:05:25 2016 -0500 - - demos: Don't build tri or cube - - There are more interesting demos, all we really want here is vulkaninfo. - This helps because we don't need to pre-build glslang/llvm/lunarglass - just to get the loader and layers. - -Upstream-Status: Inappropriate [configuration] -Signed-off-by: Jussi Kukkonen - -Index: git/demos/CMakeLists.txt -=================================================================== ---- git.orig/demos/CMakeLists.txt -+++ git/demos/CMakeLists.txt -@@ -63,46 +63,6 @@ elseif(UNIX) - else() - endif() - --if(WIN32) -- # For Windows, since 32-bit and 64-bit items can co-exist, we build each in its own build directory. -- # 32-bit target data goes in build32, and 64-bit target data goes into build. So, include/link the -- # appropriate data at build time. -- if (CMAKE_CL_64) -- set (BUILDTGT_DIR build) -- else () -- set (BUILDTGT_DIR build32) -- endif() -- -- # Use static MSVCRT libraries -- foreach(configuration in CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELEASE CMAKE_C_FLAGS_RELWITHDEBINFO -- CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELWITHDEBINFO) -- if(${configuration} MATCHES "/MD") -- string(REGEX REPLACE "/MD" "/MT" ${configuration} "${${configuration}}") -- endif() -- endforeach() -- -- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv -- COMMAND ${GLSLANG_VALIDATOR} -s -V -o ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert -- DEPENDS cube.vert ${GLSLANG_VALIDATOR} -- ) -- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv -- COMMAND ${GLSLANG_VALIDATOR} -s -V -o ${CMAKE_BINARY_DIR}/demos/cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag -- DEPENDS cube.frag ${GLSLANG_VALIDATOR} -- ) -- file(COPY cube.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos) -- file(COPY vulkaninfo.vcxproj.user DESTINATION ${CMAKE_BINARY_DIR}/demos) --else() -- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) -- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-vert.spv -- COMMAND ${GLSLANG_VALIDATOR} -s -V -o cube-vert.spv ${PROJECT_SOURCE_DIR}/demos/cube.vert -- DEPENDS cube.vert ${GLSLANG_VALIDATOR} -- ) -- add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/demos/cube-frag.spv -- COMMAND ${GLSLANG_VALIDATOR} -s -V -o cube-frag.spv ${PROJECT_SOURCE_DIR}/demos/cube.frag -- DEPENDS cube.frag ${GLSLANG_VALIDATOR} -- ) -- endif() --endif() - - if(WIN32) - include_directories ( -@@ -116,43 +76,6 @@ endif() - add_executable(${API_LOWERCASE}info vulkaninfo.c) - target_link_libraries(${API_LOWERCASE}info ${LIBRARIES}) - --if(NOT WIN32) -- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) -- add_executable(cube cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) -- target_link_libraries(cube ${LIBRARIES}) -- endif() --else() -- if (CMAKE_CL_64) -- set (LIB_DIR "Win64") -- else() -- set (LIB_DIR "Win32") -- endif() -- -- add_executable(cube WIN32 cube.c ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) -- target_link_libraries(cube ${LIBRARIES}) --endif() -- --if(NOT WIN32) -- if (${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR}) -- add_executable(cubepp cube.cpp ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) -- target_link_libraries(cubepp ${LIBRARIES}) -- endif() --else() -- if (CMAKE_CL_64) -- set (LIB_DIR "Win64") -- else() -- set (LIB_DIR "Win32") -- endif() -- -- add_executable(cubepp WIN32 cube.cpp ${CMAKE_BINARY_DIR}/demos/cube-vert.spv ${CMAKE_BINARY_DIR}/demos/cube-frag.spv) -- target_link_libraries(cubepp ${LIBRARIES}) --endif() -- --if ((${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})) -- if ((DEMOS_WSI_SELECTION STREQUAL "XCB") OR (DEMOS_WSI_SELECTION STREQUAL "WAYLAND") OR WIN32 OR (CMAKE_SYSTEM_NAME STREQUAL "Android")) -- add_subdirectory(smoke) -- endif() --endif() - - if(UNIX) - if(INSTALL_LVL_FILES)