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_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_LLVM bool "llvm support" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 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, dynamic library" depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ !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 # clang and libclc dependencies are satisfied by # BR2_PACKAGE_MESA3D_LLVM config 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_RADEONSI select BR2_PACKAGE_LLVM_RTTI select BR2_PACKAGE_CLANG select BR2_PACKAGE_LIBCLC select BR2_PACKAGE_HAS_LIBOPENCL # 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 select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \ (BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4) config BR2_PACKAGE_MESA3D_VULKAN_DRIVER bool select BR2_PACKAGE_MESA3D_DRIVER config BR2_PACKAGE_MESA3D_DRIVER bool # Gallium xa state tracker. # Quote from mesa3d meson.build: "XA state tracker requires at least # one of the following gallium drivers: nouveau, freedreno, i915, svga. config BR2_PACKAGE_MESA3D_NEEDS_XA bool # Quote from mesa3d meson.build: "kmsro driver requires one or more # renderonly drivers (vc4, etnaviv, freedreno)". config BR2_PACKAGE_MESA3D_GALLIUM_KMSRO bool # OpenGL GLX and Gallium VDPAU both 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_ETNAVIV bool "Gallium Etnaviv driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_ETNAVIV select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO select BR2_PACKAGE_MESA3D_OPENGL_EGL help Mesa driver for Vivante GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO bool "Gallium freedreno driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO help Mesa driver for Freedreno GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS bool "Gallium iris driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO help Mesa driver for iris-based Intel GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO bool "Gallium KMSRO driver" depends on BR2_PACKAGE_MESA3D_GALLIUM_KMSRO help Support various sorts of KMS displays with the renderonly layer used to attach a GPU. comment "Gallium KMSRO needs one or more renderonly drivers" depends on !BR2_PACKAGE_MESA3D_GALLIUM_KMSRO config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA bool "Gallium lima driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO help Mesa driver for ARM Mali Utgard GPUs. 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_MESA3D_NEEDS_XA select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM help Supports all Nvidia GPUs. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST bool "Gallium panfrost driver" select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO help Mesa driver for ARM Mali Midgard and Bifrost 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 depends on BR2_PACKAGE_MESA3D_LLVM depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_LIBDRM_AMDGPU select BR2_PACKAGE_LIBDRM_RADEON select BR2_PACKAGE_LLVM_AMDGPU select BR2_PACKAGE_ELFUTILS select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS help Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs. # Radeon SI needs libelf # musl is not currently compatible with elfutils comment "Radeon SI driver needs a uClibc or glibc toolchain" depends on BR2_USE_MMU 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" depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER help This is a software opengl implementation using the Gallium3D infrastructure. comment "Gallium swrast: Only one swrast provider can be built" depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST 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 select BR2_PACKAGE_MESA3D_NEEDS_XA 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_aarch64 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO select BR2_PACKAGE_LIBDRM_VC4 select BR2_PACKAGE_MESA3D_OPENGL_EGL help Driver for Broadcom VC6 (rpi4) GPUs (needs kmsro and 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 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO select BR2_PACKAGE_LIBDRM_VC4 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. config BR2_PACKAGE_MESA3D_VDPAU bool "Gallium VDPAU state tracker" depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI select BR2_PACKAGE_MESA3D_NEEDS_X11 select BR2_PACKAGE_LIBVDPAU help VDPAU state tracker (needs r600, radeonsi or nouveau gallium drivers). comment "Gallium VDPAU state tracker needs X.org and gallium drivers r600, radeonsi or nouveau" depends on !BR2_PACKAGE_XORG7 || \ !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) config BR2_PACKAGE_MESA3D_XVMC bool "Gallium XvMC state tracker" depends on BR2_i386 || BR2_x86_64 depends on BR2_PACKAGE_XORG7 depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 select BR2_PACKAGE_XLIB_LIBXV select BR2_PACKAGE_XLIB_LIBXVMC help XvMC state tracker (needs r600 or nouveau gallium drivers). comment "Gallium XvMC state tracker needs X.org and gallium drivers r600 or nouveau" depends on BR2_i386 || BR2_x86_64 depends on !BR2_PACKAGE_XORG7 || \ !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) 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 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h select BR2_PACKAGE_MESA3D_DRI_DRIVER select BR2_PACKAGE_LIBDRM_INTEL help Support for i965-based Intel GPUs. comment "DRI i965 driver needs a toolchain w/ headers >= 3.17" depends on BR2_i386 || BR2_x86_64 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 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_HAS_SYNC_4 # 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_XORG7 # xorgproto select BR2_PACKAGE_MESA3D_VULKAN_DRIVER select BR2_PACKAGE_XORGPROTO select BR2_PACKAGE_XLIB_LIBXSHMFENCE 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.17" depends on BR2_i386 || BR2_x86_64 depends on BR2_TOOLCHAIN_HAS_SYNC_4 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \ !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7 comment "Off-screen Rendering" config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC bool "OSMesa (classic) library" help The OSMesa classic API provides functions for making off-screen renderings. if BR2_PACKAGE_MESA3D_DRIVER comment "OpenGL API Support" config BR2_PACKAGE_MESA3D_GBM bool "gbm" help Enable Generic Buffer Management (gbm) config BR2_PACKAGE_MESA3D_OPENGL_GLX bool "OpenGL GLX" depends on BR2_PACKAGE_XORG7 select BR2_PACKAGE_HAS_LIBGL 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" select BR2_PACKAGE_HAS_LIBEGL select BR2_PACKAGE_HAS_LIBEGL_WAYLAND 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 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_MESA3D_OPENGL_GLX 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 config BR2_PACKAGE_PROVIDES_LIBOPENCL default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL 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