92fda8761a
Gallium R600 needs libelf when mesa is built with llvm support. Because of this, toolchain must use either uClibc or glibc, as musl is not currently compatible with elfutils. This patch solves: configure: error: r600 requires libelf when using llvm Fixes: http://autobuild.buildroot.org/results/8845ff0f28d3273ebe884126b85cd7c4a905d81b/ Signed-off-by: Valentin Korenblit <valentin.korenblit@smile.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
276 lines
8.7 KiB
Plaintext
276 lines
8.7 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
|
|
select BR2_PACKAGE_LIBDRM
|
|
select BR2_PACKAGE_EXPAT
|
|
select BR2_PACKAGE_HAS_LIBGL if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND
|
|
select BR2_PACKAGE_XPROTO_DRI2PROTO if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XPROTO_GLPROTO if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XPROTO_XF86DRIPROTO if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
|
|
select BR2_PACKAGE_ZLIB
|
|
help
|
|
Mesa 3D, an open-source implementation of the OpenGL
|
|
specification.
|
|
|
|
http://mesa3d.org
|
|
|
|
if BR2_PACKAGE_MESA3D
|
|
|
|
config BR2_PACKAGE_MESA3D_LLVM
|
|
bool "llvm support"
|
|
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
|
|
depends on BR2_HOST_GCC_AT_LEAST_4_8
|
|
depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
|
|
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
|
|
select BR2_PACKAGE_LLVM
|
|
|
|
comment "llvm support needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, host gcc >= 4.8, dynamic library"
|
|
depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
|
|
depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
|
|
!BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
|
|
|| BR2_STATIC_LIBS || !BR2_USE_WCHAR
|
|
|
|
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
|
|
|
|
# inform the .mk file of gallium, dri or vulkan driver selection
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
bool
|
|
select BR2_PACKAGE_MESA3D_DRIVER
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
bool
|
|
select BR2_PACKAGE_MESA3D_DRIVER
|
|
# xlib-libxshmfence needs sync_4, so we cannot select it if
|
|
# BR2_TOOLCHAIN_HAS_SYNC_4 is false. xproto-presentproto
|
|
# doesn't need sync_4, but it is only needed in conjunction
|
|
# with xlib-libxshmfence and dri3proto to provide dri3
|
|
# support, so we also only select it if sync_4 is available.
|
|
select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \
|
|
(BR2_PACKAGE_XPROTO_DRI3PROTO && BR2_TOOLCHAIN_HAS_SYNC_4)
|
|
select BR2_PACKAGE_XPROTO_PRESENTPROTO if \
|
|
(BR2_PACKAGE_XPROTO_DRI3PROTO && BR2_TOOLCHAIN_HAS_SYNC_4)
|
|
|
|
config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
|
|
bool
|
|
select BR2_PACKAGE_MESA3D_DRIVER
|
|
|
|
config BR2_PACKAGE_MESA3D_DRIVER
|
|
bool
|
|
|
|
config BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
bool
|
|
|
|
comment "Gallium drivers"
|
|
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
|
|
bool "Gallium Etnaviv driver"
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_ETNAVIV
|
|
select BR2_PACKAGE_MESA3D_OPENGL_EGL
|
|
help
|
|
Mesa driver for Vivante GPUs.
|
|
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
|
|
bool "Gallium nouveau driver"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_NOUVEAU
|
|
select BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
help
|
|
Supports all Nvidia 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_XA
|
|
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_SVGA
|
|
bool "Gallium vmware svga driver"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_VMWGFX
|
|
select BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
help
|
|
This is a virtual GPU driver for VMWare virtual machines.
|
|
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
|
|
bool "Gallium swrast driver"
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
help
|
|
This is a software opengl implementation using the Gallium3D
|
|
infrastructure.
|
|
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
|
|
bool "Gallium vc4 driver"
|
|
depends on BR2_ARM_CPU_HAS_NEON || BR2_aarch64
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_VC4
|
|
select BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
select BR2_PACKAGE_MESA3D_OPENGL_EGL
|
|
help
|
|
Driver for Broadcom VC4 (rpi2/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.
|
|
|
|
comment "DRI drivers"
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
|
|
bool "DRI swrast driver"
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
help
|
|
This is a software opengl implementation using the DRI
|
|
infrastructure.
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
|
|
bool "DRI i915 driver"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_INTEL
|
|
help
|
|
Support for i915-based Intel GPUs.
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
|
|
bool "DRI i965 driver"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_INTEL
|
|
help
|
|
Support for i965-based Intel GPUs.
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU
|
|
bool "DRI nouveau driver"
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_NOUVEAU
|
|
help
|
|
Support for Nvidia-based GPUs.
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
|
|
bool "DRI radeon driver"
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_RADEON
|
|
help
|
|
Legacy Radeon driver for R100 series GPUs.
|
|
|
|
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_HEADERS_AT_LEAST_3_18 # memfd.h
|
|
depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
|
|
depends on BR2_PACKAGE_XORG7 # xproto_dri3proto
|
|
select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
|
|
select BR2_PACKAGE_XPROTO_DRI3PROTO
|
|
help
|
|
Vulkan driver for Intel hardware from Ivy Bridge onward.
|
|
|
|
comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.18"
|
|
depends on BR2_i386 || BR2_x86_64
|
|
depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 || \
|
|
!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
|
|
|
|
comment "Off-screen Rendering"
|
|
|
|
config BR2_PACKAGE_MESA3D_OSMESA
|
|
bool "OSMesa library"
|
|
help
|
|
The OSMesa API provides functions for making off-screen
|
|
renderings.
|
|
|
|
if BR2_PACKAGE_MESA3D_DRIVER
|
|
|
|
comment "Additional API Support"
|
|
|
|
config BR2_PACKAGE_MESA3D_OPENGL_EGL
|
|
bool "OpenGL EGL"
|
|
select BR2_PACKAGE_HAS_LIBEGL
|
|
select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
|
|
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
|
|
help
|
|
Use the Khronos OpenGL ES APIs. This is commonly used on
|
|
embedded systems and represents a subset of the OpenGL API.
|
|
|
|
config BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT
|
|
bool "OpenGL texture float (patented format)"
|
|
help
|
|
GL_ARB_texture_float is required to enable GLX core profile
|
|
(OpenGL3.x) otherwise the compat profile is used
|
|
(OpenGL2.1).
|
|
|
|
The source code to implement ARB_texture_float extension is
|
|
included and can be toggled on at compile time, for those
|
|
who purchased a license from SGI, or are in a country where
|
|
the patent does not apply, etc.
|
|
|
|
Please consult docs/patents.txt with your lawyer before
|
|
building Mesa.
|
|
|
|
Also, note that this option doesn't affect all drivers. Some
|
|
drivers have support for texture float enabled
|
|
unconditionally.
|
|
|
|
If unsure, say N.
|
|
|
|
http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327
|
|
|
|
endif # BR2_PACKAGE_MESA3D_DRIVER
|
|
|
|
config BR2_PACKAGE_PROVIDES_LIBGL
|
|
default "mesa3d" if BR2_PACKAGE_XORG7
|
|
|
|
config BR2_PACKAGE_PROVIDES_LIBEGL
|
|
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
|
|
|
|
config BR2_PACKAGE_PROVIDES_LIBGLES
|
|
default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
|
|
|
|
endif # BR2_PACKAGE_MESA3D
|
|
|
|
comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
|
|
depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
|
|
BR2_STATIC_LIBS
|
|
depends on BR2_TOOLCHAIN_HAS_SYNC_1
|