vulkan: add initial Vulkan packages v1.2.201

This commit is contained in:
SupervisedThinking 2021-12-09 19:52:08 +01:00
parent 3d594061bf
commit 401ed057df
8 changed files with 292 additions and 0 deletions

View File

@ -0,0 +1,12 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="vulkan-headers"
PKG_VERSION="1.2.201"
PKG_SHA256="6b7f9c809acff4f0877e2e7722e02a08f2e17e06c6e2e8c84081631d15490009"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/Vulkan-Headers"
PKG_URL="https://github.com/KhronosGroup/Vulkan-Headers/archive/v${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain"
PKG_LONGDESC="Vulkan Header files and API registry"

View File

@ -0,0 +1,39 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="vulkan-loader"
PKG_VERSION="1.2.201"
PKG_SHA256="465e8a35e875ddebde7cb59f15b0e2cdfae9c3826680c775d7d5b731d95ee1d6"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/Vulkan-Loader"
PKG_URL="https://github.com/KhronosGroup/Vulkan-Loader/archive/v${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain vulkan-headers"
PKG_LONGDESC="Vulkan Installable Client Driver (ICD) Loader."
configure_package() {
# Displayserver Support
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_DEPENDS_TARGET+=" libxcb libX11"
elif [ "${DISPLAYSERVER}" = "weston" ]; then
PKG_DEPENDS_TARGET+=" wayland"
fi
}
pre_configure_target() {
PKG_CMAKE_OPTS_TARGET="-DBUILD_TESTS=OFF"
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_WSI_XCB_SUPPORT=ON \
-DBUILD_WSI_XLIB_SUPPORT=ON \
-DBUILD_WSI_WAYLAND_SUPPORT=OFF"
elif [ "${DISPLAYSERVER}" = "weston" ]; then
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_WSI_XCB_SUPPORT=OFF \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
-DBUILD_WSI_WAYLAND_SUPPORT=ON"
else
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_WSI_XCB_SUPPORT=OFF \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
-DBUILD_WSI_WAYLAND_SUPPORT=OFF"
fi
}

View File

@ -0,0 +1,23 @@
From 4b90138ea1c28246e6a2b8d9b7568836cc4f3782 Mon Sep 17 00:00:00 2001
From: SupervisedThinking <supervisedthinking@gmail.com>
Date: Wed, 18 Sep 2019 20:24:48 +0200
Subject: [PATCH] loader/CMakeList.txt: fix execution of asm_offset
---
loader/CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
index ed78054a1..0af792501 100644
--- a/loader/CMakeLists.txt
+++ b/loader/CMakeLists.txt
@@ -246,7 +246,7 @@
add_executable(asm_offset asm_offset.c)
target_link_libraries(asm_offset Vulkan::Headers)
target_compile_definitions(asm_offset PRIVATE _GNU_SOURCE)
- add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND asm_offset GAS)
+ add_custom_command(OUTPUT gen_defines.asm DEPENDS asm_offset COMMAND ./asm_offset GAS)
add_custom_target(loader_asm_gen_files DEPENDS gen_defines.asm)
else()
if(USE_GAS)

View File

@ -0,0 +1,55 @@
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2018-present Frank Hartung (supervisedthinking (@) gmail.com)
# Copyright (C) 2021-present Team LibreELEC (https://libreelec.tv)
PKG_NAME="vulkan-tools"
PKG_VERSION="1.2.201"
PKG_SHA256="a259667fba1260352a872e70f325fe0a9a04f1caa5ef353e379acf04b1d2a15a"
PKG_LICENSE="Apache-2.0"
PKG_SITE="https://github.com/KhronosGroup/Vulkan-Tools"
PKG_URL="https://github.com/KhronosGroup/Vulkan-tools/archive/v${PKG_VERSION}.tar.gz"
PKG_DEPENDS_TARGET="toolchain vulkan-loader glslang:host"
PKG_LONGDESC="This project provides Khronos official Vulkan Tools and Utilities."
configure_package() {
# Displayserver Support
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_DEPENDS_TARGET+=" libxcb libX11"
elif [ "${DISPLAYSERVER}" = "weston" ]; then
PKG_DEPENDS_TARGET+=" wayland"
fi
}
pre_configure_target() {
PKG_CMAKE_OPTS_TARGET="-DBUILD_VULKANINFO=ON \
-DBUILD_ICD=OFF \
-DINSTALL_ICD=OFF \
-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
-Wno-dev"
if [ "${DISPLAYSERVER}" = "x11" ]; then
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_CUBE=ON \
-DBUILD_WSI_XCB_SUPPORT=ON \
-DBUILD_WSI_XLIB_SUPPORT=ON \
-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
-DCUBE_WSI_SELECTION=XCB"
elif [ "${DISPLAYSERVER}" = "weston" ]; then
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_CUBE=ON \
-DBUILD_WSI_XCB_SUPPORT=OFF \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
-DBUILD_WSI_WAYLAND_SUPPORT=ON
-DCUBE_WSI_SELECTION=WAYLAND"
else
PKG_CMAKE_OPTS_TARGET+=" -DBUILD_CUBE=ON \
-DBUILD_WSI_XCB_SUPPORT=OFF \
-DBUILD_WSI_XLIB_SUPPORT=OFF \
-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
-DCUBE_WSI_SELECTION=DISPLAY"
fi
}
pre_make_target() {
# Fix cross compiling
find ${PKG_BUILD} -name flags.make -exec sed -i "s:isystem :I:g" \{} \;
find ${PKG_BUILD} -name build.ninja -exec sed -i "s:isystem :I:g" \{} \;
}

View File

@ -0,0 +1,26 @@
From c9c7423f2d0ecfc7ab354d2a3d9ea9c2e4998416 Mon Sep 17 00:00:00 2001
From: SupervisedThinking <supervisedthinking@gmail.com>
Date: Thu, 18 Nov 2021 15:02:55 +0100
Subject: [PATCH] CMakeLists: add CMake options for cube & vulkaninfo
---
CMakeLists.txt | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 422b7d2cc..d123c9dc5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -41,6 +41,12 @@ set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
option(BUILD_CUBE "Build cube" ON)
option(BUILD_VULKANINFO "Build vulkaninfo" ON)
option(BUILD_ICD "Build icd" ON)
+option(BUILD_WSI_XCB_SUPPORT "Build XCB WSI support" ON)
+option(BUILD_WSI_XLIB_SUPPORT "Build Xlib WSI support" ON)
+option(BUILD_WSI_WAYLAND_SUPPORT "Build Wayland WSI support" ON)
+option(BUILD_WSI_DIRECTFB_SUPPORT "Build DirectFB WSI support" OFF)
+set(CUBE_WSI_SELECTION "XCB" CACHE STRING "Select WSI target for vkcube (XCB, XLIB, WAYLAND, DIRECTFB, DISPLAY)")
+
# Installing the Mock ICD to system directories is probably not desired since this ICD is not a very complete implementation.
# Require the user to ask that it be installed if they really want it.
option(INSTALL_ICD "Install icd" OFF)

View File

@ -0,0 +1,25 @@
From 3f2debf2710f84f42b999da2b7eb1f168205695f Mon Sep 17 00:00:00 2001
From: SupervisedThinking <supervisedthinking@gmail.com>
Date: Thu, 18 Nov 2021 13:28:38 +0100
Subject: [PATCH] cmake/FindWaylandProtocols: fix wayland protocol path
generation for cross compile
---
cmake/FindWaylandProtocols.cmake | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cmake/FindWaylandProtocols.cmake b/cmake/FindWaylandProtocols.cmake
index 17859ed7c..6941f6024 100644
--- a/cmake/FindWaylandProtocols.cmake
+++ b/cmake/FindWaylandProtocols.cmake
@@ -6,8 +6,8 @@
if(NOT WIN32)
find_package(PkgConfig)
- pkg_check_modules(PKG_WAYLAND_PROTOCOLS QUIET wayland-protocols)
- set(WAYLAND_PROTOCOLS_PATH ${PKG_WAYLAND_PROTOCOLS_PREFIX}/share/wayland-protocols)
+ execute_process(COMMAND ${PKG_CONFIG_EXECUTABLE} --variable=pkgdatadir wayland-protocols
+ OUTPUT_VARIABLE WAYLAND_PROTOCOLS_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
find_package_handle_standard_args(WAYLAND DEFAULT_MSG WAYLAND_PROTOCOLS_PATH)
mark_as_advanced(WAYLAND_PROTOCOLS_PATH)
endif()

View File

@ -0,0 +1,45 @@
From b5ccef606aa9cb8bc96acfeba3b586da0617e80a Mon Sep 17 00:00:00 2001
From: SupervisedThinking <supervisedthinking@gmail.com>
Date: Fri, 19 Nov 2021 19:46:26 +0100
Subject: [PATCH] cube: allow cross compile
---
cube/CMakeLists.txt | 4 ----
1 file changed, 4 deletions(-)
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index d59eb4366..c0c9ddad6 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -228,7 +228,6 @@ include_directories(${CUBE_INCLUDE_DIRS})
if(APPLE)
include(macOS/cube/cube.cmake)
elseif(NOT WIN32)
- if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
add_executable(vkcube
cube.c
${PROJECT_SOURCE_DIR}/cube/cube.vert
@@ -242,7 +241,6 @@ elseif(NOT WIN32)
if (NEED_RT)
target_link_libraries(vkcube rt)
endif()
- endif()
else()
if(CMAKE_CL_64)
set(LIB_DIR "Win64")
@@ -279,7 +277,6 @@ endif()
if(APPLE)
include(macOS/cubepp/cubepp.cmake)
elseif(NOT WIN32)
- if(${CMAKE_SYSTEM_PROCESSOR} STREQUAL ${CMAKE_HOST_SYSTEM_PROCESSOR})
add_executable(vkcubepp
cube.cpp
${PROJECT_SOURCE_DIR}/cube/cube.vert
@@ -288,7 +285,6 @@ elseif(NOT WIN32)
cube.frag.inc
${OPTIONAL_WAYLAND_DATA_FILES})
target_link_libraries(vkcubepp Vulkan::Vulkan)
- endif()
else()
if(CMAKE_CL_64)
set(LIB_DIR "Win64")

View File

@ -0,0 +1,67 @@
From a1894dc9f650ab94fb7e348e1b06ee75a1e9728b Mon Sep 17 00:00:00 2001
From: SupervisedThinking <supervisedthinking@gmail.com>
Date: Sat, 20 Nov 2021 18:39:04 +0100
Subject: [PATCH] CMakeLists: updated glslangValidator logik
---
cube/CMakeLists.txt | 43 +++++++++++++++++++++++++++----------------
1 file changed, 27 insertions(+), 16 deletions(-)
diff --git a/cube/CMakeLists.txt b/cube/CMakeLists.txt
index d59eb4366..a684fc4f0 100644
--- a/cube/CMakeLists.txt
+++ b/cube/CMakeLists.txt
@@ -26,26 +26,37 @@ endif()
if(GLSLANG_INSTALL_DIR)
message(STATUS "Using GLSLANG_INSTALL_DIR to look for glslangValidator")
find_program(GLSLANG_VALIDATOR names glslangValidator HINTS "${GLSLANG_INSTALL_DIR}/bin")
+
else()
set(GLSLANG_VALIDATOR_NAME "glslangValidator")
- message(STATUS "Using cmake find_program to look for glslangValidator")
- if(WIN32)
- execute_process(
- COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-windows-x64-Release.zip)
- set(GLSLANG_VALIDATOR_NAME "glslangValidator.exe")
- elseif(APPLE)
- execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-osx-Release.zip)
- elseif(UNIX AND NOT APPLE) # i.e. Linux
- execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-linux-Release.zip)
- endif()
- if (WIN32)
- set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/windows/bin")
- elseif(APPLE)
- set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/darwin/bin")
+ message(CHECK_START "Looking for glslangValidator")
+ find_program(GLSLANG_VALIDATOR NAMES ${GLSLANG_VALIDATOR_NAME} HINTS ${PLATFORM_DIR})
+ if(GLSLANG_VALIDATOR)
+ message(CHECK_PASS ${GLSLANG_VALIDATOR})
else()
- set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/linux/bin")
+ if(WIN32)
+ execute_process(
+ COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-windows-x64-Release.zip)
+ set(GLSLANG_VALIDATOR_NAME "glslangValidator.exe")
+ elseif(APPLE)
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-osx-Release.zip)
+ elseif(UNIX AND NOT APPLE) # i.e. Linux
+ execute_process(COMMAND ${PYTHON_EXECUTABLE} ${SCRIPTS_DIR}/fetch_glslangvalidator.py glslang-master-linux-Release.zip)
+ endif()
+ if (WIN32)
+ set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/windows/bin")
+ elseif(APPLE)
+ set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/darwin/bin")
+ else()
+ set(PLATFORM_DIR "${PROJECT_SOURCE_DIR}/glslang/linux/bin")
+ endif()
+ find_program(GLSLANG_VALIDATOR NAMES ${GLSLANG_VALIDATOR_NAME} HINTS ${PLATFORM_DIR})
+ if(GLSLANG_VALIDATOR)
+ message(CHECK_PASS ${GLSLANG_VALIDATOR})
+ else()
+ message(FATAL_ERROR "no glslangValidator binary found")
+ endif()
endif()
- find_program(GLSLANG_VALIDATOR NAMES ${GLSLANG_VALIDATOR_NAME} HINTS ${PLATFORM_DIR})
endif()
if(UNIX AND NOT APPLE) # i.e. Linux