Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFC v1 0/6] Vulkan support
@ 2020-12-23 22:45 Peter Seiderer
  2020-12-23 22:45 ` [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package Peter Seiderer
                   ` (6 more replies)
  0 siblings, 7 replies; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

A starting point to add some/more Vulkan support to Buildroot.

Targeting towards the RPi Vulkan support (as announced e.g. [1]),
but send as RFC as not (yet) functional:

- did only try to run standalone and/or with Qt EGLFS, but
  did not work out as the broadcom vulkan driver is  only
  functional with X11/XCB

- the Qt Vulkan support seems only be functional with
  EGLFS/Vivante and/or X11/XCB

Tested with the following defconfig (and dtoverlay=vc4-kms-v3d-pi4):

  BR2_aarch64=y
  BR2_cortex_a72=y
  BR2_ARM_FPU_VFPV4=y
  BR2_ENABLE_DEBUG=y
  BR2_OPTIMIZE_3=y
  BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
  BR2_PACKAGE_GLIBC_UTILS=y
  BR2_BINUTILS_VERSION_2_35_X=y
  BR2_GCC_VERSION_10_X=y
  BR2_TOOLCHAIN_BUILDROOT_CXX=y
  BR2_INIT_SYSV=y
  BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
  BR2_SYSTEM_DHCP="eth0"
  BR2_GENERATE_LOCALE="en_US"
  BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4-64/post-build.sh"
  BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4-64/post-image.sh"
  BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64"
  BR2_LINUX_KERNEL=y
  BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
  BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,967d45b29ca2902f031b867809d72e3b3d623e7a)/linux-967d45b29ca2902f031b867809d72e3b3d623e7a.tar.gz"
  BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
  BR2_LINUX_KERNEL_DTS_SUPPORT=y
  BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b"
  BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
  BR2_PACKAGE_DEJAVU=y
  BR2_PACKAGE_MESA3D=y
  BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO=y
  BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
  BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4=y
  BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM=y
  BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST=y
  BR2_PACKAGE_MESA3D_OPENGL_ES=y
  BR2_PACKAGE_VULKAN_TOOLS=y
  BR2_PACKAGE_QT5=y
  BR2_PACKAGE_QT5BASE_EXAMPLES=y
  BR2_PACKAGE_QT5BASE_GUI=y
  BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
  BR2_PACKAGE_QT5BASE_VULKAN=y
  BR2_PACKAGE_QT5BASE_EGLFS=y
  BR2_PACKAGE_QT5BASE_FONTCONFIG=y
  BR2_PACKAGE_QT5BASE_HARFBUZZ=y
  BR2_PACKAGE_QT5BASE_GIF=y
  BR2_PACKAGE_QT5BASE_JPEG=y
  BR2_PACKAGE_QT5BASE_PNG=y
  BR2_PACKAGE_RPI_FIRMWARE=y
  BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
  BR2_TARGET_ROOTFS_EXT2=y
  BR2_TARGET_ROOTFS_EXT2_4=y
  BR2_TARGET_ROOTFS_EXT2_SIZE="384M"
  # BR2_TARGET_ROOTFS_TAR is not set
  BR2_PACKAGE_HOST_DOSFSTOOLS=y
  BR2_PACKAGE_HOST_GENIMAGE=y
  BR2_PACKAGE_HOST_MTOOLS=y

There are three vulkan ICDs installed
  - /usr/lib/libvulkan_lvp.so: mesa3d/swrast
  - /usr/lib/libvulkan_broadcom.so: mesa3d/broadcom
  - /usr/lib/libVkICD_mock_icd.so: vulkan-tools/moc-ICD

Runtime test done:

  - vulkan-tools/moc-ICD (works):
	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/VkICD_mock_icd.json vulkaninfo
==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.165


Instance Extensions: count = 19
===============================
	VK_EXT_debug_report                    : extension revision 9
	VK_EXT_debug_utils                     : extension revision 2
	VK_EXT_direct_mode_display             : extension revision 1
	VK_EXT_display_surface_counter         : extension revision 1
	VK_EXT_headless_surface                : extension revision 1
	VK_EXT_swapchain_colorspace            : extension revision 4
	VK_EXT_validation_features             : extension revision 4
	VK_EXT_validation_flags                : extension revision 2
	VK_KHR_device_group_creation           : extension revision 1
	VK_KHR_display                         : extension revision 23
	VK_KHR_external_fence_capabilities     : extension revision 1
	VK_KHR_external_memory_capabilities    : extension revision 1
	VK_KHR_external_semaphore_capabilities : extension revision 1
	VK_KHR_get_display_properties2         : extension revision 1
	VK_KHR_get_physical_device_properties2 : extension revision 2
	VK_KHR_get_surface_capabilities2       : extension revision 1
	VK_KHR_surface                         : extension revision 25
	VK_KHR_surface_protected_capabilities  : extension revision 1
	VK_NV_external_memory_capabilities     : extension revision 1

Layers: count = 0
=================
Groups:
=======
	No Device Groups Found

Device Properties and Extensions:
=================================
GPU0:
VkPhysicalDeviceProperties:
---------------------------
	apiVersion     = 4198400 (1.1.0)
	driverVersion  = 1 (0x0001)
	vendorID       = 0xba5eba11
	deviceID       = 0xf005ba11
	deviceType     = PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
	deviceName     = Vulkan Mock Device
[...]

  - mesa3d/swrast:
	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.cortex-a72.json vulkaninfo
	WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
	Segmentation fault

  - mesa3d/broadcom:
	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/broadcom_icd.cortex-a72.json vulkaninfo
	ERROR at /home/seiderer/Work/Buildroot/build_rpi4_mesa_vc4_001/build/vulkan-tools-1.2.162/vulkaninfo/vulkaninfo.h:248:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED

Next steps:
  - enable Vulkan/X11/XCB support
  - fix mesa3d/swrast stand-alone link failure

Regards,
Peter

[1] https://www.raspberrypi.org/blog/vulkan-update-were-conformant/

Peter Seiderer (6):
  package/vulkan-headers: new package
  package/vulkan-loader: new package
  package/vulkan-tools: new package
  package/mesa3d: add vulkan broadcom driver support
  package/mesa3d: add vulkan swrast driver support
  package/qt5base: add vulkan option

 package/Config.in                             |  3 ++
 package/mesa3d/Config.in                      | 21 ++++++++++++
 package/mesa3d/mesa3d.mk                      |  6 +++-
 package/qt5/qt5base/Config.in                 | 11 +++++++
 package/qt5/qt5base/qt5base.mk                |  7 ++++
 package/vulkan-headers/Config.in              |  7 ++++
 package/vulkan-headers/vulkan-headers.hash    |  3 ++
 package/vulkan-headers/vulkan-headers.mk      | 13 ++++++++
 .../0001-loader-fix-asm_offset-call.patch     | 32 +++++++++++++++++++
 package/vulkan-loader/Config.in               | 14 ++++++++
 package/vulkan-loader/vulkan-loader.hash      |  3 ++
 package/vulkan-loader/vulkan-loader.mk        | 22 +++++++++++++
 package/vulkan-tools/Config.in                | 17 ++++++++++
 package/vulkan-tools/vulkan-tools.hash        |  3 ++
 package/vulkan-tools/vulkan-tools.mk          | 25 +++++++++++++++
 15 files changed, 186 insertions(+), 1 deletion(-)
 create mode 100644 package/vulkan-headers/Config.in
 create mode 100644 package/vulkan-headers/vulkan-headers.hash
 create mode 100644 package/vulkan-headers/vulkan-headers.mk
 create mode 100644 package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
 create mode 100644 package/vulkan-loader/Config.in
 create mode 100644 package/vulkan-loader/vulkan-loader.hash
 create mode 100644 package/vulkan-loader/vulkan-loader.mk
 create mode 100644 package/vulkan-tools/Config.in
 create mode 100644 package/vulkan-tools/vulkan-tools.hash
 create mode 100644 package/vulkan-tools/vulkan-tools.mk

-- 
2.29.2

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  8:42   ` Yann E. MORIN
  2020-12-23 22:45 ` [Buildroot] [RFC v1 2/6] package/vulkan-loader: " Peter Seiderer
                   ` (5 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
 package/Config.in                          |  1 +
 package/vulkan-headers/Config.in           |  7 +++++++
 package/vulkan-headers/vulkan-headers.hash |  3 +++
 package/vulkan-headers/vulkan-headers.mk   | 13 +++++++++++++
 4 files changed, 24 insertions(+)
 create mode 100644 package/vulkan-headers/Config.in
 create mode 100644 package/vulkan-headers/vulkan-headers.hash
 create mode 100644 package/vulkan-headers/vulkan-headers.mk

diff --git a/package/Config.in b/package/Config.in
index c3677dd15e..9ede3b770f 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -334,6 +334,7 @@ comment "Graphic libraries"
 	source "package/sdl2_net/Config.in"
 	source "package/sdl2_ttf/Config.in"
 	source "package/tk/Config.in"
+	source "package/vulkan-headers/Config.in"
 
 comment "Other GUIs"
 	source "package/qt5/Config.in"
diff --git a/package/vulkan-headers/Config.in b/package/vulkan-headers/Config.in
new file mode 100644
index 0000000000..c0fc8f20b0
--- /dev/null
+++ b/package/vulkan-headers/Config.in
@@ -0,0 +1,7 @@
+config BR2_PACKAGE_VULKAN_HEADERS
+	bool "vulkan-headers"
+	help
+	  The Khronos official Vulkan header files and API
+	  registry.
+
+	  https://github.com/KhronosGroup/Vulkan-Headers
diff --git a/package/vulkan-headers/vulkan-headers.hash b/package/vulkan-headers/vulkan-headers.hash
new file mode 100644
index 0000000000..678a38e0d4
--- /dev/null
+++ b/package/vulkan-headers/vulkan-headers.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  3f9435a93ba13d94d0c3265a47e0436579e46bb9ca085e9b16a753458e4d79d2  vulkan-headers-1.2.165.tar.gz
+sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
diff --git a/package/vulkan-headers/vulkan-headers.mk b/package/vulkan-headers/vulkan-headers.mk
new file mode 100644
index 0000000000..a20f4d789c
--- /dev/null
+++ b/package/vulkan-headers/vulkan-headers.mk
@@ -0,0 +1,13 @@
+################################################################################
+#
+# vulkan-headers
+#
+################################################################################
+
+VULKAN_HEADERS_VERSION = 1.2.165
+VULKAN_HEADERS_SITE = $(call github,KhronosGroup,Vulkan-Headers,v$(VULKAN_HEADERS_VERSION))
+VULKAN_HEADERS_LICENSE = Apache-2.0 License
+VULKAN_HEADERS_LICENSE_FILES = LICENSE.txt
+VULKAN_HEADERS_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 2/6] package/vulkan-loader: new package
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
  2020-12-23 22:45 ` [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  8:54   ` Yann E. MORIN
  2020-12-23 22:45 ` [Buildroot] [RFC v1 3/6] package/vulkan-tools: " Peter Seiderer
                   ` (4 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

---
 package/Config.in                             |  1 +
 .../0001-loader-fix-asm_offset-call.patch     | 32 +++++++++++++++++++
 package/vulkan-loader/Config.in               | 14 ++++++++
 package/vulkan-loader/vulkan-loader.hash      |  3 ++
 package/vulkan-loader/vulkan-loader.mk        | 22 +++++++++++++
 5 files changed, 72 insertions(+)
 create mode 100644 package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
 create mode 100644 package/vulkan-loader/Config.in
 create mode 100644 package/vulkan-loader/vulkan-loader.hash
 create mode 100644 package/vulkan-loader/vulkan-loader.mk

diff --git a/package/Config.in b/package/Config.in
index 9ede3b770f..8b96a61e33 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -335,6 +335,7 @@ comment "Graphic libraries"
 	source "package/sdl2_ttf/Config.in"
 	source "package/tk/Config.in"
 	source "package/vulkan-headers/Config.in"
+	source "package/vulkan-loader/Config.in"
 
 comment "Other GUIs"
 	source "package/qt5/Config.in"
diff --git a/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch b/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
new file mode 100644
index 0000000000..d62b9390d8
--- /dev/null
+++ b/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
@@ -0,0 +1,32 @@
+From 45098898f7fa25dfd12d2c4f1aed889f678aa870 Mon Sep 17 00:00:00 2001
+From: Peter Seiderer <ps.report@gmx.net>
+Date: Wed, 23 Dec 2020 14:46:02 +0100
+Subject: [PATCH] loader: fix asm_offset call
+
+Disable assembler usage (not cross compile capable):
+
+  [ 21%] Generating gen_defines.asm
+  /bin/sh: asm_offset: command not found
+  make[3]: *** [loader/CMakeFiles/loader_asm_gen_files.dir/build.make:80: loader/gen_defines.asm] Error 127
+
+Signed-off-by: Peter Seiderer <ps.report@gmx.net>
+---
+ loader/CMakeLists.txt | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
+index ba9f460f1..dbebfb058 100644
+--- a/loader/CMakeLists.txt
++++ b/loader/CMakeLists.txt
+@@ -187,7 +187,7 @@ else(UNIX AND NOT APPLE) # i.e.: Linux
+     endif()
+     set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
+     try_compile(ASSEMBLER_WORKS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/asm_test.S)
+-    if(ASSEMBLER_WORKS)
++    if(FALSE)
+         set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain_gas.S)
+         add_executable(asm_offset asm_offset.c)
+         target_link_libraries(asm_offset Vulkan::Headers)
+-- 
+2.29.2
+
diff --git a/package/vulkan-loader/Config.in b/package/vulkan-loader/Config.in
new file mode 100644
index 0000000000..9c215dc9ce
--- /dev/null
+++ b/package/vulkan-loader/Config.in
@@ -0,0 +1,14 @@
+config BR2_PACKAGE_VULKAN_LOADER
+	bool "vulkan-loader"
+	depends on BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_STATIC_LIBS # dlfcn.h
+	depends on BR2_TOOLCHAIN_HAS_THREADS
+	select BR2_PACKAGE_VULKAN_HEADERS
+	help
+	  The Khronos official Vulkan ICD desktop loader.
+
+	  https://github.com/KhronosGroup/Vulkan-Loader
+
+comment "vulkan-loader needs a toolchain w/ C++, dynamic library, threads"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/vulkan-loader/vulkan-loader.hash b/package/vulkan-loader/vulkan-loader.hash
new file mode 100644
index 0000000000..c70ed90be6
--- /dev/null
+++ b/package/vulkan-loader/vulkan-loader.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  e582dce35051a34af82db2a8fcd38fbc5837b4506e76e6cda685dca02dee01c7  vulkan-loader-1.2.162.tar.gz
+sha256  43c0a37e6a0fa7ff3c843b3ec5a4fac84b712558ddac103fbd4c1649662a9ece  LICENSE.txt
diff --git a/package/vulkan-loader/vulkan-loader.mk b/package/vulkan-loader/vulkan-loader.mk
new file mode 100644
index 0000000000..ff6c0f869b
--- /dev/null
+++ b/package/vulkan-loader/vulkan-loader.mk
@@ -0,0 +1,22 @@
+################################################################################
+#
+# vulkan-loader
+#
+################################################################################
+
+VULKAN_LOADER_VERSION = 1.2.162
+VULKAN_LOADER_SITE = $(call github,KhronosGroup,Vulkan-Loader,v$(VULKAN_LOADER_VERSION))
+VULKAN_LOADER_LICENSE = Apache-2.0 License
+VULKAN_LOADER_LICENSE_FILES = LICENSE.txt
+VULKAN_LOADER_INSTALL_STAGING = YES
+
+VULKAN_LOADER_DEPENDENCIES = vulkan-headers
+
+VULKAN_LOADER_CONF_OPTS += \
+	-DBUILD_WSI_XCB_SUPPORT=OFF \
+	-DBUILD_WSI_XLIB_SUPPORT=OFF \
+	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
+	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
+	-DUSE_CCACHE=OFF
+
+$(eval $(cmake-package))
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 3/6] package/vulkan-tools: new package
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
  2020-12-23 22:45 ` [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package Peter Seiderer
  2020-12-23 22:45 ` [Buildroot] [RFC v1 2/6] package/vulkan-loader: " Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  9:00   ` Yann E. MORIN
  2020-12-23 22:45 ` [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
                   ` (3 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - BUILD_ICD/INSTALL_ICD should be disabled (or get
    an own option for testig purpouse as it is only
    a mock ICD)
---
 package/Config.in                      |  1 +
 package/vulkan-tools/Config.in         | 17 +++++++++++++++++
 package/vulkan-tools/vulkan-tools.hash |  3 +++
 package/vulkan-tools/vulkan-tools.mk   | 25 +++++++++++++++++++++++++
 4 files changed, 46 insertions(+)
 create mode 100644 package/vulkan-tools/Config.in
 create mode 100644 package/vulkan-tools/vulkan-tools.hash
 create mode 100644 package/vulkan-tools/vulkan-tools.mk

diff --git a/package/Config.in b/package/Config.in
index 8b96a61e33..a68358cfbd 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -336,6 +336,7 @@ comment "Graphic libraries"
 	source "package/tk/Config.in"
 	source "package/vulkan-headers/Config.in"
 	source "package/vulkan-loader/Config.in"
+	source "package/vulkan-tools/Config.in"
 
 comment "Other GUIs"
 	source "package/qt5/Config.in"
diff --git a/package/vulkan-tools/Config.in b/package/vulkan-tools/Config.in
new file mode 100644
index 0000000000..54fa539dab
--- /dev/null
+++ b/package/vulkan-tools/Config.in
@@ -0,0 +1,17 @@
+config BR2_PACKAGE_VULKAN_TOOLS
+	bool "vulkan-tools"
+	depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader
+	depends on !BR2_STATIC_LIBS # vullan-loader
+	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_9 # C++11
+	depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader
+	select BR2_PACKAGE_VULKAN_HEADERS
+	select BR2_PACKAGE_VULKAN_LOADER
+
+	help
+	  The Khronos official Vulkan Tools and Utilities.
+
+	  https://github.com/KhronosGroup/Vulkan-Tools
+
+comment "vulkan-tools needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.9"
+	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
+		!BR2_TOOLCHAIN_HAS_THREADS || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
diff --git a/package/vulkan-tools/vulkan-tools.hash b/package/vulkan-tools/vulkan-tools.hash
new file mode 100644
index 0000000000..a4cf97ab34
--- /dev/null
+++ b/package/vulkan-tools/vulkan-tools.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256  98a3a00471da65df833b4ffeb1ab29ec1d169d5feab54270cf4cd8f50f82e682  vulkan-tools-1.2.162.tar.gz
+sha256  cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30  LICENSE.txt
diff --git a/package/vulkan-tools/vulkan-tools.mk b/package/vulkan-tools/vulkan-tools.mk
new file mode 100644
index 0000000000..9a20ddf36b
--- /dev/null
+++ b/package/vulkan-tools/vulkan-tools.mk
@@ -0,0 +1,25 @@
+################################################################################
+#
+# vulkan-tools
+#
+################################################################################
+
+VULKAN_TOOLS_VERSION = 1.2.162
+VULKAN_TOOLS_SITE = $(call github,KhronosGroup,Vulkan-Tools,v$(VULKAN_TOOLS_VERSION))
+VULKAN_TOOLS_LICENSE = Apache-2.0 License
+VULKAN_TOOLS_LICENSE_FILES = LICENSE.txt
+
+VULKAN_TOOLS_DEPENDENCIES = vulkan-headers vulkan-loader
+
+VULKAN_TOOLS_CONF_OPTS += \
+	-DBUILD_CUBE=OFF \
+	-DBUILD_VULKANINFO=ON \
+	-DBUILD_ICD=ON \
+	-DINSTALL_ICD=ON \
+	-DBUILD_WSI_XCB_SUPPORT=OFF \
+	-DBUILD_WSI_XLIB_SUPPORT=OFF \
+	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
+	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
+	-DUSE_CCACHE=OFF
+
+$(eval $(cmake-package))
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
                   ` (2 preceding siblings ...)
  2020-12-23 22:45 ` [Buildroot] [RFC v1 3/6] package/vulkan-tools: " Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  9:07   ` Yann E. MORIN
  2020-12-23 22:45 ` [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast " Peter Seiderer
                   ` (2 subsequent siblings)
  6 siblings, 1 reply; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - compiles, but is not only functional in case
    v3d simulator or X11/XCB is enabled (see
    e.g. physical_device_init() in file
    src/broadcom/vulkan/v3dv_device.c)
---
 package/mesa3d/Config.in | 8 ++++++++
 package/mesa3d/mesa3d.mk | 5 ++++-
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 45eb62b701..73e7199e8c 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -388,6 +388,14 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
 
 comment "Vulkan drivers"
 
+config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM
+	bool "Vulkan broadcom driver"
+	depends on BR2_arm || BR2_aarch64
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
+	help
+	  Vulkan broadcom driver.
+
 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
 	bool "Vulkan Intel driver"
 	depends on BR2_i386 || BR2_x86_64
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index d754cb8796..d9ea752d3e 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -110,6 +110,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965)   += i965
 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau
 MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
 # Vulkan Drivers
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
 MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)   += intel
 
 ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
@@ -143,9 +144,11 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
 MESA3D_CONF_OPTS += \
 	-Dvulkan-drivers=
 else
+ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL),y)
 MESA3D_DEPENDENCIES += xlib_libxshmfence
+MESA3D_CONF_OPTS += -Ddri3=enabled
+endif
 MESA3D_CONF_OPTS += \
-	-Ddri3=enabled \
 	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
 endif
 
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast driver support
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
                   ` (3 preceding siblings ...)
  2020-12-23 22:45 ` [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  9:15   ` Yann E. MORIN
  2020-12-23 22:45 ` [Buildroot] [RFC v1 6/6] package/qt5base: add vulkan option Peter Seiderer
  2020-12-30  8:39 ` [Buildroot] [RFC v1 0/6] Vulkan support Yann E. MORIN
  6 siblings, 1 reply; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - link failure when selected stand alone, fine in case
    vulkan-broadcom is selected too
---
 package/mesa3d/Config.in | 13 +++++++++++++
 package/mesa3d/mesa3d.mk |  1 +
 2 files changed, 14 insertions(+)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 73e7199e8c..0bd904c270 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -416,6 +416,19 @@ comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >=
 	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
 		!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
 
+config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST
+	bool "Vulkan swrast driver"
+	depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
+	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
+	help
+	  Vulkan swrast driver.
+
+comment "Vulkan swrast: Only one swrast provider can be built"
+	depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
+
 comment "Off-screen Rendering"
 
 config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index d9ea752d3e..f8eeb797a1 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -112,6 +112,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
 # Vulkan Drivers
 MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
 MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)   += intel
+MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST) += swrast
 
 ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
 MESA3D_CONF_OPTS += \
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 6/6] package/qt5base: add vulkan option
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
                   ` (4 preceding siblings ...)
  2020-12-23 22:45 ` [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast " Peter Seiderer
@ 2020-12-23 22:45 ` Peter Seiderer
  2020-12-30  8:39 ` [Buildroot] [RFC v1 0/6] Vulkan support Yann E. MORIN
  6 siblings, 0 replies; 15+ messages in thread
From: Peter Seiderer @ 2020-12-23 22:45 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Notes:
  - eglfs/vulkan is only implemented for eglfs_viv
    (see stub implementation for QEglFSDeviceIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/eglfs/api/qeglfsdeviceintegration.cpp and
    real implementation for QEglFSVivIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/eglfs/deviceintegration/eglfs_viv/qeglfsvivintegration.cpp)
  - or for xcb (see QXcbIntegration::createPlatformVulkanInstance()
    in src/plugins/platforms/xcb/qxcbintegration.cpp)
---
 package/qt5/qt5base/Config.in  | 11 +++++++++++
 package/qt5/qt5base/qt5base.mk |  7 +++++++
 2 files changed, 18 insertions(+)

diff --git a/package/qt5/qt5base/Config.in b/package/qt5/qt5base/Config.in
index ee7c757c60..377a754f37 100644
--- a/package/qt5/qt5base/Config.in
+++ b/package/qt5/qt5base/Config.in
@@ -175,6 +175,17 @@ config BR2_PACKAGE_QT5BASE_OPENGL_LIB
 
 endif
 
+config BR2_PACKAGE_QT5BASE_VULKAN
+	bool "Vulkan support"
+	# all vulkan-loader introduced dependencies superseeded by qt5 own ones
+	# depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader
+	# depends on !BR2_STATIC_LIBS # vulkan-loader
+	# depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader
+	select BR2_PACKAGE_VULKAN_HEADERS
+	select BR2_PACKAGE_VULKAN_LOADER
+	help
+	  This option enables Vulkan support.
+
 config BR2_PACKAGE_QT5BASE_LINUXFB
 	bool "linuxfb support"
 
diff --git a/package/qt5/qt5base/qt5base.mk b/package/qt5/qt5base/qt5base.mk
index 84e9fa4edb..3755e306d1 100644
--- a/package/qt5/qt5base/qt5base.mk
+++ b/package/qt5/qt5base/qt5base.mk
@@ -196,6 +196,13 @@ else
 QT5BASE_CONFIGURE_OPTS += -no-opengl
 endif
 
+ifeq ($(BR2_PACKAGE_QT5BASE_VULKAN),y)
+QT5BASE_CONFIGURE_OPTS += -feature-vulkan
+QT5BASE_DEPENDENCIES   += vulkan-headers vulkan-loader
+else
+QT5BASE_CONFIGURE_OPTS += -no-feature-vulkan
+endif
+
 QT5BASE_DEFAULT_QPA = $(call qstrip,$(BR2_PACKAGE_QT5BASE_DEFAULT_QPA))
 QT5BASE_CONFIGURE_OPTS += $(if $(QT5BASE_DEFAULT_QPA),-qpa $(QT5BASE_DEFAULT_QPA))
 
-- 
2.29.2

^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 0/6] Vulkan support
  2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
                   ` (5 preceding siblings ...)
  2020-12-23 22:45 ` [Buildroot] [RFC v1 6/6] package/qt5base: add vulkan option Peter Seiderer
@ 2020-12-30  8:39 ` Yann E. MORIN
  6 siblings, 0 replies; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  8:39 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> A starting point to add some/more Vulkan support to Buildroot.
> 
> Targeting towards the RPi Vulkan support (as announced e.g. [1]),
> but send as RFC as not (yet) functional:
> 
> - did only try to run standalone and/or with Qt EGLFS, but
>   did not work out as the broadcom vulkan driver is  only
>   functional with X11/XCB
> 
> - the Qt Vulkan support seems only be functional with
>   EGLFS/Vivante and/or X11/XCB

Speaking of which: have you seen this series:
    https://patchwork.ozlabs.org/project/buildroot/list/?series=157522

    package/opengl/libopenvx: new virtual package
    package/opengl/libvulkan: new virtual package
    package/freescale-imx/imx-gpu-viv: add options for new feture

The last one introduces imx-gpu-viv as a provider for libvulkan, so at
least it does not seem to contradict your assumptions that Vulkan is
possible with Vivante.  ;-)

Regards,
Yann E. MORIN.

> Tested with the following defconfig (and dtoverlay=vc4-kms-v3d-pi4):
> 
>   BR2_aarch64=y
>   BR2_cortex_a72=y
>   BR2_ARM_FPU_VFPV4=y
>   BR2_ENABLE_DEBUG=y
>   BR2_OPTIMIZE_3=y
>   BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
>   BR2_PACKAGE_GLIBC_UTILS=y
>   BR2_BINUTILS_VERSION_2_35_X=y
>   BR2_GCC_VERSION_10_X=y
>   BR2_TOOLCHAIN_BUILDROOT_CXX=y
>   BR2_INIT_SYSV=y
>   BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
>   BR2_SYSTEM_DHCP="eth0"
>   BR2_GENERATE_LOCALE="en_US"
>   BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4-64/post-build.sh"
>   BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4-64/post-image.sh"
>   BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay --aarch64"
>   BR2_LINUX_KERNEL=y
>   BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
>   BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,967d45b29ca2902f031b867809d72e3b3d623e7a)/linux-967d45b29ca2902f031b867809d72e3b3d623e7a.tar.gz"
>   BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
>   BR2_LINUX_KERNEL_DTS_SUPPORT=y
>   BR2_LINUX_KERNEL_INTREE_DTS_NAME="broadcom/bcm2711-rpi-4-b"
>   BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
>   BR2_PACKAGE_DEJAVU=y
>   BR2_PACKAGE_MESA3D=y
>   BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO=y
>   BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D=y
>   BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4=y
>   BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM=y
>   BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST=y
>   BR2_PACKAGE_MESA3D_OPENGL_ES=y
>   BR2_PACKAGE_VULKAN_TOOLS=y
>   BR2_PACKAGE_QT5=y
>   BR2_PACKAGE_QT5BASE_EXAMPLES=y
>   BR2_PACKAGE_QT5BASE_GUI=y
>   BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
>   BR2_PACKAGE_QT5BASE_VULKAN=y
>   BR2_PACKAGE_QT5BASE_EGLFS=y
>   BR2_PACKAGE_QT5BASE_FONTCONFIG=y
>   BR2_PACKAGE_QT5BASE_HARFBUZZ=y
>   BR2_PACKAGE_QT5BASE_GIF=y
>   BR2_PACKAGE_QT5BASE_JPEG=y
>   BR2_PACKAGE_QT5BASE_PNG=y
>   BR2_PACKAGE_RPI_FIRMWARE=y
>   BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
>   BR2_TARGET_ROOTFS_EXT2=y
>   BR2_TARGET_ROOTFS_EXT2_4=y
>   BR2_TARGET_ROOTFS_EXT2_SIZE="384M"
>   # BR2_TARGET_ROOTFS_TAR is not set
>   BR2_PACKAGE_HOST_DOSFSTOOLS=y
>   BR2_PACKAGE_HOST_GENIMAGE=y
>   BR2_PACKAGE_HOST_MTOOLS=y
> 
> There are three vulkan ICDs installed
>   - /usr/lib/libvulkan_lvp.so: mesa3d/swrast
>   - /usr/lib/libvulkan_broadcom.so: mesa3d/broadcom
>   - /usr/lib/libVkICD_mock_icd.so: vulkan-tools/moc-ICD
> 
> Runtime test done:
> 
>   - vulkan-tools/moc-ICD (works):
> 	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/VkICD_mock_icd.json vulkaninfo
> ==========
> VULKANINFO
> ==========
> 
> Vulkan Instance Version: 1.2.165
> 
> 
> Instance Extensions: count = 19
> ===============================
> 	VK_EXT_debug_report                    : extension revision 9
> 	VK_EXT_debug_utils                     : extension revision 2
> 	VK_EXT_direct_mode_display             : extension revision 1
> 	VK_EXT_display_surface_counter         : extension revision 1
> 	VK_EXT_headless_surface                : extension revision 1
> 	VK_EXT_swapchain_colorspace            : extension revision 4
> 	VK_EXT_validation_features             : extension revision 4
> 	VK_EXT_validation_flags                : extension revision 2
> 	VK_KHR_device_group_creation           : extension revision 1
> 	VK_KHR_display                         : extension revision 23
> 	VK_KHR_external_fence_capabilities     : extension revision 1
> 	VK_KHR_external_memory_capabilities    : extension revision 1
> 	VK_KHR_external_semaphore_capabilities : extension revision 1
> 	VK_KHR_get_display_properties2         : extension revision 1
> 	VK_KHR_get_physical_device_properties2 : extension revision 2
> 	VK_KHR_get_surface_capabilities2       : extension revision 1
> 	VK_KHR_surface                         : extension revision 25
> 	VK_KHR_surface_protected_capabilities  : extension revision 1
> 	VK_NV_external_memory_capabilities     : extension revision 1
> 
> Layers: count = 0
> =================
> Groups:
> =======
> 	No Device Groups Found
> 
> Device Properties and Extensions:
> =================================
> GPU0:
> VkPhysicalDeviceProperties:
> ---------------------------
> 	apiVersion     = 4198400 (1.1.0)
> 	driverVersion  = 1 (0x0001)
> 	vendorID       = 0xba5eba11
> 	deviceID       = 0xf005ba11
> 	deviceType     = PHYSICAL_DEVICE_TYPE_VIRTUAL_GPU
> 	deviceName     = Vulkan Mock Device
> [...]
> 
>   - mesa3d/swrast:
> 	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/lvp_icd.cortex-a72.json vulkaninfo
> 	WARNING: lavapipe is not a conformant vulkan implementation, testing use only.
> 	Segmentation fault
> 
>   - mesa3d/broadcom:
> 	$ VK_ICD_FILENAMES=/usr/share/vulkan/icd.d/broadcom_icd.cortex-a72.json vulkaninfo
> 	ERROR at /home/seiderer/Work/Buildroot/build_rpi4_mesa_vc4_001/build/vulkan-tools-1.2.162/vulkaninfo/vulkaninfo.h:248:vkEnumerateInstanceExtensionProperties failed with ERROR_INITIALIZATION_FAILED
> 
> Next steps:
>   - enable Vulkan/X11/XCB support
>   - fix mesa3d/swrast stand-alone link failure
> 
> Regards,
> Peter
> 
> [1] https://www.raspberrypi.org/blog/vulkan-update-were-conformant/
> 
> Peter Seiderer (6):
>   package/vulkan-headers: new package
>   package/vulkan-loader: new package
>   package/vulkan-tools: new package
>   package/mesa3d: add vulkan broadcom driver support
>   package/mesa3d: add vulkan swrast driver support
>   package/qt5base: add vulkan option
> 
>  package/Config.in                             |  3 ++
>  package/mesa3d/Config.in                      | 21 ++++++++++++
>  package/mesa3d/mesa3d.mk                      |  6 +++-
>  package/qt5/qt5base/Config.in                 | 11 +++++++
>  package/qt5/qt5base/qt5base.mk                |  7 ++++
>  package/vulkan-headers/Config.in              |  7 ++++
>  package/vulkan-headers/vulkan-headers.hash    |  3 ++
>  package/vulkan-headers/vulkan-headers.mk      | 13 ++++++++
>  .../0001-loader-fix-asm_offset-call.patch     | 32 +++++++++++++++++++
>  package/vulkan-loader/Config.in               | 14 ++++++++
>  package/vulkan-loader/vulkan-loader.hash      |  3 ++
>  package/vulkan-loader/vulkan-loader.mk        | 22 +++++++++++++
>  package/vulkan-tools/Config.in                | 17 ++++++++++
>  package/vulkan-tools/vulkan-tools.hash        |  3 ++
>  package/vulkan-tools/vulkan-tools.mk          | 25 +++++++++++++++
>  15 files changed, 186 insertions(+), 1 deletion(-)
>  create mode 100644 package/vulkan-headers/Config.in
>  create mode 100644 package/vulkan-headers/vulkan-headers.hash
>  create mode 100644 package/vulkan-headers/vulkan-headers.mk
>  create mode 100644 package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
>  create mode 100644 package/vulkan-loader/Config.in
>  create mode 100644 package/vulkan-loader/vulkan-loader.hash
>  create mode 100644 package/vulkan-loader/vulkan-loader.mk
>  create mode 100644 package/vulkan-tools/Config.in
>  create mode 100644 package/vulkan-tools/vulkan-tools.hash
>  create mode 100644 package/vulkan-tools/vulkan-tools.mk
> 
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package
  2020-12-23 22:45 ` [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package Peter Seiderer
@ 2020-12-30  8:42   ` Yann E. MORIN
  2020-12-30 14:23     ` Peter Seiderer
  0 siblings, 1 reply; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  8:42 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
[--SNIP--]
> diff --git a/package/vulkan-headers/vulkan-headers.mk b/package/vulkan-headers/vulkan-headers.mk
> new file mode 100644
> index 0000000000..a20f4d789c
> --- /dev/null
> +++ b/package/vulkan-headers/vulkan-headers.mk
> @@ -0,0 +1,13 @@
> +################################################################################
> +#
> +# vulkan-headers
> +#
> +################################################################################
> +
> +VULKAN_HEADERS_VERSION = 1.2.165

As stated in there READ:E:

    Marked version releases have undergone thorough testing but do not
    imply the same quality level as SDK tags. SDK tags follow the
    sdk-<version>.<patch> format (e.g., sdk-1.1.92.0).

Shouldn't we use SDK tags, rather than mere versions?

(Comment valid for the three Vulkan-related packages in your series).

Regards,
Yann E. MORIN.

> +VULKAN_HEADERS_SITE = $(call github,KhronosGroup,Vulkan-Headers,v$(VULKAN_HEADERS_VERSION))
> +VULKAN_HEADERS_LICENSE = Apache-2.0 License
> +VULKAN_HEADERS_LICENSE_FILES = LICENSE.txt
> +VULKAN_HEADERS_INSTALL_STAGING = YES
> +
> +$(eval $(cmake-package))
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 2/6] package/vulkan-loader: new package
  2020-12-23 22:45 ` [Buildroot] [RFC v1 2/6] package/vulkan-loader: " Peter Seiderer
@ 2020-12-30  8:54   ` Yann E. MORIN
  0 siblings, 0 replies; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  8:54 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> ---
[--SNIP--]
> diff --git a/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch b/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
> new file mode 100644
> index 0000000000..d62b9390d8
> --- /dev/null
> +++ b/package/vulkan-loader/0001-loader-fix-asm_offset-call.patch
> @@ -0,0 +1,32 @@
> +From 45098898f7fa25dfd12d2c4f1aed889f678aa870 Mon Sep 17 00:00:00 2001
> +From: Peter Seiderer <ps.report@gmx.net>
> +Date: Wed, 23 Dec 2020 14:46:02 +0100
> +Subject: [PATCH] loader: fix asm_offset call
> +
> +Disable assembler usage (not cross compile capable):

In fact, for cross-compilation to another arch, this is already properly
detected, and asm_offset is not even built or run, and a fallback code
is used.

> +  [ 21%] Generating gen_defines.asm
> +  /bin/sh: asm_offset: command not found
> +  make[3]: *** [loader/CMakeFiles/loader_asm_gen_files.dir/build.make:80: loader/gen_defines.asm] Error 127

In fact, the issue arises when the target arch is similar to that of the
build machine (i.e. x86_64), but CMake fails to be able to call an
executable it just built, even as asm_offset does not link to much
except the C library.

I think the real reason is that CMake detects cross-compilation, so does
not add the directory with the generated executable in the PATH, and
thus running asm_offset fails, whereas for a pure native build, I would
expect CMake to add that directory in the PATH...

And anyway, upstream is very undecided and confused to some degree:
    https://github.com/KhronosGroup/Vulkan-Loader/issues/249

If we wanted to push an upstreamable patch, then maybe we could add an
option to drive the use of asm_offset, e.g.: -DUSE_ASM_OFFSET=ON/OFF

Regards,
Yann E. MORIN.

> +Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> +---
> + loader/CMakeLists.txt | 2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +diff --git a/loader/CMakeLists.txt b/loader/CMakeLists.txt
> +index ba9f460f1..dbebfb058 100644
> +--- a/loader/CMakeLists.txt
> ++++ b/loader/CMakeLists.txt
> +@@ -187,7 +187,7 @@ else(UNIX AND NOT APPLE) # i.e.: Linux
> +     endif()
> +     set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY)
> +     try_compile(ASSEMBLER_WORKS ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/asm_test.S)
> +-    if(ASSEMBLER_WORKS)
> ++    if(FALSE)
> +         set(OPT_LOADER_SRCS ${OPT_LOADER_SRCS} unknown_ext_chain_gas.S)
> +         add_executable(asm_offset asm_offset.c)
> +         target_link_libraries(asm_offset Vulkan::Headers)
> +-- 
> +2.29.2
> +
> diff --git a/package/vulkan-loader/Config.in b/package/vulkan-loader/Config.in
> new file mode 100644
> index 0000000000..9c215dc9ce
> --- /dev/null
> +++ b/package/vulkan-loader/Config.in
> @@ -0,0 +1,14 @@
> +config BR2_PACKAGE_VULKAN_LOADER
> +	bool "vulkan-loader"
> +	depends on BR2_INSTALL_LIBSTDCPP
> +	depends on !BR2_STATIC_LIBS # dlfcn.h
> +	depends on BR2_TOOLCHAIN_HAS_THREADS
> +	select BR2_PACKAGE_VULKAN_HEADERS
> +	help
> +	  The Khronos official Vulkan ICD desktop loader.
> +
> +	  https://github.com/KhronosGroup/Vulkan-Loader
> +
> +comment "vulkan-loader needs a toolchain w/ C++, dynamic library, threads"
> +	depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS || \
> +		!BR2_TOOLCHAIN_HAS_THREADS
> diff --git a/package/vulkan-loader/vulkan-loader.hash b/package/vulkan-loader/vulkan-loader.hash
> new file mode 100644
> index 0000000000..c70ed90be6
> --- /dev/null
> +++ b/package/vulkan-loader/vulkan-loader.hash
> @@ -0,0 +1,3 @@
> +# Locally calculated
> +sha256  e582dce35051a34af82db2a8fcd38fbc5837b4506e76e6cda685dca02dee01c7  vulkan-loader-1.2.162.tar.gz
> +sha256  43c0a37e6a0fa7ff3c843b3ec5a4fac84b712558ddac103fbd4c1649662a9ece  LICENSE.txt
> diff --git a/package/vulkan-loader/vulkan-loader.mk b/package/vulkan-loader/vulkan-loader.mk
> new file mode 100644
> index 0000000000..ff6c0f869b
> --- /dev/null
> +++ b/package/vulkan-loader/vulkan-loader.mk
> @@ -0,0 +1,22 @@
> +################################################################################
> +#
> +# vulkan-loader
> +#
> +################################################################################
> +
> +VULKAN_LOADER_VERSION = 1.2.162
> +VULKAN_LOADER_SITE = $(call github,KhronosGroup,Vulkan-Loader,v$(VULKAN_LOADER_VERSION))
> +VULKAN_LOADER_LICENSE = Apache-2.0 License
> +VULKAN_LOADER_LICENSE_FILES = LICENSE.txt
> +VULKAN_LOADER_INSTALL_STAGING = YES
> +
> +VULKAN_LOADER_DEPENDENCIES = vulkan-headers
> +
> +VULKAN_LOADER_CONF_OPTS += \
> +	-DBUILD_WSI_XCB_SUPPORT=OFF \
> +	-DBUILD_WSI_XLIB_SUPPORT=OFF \
> +	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
> +	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
> +	-DUSE_CCACHE=OFF
> +
> +$(eval $(cmake-package))
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 3/6] package/vulkan-tools: new package
  2020-12-23 22:45 ` [Buildroot] [RFC v1 3/6] package/vulkan-tools: " Peter Seiderer
@ 2020-12-30  9:00   ` Yann E. MORIN
  2020-12-30 14:32     ` Peter Seiderer
  0 siblings, 1 reply; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  9:00 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
[--SNIP--]
> diff --git a/package/vulkan-tools/vulkan-tools.mk b/package/vulkan-tools/vulkan-tools.mk
> new file mode 100644
> index 0000000000..9a20ddf36b
> --- /dev/null
> +++ b/package/vulkan-tools/vulkan-tools.mk
> @@ -0,0 +1,25 @@
> +################################################################################
> +#
> +# vulkan-tools
> +#
> +################################################################################
> +
> +VULKAN_TOOLS_VERSION = 1.2.162
> +VULKAN_TOOLS_SITE = $(call github,KhronosGroup,Vulkan-Tools,v$(VULKAN_TOOLS_VERSION))
> +VULKAN_TOOLS_LICENSE = Apache-2.0 License

Something I forgot to comment on on the other Vulkan packages: the SPDX
short identifier is: Apache-2.0

> +VULKAN_TOOLS_LICENSE_FILES = LICENSE.txt
> +
> +VULKAN_TOOLS_DEPENDENCIES = vulkan-headers vulkan-loader
> +
> +VULKAN_TOOLS_CONF_OPTS += \
> +	-DBUILD_CUBE=OFF \
> +	-DBUILD_VULKANINFO=ON \
> +	-DBUILD_ICD=ON \
> +	-DINSTALL_ICD=ON \
> +	-DBUILD_WSI_XCB_SUPPORT=OFF \
> +	-DBUILD_WSI_XLIB_SUPPORT=OFF \
> +	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
> +	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \

I guess those will be conditional on the udnerlying libraries, e.g. when
libxcb is enabled, we enable WSI_XCB, and so on, right?

Regards,
Yann E. MORIN.

> +	-DUSE_CCACHE=OFF
> +
> +$(eval $(cmake-package))
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support
  2020-12-23 22:45 ` [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
@ 2020-12-30  9:07   ` Yann E. MORIN
  0 siblings, 0 replies; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  9:07 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 45eb62b701..73e7199e8c 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -388,6 +388,14 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
>  
>  comment "Vulkan drivers"
>  
> +config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM
> +	bool "Vulkan broadcom driver"
> +	depends on BR2_arm || BR2_aarch64
> +	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
> +	help
> +	  Vulkan broadcom driver.

I guess this is where we would introduce the select BR2_PACKAGE_PROVIDES_LIBVULKAN
of that other series I pointed earlier:
    https://patchwork.ozlabs.org/project/buildroot/list/?series=157522

Regards,
Yann E. MORIN.

>  config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
>  	bool "Vulkan Intel driver"
>  	depends on BR2_i386 || BR2_x86_64
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index d754cb8796..d9ea752d3e 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -110,6 +110,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_I965)   += i965
>  MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU) += nouveau
>  MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
>  # Vulkan Drivers
> +MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
>  MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)   += intel
>  
>  ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
> @@ -143,9 +144,11 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
>  MESA3D_CONF_OPTS += \
>  	-Dvulkan-drivers=
>  else
> +ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL),y)
>  MESA3D_DEPENDENCIES += xlib_libxshmfence
> +MESA3D_CONF_OPTS += -Ddri3=enabled
> +endif
>  MESA3D_CONF_OPTS += \
> -	-Ddri3=enabled \

Meh... dri3 is already driven by BR2_PACKAGE_MESA3D_DRI_DRIVER, and this
is going to be quite another mess if we drive it in a second place (not
the fault of your patch, it's already the case before, but tstill, a bit
of cleanup is probably in order...)

Regards,
Yann E. MORIN.

>  	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
>  endif
>  
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast driver support
  2020-12-23 22:45 ` [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast " Peter Seiderer
@ 2020-12-30  9:15   ` Yann E. MORIN
  0 siblings, 0 replies; 15+ messages in thread
From: Yann E. MORIN @ 2020-12-30  9:15 UTC (permalink / raw)
  To: buildroot

Peter, All,

On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Notes:
>   - link failure when selected stand alone, fine in case
>     vulkan-broadcom is selected too

Is it just vulkan-broadcom that fixes it, or would enabling the intel
vulkan fix it too?

Regards,
Yann E. MORIN.

> ---
>  package/mesa3d/Config.in | 13 +++++++++++++
>  package/mesa3d/mesa3d.mk |  1 +
>  2 files changed, 14 insertions(+)
> 
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 73e7199e8c..0bd904c270 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -416,6 +416,19 @@ comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >=
>  	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
>  		!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
>  
> +config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST
> +	bool "Vulkan swrast driver"
> +	depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
> +	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> +	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
> +	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
> +	help
> +	  Vulkan swrast driver.
> +
> +comment "Vulkan swrast: Only one swrast provider can be built"
> +	depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
> +
>  comment "Off-screen Rendering"
>  
>  config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index d9ea752d3e..f8eeb797a1 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -112,6 +112,7 @@ MESA3D_DRI_DRIVERS-$(BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON) += r100
>  # Vulkan Drivers
>  MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
>  MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)   += intel
> +MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST) += swrast
>  
>  ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER),)
>  MESA3D_CONF_OPTS += \
> -- 
> 2.29.2
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package
  2020-12-30  8:42   ` Yann E. MORIN
@ 2020-12-30 14:23     ` Peter Seiderer
  0 siblings, 0 replies; 15+ messages in thread
From: Peter Seiderer @ 2020-12-30 14:23 UTC (permalink / raw)
  To: buildroot

Hello Yann,

On Wed, 30 Dec 2020 09:42:49 +0100, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Peter, All,
>
> On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> > ---
> [--SNIP--]
> > diff --git a/package/vulkan-headers/vulkan-headers.mk b/package/vulkan-headers/vulkan-headers.mk
> > new file mode 100644
> > index 0000000000..a20f4d789c
> > --- /dev/null
> > +++ b/package/vulkan-headers/vulkan-headers.mk
> > @@ -0,0 +1,13 @@
> > +################################################################################
> > +#
> > +# vulkan-headers
> > +#
> > +################################################################################
> > +
> > +VULKAN_HEADERS_VERSION = 1.2.165
>
> As stated in there READ:E:
>
>     Marked version releases have undergone thorough testing but do not
>     imply the same quality level as SDK tags. SDK tags follow the
>     sdk-<version>.<patch> format (e.g., sdk-1.1.92.0).
>
> Shouldn't we use SDK tags, rather than mere versions?

One reason why this patch series is sent as RFC ;-), but will update/or
downgrade to an SDK tag (if it works) on next patch series iteration...

Regards,
Peter

>
> (Comment valid for the three Vulkan-related packages in your series).
>
> Regards,
> Yann E. MORIN.
>
> > +VULKAN_HEADERS_SITE = $(call github,KhronosGroup,Vulkan-Headers,v$(VULKAN_HEADERS_VERSION))
> > +VULKAN_HEADERS_LICENSE = Apache-2.0 License
> > +VULKAN_HEADERS_LICENSE_FILES = LICENSE.txt
> > +VULKAN_HEADERS_INSTALL_STAGING = YES
> > +
> > +$(eval $(cmake-package))
> > --
> > 2.29.2
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

* [Buildroot] [RFC v1 3/6] package/vulkan-tools: new package
  2020-12-30  9:00   ` Yann E. MORIN
@ 2020-12-30 14:32     ` Peter Seiderer
  0 siblings, 0 replies; 15+ messages in thread
From: Peter Seiderer @ 2020-12-30 14:32 UTC (permalink / raw)
  To: buildroot

Hello Yann,

On Wed, 30 Dec 2020 10:00:04 +0100, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> Peter, All,
>
> On 2020-12-23 23:45 +0100, Peter Seiderer spake thusly:
> > Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> [--SNIP--]
> > diff --git a/package/vulkan-tools/vulkan-tools.mk b/package/vulkan-tools/vulkan-tools.mk
> > new file mode 100644
> > index 0000000000..9a20ddf36b
> > --- /dev/null
> > +++ b/package/vulkan-tools/vulkan-tools.mk
> > @@ -0,0 +1,25 @@
> > +################################################################################
> > +#
> > +# vulkan-tools
> > +#
> > +################################################################################
> > +
> > +VULKAN_TOOLS_VERSION = 1.2.162
> > +VULKAN_TOOLS_SITE = $(call github,KhronosGroup,Vulkan-Tools,v$(VULKAN_TOOLS_VERSION))
> > +VULKAN_TOOLS_LICENSE = Apache-2.0 License
>
> Something I forgot to comment on on the other Vulkan packages: the SPDX
> short identifier is: Apache-2.0

O.k, will fix it on next patch iteration...

>
> > +VULKAN_TOOLS_LICENSE_FILES = LICENSE.txt
> > +
> > +VULKAN_TOOLS_DEPENDENCIES = vulkan-headers vulkan-loader
> > +
> > +VULKAN_TOOLS_CONF_OPTS += \
> > +	-DBUILD_CUBE=OFF \
> > +	-DBUILD_VULKANINFO=ON \
> > +	-DBUILD_ICD=ON \
> > +	-DINSTALL_ICD=ON \
> > +	-DBUILD_WSI_XCB_SUPPORT=OFF \
> > +	-DBUILD_WSI_XLIB_SUPPORT=OFF \
> > +	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
> > +	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
>
> I guess those will be conditional on the udnerlying libraries, e.g. when
> libxcb is enabled, we enable WSI_XCB, and so on, right?

Yes, stuff for follow-up patches...

Regards,
Peter

>
> Regards,
> Yann E. MORIN.
>
> > +	-DUSE_CCACHE=OFF
> > +
> > +$(eval $(cmake-package))
> > --
> > 2.29.2
> >
> > _______________________________________________
> > buildroot mailing list
> > buildroot at busybox.net
> > http://lists.busybox.net/mailman/listinfo/buildroot
>

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2020-12-30 14:32 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-12-23 22:45 [Buildroot] [RFC v1 0/6] Vulkan support Peter Seiderer
2020-12-23 22:45 ` [Buildroot] [RFC v1 1/6] package/vulkan-headers: new package Peter Seiderer
2020-12-30  8:42   ` Yann E. MORIN
2020-12-30 14:23     ` Peter Seiderer
2020-12-23 22:45 ` [Buildroot] [RFC v1 2/6] package/vulkan-loader: " Peter Seiderer
2020-12-30  8:54   ` Yann E. MORIN
2020-12-23 22:45 ` [Buildroot] [RFC v1 3/6] package/vulkan-tools: " Peter Seiderer
2020-12-30  9:00   ` Yann E. MORIN
2020-12-30 14:32     ` Peter Seiderer
2020-12-23 22:45 ` [Buildroot] [RFC v1 4/6] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
2020-12-30  9:07   ` Yann E. MORIN
2020-12-23 22:45 ` [Buildroot] [RFC v1 5/6] package/mesa3d: add vulkan swrast " Peter Seiderer
2020-12-30  9:15   ` Yann E. MORIN
2020-12-23 22:45 ` [Buildroot] [RFC v1 6/6] package/qt5base: add vulkan option Peter Seiderer
2020-12-30  8:39 ` [Buildroot] [RFC v1 0/6] Vulkan support Yann E. MORIN

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox