42cdaaf945
The Vulkan intel driver depends on the i965 dri driver: https://cgit.freedesktop.org/mesa/mesa/tree/configure.ac?h=12.0#n1653 and a sha1 implementation: https://cgit.freedesktop.org/mesa/mesa/tree/configure.ac?h=12.0#n1656 The Vulkan driver needs linux/memfd.h https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/anv_allocator.c?h=12.0#n30 which is not available in kernel headers older than 3.18: https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/include/uapi/linux/memfd.h?id=refs/tags/v3.18.36 The Vulkan driver makes use of ifunc https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/anv_entrypoints_gen.py?h=12.0#n287 which is not available on uClibc: https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/config.gcc;h=82cc9a9959b5ab57c0b8779e054b80cdb95f169b;hb=gcc-6-branch#l1485 https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=e6cdd6b1755033e8f416efaa4334d1294c0a43c6 The Vulkan driver makes use of static_assert https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/anv_private.h?h=12.0#n153 Compiling the Vulkan driver with uClibc and musl fails, therefore this driver is glibc-only. Although the configure script does not check for dri3 support if the Intel Vulkan driver is enabled it needs it nonetheless: https://cgit.freedesktop.org/mesa/mesa/tree/src/intel/vulkan/anv_wsi_x11.c?h=12.0#n682 Signed-off-by: Bernd Kuhls <bernd.kuhls@t-online.de> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
205 lines
6.1 KiB
Plaintext
205 lines
6.1 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_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
|
|
help
|
|
Mesa 3D, an open-source implementation of the OpenGL specification.
|
|
|
|
http://mesa3d.org
|
|
|
|
if BR2_PACKAGE_MESA3D
|
|
|
|
# inform the .mk file of gallium, dri or vulkan driver selection
|
|
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_MESA3D_DRIVER
|
|
bool
|
|
|
|
config BR2_PACKAGE_MESA3D_DRI_DRIVER
|
|
select BR2_PACKAGE_MESA3D_DRIVER
|
|
select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XPROTO_DRI3PROTO
|
|
select BR2_PACKAGE_XPROTO_PRESENTPROTO if BR2_PACKAGE_XPROTO_DRI3PROTO
|
|
bool
|
|
|
|
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_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
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_RADEON
|
|
select BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
help
|
|
Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
|
|
|
|
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
|
|
select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
|
|
select BR2_PACKAGE_LIBDRM_VC4
|
|
select BR2_PACKAGE_MESA3D_NEEDS_XA
|
|
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
|
|
# We need a SHA1 implementation. If either openssl or
|
|
# libgcrypt are already part of the build, we'll use one of
|
|
# them, otherwise, use the small libsha1 library.
|
|
select BR2_PACKAGE_LIBSHA1 if (!BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_LIBGCRYPT)
|
|
select BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
|
|
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.
|
|
|
|
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
|