123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430 |
- 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
- # 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_PANFROST || \
- BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI || \
- BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS
- select BR2_PACKAGE_LLVM_RTTI
- select BR2_PACKAGE_CLANG
- select BR2_PACKAGE_LIBCLC
- select BR2_PACKAGE_HAS_LIBOPENCL
- # 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
- # 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
- # 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_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_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
- help
- Mesa driver for iris-based Intel GPUs.
- comment "iris driver needs llvm"
- depends on BR2_i386 || BR2_x86_64
- 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
- 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_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"
- 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
- 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
- depends on BR2_PACKAGE_MESA3D_LLVM
- 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.
- 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_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
- 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_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.
- 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 r300, 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)
- comment "Vulkan drivers"
- 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_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
- select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
- help
- Vulkan driver for Intel hardware from Ivy Bridge onward.
- 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_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.
- 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_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
|