[Buildroot] [PATCH 3/4] package/mesa3d: add freedreno vulkan driver config
Romain Naour
romain.naour at smile.fr
Sun Mar 8 22:25:31 UTC 2026
Hello Joseph,
Le 28/02/2026 à 00:14, Joseph Kogut a écrit :
> Signed-off-by: Joseph Kogut <joseph at anodize.com>
> ---
> Tested with:
> BR2_PACKAGE_MESA3D=y
> BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO=y
> BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_FREEDRENO=y
>
> $ utils/test-pkg -p mesa3d -c mesa-freedreno-vdrm.config -a
> arm-aarch64 [ 1/32]: OK
> bootlin-aarch64-glibc-old [ 2/32]: SKIPPED
> bootlin-aarch64-glibc [ 3/32]: OK
> bootlin-arcle-hs38-uclibc [ 4/32]: OK
> bootlin-armv5-uclibc [ 5/32]: OK
> bootlin-armv7-glibc [ 6/32]: OK
> bootlin-armv7-musl [ 7/32]: OK
> bootlin-armv7m-uclibc [ 8/32]: SKIPPED
> bootlin-m68k-5208-uclibc [ 9/32]: SKIPPED
> bootlin-m68k-68040-uclibc [10/32]: OK
> bootlin-microblazeel-uclibc [11/32]: SKIPPED
> bootlin-mips64el-glibc [12/32]: OK
> bootlin-mipsel-uclibc [13/32]: SKIPPED
> bootlin-mipsel32r6-glibc [14/32]: SKIPPED
> bootlin-openrisc-uclibc [15/32]: SKIPPED
> bootlin-powerpc-e500mc-uclibc [16/32]: SKIPPED
> bootlin-powerpc64le-power8-glibc [17/32]: SKIPPED
> bootlin-riscv32-glibc [18/32]: SKIPPED
> bootlin-riscv64-glibc [19/32]: SKIPPED
> bootlin-riscv64-musl [20/32]: SKIPPED
> bootlin-s390x-z13-glibc [21/32]: SKIPPED
> bootlin-sh4-uclibc [22/32]: SKIPPED
> bootlin-sparc-uclibc [23/32]: SKIPPED
> bootlin-sparc64-glibc [24/32]: SKIPPED
> bootlin-x86-64-glibc [25/32]: SKIPPED
> bootlin-x86-64-musl [26/32]: SKIPPED
> bootlin-x86-64-uclibc [27/32]: SKIPPED
> bootlin-x86-i686-musl [28/32]: SKIPPED
> bootlin-xtensa-uclibc [29/32]: SKIPPED
> br-arm-basic [30/32]: SKIPPED
> br-arm-full-nothread [31/32]: SKIPPED
> br-arm-full-static [32/32]: SKIPPED
> 32 builds, 24 skipped, 0 build failed, 0 legal-info failed, 0 show-info failed
>
> package/mesa3d/Config.in | 10 +++++++++-
> package/mesa3d/mesa3d.mk | 3 ++-
> 2 files changed, 11 insertions(+), 2 deletions(-)
>
> diff --git a/package/mesa3d/Config.in b/package/mesa3d/Config.in
> index b5aaec5e1c..e8c2c8473c 100644
> --- a/package/mesa3d/Config.in
> +++ b/package/mesa3d/Config.in
> @@ -350,6 +350,13 @@ config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM
> help
> Vulkan broadcom driver.
>
> +config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO
> + bool "Vulkan freedreno driver (turnip)"
> + select BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
> + select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
> + help
> + Vulkan freedreno driver.
> +
> config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_IMAGINATION
> bool "Vulkan imagination driver"
> depends on BR2_arm || BR2_aarch64
> @@ -425,7 +432,8 @@ config BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_AMDGPU
>
> config BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_FREEDRENO
> bool "freedreno-virtio"
> - depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO
> + depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO || \
> + BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO
> help
> Enable VirtIO support for freedreno native contexts
> used by the freedreno (OpenGL) and turnip (Vulkan)
> diff --git a/package/mesa3d/mesa3d.mk b/package/mesa3d/mesa3d.mk
> index e6f44ad73c..0a41d84446 100644
> --- a/package/mesa3d/mesa3d.mk
> +++ b/package/mesa3d/mesa3d.mk
> @@ -130,6 +130,7 @@ MESA3D_GALLIUM_DRIVERS-$(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ZINK) += zink
> # Vulkan Drivers
> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD) += amd
> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM) += broadcom
> +MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO) += freedreno
> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_IMAGINATION) += imagination
> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL) += intel
> MESA3D_VULKAN_DRIVERS-$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_PANFROST) += panfrost
> @@ -157,7 +158,7 @@ else
> MESA3D_CONF_OPTS += -Damdgpu-virtio=false
> endif
>
> -ifeq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO),y)
> +ifneq ($(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO)$(BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO),)
What if only BR2_PACKAGE_MESA3D_VULKAN_DRIVER_FREEDRENO is set ?
MESA3D_GALLIUM_DRIVER_FREEDRENO_KMDS can be set without
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO enabled.
Maybe MESA3D_GALLIUM_DRIVER_FREEDRENO_KMDS needs to be renamed ?
Something like MESA3D_FREEDRENO_KMDS? (without "Gallium word).
KMDS stand for "kernel-mode drivers" for freedreno gallium and vulkan driver
Best regards,
Romain
> MESA3D_GALLIUM_DRIVER_FREEDRENO_KMDS = msm
> ifeq ($(BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_FREEDRENO),y)
> MESA3D_GALLIUM_DRIVER_FREEDRENO_KMDS += virtio
>
More information about the buildroot
mailing list