All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFC v2 00/12] Vulkan support
@ 2021-01-10 22:28 Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 01/12] package/mesa3d: add config option for DRI3 support Peter Seiderer
                   ` (11 more replies)
  0 siblings, 12 replies; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Update to first patch series ([1]) to add ome/more Vulkan support to
Buildroot.

Targeting towards the RPi Vulkan support (as announced e.g. [2]),
but send as RFC as not all previous review comments are handled yet.

This is the first 'running' version, tested on RPi 4 (32-/64-Bit) with
the QT vulkan examples.

Tested with the following defconfig (32-Bit, dtoverlay=vc4-kms-v3d-pi4):

BR2_arm=y
BR2_cortex_a72=y
BR2_ARM_FPU_NEON_VFPV4=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_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
BR2_SYSTEM_DHCP="eth0"
BR2_GENERATE_LOCALE="en_US"
BR2_ROOTFS_POST_BUILD_SCRIPT="board/raspberrypi4/post-build.sh"
BR2_ROOTFS_POST_IMAGE_SCRIPT="board/raspberrypi4/post-image.sh"
BR2_ROOTFS_POST_SCRIPT_ARGS="--add-miniuart-bt-overlay"
BR2_LINUX_KERNEL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL=y
BR2_LINUX_KERNEL_CUSTOM_TARBALL_LOCATION="$(call github,raspberrypi,linux,7e7689a032a66685b6a045b75265579bae838a00)/linux-7e7689a032a66685b6a045b75265579bae838a00.tar.gz"
BR2_LINUX_KERNEL_DEFCONFIG="bcm2711"
BR2_LINUX_KERNEL_DTS_SUPPORT=y
BR2_LINUX_KERNEL_INTREE_DTS_NAME="bcm2711-rpi-4-b"
BR2_LINUX_KERNEL_NEEDS_HOST_OPENSSL=y
BR2_PACKAGE_STRACE=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_MESA3D_DEMOS=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_OPENGL_GLX=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_VULKAN_TOOLS=y
BR2_PACKAGE_VULKAN_TOOLS_XCB=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_EXAMPLES=y
BR2_PACKAGE_QT5BASE_GUI=y
BR2_PACKAGE_QT5BASE_OPENGL=y
BR2_PACKAGE_QT5BASE_OPENGL_ES2=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_VULKAN=y
BR2_PACKAGE_QT5BASE_XCB=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="xcb"
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_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XDRIVER_XF86_INPUT_LIBINPUT=y
BR2_PACKAGE_XTERM=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_LIBEPOXY=y
BR2_PACKAGE_OPENSSH=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y

And with the following defconfig (64-Bit, dtoverlay=vc4-kms-v3d-pi4):

BR2_aarch64=y
BR2_cortex_a72=y
BR2_ARM_FPU_VFPV4=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_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_STRACE=y
BR2_PACKAGE_DEJAVU=y
BR2_PACKAGE_MESA3D_DEMOS=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_OPENGL_GLX=y
BR2_PACKAGE_MESA3D_OPENGL_ES=y
BR2_PACKAGE_VULKAN_TOOLS=y
BR2_PACKAGE_VULKAN_TOOLS_XCB=y
BR2_PACKAGE_QT5=y
BR2_PACKAGE_QT5BASE_EXAMPLES=y
BR2_PACKAGE_QT5BASE_GUI=y
BR2_PACKAGE_QT5BASE_OPENGL=y
BR2_PACKAGE_QT5BASE_OPENGL_ES2=y
BR2_PACKAGE_QT5BASE_OPENGL_LIB=y
BR2_PACKAGE_QT5BASE_VULKAN=y
BR2_PACKAGE_QT5BASE_XCB=y
BR2_PACKAGE_QT5BASE_DEFAULT_QPA="xcb"
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_XORG7=y
BR2_PACKAGE_XSERVER_XORG_SERVER=y
BR2_PACKAGE_XTERM=y
BR2_PACKAGE_RPI_FIRMWARE=y
BR2_PACKAGE_RPI_FIRMWARE_VARIANT_PI4=y
BR2_PACKAGE_LIBEPOXY=y
BR2_PACKAGE_OPENSSH=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="256M"
# BR2_TARGET_ROOTFS_TAR is not set
BR2_PACKAGE_HOST_DOSFSTOOLS=y
BR2_PACKAGE_HOST_GENIMAGE=y
BR2_PACKAGE_HOST_MTOOLS=y

Next steps:
 - fix mesa3d/swrast stand-alone link failure
 - sync with freescale-imx libvulkan patches (see [3], [4])
 - take a look at (and fix) the remaining review comments from Yann

Runtime tests done:

  - glxinfo

	$ glxinfo
name of display: :0
display: :0  screen: 0
direct rendering: Yes
server glx vendor string: SGI
server glx version string: 1.4
[...]
Extended renderer info (GLX_MESA_query_renderer):
    Vendor: Broadcom (0x14e4)
    Device: V3D 4.2 (0xffffffff)
    Version: 20.3.2
    Accelerated: yes
    Video memory: 830MB
    Unified memory: yes
    Preferred profile: compat (0x2)
    Max core profile version: 0.0
    Max compat profile version: 2.1
    Max GLES1 profile version: 1.1
    Max GLES[23] profile version: 3.1
OpenGL vendor string: Broadcom
OpenGL renderer string: V3D 4.2
OpenGL version string: 2.1 Mesa 20.3.2
OpenGL shading language version string: 1.20
[...]

  - vulkaninfo

	$ vulkaninfo 
WARNING: v3dv is neither a complete nor a conformant Vulkan implementation. Testing use only.
==========
VULKANINFO
==========

Vulkan Instance Version: 1.2.165


Instance Extensions: count = 7
==============================
	VK_EXT_debug_report                    : extension revision 9
	VK_EXT_debug_utils                     : extension revision 2
	VK_KHR_external_memory_capabilities    : extension revision 1
	VK_KHR_get_physical_device_properties2 : extension revision 1
	VK_KHR_get_surface_capabilities2       : extension revision 1
	VK_KHR_surface                         : extension revision 25
	VK_KHR_xcb_surface                     : extension revision 6

Layers: count = 0
=================
Presentable Surfaces:
=====================
GPU id : 0 (V3D 4.2):
	Surface type = VK_KHR_xcb_surface
	Formats: count = 2
		SurfaceFormat[0]:
			format = FORMAT_B8G8R8A8_SRGB
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
		SurfaceFormat[1]:
			format = FORMAT_B8G8R8A8_UNORM
			colorSpace = COLOR_SPACE_SRGB_NONLINEAR_KHR
	Present Modes: count = 4
		PRESENT_MODE_IMMEDIATE_KHR
		PRESENT_MODE_MAILBOX_KHR
		PRESENT_MODE_FIFO_KHR
		PRESENT_MODE_FIFO_RELAXED_KHR
	VkSurfaceCapabilitiesKHR:
	-------------------------
		minImageCount       = 3
		maxImageCount       = 0
		currentExtent:
			width  = 256
			height = 256
		minImageExtent:
			width  = 256
			height = 256
		maxImageExtent:
			width  = 256
			height = 256
		maxImageArrayLayers = 1
		supportedTransforms: count = 1
			SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		currentTransform    = SURFACE_TRANSFORM_IDENTITY_BIT_KHR
		supportedCompositeAlpha: count = 2
			COMPOSITE_ALPHA_OPAQUE_BIT_KHR
			COMPOSITE_ALPHA_INHERIT_BIT_KHR
		supportedUsageFlags: count = 4
			IMAGE_USAGE_TRANSFER_SRC_BIT
			IMAGE_USAGE_TRANSFER_DST_BIT
			IMAGE_USAGE_STORAGE_BIT
			IMAGE_USAGE_COLOR_ATTACHMENT_BIT


Device Properties and Extensions:
=================================
GPU0:
-----
VkPhysicalDeviceProperties:
---------------------------
	apiVersion     = 4194459 (1.0.155)
	driverVersion  = 83898370 (0x5003002)
	vendorID       = 0x14e4
	deviceID       = 0x002a
	deviceType     = PHYSICAL_DEVICE_TYPE_INTEGRATED_GPU
	deviceName     = V3D 4.2
[...]


  - QT examples

	$ /usr/lib/qt/examples/opengl/hellogl2/hellogl2
	$ /usr/lib/qt/examples/vulkan/hellovulkancubes/hellovulkancubes
 
Regards,
Peter

[1] http://lists.busybox.net/pipermail/buildroot/2020-December/299219.html
[2] https://www.raspberrypi.org/blog/vulkan-update-were-conformant/
[3] http://lists.busybox.net/pipermail/buildroot/2020-December/299716.html
[4] http://lists.busybox.net/pipermail/buildroot/2020-December/299717.html

Peter Seiderer (12):
  package/mesa3d: add config option for DRI3 support
  package/mesa3d: fix vulkan/intel dependencies
  package/mesa3d: fix gbm config warning
  package/mesa3d: DRI3 with GLX needs xshmfence
  package/vulkan-headers: new package
  package/vulkan-loader: new package
  package/vulkan-tools: new package
  package/mesa3d: add vulkan broadcom driver support
  package/qt5base: add vulkan option
  package/vulkan-loader: add XCB support
  package/vulkan-tools: add XCB support
  WIP: package/mesa3d: add vulkan swrast driver support

 package/Config.in                             |  3 ++
 package/mesa3d/Config.in                      | 44 +++++++++++++++++--
 package/mesa3d/mesa3d.mk                      | 18 +++++---
 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               | 26 +++++++++++
 package/vulkan-loader/vulkan-loader.hash      |  3 ++
 package/vulkan-loader/vulkan-loader.mk        | 28 ++++++++++++
 package/vulkan-tools/Config.in                | 31 +++++++++++++
 package/vulkan-tools/vulkan-tools.hash        |  3 ++
 package/vulkan-tools/vulkan-tools.mk          | 31 +++++++++++++
 15 files changed, 251 insertions(+), 9 deletions(-)
 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] 23+ messages in thread

* [Buildroot] [RFC v2 01/12] package/mesa3d: add config option for DRI3 support
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies Peter Seiderer
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Add config option for DRI3 support and use it instead
of DRI3 enable/disable logic in *.mk file.

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/mesa3d/Config.in |  8 ++++++++
 package/mesa3d/mesa3d.mk | 12 +++++++-----
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 45eb62b701..347b1a2726 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -15,6 +15,11 @@ menuconfig BR2_PACKAGE_MESA3D
 
 if BR2_PACKAGE_MESA3D
 
+config BR2_PACKAGE_MESA3D_DRI3
+	bool "Enable DRI3 support"
+	help
+	  Enable DRI3 support.
+
 # Some Gallium driver needs libelf when built with LLVM support
 config BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
 	bool
@@ -64,6 +69,8 @@ config BR2_PACKAGE_MESA3D_DRI_DRIVER
 		!BR2_PACKAGE_MESA3D_OPENGL_GLX && \
 		!BR2_PACKAGE_MESA3D_OPENGL_EGL && \
 		!BR2_PACKAGE_MESA3D_OSMESA_CLASSIC
+	select BR2_PACKAGE_MESA3D_DRI3 if \
+		(BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4)
 	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \
 		(BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4)
 
@@ -396,6 +403,7 @@ config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
 	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
 	depends on BR2_PACKAGE_XORG7 # xorgproto
 	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_MESA3D_DRI3
 	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
 	select BR2_PACKAGE_XORGPROTO
 	select BR2_PACKAGE_XLIB_LIBXSHMFENCE
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 5eca1f0906..ea6265d723 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -36,6 +36,12 @@ ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM),y)
 MESA3D_CONF_OPTS += -Db_asneeded=false
 endif
 
+ifeq ($(BR2_PACKAGE_MESA3D_DRI3),y)
+MESA3D_CONF_OPTS += -Ddri3=enabled
+else
+MESA3D_CONF_OPTS += -Ddri3=disabled
+endif
+
 ifeq ($(BR2_PACKAGE_MESA3D_LLVM),y)
 MESA3D_DEPENDENCIES += host-llvm llvm
 MESA3D_MESON_EXTRA_BINARIES += llvm-config='$(STAGING_DIR)/usr/bin/llvm-config'
@@ -125,13 +131,10 @@ endif
 
 ifeq ($(BR2_PACKAGE_MESA3D_DRI_DRIVER),)
 MESA3D_CONF_OPTS += \
-	-Ddri-drivers= -Ddri3=disabled
+	-Ddri-drivers=
 else
 ifeq ($(BR2_PACKAGE_XLIB_LIBXSHMFENCE),y)
 MESA3D_DEPENDENCIES += xlib_libxshmfence
-MESA3D_CONF_OPTS += -Ddri3=enabled
-else
-MESA3D_CONF_OPTS += -Ddri3=disabled
 endif
 MESA3D_CONF_OPTS += \
 	-Dshared-glapi=enabled \
@@ -145,7 +148,6 @@ MESA3D_CONF_OPTS += \
 else
 MESA3D_DEPENDENCIES += xlib_libxshmfence
 MESA3D_CONF_OPTS += \
-	-Ddri3=enabled \
 	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
 endif
 
-- 
2.29.2

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

* [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 01/12] package/mesa3d: add config option for DRI3 support Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 18:09   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning Peter Seiderer
                   ` (9 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

- enable X11/GLX free build

- remove xorgproto dependency is already given via BR2_PACKAGE_MESA3D_OPENGL_GLX/BR2_PACKAGE_MESA3D_NEEDS_X11

- libxshmfence only needed in case BR2_PACKAGE_MESA3D_OPENGL_GLX is enabled

- the correct dependency for BR2_PACKAGE_XLIB_LIBXSHMFENCE would
  be 'depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX',
  but this results in:

  package/mesa3d/Config.in:81:error: recursive dependency detected!
  package/mesa3d/Config.in:81:    symbol BR2_PACKAGE_MESA3D_DRIVER is selected by BR2_PACKAGE_MESA3D_VULKAN_DRIVER
  package/mesa3d/Config.in:77:    symbol BR2_PACKAGE_MESA3D_VULKAN_DRIVER is selected by BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
  package/mesa3d/Config.in:406:   symbol BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL depends on BR2_PACKAGE_MESA3D_OPENGL_GLX
  package/mesa3d/Config.in:461:   symbol BR2_PACKAGE_MESA3D_OPENGL_GLX depends on BR2_PACKAGE_MESA3D_DRIVER
  For a resolution refer to Documentation/kbuild/kconfig-language.txt
  subsection "Kconfig recursive dependency limitations"

  so use unconditional 'depends on BR2_TOOLCHAIN_HAS_SYNC_4' instead

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/mesa3d/Config.in | 10 ++++++----
 package/mesa3d/mesa3d.mk |  2 ++
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 347b1a2726..d9c27f8b5c 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -398,15 +398,17 @@ comment "Vulkan drivers"
 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
 	bool "Vulkan Intel driver"
 	depends on BR2_i386 || BR2_x86_64
+	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of libxshmfence only
+	# in case GLX is enabled but the following results in 'recursive
+	# dependency detected!', so simple depend always on BR2_TOOLCHAIN_HAS_SYNC_4
+	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX # libxshmfence in case GLX is enabled
 	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence
 	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
 	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
-	depends on BR2_PACKAGE_XORG7 # xorgproto
 	select BR2_PACKAGE_EXPAT
-	select BR2_PACKAGE_MESA3D_DRI3
+	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_MESA3D_OPENGL_GLX
 	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
-	select BR2_PACKAGE_XORGPROTO
-	select BR2_PACKAGE_XLIB_LIBXSHMFENCE
+	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX
 	help
 	  Vulkan driver for Intel hardware from Ivy Bridge onward.
 
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index ea6265d723..967b86810f 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -146,7 +146,9 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
 MESA3D_CONF_OPTS += \
 	-Dvulkan-drivers=
 else
+ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)$(BR2_PACKAGE_MESA3D_OPENGL_GLX),yy)
 MESA3D_DEPENDENCIES += xlib_libxshmfence
+endif
 MESA3D_CONF_OPTS += \
 	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
 endif
-- 
2.29.2

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

* [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 01/12] package/mesa3d: add config option for DRI3 support Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 20:19   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence Peter Seiderer
                   ` (8 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Fixes for the following defconfig:

  BR2_x86_64=y
  BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
  BR2_TOOLCHAIN_BUILDROOT_CXX=y
  BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
  BR2_TARGET_GENERIC_GETTY_PORT="tty1"
  BR2_PACKAGE_MESA3D=y
  BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y
  BR2_PACKAGE_MESA3D_OPENGL_EGL=y
  BR2_PACKAGE_MESA3D_OPENGL_ES=y

this warning:

  WARNING: unmet direct dependencies detected for BR2_PACKAGE_MESA3D_GBM
    Depends on [n]: BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y] && (BR2_PACKAGE_MESA3D_DRI_DRIVER [=n] || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER [=n] && BR2_PACKAGE_MESA3D_OPENGL_EGL [=y])
    Selected by [y]:
    - BR2_PACKAGE_MESA3D_OPENGL_EGL [=y] && BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y]

  WARNING: unmet direct dependencies detected for BR2_PACKAGE_MESA3D_GBM
    Depends on [n]: BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y] && (BR2_PACKAGE_MESA3D_DRI_DRIVER [=n] || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER [=n] && BR2_PACKAGE_MESA3D_OPENGL_EGL [=y])
    Selected by [y]:
    - BR2_PACKAGE_MESA3D_OPENGL_EGL [=y] && BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y]

as BR2_PACKAGE_MESA3D_VULKAN_DRIVER selects BR2_PACKAGE_MESA3D_DRIVER which
enables possible selection of BR2_PACKAGE_MESA3D_OPENGL_EGL selecting
BR2_PACKAGE_MESA3D_GBM.

Selecting EGL with only a vulkan driver selected gives the following configure
failure:

  .../build/mesa3d-20.3.2/meson.build:424:4: ERROR: Problem encountered: EGL requires dri

Note dri means here an dri or gallium driver (see meson.build and look
for with_dri).

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/mesa3d/Config.in | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index d9c27f8b5c..7a976f4b2c 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -452,6 +452,8 @@ config BR2_PACKAGE_MESA3D_OPENGL_GLX
 comment "OpenGL GLX support needs X11"
 	depends on !BR2_PACKAGE_XORG7
 
+if BR2_PACKAGE_MESA3D_DRI_DRIVER || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+
 config BR2_PACKAGE_MESA3D_OPENGL_EGL
 	bool "OpenGL EGL"
 	select BR2_PACKAGE_HAS_LIBEGL
@@ -461,6 +463,8 @@ config BR2_PACKAGE_MESA3D_OPENGL_EGL
 	  Use the Khronos EGL APIs. EGL is a window manager for OpenGL
 	  applications similar to GLX, for X, and WGL, for Windows.
 
+endif # BR2_PACKAGE_MESA3D_DRI_DRIVER || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
+
 config BR2_PACKAGE_MESA3D_OPENGL_ES
 	bool "OpenGL ES"
 	select BR2_PACKAGE_HAS_LIBGLES
-- 
2.29.2

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

* [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (2 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 20:23   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package Peter Seiderer
                   ` (7 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Fixes for the following defconfig:

  BR2_arm=y
  BR2_cortex_a72=y
  BR2_ARM_FPU_NEON_VFPV4=y
  BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
  BR2_TOOLCHAIN_BUILDROOT_CXX=y
  BR2_PACKAGE_MESA3D=y
  BR2_PACKAGE_MESA3D_DRI3=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_OPENGL_GLX=y

this configure error:

  .../build/mesa3d-20.3.2/meson.build:1772:6: ERROR: Dependency "xshmfence" not found, tried pkgconfig and cmake

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/mesa3d/Config.in | 5 +++--
 package/mesa3d/mesa3d.mk | 6 +++---
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 7a976f4b2c..8a01fa95e2 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -17,6 +17,8 @@ if BR2_PACKAGE_MESA3D
 
 config BR2_PACKAGE_MESA3D_DRI3
 	bool "Enable DRI3 support"
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX
+	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX
 	help
 	  Enable DRI3 support.
 
@@ -398,7 +400,7 @@ comment "Vulkan drivers"
 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
 	bool "Vulkan Intel driver"
 	depends on BR2_i386 || BR2_x86_64
-	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of libxshmfence only
+	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of dri3/libxshmfence only
 	# in case GLX is enabled but the following results in 'recursive
 	# dependency detected!', so simple depend always on BR2_TOOLCHAIN_HAS_SYNC_4
 	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX # libxshmfence in case GLX is enabled
@@ -408,7 +410,6 @@ config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
 	select BR2_PACKAGE_EXPAT
 	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_MESA3D_OPENGL_GLX
 	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
-	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX
 	help
 	  Vulkan driver for Intel hardware from Ivy Bridge onward.
 
diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
index 967b86810f..31f1c12d63 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -38,6 +38,9 @@ endif
 
 ifeq ($(BR2_PACKAGE_MESA3D_DRI3),y)
 MESA3D_CONF_OPTS += -Ddri3=enabled
+ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y)
+MESA3D_DEPENDENCIES += xlib_libxshmfence
+endif
 else
 MESA3D_CONF_OPTS += -Ddri3=disabled
 endif
@@ -146,9 +149,6 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
 MESA3D_CONF_OPTS += \
 	-Dvulkan-drivers=
 else
-ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)$(BR2_PACKAGE_MESA3D_OPENGL_GLX),yy)
-MESA3D_DEPENDENCIES += xlib_libxshmfence
-endif
 MESA3D_CONF_OPTS += \
 	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
 endif
-- 
2.29.2

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

* [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (3 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 20:30   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 06/12] package/vulkan-loader: " Peter Seiderer
                   ` (6 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - fix license SPDX (Yann E. MORIN)
---
 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 9ed02ec890..9a91e6324c 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -338,6 +338,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..48d390a581
--- /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
+VULKAN_HEADERS_LICENSE_FILES = LICENSE.txt
+VULKAN_HEADERS_INSTALL_STAGING = YES
+
+$(eval $(cmake-package))
-- 
2.29.2

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

* [Buildroot] [RFC v2 06/12] package/vulkan-loader: new package
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (4 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:00   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 07/12] package/vulkan-tools: " Peter Seiderer
                   ` (5 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - fix license SPDX (Yann E. MORIN)
  - add sob line
---
 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 9a91e6324c..86676b57ef 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -339,6 +339,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..9c9ccb2458
--- /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
+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] 23+ messages in thread

* [Buildroot] [RFC v2 07/12] package/vulkan-tools: new package
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (5 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 06/12] package/vulkan-loader: " Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:02   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 08/12] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
                   ` (4 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - fix license SPDX (Yann E. MORIN)
  - disable ICD (as it is only a mock ICD for testing purpouse)
---
 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 86676b57ef..b156d8de1a 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -340,6 +340,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..129efddf3b
--- /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
+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=OFF \
+	-DINSTALL_ICD=OFF \
+	-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] 23+ messages in thread

* [Buildroot] [RFC v2 08/12] package/mesa3d: add vulkan broadcom driver support
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (6 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 07/12] package/vulkan-tools: " Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option Peter Seiderer
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - no changes

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 | 10 ++++++++++
 package/mesa3d/mesa3d.mk |  1 +
 2 files changed, 11 insertions(+)

diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
index 8a01fa95e2..5da9bfe08a 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -397,6 +397,16 @@ 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
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # dri3/libxshmfence
+	select BR2_PACKAGE_EXPAT
+	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_MESA3D_OPENGL_GLX
+	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 31f1c12d63..62dc7db91d 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -119,6 +119,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),)
-- 
2.29.2

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

* [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (7 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 08/12] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:31   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support Peter Seiderer
                   ` (2 subsequent siblings)
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - no changes

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] 23+ messages in thread

* [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (8 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:33   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 11/12] package/vulkan-tools: " Peter Seiderer
  2021-01-10 22:28 ` [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support Peter Seiderer
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/vulkan-loader/Config.in        | 12 ++++++++++++
 package/vulkan-loader/vulkan-loader.mk |  8 +++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/package/vulkan-loader/Config.in b/package/vulkan-loader/Config.in
index 9c215dc9ce..6ec4b13030 100644
--- a/package/vulkan-loader/Config.in
+++ b/package/vulkan-loader/Config.in
@@ -9,6 +9,18 @@ config BR2_PACKAGE_VULKAN_LOADER
 
 	  https://github.com/KhronosGroup/Vulkan-Loader
 
+if BR2_PACKAGE_VULKAN_LOADER
+
+config BR2_PACKAGE_VULKAN_LOADER_XCB
+	bool "X.org XCB support"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_LIBXCB
+
+comment "X.org XCB support available if X.org is enabled"
+	depends on !BR2_PACKAGE_XORG7
+
+endif # BR2_PACKAGE_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.mk b/package/vulkan-loader/vulkan-loader.mk
index 9c9ccb2458..f0c20f5687 100644
--- a/package/vulkan-loader/vulkan-loader.mk
+++ b/package/vulkan-loader/vulkan-loader.mk
@@ -13,10 +13,16 @@ 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
 
+ifeq ($(BR2_PACKAGE_VULKAN_LOADER_XCB),y)
+VULKAN_LOADER_DEPENDENCIES += libxcb
+VULKAN_LOADER_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=ON
+else
+VULKAN_LOADER_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=OFF
+endif
+
 $(eval $(cmake-package))
-- 
2.29.2

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

* [Buildroot] [RFC v2 11/12] package/vulkan-tools: add XCB support
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (9 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:36   ` Arnout Vandecappelle
  2021-01-10 22:28 ` [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support Peter Seiderer
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - new patch
---
 package/vulkan-tools/Config.in       | 14 ++++++++++++++
 package/vulkan-tools/vulkan-tools.mk |  8 +++++++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/package/vulkan-tools/Config.in b/package/vulkan-tools/Config.in
index 54fa539dab..14c4059074 100644
--- a/package/vulkan-tools/Config.in
+++ b/package/vulkan-tools/Config.in
@@ -12,6 +12,20 @@ config BR2_PACKAGE_VULKAN_TOOLS
 
 	  https://github.com/KhronosGroup/Vulkan-Tools
 
+if BR2_PACKAGE_VULKAN_TOOLS
+
+config BR2_PACKAGE_VULKAN_TOOLS_XCB
+	bool "X.org XCB support"
+	depends on BR2_PACKAGE_XORG7
+	select BR2_PACKAGE_XLIB_LIBX11
+	select BR2_PACKAGE_LIBXCB
+	select BR2_PACKAGE_VULKAN_LOADER_XCB
+
+comment "X.org XCB support available if X.org is enabled"
+	depends on !BR2_PACKAGE_XORG7
+
+endif # BR2_PACKAGE_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.mk b/package/vulkan-tools/vulkan-tools.mk
index 129efddf3b..5b4d761ddb 100644
--- a/package/vulkan-tools/vulkan-tools.mk
+++ b/package/vulkan-tools/vulkan-tools.mk
@@ -16,10 +16,16 @@ VULKAN_TOOLS_CONF_OPTS += \
 	-DBUILD_VULKANINFO=ON \
 	-DBUILD_ICD=OFF \
 	-DINSTALL_ICD=OFF \
-	-DBUILD_WSI_XCB_SUPPORT=OFF \
 	-DBUILD_WSI_XLIB_SUPPORT=OFF \
 	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
 	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
 	-DUSE_CCACHE=OFF
 
+ifeq ($(BR2_PACKAGE_VULKAN_TOOLS_XCB),y)
+VULKAN_TOOLS_DEPENDENCIES += libxcb xlib_libX11
+VULKAN_TOOLS_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=ON
+else
+VULKAN_TOOLS_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=OFF
+endif
+
 $(eval $(cmake-package))
-- 
2.29.2

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

* [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support
  2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
                   ` (10 preceding siblings ...)
  2021-01-10 22:28 ` [Buildroot] [RFC v2 11/12] package/vulkan-tools: " Peter Seiderer
@ 2021-01-10 22:28 ` Peter Seiderer
  2022-01-09 21:47   ` Arnout Vandecappelle
  11 siblings, 1 reply; 23+ messages in thread
From: Peter Seiderer @ 2021-01-10 22:28 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Peter Seiderer <ps.report@gmx.net>
---
Changes v1 -> v2:
  - no changes (besides clearifying notes comment)

Notes:
  - link failure when selected stand alone, fine in case
    vulkan-broadcom is selected too (selecting vulkan-intel
    instead does not work)
---
 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 5da9bfe08a..66776c9ad9 100644
--- a/package/mesa3d/Config.in
+++ b/package/mesa3d/Config.in
@@ -429,6 +429,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 62dc7db91d..4679416b4d 100644
--- a/package/mesa3d/mesa3d.mk
+++ b/package/mesa3d/mesa3d.mk
@@ -121,6 +121,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] 23+ messages in thread

* Re: [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies
  2021-01-10 22:28 ` [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies Peter Seiderer
@ 2022-01-09 18:09   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 18:09 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN

  Hi Peter,

  I'm finally reviewing this series. Since it's RFC, I'm going to mark it as 
changes requested right away.

On 10/01/2021 23:28, Peter Seiderer wrote:
> - enable X11/GLX free build
> 
> - remove xorgproto dependency is already given via BR2_PACKAGE_MESA3D_OPENGL_GLX/BR2_PACKAGE_MESA3D_NEEDS_X11
> 
> - libxshmfence only needed in case BR2_PACKAGE_MESA3D_OPENGL_GLX is enabled
> 
> - the correct dependency for BR2_PACKAGE_XLIB_LIBXSHMFENCE would
>    be 'depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX',
>    but this results in:
> 
>    package/mesa3d/Config.in:81:error: recursive dependency detected!
>    package/mesa3d/Config.in:81:    symbol BR2_PACKAGE_MESA3D_DRIVER is selected by BR2_PACKAGE_MESA3D_VULKAN_DRIVER
>    package/mesa3d/Config.in:77:    symbol BR2_PACKAGE_MESA3D_VULKAN_DRIVER is selected by BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
>    package/mesa3d/Config.in:406:   symbol BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL depends on BR2_PACKAGE_MESA3D_OPENGL_GLX
>    package/mesa3d/Config.in:461:   symbol BR2_PACKAGE_MESA3D_OPENGL_GLX depends on BR2_PACKAGE_MESA3D_DRIVER
>    For a resolution refer to Documentation/kbuild/kconfig-language.txt
>    subsection "Kconfig recursive dependency limitations"
> 
>    so use unconditional 'depends on BR2_TOOLCHAIN_HAS_SYNC_4' instead
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - new patch
> ---
>   package/mesa3d/Config.in | 10 ++++++----
>   package/mesa3d/mesa3d.mk |  2 ++
>   2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 347b1a2726..d9c27f8b5c 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -398,15 +398,17 @@ comment "Vulkan drivers"
>   config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
>   	bool "Vulkan Intel driver"
>   	depends on BR2_i386 || BR2_x86_64
> +	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of libxshmfence only
> +	# in case GLX is enabled but the following results in 'recursive
> +	# dependency detected!', so simple depend always on BR2_TOOLCHAIN_HAS_SYNC_4
> +	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX # libxshmfence in case GLX is enabled
>   	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence
>   	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
>   	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
> -	depends on BR2_PACKAGE_XORG7 # xorgproto
>   	select BR2_PACKAGE_EXPAT
> -	select BR2_PACKAGE_MESA3D_DRI3
> +	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_MESA3D_OPENGL_GLX

  In other drivers we enable DRI3 uncondtionally when X11 is enabled, i.e. even 
if GLX is not enabled:

	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_XORG7

  I am not entirely sure if DRI3 makes any sense at all without GLX, but why not 
I'd say. Anyway, by working that way, you can resolve the circular dependency, 
because it simply becomes (as you see in many other drivers)

	depends on (BR2_TOOLCHAIN_HAS_SYNC_4 && !BR2_RISCV_32) || !BR2_PACKAGE_XORG7 # 
libxshmfence
	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_XORG7

>   	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
> -	select BR2_PACKAGE_XORGPROTO
> -	select BR2_PACKAGE_XLIB_LIBXSHMFENCE
> +	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX
>   	help
>   	  Vulkan driver for Intel hardware from Ivy Bridge onward.
>   
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index ea6265d723..967b86810f 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -146,7 +146,9 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
>   MESA3D_CONF_OPTS += \
>   	-Dvulkan-drivers=
>   else
> +ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)$(BR2_PACKAGE_MESA3D_OPENGL_GLX),yy)
>   MESA3D_DEPENDENCIES += xlib_libxshmfence

  That also means that this can simply be removed, since it's already done by DRI3.

  Actually, I don't need feedback on those changes, so applied to master, thanks!

  Regards,
  Arnout

> +endif
>   MESA3D_CONF_OPTS += \
>   	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
>   endif
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning
  2021-01-10 22:28 ` [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning Peter Seiderer
@ 2022-01-09 20:19   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 20:19 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Fixes for the following defconfig:
> 
>    BR2_x86_64=y
>    BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
>    BR2_TOOLCHAIN_BUILDROOT_CXX=y
>    BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
>    BR2_TARGET_GENERIC_GETTY_PORT="tty1"
>    BR2_PACKAGE_MESA3D=y
>    BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL=y
>    BR2_PACKAGE_MESA3D_OPENGL_EGL=y
>    BR2_PACKAGE_MESA3D_OPENGL_ES=y
> 
> this warning:
> 
>    WARNING: unmet direct dependencies detected for BR2_PACKAGE_MESA3D_GBM
>      Depends on [n]: BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y] && (BR2_PACKAGE_MESA3D_DRI_DRIVER [=n] || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER [=n] && BR2_PACKAGE_MESA3D_OPENGL_EGL [=y])
>      Selected by [y]:
>      - BR2_PACKAGE_MESA3D_OPENGL_EGL [=y] && BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y]
> 
>    WARNING: unmet direct dependencies detected for BR2_PACKAGE_MESA3D_GBM
>      Depends on [n]: BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y] && (BR2_PACKAGE_MESA3D_DRI_DRIVER [=n] || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER [=n] && BR2_PACKAGE_MESA3D_OPENGL_EGL [=y])
>      Selected by [y]:
>      - BR2_PACKAGE_MESA3D_OPENGL_EGL [=y] && BR2_PACKAGE_MESA3D [=y] && BR2_PACKAGE_MESA3D_DRIVER [=y]
> 
> as BR2_PACKAGE_MESA3D_VULKAN_DRIVER selects BR2_PACKAGE_MESA3D_DRIVER which
> enables possible selection of BR2_PACKAGE_MESA3D_OPENGL_EGL selecting
> BR2_PACKAGE_MESA3D_GBM.
> 
> Selecting EGL with only a vulkan driver selected gives the following configure
> failure:
> 
>    .../build/mesa3d-20.3.2/meson.build:424:4: ERROR: Problem encountered: EGL requires dri
> 
> Note dri means here an dri or gallium driver (see meson.build and look
> for with_dri).
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - new patch
> ---
>   package/mesa3d/Config.in | 4 ++++
>   1 file changed, 4 insertions(+)
> 
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index d9c27f8b5c..7a976f4b2c 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -452,6 +452,8 @@ config BR2_PACKAGE_MESA3D_OPENGL_GLX
>   comment "OpenGL GLX support needs X11"
>   	depends on !BR2_PACKAGE_XORG7
>   
> +if BR2_PACKAGE_MESA3D_DRI_DRIVER || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER

  Since there's only one symbol inside, we prefer "depends on"

  Applied to master with that fixed, thanks.

  Regards,
  Arnout


> +
>   config BR2_PACKAGE_MESA3D_OPENGL_EGL
>   	bool "OpenGL EGL"
>   	select BR2_PACKAGE_HAS_LIBEGL
> @@ -461,6 +463,8 @@ config BR2_PACKAGE_MESA3D_OPENGL_EGL
>   	  Use the Khronos EGL APIs. EGL is a window manager for OpenGL
>   	  applications similar to GLX, for X, and WGL, for Windows.
>   
> +endif # BR2_PACKAGE_MESA3D_DRI_DRIVER || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
> +
>   config BR2_PACKAGE_MESA3D_OPENGL_ES
>   	bool "OpenGL ES"
>   	select BR2_PACKAGE_HAS_LIBGLES
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence
  2021-01-10 22:28 ` [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence Peter Seiderer
@ 2022-01-09 20:23   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 20:23 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Fixes for the following defconfig:
> 
>    BR2_arm=y
>    BR2_cortex_a72=y
>    BR2_ARM_FPU_NEON_VFPV4=y
>    BR2_TOOLCHAIN_BUILDROOT_GLIBC=y
>    BR2_TOOLCHAIN_BUILDROOT_CXX=y
>    BR2_PACKAGE_MESA3D=y
>    BR2_PACKAGE_MESA3D_DRI3=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_OPENGL_GLX=y
> 
> this configure error:
> 
>    .../build/mesa3d-20.3.2/meson.build:1772:6: ERROR: Dependency "xshmfence" not found, tried pkgconfig and cmake
> 
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - new patch
> ---
>   package/mesa3d/Config.in | 5 +++--
>   package/mesa3d/mesa3d.mk | 6 +++---
>   2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index 7a976f4b2c..8a01fa95e2 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -17,6 +17,8 @@ if BR2_PACKAGE_MESA3D
>   
>   config BR2_PACKAGE_MESA3D_DRI3
>   	bool "Enable DRI3 support"
> +	depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX
> +	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX

  This was already done, but without the depends on and without the if GLX. I'm 
not entirely sure if the if GLX is actually needed. But really, mesa3d needs a 
big overhaul where the Config.in is compared to the meson.build to check how the 
dependencies and interactions *really* work.

  Therefore, I've marked this patch as Superseded.

  Regards,
  Arnout

>   	help
>   	  Enable DRI3 support.
>   
> @@ -398,7 +400,7 @@ comment "Vulkan drivers"
>   config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
>   	bool "Vulkan Intel driver"
>   	depends on BR2_i386 || BR2_x86_64
> -	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of libxshmfence only
> +	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 because of dri3/libxshmfence only
>   	# in case GLX is enabled but the following results in 'recursive
>   	# dependency detected!', so simple depend always on BR2_TOOLCHAIN_HAS_SYNC_4
>   	# depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_MESA3D_OPENGL_GLX # libxshmfence in case GLX is enabled
> @@ -408,7 +410,6 @@ config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
>   	select BR2_PACKAGE_EXPAT
>   	select BR2_PACKAGE_MESA3D_DRI3 if BR2_PACKAGE_MESA3D_OPENGL_GLX
>   	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
> -	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_MESA3D_OPENGL_GLX
>   	help
>   	  Vulkan driver for Intel hardware from Ivy Bridge onward.
>   
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index 967b86810f..31f1c12d63 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -38,6 +38,9 @@ endif
>   
>   ifeq ($(BR2_PACKAGE_MESA3D_DRI3),y)
>   MESA3D_CONF_OPTS += -Ddri3=enabled
> +ifeq ($(BR2_PACKAGE_MESA3D_OPENGL_GLX),y)
> +MESA3D_DEPENDENCIES += xlib_libxshmfence
> +endif
>   else
>   MESA3D_CONF_OPTS += -Ddri3=disabled
>   endif
> @@ -146,9 +149,6 @@ ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER),)
>   MESA3D_CONF_OPTS += \
>   	-Dvulkan-drivers=
>   else
> -ifeq ($(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL)$(BR2_PACKAGE_MESA3D_OPENGL_GLX),yy)
> -MESA3D_DEPENDENCIES += xlib_libxshmfence
> -endif
>   MESA3D_CONF_OPTS += \
>   	-Dvulkan-drivers=$(subst $(space),$(comma),$(MESA3D_VULKAN_DRIVERS-y))
>   endif
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package
  2021-01-10 22:28 ` [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package Peter Seiderer
@ 2022-01-09 20:30   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 20:30 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - fix license SPDX (Yann E. MORIN)
> ---
>   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 9ed02ec890..9a91e6324c 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -338,6 +338,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..48d390a581
> --- /dev/null
> +++ b/package/vulkan-headers/vulkan-headers.mk
> @@ -0,0 +1,13 @@
> +################################################################################
> +#
> +# vulkan-headers
> +#
> +################################################################################
> +
> +VULKAN_HEADERS_VERSION = 1.2.165

  There's a 1.2.203 now, so I bumped to that version and applied to master, thanks.

  Regards,
  Arnout

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

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

* Re: [Buildroot] [RFC v2 06/12] package/vulkan-loader: new package
  2021-01-10 22:28 ` [Buildroot] [RFC v2 06/12] package/vulkan-loader: " Peter Seiderer
@ 2022-01-09 21:00   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:00 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - fix license SPDX (Yann E. MORIN)
>    - add sob line
> ---
>   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 9a91e6324c..86676b57ef 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -339,6 +339,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)

  This doesn't look OK to me. With the assembler disabled, you get this warning:

Note that this may be unsafe, as the C code requires tail-call optimizations to 
remove the stack frame for certain calls. If the compiler does not do this, then 
unknown device extensions will suffer from a corrupted stack.

  Since CMake doesn't make mixed host and target compilation possible, I see two 
solutions.

1. A simple solution that is a bit of a hack. In a _PRE_BUILD_HOOK, manually 
build the asm_offset offset program. It actually needs the Vulkan headers, so we 
also need host-vulkan-headers. We would normally use host-vulkan-loader to build 
the program, but in this case it's so simple that manual compilation is much 
easier. Install the program in the source directory where it's expected. Most 
likely it will already work like that because the program is more recent than 
the source. If not, solution 2 is needed.

2. Add host-vulkan-loader to build asm_offset. Since we only need asm_offset, 
it's easier to use a generic-package rather than cmake-package - especially 
since the program doesn't get installed by cmake anyway. In this case, you'll 
need to add a new variable to CMakeLists.txt that allows to pass the path to an 
external asm_offset and point that to HOST_DIR.


  In addition, the loader only supports aarch64 and x86, so I think the whole 
package should depend on that.


  I've marked as Changes Requested.

> +         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

  AFAICS C++ is only needed for tests, so you could patch CMakeLists.txt with 
enable_language(C) and only add enable_language(CXX) if BUILD_TESTS is ON.

  Regards,
  Arnout


> +	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..9c9ccb2458
> --- /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
> +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))
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 07/12] package/vulkan-tools: new package
  2021-01-10 22:28 ` [Buildroot] [RFC v2 07/12] package/vulkan-tools: " Peter Seiderer
@ 2022-01-09 21:02   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:02 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>

Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

  Rest of the series is Changes Requested because it all depends on vulkan-loader.

  Regards,
  Arnout

> ---
> Changes v1 -> v2:
>    - fix license SPDX (Yann E. MORIN)
>    - disable ICD (as it is only a mock ICD for testing purpouse)
> ---
>   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 86676b57ef..b156d8de1a 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -340,6 +340,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..129efddf3b
> --- /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
> +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=OFF \
> +	-DINSTALL_ICD=OFF \
> +	-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))
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option
  2021-01-10 22:28 ` [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option Peter Seiderer
@ 2022-01-09 21:31   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:31 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - no changes
> 
> 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

  Just keep them, doesn't matter that qt5 already has them. Only if it becomes 
very complicated it's worth optimising it.

  However, shouldn't we have a virtual package to make sure there's also a 
vulkan provider, similar like we have for GL? Or isn't that needed because it's 
mediated through the loader library? It indeed doesn't look like Qt needs to 
link with the vulkan provider (i.e. mesa3d at this point).

  Regards,
  Arnout


> +	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))
>   
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support
  2021-01-10 22:28 ` [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support Peter Seiderer
@ 2022-01-09 21:33   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:33 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - new patch
> ---
>   package/vulkan-loader/Config.in        | 12 ++++++++++++
>   package/vulkan-loader/vulkan-loader.mk |  8 +++++++-
>   2 files changed, 19 insertions(+), 1 deletion(-)
> 
> diff --git a/package/vulkan-loader/Config.in b/package/vulkan-loader/Config.in
> index 9c215dc9ce..6ec4b13030 100644
> --- a/package/vulkan-loader/Config.in
> +++ b/package/vulkan-loader/Config.in
> @@ -9,6 +9,18 @@ config BR2_PACKAGE_VULKAN_LOADER
>   
>   	  https://github.com/KhronosGroup/Vulkan-Loader
>   
> +if BR2_PACKAGE_VULKAN_LOADER
> +
> +config BR2_PACKAGE_VULKAN_LOADER_XCB
> +	bool "X.org XCB support"

  I don't think it makes much sense to make this a user-visible option.

> +	depends on BR2_PACKAGE_XORG7
> +	select BR2_PACKAGE_LIBXCB
> +
> +comment "X.org XCB support available if X.org is enabled"
> +	depends on !BR2_PACKAGE_XORG7
> +
> +endif # BR2_PACKAGE_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.mk b/package/vulkan-loader/vulkan-loader.mk
> index 9c9ccb2458..f0c20f5687 100644
> --- a/package/vulkan-loader/vulkan-loader.mk
> +++ b/package/vulkan-loader/vulkan-loader.mk
> @@ -13,10 +13,16 @@ 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
>   
> +ifeq ($(BR2_PACKAGE_VULKAN_LOADER_XCB),y)

  Just use BR2_PACKAGE_LIBXCB here.

  With that, this can be squashed in the patch that adds vulkan-loader (it's not 
complicated).

  Regards,
  Arnout

> +VULKAN_LOADER_DEPENDENCIES += libxcb
> +VULKAN_LOADER_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=ON
> +else
> +VULKAN_LOADER_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=OFF
> +endif
> +
>   $(eval $(cmake-package))
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 11/12] package/vulkan-tools: add XCB support
  2021-01-10 22:28 ` [Buildroot] [RFC v2 11/12] package/vulkan-tools: " Peter Seiderer
@ 2022-01-09 21:36   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:36 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - new patch
> ---
>   package/vulkan-tools/Config.in       | 14 ++++++++++++++
>   package/vulkan-tools/vulkan-tools.mk |  8 +++++++-
>   2 files changed, 21 insertions(+), 1 deletion(-)
> 
> diff --git a/package/vulkan-tools/Config.in b/package/vulkan-tools/Config.in
> index 54fa539dab..14c4059074 100644
> --- a/package/vulkan-tools/Config.in
> +++ b/package/vulkan-tools/Config.in
> @@ -12,6 +12,20 @@ config BR2_PACKAGE_VULKAN_TOOLS
>   
>   	  https://github.com/KhronosGroup/Vulkan-Tools
>   
> +if BR2_PACKAGE_VULKAN_TOOLS
> +
> +config BR2_PACKAGE_VULKAN_TOOLS_XCB
> +	bool "X.org XCB support"
> +	depends on BR2_PACKAGE_XORG7
> +	select BR2_PACKAGE_XLIB_LIBX11
> +	select BR2_PACKAGE_LIBXCB
> +	select BR2_PACKAGE_VULKAN_LOADER_XCB
> +
> +comment "X.org XCB support available if X.org is enabled"
> +	depends on !BR2_PACKAGE_XORG7
> +
> +endif # BR2_PACKAGE_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.mk b/package/vulkan-tools/vulkan-tools.mk
> index 129efddf3b..5b4d761ddb 100644
> --- a/package/vulkan-tools/vulkan-tools.mk
> +++ b/package/vulkan-tools/vulkan-tools.mk
> @@ -16,10 +16,16 @@ VULKAN_TOOLS_CONF_OPTS += \
>   	-DBUILD_VULKANINFO=ON \
>   	-DBUILD_ICD=OFF \
>   	-DINSTALL_ICD=OFF \
> -	-DBUILD_WSI_XCB_SUPPORT=OFF \
>   	-DBUILD_WSI_XLIB_SUPPORT=OFF \
>   	-DBUILD_WSI_WAYLAND_SUPPORT=OFF \
>   	-DBUILD_WSI_DIRECTFB_SUPPORT=OFF \
>   	-DUSE_CCACHE=OFF
>   
> +ifeq ($(BR2_PACKAGE_VULKAN_TOOLS_XCB),y)

  Same, BR2_PACKAGE_LIBXCB.

> +VULKAN_TOOLS_DEPENDENCIES += libxcb xlib_libX11

  Hm, maybe this should go together with BUILD_WSI_XLIB_SUPPORT ?

  Regards,
  Arnout

> +VULKAN_TOOLS_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=ON
> +else
> +VULKAN_TOOLS_CONF_OPTS += -DBUILD_WSI_XCB_SUPPORT=OFF
> +endif
> +
>   $(eval $(cmake-package))
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

* Re: [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support
  2021-01-10 22:28 ` [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support Peter Seiderer
@ 2022-01-09 21:47   ` Arnout Vandecappelle
  0 siblings, 0 replies; 23+ messages in thread
From: Arnout Vandecappelle @ 2022-01-09 21:47 UTC (permalink / raw)
  To: Peter Seiderer, buildroot
  Cc: Bernd Kuhls, Romain Naour, Julien Corjon, Yann E . MORIN



On 10/01/2021 23:28, Peter Seiderer wrote:
> Signed-off-by: Peter Seiderer <ps.report@gmx.net>
> ---
> Changes v1 -> v2:
>    - no changes (besides clearifying notes comment)
> 
> Notes:
>    - link failure when selected stand alone, fine in case
>      vulkan-broadcom is selected too (selecting vulkan-intel
>      instead does not work)

  In future submissions, paste the link error so others can give some idea about 
debugging it.

> ---
>   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 5da9bfe08a..66776c9ad9 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -429,6 +429,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

  These kind of dependencies are somewhat annoying, but OK. Fortunately, 
dri-swrast was removed upstream, so it's no longer relevant.


> +	select BR2_PACKAGE_EXPAT
> +	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER

  Implied by gallium-swrast.

  Regards,
  Arnout

> +	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 62dc7db91d..4679416b4d 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -121,6 +121,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 += \
> 
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

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

end of thread, other threads:[~2022-01-09 21:47 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-01-10 22:28 [Buildroot] [RFC v2 00/12] Vulkan support Peter Seiderer
2021-01-10 22:28 ` [Buildroot] [RFC v2 01/12] package/mesa3d: add config option for DRI3 support Peter Seiderer
2021-01-10 22:28 ` [Buildroot] [RFC v2 02/12] package/mesa3d: fix vulkan/intel dependencies Peter Seiderer
2022-01-09 18:09   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 03/12] package/mesa3d: fix gbm config warning Peter Seiderer
2022-01-09 20:19   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 04/12] package/mesa3d: DRI3 with GLX needs xshmfence Peter Seiderer
2022-01-09 20:23   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 05/12] package/vulkan-headers: new package Peter Seiderer
2022-01-09 20:30   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 06/12] package/vulkan-loader: " Peter Seiderer
2022-01-09 21:00   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 07/12] package/vulkan-tools: " Peter Seiderer
2022-01-09 21:02   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 08/12] package/mesa3d: add vulkan broadcom driver support Peter Seiderer
2021-01-10 22:28 ` [Buildroot] [RFC v2 09/12] package/qt5base: add vulkan option Peter Seiderer
2022-01-09 21:31   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 10/12] package/vulkan-loader: add XCB support Peter Seiderer
2022-01-09 21:33   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 11/12] package/vulkan-tools: " Peter Seiderer
2022-01-09 21:36   ` Arnout Vandecappelle
2021-01-10 22:28 ` [Buildroot] [RFC v2 12/12] WIP: package/mesa3d: add vulkan swrast driver support Peter Seiderer
2022-01-09 21:47   ` Arnout Vandecappelle

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.