* [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool
@ 2025-06-18 14:28 Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package Alex Bennée
` (3 more replies)
0 siblings, 4 replies; 10+ messages in thread
From: Alex Bennée @ 2025-06-18 14:28 UTC (permalink / raw)
To: buildroot; +Cc: Heiko Thiery, Julien Olivain
Hi,
Now that the Mesa bits have been merged the series is considerably
shorter. I've up-revved a vulkan-header/loader/tools library which
also seems to have solved some of the cross building bits so I no
longer need the hacky patch.
I've also simplified the TestVkMark test so it will work with an
un-accelerated display and simply test vkmark works.
For v7
- rebase
- drop patches now merged upstream
- address test-pkg failures with more deps
- drop mesa3d bump
For v5
- rebase
- drop unneeded patches
- drop already merged patches
- tweak the test
- include https://github.com/vkmark/vkmark/pull/76 patches
For v4
- new patch to vkmark to run under VirtIO
- see individual patches for other updates
For v3
- re-based on current master
- new vulkan-sdk package (for volk loader)
- bump vulkan support to 1.4.307
- include isystem patch (maybe squash with ^?)
- vkmark now has a tagged release (2025.01)
- addressed review comments (see individual patches)
For v2
- added SOFTPIPE fixes (these need merging into Bernd's series)
- addressed remaining comments for dependencies
- tweaked a few more dependancies
- added a vkmark test
While the vkmark test will happily run with lvpipe sw rendering you
will need a recent QEMU 9.2.0+ (released 11/12/2024) built with an upto
date virglrenderer (available in Debian Trixie/Testing).
I plan to use buildroot generated images for QEMU's own functional
tests for Venus.
I've run through:
utils/docker-run make check-package
and everything looks clean. Full details about the changes are bellow
the ---'s in the individual commits.
Alex Bennée (4):
package/vulkan-sdk: new package
package/vulkan-[headers|loader|tools]: bump to 1.4.317 release
package/vkmark: add vkmark benchmarking tool
support/testing: add test for vkmark package
DEVELOPERS | 3 +
package/Config.in | 2 +
package/vkmark/Config.in | 48 +++++++++++
package/vkmark/vkmark.hash | 3 +
package/vkmark/vkmark.mk | 34 ++++++++
package/vulkan-headers/vulkan-headers.hash | 2 +-
package/vulkan-headers/vulkan-headers.mk | 2 +-
package/vulkan-loader/vulkan-loader.hash | 2 +-
package/vulkan-sdk/Config.in | 12 +++
package/vulkan-sdk/vulkan-sdk.hash | 3 +
package/vulkan-sdk/vulkan-sdk.mk | 18 +++++
package/vulkan-tools/Config.in | 5 +-
package/vulkan-tools/vulkan-tools.hash | 2 +-
package/vulkan-tools/vulkan-tools.mk | 3 +-
support/testing/infra/emulator.py | 4 +-
support/testing/tests/package/test_vkmark.py | 80 +++++++++++++++++++
.../etc/profile.d/10-xdg-runtime.sh | 1 +
17 files changed, 216 insertions(+), 8 deletions(-)
create mode 100644 package/vkmark/Config.in
create mode 100644 package/vkmark/vkmark.hash
create mode 100644 package/vkmark/vkmark.mk
create mode 100644 package/vulkan-sdk/Config.in
create mode 100644 package/vulkan-sdk/vulkan-sdk.hash
create mode 100644 package/vulkan-sdk/vulkan-sdk.mk
create mode 100644 support/testing/tests/package/test_vkmark.py
create mode 100644 support/testing/tests/package/test_vkmark/rootfs-overlay/etc/profile.d/10-xdg-runtime.sh
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package
2025-06-18 14:28 [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool Alex Bennée
@ 2025-06-18 14:28 ` Alex Bennée
2025-06-22 11:45 ` Julien Olivain
2025-06-18 14:28 ` [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release Alex Bennée
` (2 subsequent siblings)
3 siblings, 1 reply; 10+ messages in thread
From: Alex Bennée @ 2025-06-18 14:28 UTC (permalink / raw)
To: buildroot; +Cc: Heiko Thiery, Julien Olivain
The principle component of this is the new volk meta-loader which is
required for more recent versions of vulkan-tools. There does seem to
be a little confusion with github Releases lagging behind tagged
versions of the sdk. I've gone for the latest SDK version to stay as
closely aligned to the rest of the system as I can.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v7
- add depends on !BR2_STATIC_LIBS # dlfcn.h
- add depends on BR2_INSTALL_LIBSTDCPP for C++
v6
- bump to vulkan-sdk-1.4.313.0
---
package/Config.in | 1 +
package/vulkan-sdk/Config.in | 12 ++++++++++++
package/vulkan-sdk/vulkan-sdk.hash | 3 +++
package/vulkan-sdk/vulkan-sdk.mk | 18 ++++++++++++++++++
4 files changed, 34 insertions(+)
create mode 100644 package/vulkan-sdk/Config.in
create mode 100644 package/vulkan-sdk/vulkan-sdk.hash
create mode 100644 package/vulkan-sdk/vulkan-sdk.mk
diff --git a/package/Config.in b/package/Config.in
index 227c81ebed..816c7830e8 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -375,6 +375,7 @@ comment "Graphic libraries"
source "package/tk/Config.in"
source "package/vulkan-headers/Config.in"
source "package/vulkan-loader/Config.in"
+ source "package/vulkan-sdk/Config.in"
source "package/vulkan-tools/Config.in"
comment "Other GUIs"
diff --git a/package/vulkan-sdk/Config.in b/package/vulkan-sdk/Config.in
new file mode 100644
index 0000000000..322bfcb14e
--- /dev/null
+++ b/package/vulkan-sdk/Config.in
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_VULKAN_SDK
+ bool "vulkan-sdk"
+ depends on !BR2_STATIC_LIBS # dlfcn.h
+ depends on BR2_INSTALL_LIBSTDCPP # C++
+ select BR2_PACKAGE_VULKAN_HEADERS
+ help
+ The Vulkan meta-loader
+
+ https://github.com/zeux/volk
+
+comment "Vulkan-SDK need toolchain w/ C++, dynamic library"
+ depends on !BR2_INSTALL_LIBSTDCPP || BR2_STATIC_LIBS
diff --git a/package/vulkan-sdk/vulkan-sdk.hash b/package/vulkan-sdk/vulkan-sdk.hash
new file mode 100644
index 0000000000..f0f3da0e79
--- /dev/null
+++ b/package/vulkan-sdk/vulkan-sdk.hash
@@ -0,0 +1,3 @@
+# Locally calculated
+sha256 d86bcf1aff499f41a3e445b55df5e393a5ce49b1bda689eb7335b0a0a54a3c0b vulkan-sdk-1.4.313.0.tar.gz
+sha256 33c831f76b79501665e66c23ac8f876020457c216d44526a8f747da897999b35 LICENSE.md
diff --git a/package/vulkan-sdk/vulkan-sdk.mk b/package/vulkan-sdk/vulkan-sdk.mk
new file mode 100644
index 0000000000..050f6c03f3
--- /dev/null
+++ b/package/vulkan-sdk/vulkan-sdk.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# vulkan-sdk
+#
+################################################################################
+
+VULKAN_SDK_VERSION = 1.4.313.0
+VULKAN_SDK_SITE = https://github.com/zeux/volk/archive/refs/tags
+VULKAN_SDK_SOURCE= vulkan-sdk-$(VULKAN_SDK_VERSION).tar.gz
+VULKAN_SDK_LICENSE = MIT
+VULKAN_SDK_LICENSE_FILES = LICENSE.md
+VULKAN_SDK_INSTALL_STAGING = YES
+
+VULKAN_SDK_DEPENDENCIES = vulkan-headers
+
+VULKAN_SDK_CONF_OPTS += -DVOLK_INSTALL=ON
+
+$(eval $(cmake-package))
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release
2025-06-18 14:28 [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package Alex Bennée
@ 2025-06-18 14:28 ` Alex Bennée
2025-06-22 11:46 ` Julien Olivain
2025-06-18 14:28 ` [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package Alex Bennée
3 siblings, 1 reply; 10+ messages in thread
From: Alex Bennée @ 2025-06-18 14:28 UTC (permalink / raw)
To: buildroot; +Cc: Heiko Thiery, Julien Olivain
Update to the current release. We now need the recently added
vulkan-sdk to have access to the volk loader. Update the depends
comments appropriately.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v7
- depends on !BR2_STATIC_LIBS # vulkan-loader, vulkan-sdk
v5
- 1.4.316 -> 1.4.317
v4
- 1.4.306 -> 1.4.316
- doesn't seem to need isystem patch now
v3
- fix up comment, properly select the SDK package
---
| 2 +-
| 2 +-
package/vulkan-loader/vulkan-loader.hash | 2 +-
package/vulkan-tools/Config.in | 5 +++--
package/vulkan-tools/vulkan-tools.hash | 2 +-
package/vulkan-tools/vulkan-tools.mk | 3 ++-
6 files changed, 9 insertions(+), 7 deletions(-)
--git a/package/vulkan-headers/vulkan-headers.hash b/package/vulkan-headers/vulkan-headers.hash
index b38bfcff47..286639b579 100644
--- a/package/vulkan-headers/vulkan-headers.hash
+++ b/package/vulkan-headers/vulkan-headers.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 317e467a5fb2eaa6a18b984ec70fdbfaccd93595a3e6f4bcceca7d3fab280505 vulkan-headers-1.3.262.tar.gz
+sha256 78665959d10b09061d8c3e21db8bf3e8b699e2d3d532fce850a32312dba7228b vulkan-headers-1.4.317.tar.gz
sha256 ac24e5ea920e4318e4d02c4086ae51f53cfb03feed06c18df1019e7ada1ec7bc LICENSE.md
--git a/package/vulkan-headers/vulkan-headers.mk b/package/vulkan-headers/vulkan-headers.mk
index 20b248364d..52d5b56086 100644
--- a/package/vulkan-headers/vulkan-headers.mk
+++ b/package/vulkan-headers/vulkan-headers.mk
@@ -6,7 +6,7 @@
# Note: changing this version will also affect vulkan-loader and
# vulkan-tools, so please update those packages as well.
-VULKAN_HEADERS_VERSION = 1.3.262
+VULKAN_HEADERS_VERSION = 1.4.317
VULKAN_HEADERS_SITE = $(call github,KhronosGroup,Vulkan-Headers,v$(VULKAN_HEADERS_VERSION))
VULKAN_HEADERS_LICENSE = Apache-2.0, MIT
VULKAN_HEADERS_LICENSE_FILES = LICENSE.md
diff --git a/package/vulkan-loader/vulkan-loader.hash b/package/vulkan-loader/vulkan-loader.hash
index e09ecda8a9..5bfc02f5c8 100644
--- a/package/vulkan-loader/vulkan-loader.hash
+++ b/package/vulkan-loader/vulkan-loader.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 3bbaa5ee64058a89949eb777de66ce94bfe3141892514172cfc9451c756802d5 vulkan-loader-1.3.262.tar.gz
+sha256 e4e18585fe902ee04e86c1cdb2996b686bffef2cab02cb6079221fe69df05af8 vulkan-loader-1.4.317.tar.gz
sha256 43c0a37e6a0fa7ff3c843b3ec5a4fac84b712558ddac103fbd4c1649662a9ece LICENSE.txt
diff --git a/package/vulkan-tools/Config.in b/package/vulkan-tools/Config.in
index 54fa539dab..b007e5dba1 100644
--- a/package/vulkan-tools/Config.in
+++ b/package/vulkan-tools/Config.in
@@ -1,17 +1,18 @@
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_STATIC_LIBS # vulkan-loader, vulkan-sdk
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
+ select BR2_PACKAGE_VULKAN_SDK
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"
+comment "vulkan-tools needs a toolchain w/ C++, dynamic library, threads, gcc >= 4.9, vulkan-sdk"
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
index 24c0697784..504177379b 100644
--- a/package/vulkan-tools/vulkan-tools.hash
+++ b/package/vulkan-tools/vulkan-tools.hash
@@ -1,3 +1,3 @@
# Locally calculated
-sha256 8c77d02694d0516ae2ba3f3718745647e87e788ef93faabb2e3674ff32608010 vulkan-tools-1.3.262.tar.gz
+sha256 4586309ab5b2a9584fde62fd85b0ef5bb98b4cdbca9cb1ba3a2b4978dc2f355c vulkan-tools-1.4.317.tar.gz
sha256 cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 LICENSE.txt
diff --git a/package/vulkan-tools/vulkan-tools.mk b/package/vulkan-tools/vulkan-tools.mk
index 9f5bf46b79..9deeda6086 100644
--- a/package/vulkan-tools/vulkan-tools.mk
+++ b/package/vulkan-tools/vulkan-tools.mk
@@ -11,7 +11,8 @@ VULKAN_TOOLS_LICENSE_FILES = LICENSE.txt
VULKAN_TOOLS_DEPENDENCIES = \
vulkan-headers \
- vulkan-loader
+ vulkan-loader \
+ vulkan-sdk
VULKAN_TOOLS_CONF_OPTS += \
-DBUILD_CUBE=OFF \
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool
2025-06-18 14:28 [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release Alex Bennée
@ 2025-06-18 14:28 ` Alex Bennée
2025-06-22 11:47 ` Julien Olivain
2025-06-18 14:28 ` [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package Alex Bennée
3 siblings, 1 reply; 10+ messages in thread
From: Alex Bennée @ 2025-06-18 14:28 UTC (permalink / raw)
To: buildroot; +Cc: Eric Le Bihan, Heiko Thiery, Julien Olivain
We build from a recent HEAD to ensure we have the fixes to better
handle the missing KHR_display extension.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v7
- cross compile fixes now upstream, bump to 101be30
- drop .checkpackageignore changes
v6
- add patches from https://github.com/vkmark/vkmark/pull/76
- sort Kconfig symbols
- update .checkpackageignore
v5
- move from 2025.1 to HEAD (36e7d9b build: Enable precompiled headers)
- drop old patch (see adf1aa3 for final fix)
v4
- fix tab vs space damage
- don't if BR2_PACKAGE_VKMARK_FLAVOR_ANY
- make comments properly depend
- use the new 2025.01 release
- add sha256sum of COPYING-LGPL2.1
- alphabetic sort of initial VKMARK_DEPENDENCIES
- add vulkan error probing patch
v3
- add xcb-util-wm deps under X11
- add assimp directly to VKMARK_DEPENDENCIES
- drop duplicate BR2_INSTALL_LIBSTDCPP
- drop BR2_TOOLCHAIN_GCC_AT_LEAST_4_9
v2
- fix whitespace errors in Config.in
- fix sorting of sources
- add DEVELOPERS entry
- rework KConfig based on review
- drop unused sha256sum
- explicitly enable/disable the backends
---
DEVELOPERS | 3 +++
package/Config.in | 1 +
package/vkmark/Config.in | 48 ++++++++++++++++++++++++++++++++++++++
package/vkmark/vkmark.hash | 3 +++
package/vkmark/vkmark.mk | 34 +++++++++++++++++++++++++++
5 files changed, 89 insertions(+)
create mode 100644 package/vkmark/Config.in
create mode 100644 package/vkmark/vkmark.hash
create mode 100644 package/vkmark/vkmark.mk
diff --git a/DEVELOPERS b/DEVELOPERS
index d127364a58..836f75a765 100644
--- a/DEVELOPERS
+++ b/DEVELOPERS
@@ -141,6 +141,9 @@ F: package/liblog4c-localtime/
N: Alexandre Belloni <alexandre.belloni@bootlin.com>
F: package/tz/
+N: Alex Bennée <alex.bennee@linaro.org>
+F: package/vkmark/
+
N: Alexandre Esse <alexandre.esse.dev@gmail.com>
F: package/kvazaar/
F: package/v4l2loopback/
diff --git a/package/Config.in b/package/Config.in
index 816c7830e8..9b11572ae7 100644
--- a/package/Config.in
+++ b/package/Config.in
@@ -339,6 +339,7 @@ comment "Graphic applications"
source "package/swaybg/Config.in"
source "package/tesseract-ocr/Config.in"
source "package/tinifier/Config.in"
+ source "package/vkmark/Config.in"
comment "Graphic libraries"
source "package/cegui/Config.in"
diff --git a/package/vkmark/Config.in b/package/vkmark/Config.in
new file mode 100644
index 0000000000..b0e85c9c55
--- /dev/null
+++ b/package/vkmark/Config.in
@@ -0,0 +1,48 @@
+config BR2_PACKAGE_VKMARK_FLAVOR_ANY
+ bool
+
+config BR2_PACKAGE_VKMARK_FLAVOR_KMS
+ bool
+ default y if BR2_PACKAGE_HAS_LIBGBM
+ select BR2_PACKAGE_VKMARK_FLAVOR_ANY
+
+config BR2_PACKAGE_VKMARK_FLAVOR_WAYLAND
+ bool
+ default y if BR2_PACKAGE_WAYLAND
+ select BR2_PACKAGE_VKMARK_FLAVOR_ANY
+
+config BR2_PACKAGE_VKMARK_FLAVOR_X11
+ bool
+ default y if BR2_PACKAGE_XORG7
+ select BR2_PACKAGE_VKMARK_FLAVOR_ANY
+
+config BR2_PACKAGE_VKMARK
+ bool "vkmark"
+ depends on BR2_PACKAGE_VKMARK_FLAVOR_ANY
+ depends on !BR2_STATIC_LIBS # vulkan-loader
+ depends on BR2_TOOLCHAIN_HAS_THREADS # vulkan-loader
+ depends on BR2_USE_WCHAR # assimp
+ depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7 # assimp
+ depends on BR2_INSTALL_LIBSTDCPP # vulkan-loader, glm, assimp, vkmark
+ select BR2_PACKAGE_VULKAN_HEADERS
+ select BR2_PACKAGE_VULKAN_LOADER
+ select BR2_PACKAGE_GLM
+ select BR2_PACKAGE_ASSIMP
+ select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_VKMARK_FLAVOR_WAYLAND
+ select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_VKMARK_FLAVOR_X11
+ select BR2_PACKAGE_XCB_UTIL_WM if BR2_PACKAGE_VKMARK_FLAVOR_X11
+ select BR2_PACKAGE_LIBDRM if BR2_PACKAGE_VKMARK_FLAVOR_KMS
+ help
+ vmmark is an Vulkan GPU benchmark.
+
+ https://github.com/vkmark/vkmark
+
+comment "vkmark needs a toolchain w/ dynamic library, threads, wchar, gcc >= 7, C++"
+ depends on BR2_STATIC_LIBS || \
+ !BR2_TOOLCHAIN_HAS_THREADS || \
+ !BR2_USE_WCHAR || \
+ !BR2_TOOLCHAIN_GCC_AT_LEAST_7 || \
+ !BR2_INSTALL_LIBSTDCPP
+
+comment "vkmark needs a backend: gbm, wayland or xcb"
+ depends on !BR2_PACKAGE_VKMARK_FLAVOR_ANY
diff --git a/package/vkmark/vkmark.hash b/package/vkmark/vkmark.hash
new file mode 100644
index 0000000000..2a8763c1e4
--- /dev/null
+++ b/package/vkmark/vkmark.hash
@@ -0,0 +1,3 @@
+# Locally computed
+sha256 a866caee5c73a64be6328480df367dfd254191e01b875c40361811dde4c12f33 vkmark-101be30c1a039eab08886919a8065d728b4bd1f0.tar.gz
+sha256 dc626520dcd53a22f727af3ee42c770e56c97a64fe3adb063799d8ab032fe551 COPYING-LGPL2.1
diff --git a/package/vkmark/vkmark.mk b/package/vkmark/vkmark.mk
new file mode 100644
index 0000000000..4d46e6a564
--- /dev/null
+++ b/package/vkmark/vkmark.mk
@@ -0,0 +1,34 @@
+################################################################################
+#
+# vkmark
+#
+################################################################################
+
+VKMARK_VERSION = 101be30c1a039eab08886919a8065d728b4bd1f0
+VKMARK_SITE = $(call github,vkmark,vkmark,$(VKMARK_VERSION))
+VKMARK_LICENSE = LGPL-2.1
+VKMARK_LICENSE_FILES = COPYING-LGPL2.1
+VKMARK_DEPENDENCIES = assimp glm host-pkgconf vulkan-headers vulkan-loader
+
+ifeq ($(BR2_PACKAGE_VKMARK_FLAVOR_KMS),y)
+VKMARK_DEPENDENCIES += libdrm libgbm
+VKMARK_CONF_OPTS += -Dkms=true
+else
+VKMARK_CONF_OPTS += -Dkms=false
+endif
+
+ifeq ($(BR2_PACKAGE_VKMARK_FLAVOR_WAYLAND),y)
+VKMARK_DEPENDENCIES += wayland wayland-protocols
+VKMARK_CONF_OPTS += -Dwayland=true
+else
+VKMARK_CONF_OPTS += -Dwayland=false
+endif
+
+ifeq ($(BR2_PACKAGE_VKMARK_FLAVOR_X11),y)
+VKMARK_DEPENDENCIES += libxcb xcb-util-wm
+VKMARK_CONF_OPTS += -Dxcb=true
+else
+VKMARK_CONF_OPTS += -Dxcb=false
+endif
+
+$(eval $(meson-package))
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package
2025-06-18 14:28 [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool Alex Bennée
` (2 preceding siblings ...)
2025-06-18 14:28 ` [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool Alex Bennée
@ 2025-06-18 14:28 ` Alex Bennée
2025-06-22 11:48 ` Julien Olivain
3 siblings, 1 reply; 10+ messages in thread
From: Alex Bennée @ 2025-06-18 14:28 UTC (permalink / raw)
To: buildroot; +Cc: Ricardo Martincoski, Heiko Thiery, Julien Olivain
To test vkmark we need a headless Weston compositor so we can run the
test without messing around with actual displays. Because to run proper
accelerated Vulkan pass-through you need a modern QEMU we also enabled
the VULKAN_DRIVER_SWRAST driver. This will allow us to run vkmark
under CI and other places where we don't have a very modern host
system.
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
v5
- simplify package list
- add SWRAST driver for fall-back
- don't use accelerated device in test, document the difference
v4
- add BR2_PACKAGE_WESTON_SHELL_KIOSK=y
v3
- fix ordering of select/depend as suggested by check-package
- fix some flake8 complaints
v2
- add overlay image
- ensure we expose DISPLAY/DBUS env vars
- shorten runtime of vkmark
---
support/testing/infra/emulator.py | 4 +-
support/testing/tests/package/test_vkmark.py | 80 +++++++++++++++++++
.../etc/profile.d/10-xdg-runtime.sh | 1 +
3 files changed, 84 insertions(+), 1 deletion(-)
create mode 100644 support/testing/tests/package/test_vkmark.py
create mode 100644 support/testing/tests/package/test_vkmark/rootfs-overlay/etc/profile.d/10-xdg-runtime.sh
diff --git a/support/testing/infra/emulator.py b/support/testing/infra/emulator.py
index 3702ee2d48..a6fe9613b7 100644
--- a/support/testing/infra/emulator.py
+++ b/support/testing/infra/emulator.py
@@ -121,7 +121,9 @@ class Emulator(object):
host_bin = os.path.join(self.builddir, "host", "bin")
br_path = host_bin + os.pathsep + os.environ["PATH"]
qemu_env = {"QEMU_AUDIO_DRV": "none",
- "PATH": br_path}
+ "PATH": br_path,
+ "DBUS_SESSION_BUS_ADDRESS": os.environ["DBUS_SESSION_BUS_ADDRESS"],
+ "DISPLAY": os.environ["DISPLAY"]}
pexpect.run(f"{qemu_cmd[0]} --version",
encoding='utf-8',
logfile=self.logfile,
diff --git a/support/testing/tests/package/test_vkmark.py b/support/testing/tests/package/test_vkmark.py
new file mode 100644
index 0000000000..80caa01fdc
--- /dev/null
+++ b/support/testing/tests/package/test_vkmark.py
@@ -0,0 +1,80 @@
+import os
+
+import infra.basetest
+
+VULKANINFO_TIMEOUT = 120
+
+
+class TestVkMark(infra.basetest.BRTest):
+ config = \
+ """
+ BR2_aarch64=y
+ BR2_cortex_a72=y
+ BR2_TOOLCHAIN_EXTERNAL=y
+ BR2_OPTIMIZE_S=y
+ BR2_ROOTFS_DEVICE_CREATION_DYNAMIC_EUDEV=y
+ BR2_ROOTFS_MERGED_USR=y
+ BR2_LINUX_KERNEL=y
+ BR2_LINUX_KERNEL_USE_CUSTOM_CONFIG=y
+ BR2_LINUX_KERNEL_CUSTOM_CONFIG_FILE="board/qemu/aarch64-virt/linux.config"
+ BR2_PACKAGE_DBUS=y
+ BR2_PACKAGE_LIBMD=y
+ BR2_PACKAGE_MESA3D=y
+ BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL=y
+ BR2_PACKAGE_MESA3D_LLVM=y
+ BR2_PACKAGE_MESA3D_OPENGL_ES=y
+ BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST=y
+ BR2_PACKAGE_MESA3D_VULKAN_DRIVER_VIRTIO=y
+ BR2_PACKAGE_UTIL_LINUX_AGETTY=y
+ BR2_PACKAGE_UTIL_LINUX_BINARIES=y
+ BR2_PACKAGE_VKMARK=y
+ BR2_PACKAGE_VULKAN_TOOLS=y
+ BR2_PACKAGE_WESTON=y
+ BR2_PACKAGE_WESTON_DEFAULT_DRM=y
+ BR2_PACKAGE_WESTON_HEADLESS=y
+ BR2_PACKAGE_WESTON_SHELL_KIOSK=y
+ BR2_TARGET_GENERIC_GETTY_PORT="ttyAMA0"
+ BR2_TARGET_ROOTFS_EXT2=y
+ BR2_TARGET_ROOTFS_EXT2_SIZE="250M"
+ BR2_ROOTFS_OVERLAY="{}"
+ """.format(
+ infra.filepath("tests/package/test_vkmark/rootfs-overlay"))
+
+ def login(self):
+ img = os.path.join(self.builddir, "images", "rootfs.ext2")
+ kern = os.path.join(self.builddir, "images", "Image")
+
+ # We have built the image to contain both the SWRAST and
+ # VIRTIO vulkan drivers. However to test with proper pass
+ # through you need a modern QEMU with Venus support.
+ #
+ # That would modify the command line to:
+ # -display dbus,gl=on
+ # -device virtio-gpu-gl-pci,hostmem=4G,blob=on,venus=on
+ #
+ self.emulator.boot(arch="aarch64",
+ kernel=kern,
+ kernel_cmdline=["root=/dev/vda console=ttyAMA0"],
+ options=["-M", "virt", "-cpu", "cortex-a72", "-m", "512",
+ "-drive",
+ f"file={img},if=virtio,format=raw",
+ "-display", "egl-headless",
+ "-display", "dbus",
+ "-device", "virtio-gpu-pci"])
+
+ self.emulator.login()
+
+ def test_run(self):
+ self.login()
+
+ # The test case verifies that Vulkan is enabled and vkmark can run
+ cmd = "weston -B headless --renderer gl --shell kiosk -- vkmark -b :duration=1.0"
+ output, exit_code = self.emulator.run(cmd, VULKANINFO_TIMEOUT)
+ self.assertEqual(exit_code, 0)
+
+ # check we got to the end and emitted a score
+ found_vkmark = False
+ for line in output:
+ found_vkmark |= "vkmark Score:" in line
+
+ self.assertEqual(found_vkmark, True)
diff --git a/support/testing/tests/package/test_vkmark/rootfs-overlay/etc/profile.d/10-xdg-runtime.sh b/support/testing/tests/package/test_vkmark/rootfs-overlay/etc/profile.d/10-xdg-runtime.sh
new file mode 100644
index 0000000000..5e0ccb1d3e
--- /dev/null
+++ b/support/testing/tests/package/test_vkmark/rootfs-overlay/etc/profile.d/10-xdg-runtime.sh
@@ -0,0 +1 @@
+export XDG_RUNTIME_DIR=/tmp
--
2.47.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package
2025-06-18 14:28 ` [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package Alex Bennée
@ 2025-06-22 11:45 ` Julien Olivain
0 siblings, 0 replies; 10+ messages in thread
From: Julien Olivain @ 2025-06-22 11:45 UTC (permalink / raw)
To: Alex Bennée; +Cc: buildroot, Heiko Thiery
On 18/06/2025 16:28, Alex Bennée wrote:
> The principle component of this is the new volk meta-loader which is
> required for more recent versions of vulkan-tools. There does seem to
> be a little confusion with github Releases lagging behind tagged
> versions of the sdk. I've gone for the latest SDK version to stay as
> closely aligned to the rest of the system as I can.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Patch applied to master, thanks.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release
2025-06-18 14:28 ` [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release Alex Bennée
@ 2025-06-22 11:46 ` Julien Olivain
0 siblings, 0 replies; 10+ messages in thread
From: Julien Olivain @ 2025-06-22 11:46 UTC (permalink / raw)
To: Alex Bennée; +Cc: buildroot, Heiko Thiery
On 18/06/2025 16:28, Alex Bennée wrote:
> Update to the current release. We now need the recently added
> vulkan-sdk to have access to the volk loader. Update the depends
> comments appropriately.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Patch applied to master, thanks.
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool
2025-06-18 14:28 ` [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool Alex Bennée
@ 2025-06-22 11:47 ` Julien Olivain
2025-06-23 10:17 ` Alex Bennée
0 siblings, 1 reply; 10+ messages in thread
From: Julien Olivain @ 2025-06-22 11:47 UTC (permalink / raw)
To: Alex Bennée; +Cc: buildroot, Eric Le Bihan, Heiko Thiery
Hi Alex,
On 18/06/2025 16:28, Alex Bennée wrote:
> We build from a recent HEAD to ensure we have the fixes to better
> handle the missing KHR_display extension.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
This patch still has the "vl.xml" issue reported in the
previous version. See:
https://lore.kernel.org/buildroot/39b12258dcb1ac7768d0579bb80647f0@free.fr/
You can reproduce the issue by running the runtime test in the
Buildroot docker reference image. For example, using the command:
utils/docker-run support/testing/run-tests \
-k -d dl -o output_folder tests.package.test_vkmark
I see that the PR [1] has been merged upstream. So maybe you could
just update to a commit including this fix?
Best regards,
Julien.
[1] https://github.com/vkmark/vkmark/pull/76
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package
2025-06-18 14:28 ` [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package Alex Bennée
@ 2025-06-22 11:48 ` Julien Olivain
0 siblings, 0 replies; 10+ messages in thread
From: Julien Olivain @ 2025-06-22 11:48 UTC (permalink / raw)
To: Alex Bennée; +Cc: buildroot, Ricardo Martincoski, Heiko Thiery
Hi Alex,
On 18/06/2025 16:28, Alex Bennée wrote:
> To test vkmark we need a headless Weston compositor so we can run the
> test without messing around with actual displays. Because to run proper
> accelerated Vulkan pass-through you need a modern QEMU we also enabled
> the VULKAN_DRIVER_SWRAST driver. This will allow us to run vkmark
> under CI and other places where we don't have a very modern host
> system.
>
> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
My comments on the previous version from [1] are still applying
to this version.
Could you isolate emulator.py in a separate patch?
Running the test as is on a headless server (and fixing the
vk.xml issue) fails with output:
support/testing/run-tests \
-d dl -o output_folder \
tests.package.test_vkmark
Traceback (most recent call last):
File "/buildroot/support/testing/tests/package/test_vkmark.py",
line 68, in test_run
self.login()
File "/buildroot/support/testing/tests/package/test_vkmark.py",
line 55, in login
self.emulator.boot(arch="aarch64",
File "/buildroot/support/testing/infra/emulator.py", line 126, in
boot
"DISPLAY": os.environ["DISPLAY"]}
~~~~~~~~~~^^^^^^^^^^^
File "<frozen os>", line 679, in __getitem__
KeyError: 'DISPLAY'
You should make sure the test succeed in the Buildroot reference
docker image, when executed with:
utils/docker-run support/testing/run-tests \
-k -d dl -o output_folder tests.package.test_vkmark
Could you also consider moving this vulkan swrast test to
test_mesa3d.py?
Best regards,
Julien.
[1]
https://lore.kernel.org/buildroot/82117b1a9e3d87c2943d8d6e02a48be3@free.fr/
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool
2025-06-22 11:47 ` Julien Olivain
@ 2025-06-23 10:17 ` Alex Bennée
0 siblings, 0 replies; 10+ messages in thread
From: Alex Bennée @ 2025-06-23 10:17 UTC (permalink / raw)
To: Julien Olivain; +Cc: buildroot, Eric Le Bihan, Heiko Thiery
Julien Olivain <ju.o@free.fr> writes:
> Hi Alex,
>
> On 18/06/2025 16:28, Alex Bennée wrote:
>> We build from a recent HEAD to ensure we have the fixes to better
>> handle the missing KHR_display extension.
>> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
>
> This patch still has the "vl.xml" issue reported in the
> previous version. See:
> https://lore.kernel.org/buildroot/39b12258dcb1ac7768d0579bb80647f0@free.fr/
This version is based on the commits:
https://github.com/vkmark/vkmark/commit/101be30c1a039eab08886919a8065d728b4bd1f0
>
> You can reproduce the issue by running the runtime test in the
> Buildroot docker reference image. For example, using the command:
>
> utils/docker-run support/testing/run-tests \
> -k -d dl -o output_folder tests.package.test_vkmark
>
> I see that the PR [1] has been merged upstream. So maybe you could
> just update to a commit including this fix?
VKMARK_VERSION = 101be30c1a039eab08886919a8065d728b4bd1f0
VKMARK_SITE = $(call github,vkmark,vkmark,$(VKMARK_VERSION))
During the upstream review I was asked to squash the
meson.get_external_property('sys_root', ''), into the join_paths
statement but I didn't think that would break anything.
Lets me check what happened.
>
> Best regards,
>
> Julien.
>
> [1] https://github.com/vkmark/vkmark/pull/76
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-06-23 10:17 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-18 14:28 [Buildroot] [PATCH v7 0/4] Add vkmark graphics benchmarking tool Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 1/4] package/vulkan-sdk: new package Alex Bennée
2025-06-22 11:45 ` Julien Olivain
2025-06-18 14:28 ` [Buildroot] [PATCH v7 2/4] package/vulkan-[headers|loader|tools]: bump to 1.4.317 release Alex Bennée
2025-06-22 11:46 ` Julien Olivain
2025-06-18 14:28 ` [Buildroot] [PATCH v7 3/4] package/vkmark: add vkmark benchmarking tool Alex Bennée
2025-06-22 11:47 ` Julien Olivain
2025-06-23 10:17 ` Alex Bennée
2025-06-18 14:28 ` [Buildroot] [PATCH v7 4/4] support/testing: add test for vkmark package Alex Bennée
2025-06-22 11:48 ` Julien Olivain
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.