Files
buildroot/package/mesa3d/Config.in
Thomas Devoogdt 460700d38e package/mesa3d: add Gallium VA-API support
Since commit 361bfbc70b (package/mesa3d: disable libva support),
VA-API has been unconditionally disabled in mesa3d due to a circular
dependency between mesa3d, libva and libgl.

The circular dependency only occurs when mesa3d is the libgl provider,
i.e. when GLX is enabled without libglvnd. In that case:
  mesa3d -> libva -> libgl -> mesa3d

Re-enable VA-API support as a new BR2_PACKAGE_MESA3D_GALLIUM_VA option,
guarded by a dependency that prevents the circular case. This allows
hardware video acceleration on AMD, Intel and other GPUs with Gallium
drivers.

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
Signed-off-by: Arnout Vandecappelle <arnout@rnout.be>
2026-05-18 20:19:36 +02:00

544 lines
18 KiB
Plaintext

menuconfig BR2_PACKAGE_MESA3D
bool "mesa3d"
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_STATIC_LIBS
depends on BR2_TOOLCHAIN_HAS_SYNC_1
depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8
select BR2_PACKAGE_EXPAT
select BR2_PACKAGE_LIBDRM
select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND
select BR2_PACKAGE_ZLIB
help
Mesa 3D, an open-source implementation of the OpenGL
specification.
http://mesa3d.org
if BR2_PACKAGE_MESA3D
# Some Gallium driver needs libelf when built with LLVM support
config BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
bool
config BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
bool
select BR2_PACKAGE_MESA3D_OPENCL
select BR2_PACKAGE_SPIRV_LLVM_TRANSLATOR
select BR2_PACKAGE_SPIRV_TOOLS
config BR2_PACKAGE_MESA3D_LLVM
bool "llvm support"
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_7
depends on BR2_TOOLCHAIN_HAS_THREADS
depends on BR2_INSTALL_LIBSTDCPP
depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future
depends on !BR2_STATIC_LIBS
depends on BR2_USE_WCHAR # std::wstring
depends on BR2_HOST_GCC_AT_LEAST_7 # host-llvm
select BR2_PACKAGE_LLVM
comment "llvm support needs a toolchain w/ wchar, threads, C++, gcc >= 7, dynamic library, host gcc >= 7"
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_7 \
|| BR2_STATIC_LIBS || !BR2_USE_WCHAR \
|| !BR2_HOST_GCC_AT_LEAST_7
comment "llvm support needs a toolchain not affected by GCC bug 64735"
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
config BR2_PACKAGE_MESA3D_LEGACY_BIND_WAYLAND_DISPLAY
bool "Legacy Wayland EGL_WL_bind_wayland_display support"
depends on BR2_PACKAGE_WAYLAND
help
Legacy Wayland EGL_WL_bind_wayland_display support.
menuconfig BR2_PACKAGE_MESA3D_OPENCL
bool "OpenCL support"
depends on BR2_PACKAGE_MESA3D_LLVM
depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 || \
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST || \
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI || \
BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS || \
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD || \
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL || \
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_IMAGINATION || \
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_PANFROST || \
(BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS && \
BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER)
select BR2_PACKAGE_LLVM_RTTI
select BR2_PACKAGE_CLANG
select BR2_PACKAGE_LIBCLC
select BR2_PACKAGE_HAS_LIBOPENCL
if BR2_PACKAGE_MESA3D_OPENCL
# libclc dependency is satisfied by
# BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_RUSTICL
bool "RustiCL"
depends on BR2_PACKAGE_HOST_RUSTC_TARGET_ARCH_SUPPORTS
depends on BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
select BR2_PACKAGE_HOST_RUSTC
select BR2_PACKAGE_LLVM_DUMP
select BR2_PACKAGE_SPIRV_TOOLS
select BR2_PACKAGE_SPIRV_LLVM_TRANSLATOR
select BR2_PACKAGE_OPENCL_ICD_LOADER
help
RustiCL is an OpenCL implementation written in Rust.
By default, devices are disabled in RustiCL. If you want
to enable a device, you need to set the environment variable
RUSTICL_ENABLE to the driver you are using.
https://docs.mesa3d.org/envvars.html#envvar-RUSTICL_ENABLE
endif # BR2_PACKAGE_MESA3D_OPENCL
config BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
bool
# inform the .mk file of gallium or vulkan driver selection
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
bool
select BR2_PACKAGE_MESA3D_DRIVER
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
bool
select BR2_PACKAGE_MESA3D_DRIVER
config BR2_PACKAGE_MESA3D_DRIVER
bool
select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XORG7
# OpenGL GLX needs X11
config BR2_PACKAGE_MESA3D_NEEDS_X11
bool
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_LIBXCB
select BR2_PACKAGE_XLIB_LIBX11
select BR2_PACKAGE_XLIB_LIBXDAMAGE
select BR2_PACKAGE_XLIB_LIBXEXT
select BR2_PACKAGE_XLIB_LIBXFIXES
select BR2_PACKAGE_XLIB_LIBXRANDR
select BR2_PACKAGE_XLIB_LIBXXF86VM
select BR2_PACKAGE_XORGPROTO
comment "Gallium drivers"
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_CROCUS
bool "Gallium crocus driver"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
help
Mesa driver for gen4-7 Intel GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
bool "Gallium Etnaviv driver"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_ETNAVIV
help
Mesa driver for Vivante GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO
bool "Gallium freedreno driver"
depends on BR2_arm || BR2_aarch64 || BR2_aarch64_be # libdrm-freedreno
# libdrm's freedreno option depends on LIBDRM_HAS_ATOMIC. Propagating
# that dependency here causes a circular dependency that Kconfig
# can't see is just spurious. However, that dependency is about
# the toolchain having sync4 primitives, which is always a given
# for arm/aarch64.
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
select BR2_PACKAGE_LIBDRM_FREEDRENO
help
Mesa driver for Freedreno GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915
bool "Gallium i915 driver"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_INTEL
help
Support for i915-based Intel GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS
bool "Gallium iris driver"
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
select BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
help
Mesa driver for iris-based Intel GPUs.
comment "iris driver needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA
bool "Gallium lima driver"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
help
Mesa driver for ARM Mali Utgard GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LLVMPIPE
bool "Gallium llvmpipe driver"
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
help
This is a llvm opengl implementation using the Gallium3D
infrastructure.
comment "llvmpipe driver needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
bool "Gallium nouveau driver"
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_NOUVEAU
select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
help
Supports all Nvidia GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST
bool "Gallium panfrost driver"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
select BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
help
Mesa driver for ARM Mali Midgard and Bifrost GPUs.
comment "panfrost driver needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300
bool "Gallium Radeon R300 driver"
depends on BR2_i386 || BR2_x86_64
# lbdrm's radeon option depends on LIBDRM_HAS_ATOMIC. Propagating
# that dependency here causes a circular dependency that Kconfig
# can't see is just spurious. However, that dependency is about
# the toolchain having sync4 primitives, which is always a given
# for x86.
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_RADEON
help
Driver for ATI/AMD Radeon R300/R400/R500 GPUs.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
bool "Gallium Radeon R600 driver"
depends on BR2_i386 || BR2_x86_64
depends on !BR2_PACKAGE_MESA3D_LLVM || \
(BR2_PACKAGE_MESA3D_LLVM && (BR2_TOOLCHAIN_USES_UCLIBC || \
BR2_TOOLCHAIN_USES_GLIBC)) # elfutils
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_RADEON
select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
help
Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
# R600 needs libelf when Mesa3D is built with LLVM support
# musl is not currently compatible with elfutils
comment "R600 driver needs a uClibc or glibc toolchain when llvm is enabled"
depends on BR2_PACKAGE_MESA3D_LLVM
depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
bool "Gallium Radeon SI driver"
depends on BR2_USE_MMU # libdrm
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
select BR2_PACKAGE_LIBDRM_AMDGPU
select BR2_PACKAGE_LIBDRM_RADEON
select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_ELFUTILS
select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
select BR2_PACKAGE_MESA3D_RUSTICL_SUPPORTED_DRIVER
help
Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs.
Since Mesa 26.0.0, the default shader compiler is ACO,
even when LLVM support is enabled at build time.
Use the env var AMD_DEBUG=usellvm to override the
default and use LLVM at runtime.
https://docs.mesa3d.org/envvars.html#envvar-AMD_DEBUG
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
bool "Gallium vmware svga driver"
depends on BR2_i386 || BR2_x86_64
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_VMWGFX
help
This is a virtual GPU driver for VMWare virtual machines.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SOFTPIPE
bool "Gallium softpipe driver"
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
help
This is a software opengl implementation using the Gallium3D
infrastructure.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA
bool "Gallium tegra driver"
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
select BR2_PACKAGE_LIBDRM_NOUVEAU
help
Adds support for Nvidia Tegra GPUs, requires nouveau.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D
bool "Gallium v3d driver"
depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 # runtime
select BR2_PACKAGE_MESA3D_OPENGL_EGL
help
Driver for Broadcom VC6/7 (rpi4/5) GPUs (needs vc4).
It requires a kernel 4.18+ with DRM V3D support enabled:
- CONFIG_DRM_V3D
- CONFIG_DRM_VC4
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
bool "Gallium vc4 driver"
depends on BR2_arm || BR2_aarch64
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_LIBDRM_VC4
select BR2_PACKAGE_MESA3D_OPENGL_EGL
help
Driver for Broadcom VC4 (rpi0/1/2/3) GPUs.
It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
bool "Gallium virgl driver"
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_OPENGL_EGL
help
virgl is the 3D acceleration backend for the virtio-gpu
shipping with qemu.
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ZINK
bool "Gallium zink driver"
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
select BR2_PACKAGE_VULKAN_LOADER
help
Zink is a Gallium driver that emits Vulkan API calls,
providing OpenGL support on devices that only support
Vulkan.
comment "Vulkan drivers"
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD
bool "Vulkan AMD driver (radv)"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
select BR2_PACKAGE_LIBDRM_AMDGPU
select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
RADV is a userspace driver that implements the
Vulkan API on most modern AMD GPUs.
https://docs.mesa3d.org/drivers/radv.html
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_BROADCOM
bool "Vulkan broadcom driver"
depends on BR2_arm || BR2_aarch64
depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
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
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
Vulkan imagination driver.
comment "imagination vulkan needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
bool "Vulkan Intel driver"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # 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_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
Vulkan driver for Intel hardware from Ivy Bridge onward.
comment "intel vulkan needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
comment "intel vulkan needs a glibc toolchain w/ headers >= 3.17"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
!BR2_TOOLCHAIN_USES_GLIBC
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_PANFROST
bool "Vulkan panfrost driver"
depends on BR2_TOOLCHAIN_HAS_SYNC_4 || !BR2_PACKAGE_XORG7 # libxshmfence
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_NEEDS_PRECOMP_COMPILER
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
Vulkan panfrost driver.
comment "panfrost vulkan needs llvm"
depends on !BR2_PACKAGE_MESA3D_LLVM
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_SWRAST
bool "Vulkan swrast driver"
depends on BR2_PACKAGE_MESA3D_LLVM
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SOFTPIPE
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
Vulkan swrast driver.
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_VIRTIO
bool "Vulkan VirtIO driver (Venus)"
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
help
Vulkan VirtIO (venus) driver.
comment "Host native context drivers"
depends on BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
config BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_AMDGPU
bool "amdgpu-virtio"
depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI || \
BR2_PACKAGE_MESA3D_VULKAN_DRIVER_AMD
help
Enable VirtIO support for AMDGPU native contexts
used by the radeonsi (OpenGL) and RADV (Vulkan) drivers.
Select this when running Mesa inside a virtual machine
with virtio-gpu host native context support.
config BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_DRIVER_FREEDRENO
bool "freedreno-virtio"
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)
drivers.
Select this when running Mesa inside a virtual machine
with virtio-gpu host native context support.
config BR2_PACKAGE_MESA3D_HOST_NATIVE_CONTEXT_SUPPORTED_DRIVER
bool
if BR2_PACKAGE_MESA3D_DRIVER
comment "OpenGL API Support"
config BR2_PACKAGE_MESA3D_GBM
bool "gbm"
depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && \
BR2_PACKAGE_MESA3D_OPENGL_EGL
select BR2_PACKAGE_HAS_LIBGBM
select BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT
select BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF
help
Enable Generic Buffer Management (gbm)
comment "gbm support needs a gallium driver w/ EGL support."
depends on !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL)
config BR2_PACKAGE_MESA3D_OPENGL_GLX
bool "OpenGL GLX"
depends on BR2_PACKAGE_XORG7
select BR2_PACKAGE_HAS_LIBGL if !BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_LIBGLVND_DISPATCH_GL if BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_MESA3D_NEEDS_X11
help
Enable GLX graphic acceleration (OpenGL + X11).
comment "OpenGL GLX support needs X11"
depends on !BR2_PACKAGE_XORG7
config BR2_PACKAGE_MESA3D_OPENGL_EGL
bool "OpenGL EGL"
depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
select BR2_PACKAGE_HAS_LIBEGL if !BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_LIBGLVND_DISPATCH_EGL if BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_MESA3D_GBM
help
Use the Khronos EGL APIs. EGL is a window manager for OpenGL
applications similar to GLX, for X, and WGL, for Windows.
config BR2_PACKAGE_MESA3D_OPENGL_ES
bool "OpenGL ES"
select BR2_PACKAGE_HAS_LIBGLES if !BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_LIBGLVND_DISPATCH_GLES if BR2_PACKAGE_LIBGLVND
help
Use the Khronos OpenGL ES APIs. This is commonly used on
embedded systems and represents a subset of the OpenGL API.
endif # BR2_PACKAGE_MESA3D_DRIVER
config BR2_PACKAGE_MESA3D_GALLIUM_VA
bool "Gallium VA-API"
depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
# circular dependency: mesa3d -> libva -> libgl -> mesa3d
depends on !BR2_PACKAGE_MESA3D_OPENGL_GLX || BR2_PACKAGE_LIBGLVND
select BR2_PACKAGE_LIBVA
help
Enable VA-API video acceleration support in Gallium drivers.
comment "Gallium VA-API needs a gallium driver, incompatible with GLX w/o libglvnd"
depends on !BR2_PACKAGE_MESA3D_GALLIUM_DRIVER || \
(BR2_PACKAGE_MESA3D_OPENGL_GLX && !BR2_PACKAGE_LIBGLVND)
config BR2_PACKAGE_PROVIDES_LIBGBM
default "mesa3d" if BR2_PACKAGE_MESA3D_GBM
config BR2_PACKAGE_PROVIDES_LIBGL
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_GLX && !BR2_PACKAGE_LIBGLVND
config BR2_PACKAGE_PROVIDES_LIBEGL
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL && !BR2_PACKAGE_LIBGLVND
config BR2_PACKAGE_PROVIDES_LIBGLES
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES && !BR2_PACKAGE_LIBGLVND
config BR2_PACKAGE_PROVIDES_LIBOPENCL
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL
endif # BR2_PACKAGE_MESA3D
comment "mesa3d needs a toolchain w/ gcc >=8, C++, NPTL, dynamic library"
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
BR2_STATIC_LIBS || !BR2_TOOLCHAIN_GCC_AT_LEAST_8
depends on BR2_TOOLCHAIN_HAS_SYNC_1