mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-08-01 21:23:51 -09:00
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>
544 lines
18 KiB
Plaintext
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
|