1*4882a593Smuzhiyunmenuconfig BR2_PACKAGE_MESA3D 2*4882a593Smuzhiyun bool "mesa3d" 3*4882a593Smuzhiyun depends on BR2_INSTALL_LIBSTDCPP 4*4882a593Smuzhiyun depends on !BR2_STATIC_LIBS 5*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_SYNC_1 6*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL 7*4882a593Smuzhiyun depends on !BR2_m68k || BR2_TOOLCHAIN_GCC_AT_LEAST_7 # m68k needs gcc >= 7.x 8*4882a593Smuzhiyun select BR2_PACKAGE_EXPAT 9*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM 10*4882a593Smuzhiyun select BR2_PACKAGE_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND 11*4882a593Smuzhiyun select BR2_PACKAGE_ZLIB 12*4882a593Smuzhiyun help 13*4882a593Smuzhiyun Mesa 3D, an open-source implementation of the OpenGL 14*4882a593Smuzhiyun specification. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun http://mesa3d.org 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunif BR2_PACKAGE_MESA3D 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun# Some Gallium driver needs libelf when built with LLVM support 21*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS 22*4882a593Smuzhiyun bool 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_LLVM 25*4882a593Smuzhiyun bool "llvm support" 26*4882a593Smuzhiyun depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 27*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 28*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_THREADS 29*4882a593Smuzhiyun depends on BR2_INSTALL_LIBSTDCPP 30*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future 31*4882a593Smuzhiyun depends on !BR2_STATIC_LIBS 32*4882a593Smuzhiyun depends on BR2_USE_WCHAR # std::wstring 33*4882a593Smuzhiyun select BR2_PACKAGE_LLVM 34*4882a593Smuzhiyun 35*4882a593Smuzhiyuncomment "llvm support needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, dynamic library" 36*4882a593Smuzhiyun depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 37*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \ 38*4882a593Smuzhiyun !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \ 39*4882a593Smuzhiyun || BR2_STATIC_LIBS || !BR2_USE_WCHAR 40*4882a593Smuzhiyun 41*4882a593Smuzhiyuncomment "llvm support needs a toolchain not affected by GCC bug 64735" 42*4882a593Smuzhiyun depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS 43*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun# clang and libclc dependencies are satisfied by 46*4882a593Smuzhiyun# BR2_PACKAGE_MESA3D_LLVM 47*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_OPENCL 48*4882a593Smuzhiyun bool "OpenCL support" 49*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_LLVM 50*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 || \ 51*4882a593Smuzhiyun BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI 52*4882a593Smuzhiyun select BR2_PACKAGE_LLVM_RTTI 53*4882a593Smuzhiyun select BR2_PACKAGE_CLANG 54*4882a593Smuzhiyun select BR2_PACKAGE_LIBCLC 55*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBOPENCL 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun# inform the .mk file of gallium, dri or vulkan driver selection 58*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 59*4882a593Smuzhiyun bool 60*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRIVER 61*4882a593Smuzhiyun 62*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRI_DRIVER 63*4882a593Smuzhiyun bool 64*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRIVER 65*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GBM if \ 66*4882a593Smuzhiyun !BR2_PACKAGE_MESA3D_OPENGL_GLX && \ 67*4882a593Smuzhiyun !BR2_PACKAGE_MESA3D_OPENGL_EGL 68*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \ 69*4882a593Smuzhiyun (BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4 && \ 70*4882a593Smuzhiyun !BR2_RISCV_32) 71*4882a593Smuzhiyun 72*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_VULKAN_DRIVER 73*4882a593Smuzhiyun bool 74*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRIVER 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRIVER 77*4882a593Smuzhiyun bool 78*4882a593Smuzhiyun 79*4882a593Smuzhiyun# Gallium xa state tracker. 80*4882a593Smuzhiyun# Quote from mesa3d meson.build: "XA state tracker requires at least 81*4882a593Smuzhiyun# one of the following gallium drivers: nouveau, freedreno, i915, svga. 82*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_NEEDS_XA 83*4882a593Smuzhiyun bool 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun# OpenGL GLX and Gallium VDPAU both needs X11 86*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_NEEDS_X11 87*4882a593Smuzhiyun bool 88*4882a593Smuzhiyun depends on BR2_PACKAGE_XORG7 89*4882a593Smuzhiyun select BR2_PACKAGE_LIBXCB 90*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBX11 91*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXDAMAGE 92*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXEXT 93*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXFIXES 94*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXRANDR 95*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXXF86VM 96*4882a593Smuzhiyun select BR2_PACKAGE_XORGPROTO 97*4882a593Smuzhiyun 98*4882a593Smuzhiyuncomment "Gallium drivers" 99*4882a593Smuzhiyun 100*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV 101*4882a593Smuzhiyun bool "Gallium Etnaviv driver" 102*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 103*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_ETNAVIV 104*4882a593Smuzhiyun help 105*4882a593Smuzhiyun Mesa driver for Vivante GPUs. 106*4882a593Smuzhiyun 107*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO 108*4882a593Smuzhiyun bool "Gallium freedreno driver" 109*4882a593Smuzhiyun depends on BR2_arm || BR2_aarch64 || BR2_aarch64_be # libdrm-freedreno 110*4882a593Smuzhiyun # libdrm's freedreno option depends on LIBDRM_HAS_ATOMIC. Propagating 111*4882a593Smuzhiyun # that dependency here causes a circular dependency that Kconfig 112*4882a593Smuzhiyun # can't see is just spurious. However, that dependency is about 113*4882a593Smuzhiyun # the toolchain having sync4 primitives, which is always a given 114*4882a593Smuzhiyun # for arm/aarch64. 115*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 116*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_FREEDRENO 117*4882a593Smuzhiyun help 118*4882a593Smuzhiyun Mesa driver for Freedreno GPUs. 119*4882a593Smuzhiyun 120*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_I915 121*4882a593Smuzhiyun bool "Gallium i915 driver" 122*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 123*4882a593Smuzhiyun depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 124*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 125*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_INTEL 126*4882a593Smuzhiyun help 127*4882a593Smuzhiyun Support for i915-based Intel GPUs. 128*4882a593Smuzhiyun 129*4882a593Smuzhiyuncomment "Gallium i915: Only one i915 provider can be built" 130*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 131*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 132*4882a593Smuzhiyun 133*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_IRIS 134*4882a593Smuzhiyun bool "Gallium iris driver" 135*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 136*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 137*4882a593Smuzhiyun help 138*4882a593Smuzhiyun Mesa driver for iris-based Intel GPUs. 139*4882a593Smuzhiyun 140*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA 141*4882a593Smuzhiyun bool "Gallium lima driver" 142*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 143*4882a593Smuzhiyun help 144*4882a593Smuzhiyun Mesa driver for ARM Mali Utgard GPUs. 145*4882a593Smuzhiyun 146*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU 147*4882a593Smuzhiyun bool "Gallium nouveau driver" 148*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 149*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_NOUVEAU 150*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_XA 151*4882a593Smuzhiyun select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM 152*4882a593Smuzhiyun help 153*4882a593Smuzhiyun Supports all Nvidia GPUs. 154*4882a593Smuzhiyun 155*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST 156*4882a593Smuzhiyun bool "Gallium panfrost driver" 157*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 158*4882a593Smuzhiyun help 159*4882a593Smuzhiyun Mesa driver for ARM Mali Midgard and Bifrost GPUs. 160*4882a593Smuzhiyun 161*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 162*4882a593Smuzhiyun bool "Gallium Radeon R300 driver" 163*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 164*4882a593Smuzhiyun # lbdrm's radeon option depends on LIBDRM_HAS_ATOMIC. Propagating 165*4882a593Smuzhiyun # that dependency here causes a circular dependency that Kconfig 166*4882a593Smuzhiyun # can't see is just spurious. However, that dependency is about 167*4882a593Smuzhiyun # the toolchain having sync4 primitives, which is always a given 168*4882a593Smuzhiyun # for x86. 169*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 170*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_RADEON 171*4882a593Smuzhiyun help 172*4882a593Smuzhiyun Driver for ATI/AMD Radeon R300/R400/R500 GPUs. 173*4882a593Smuzhiyun 174*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 175*4882a593Smuzhiyun bool "Gallium Radeon R600 driver" 176*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 177*4882a593Smuzhiyun depends on !BR2_PACKAGE_MESA3D_LLVM || \ 178*4882a593Smuzhiyun (BR2_PACKAGE_MESA3D_LLVM && (BR2_TOOLCHAIN_USES_UCLIBC || \ 179*4882a593Smuzhiyun BR2_TOOLCHAIN_USES_GLIBC)) # elfutils 180*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 181*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_RADEON 182*4882a593Smuzhiyun select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM 183*4882a593Smuzhiyun select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM 184*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM 185*4882a593Smuzhiyun help 186*4882a593Smuzhiyun Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs. 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun# R600 needs libelf when Mesa3D is built with LLVM support 189*4882a593Smuzhiyun# musl is not currently compatible with elfutils 190*4882a593Smuzhiyuncomment "R600 driver needs a uClibc or glibc toolchain when llvm is enabled" 191*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_LLVM 192*4882a593Smuzhiyun depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) 193*4882a593Smuzhiyun 194*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI 195*4882a593Smuzhiyun bool "Gallium Radeon SI driver" 196*4882a593Smuzhiyun depends on BR2_USE_MMU # libdrm 197*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 198*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_LLVM 199*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils 200*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 201*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_AMDGPU 202*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_RADEON 203*4882a593Smuzhiyun select BR2_PACKAGE_LLVM_AMDGPU 204*4882a593Smuzhiyun select BR2_PACKAGE_ELFUTILS 205*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS 206*4882a593Smuzhiyun help 207*4882a593Smuzhiyun Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs. 208*4882a593Smuzhiyun 209*4882a593Smuzhiyun# Radeon SI needs libelf 210*4882a593Smuzhiyun# musl is not currently compatible with elfutils 211*4882a593Smuzhiyuncomment "Radeon SI driver needs a uClibc or glibc toolchain" 212*4882a593Smuzhiyun depends on BR2_USE_MMU 213*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_LLVM 214*4882a593Smuzhiyun depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC) 215*4882a593Smuzhiyun 216*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA 217*4882a593Smuzhiyun bool "Gallium vmware svga driver" 218*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 219*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 220*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_VMWGFX 221*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_XA 222*4882a593Smuzhiyun help 223*4882a593Smuzhiyun This is a virtual GPU driver for VMWare virtual machines. 224*4882a593Smuzhiyun 225*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST 226*4882a593Smuzhiyun bool "Gallium swrast driver" 227*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 228*4882a593Smuzhiyun help 229*4882a593Smuzhiyun This is a software opengl implementation using the Gallium3D 230*4882a593Smuzhiyun infrastructure. 231*4882a593Smuzhiyun 232*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA 233*4882a593Smuzhiyun bool "Gallium tegra driver" 234*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 235*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU 236*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_NOUVEAU 237*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_XA 238*4882a593Smuzhiyun help 239*4882a593Smuzhiyun Adds support for Nvidia Tegra GPUs, requires nouveau. 240*4882a593Smuzhiyun 241*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_V3D 242*4882a593Smuzhiyun bool "Gallium v3d driver" 243*4882a593Smuzhiyun depends on (BR2_arm && BR2_ARM_CPU_HAS_NEON) || BR2_aarch64 244*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 245*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_VC4 246*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_OPENGL_EGL 247*4882a593Smuzhiyun help 248*4882a593Smuzhiyun Driver for Broadcom VC6 (rpi4) GPUs (needs vc4). 249*4882a593Smuzhiyun 250*4882a593Smuzhiyun It requires a kernel 4.18+ with DRM V3D support enabled: 251*4882a593Smuzhiyun 252*4882a593Smuzhiyun - CONFIG_DRM_V3D 253*4882a593Smuzhiyun - CONFIG_DRM_VC4 254*4882a593Smuzhiyun 255*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4 256*4882a593Smuzhiyun bool "Gallium vc4 driver" 257*4882a593Smuzhiyun depends on BR2_arm || BR2_aarch64 258*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 259*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_VC4 260*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_OPENGL_EGL 261*4882a593Smuzhiyun help 262*4882a593Smuzhiyun Driver for Broadcom VC4 (rpi2/3) GPUs. 263*4882a593Smuzhiyun It requires a vanilla 4.5+ kernel with drm vc4 (open) support. 264*4882a593Smuzhiyun 265*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL 266*4882a593Smuzhiyun bool "Gallium virgl driver" 267*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER 268*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_OPENGL_EGL 269*4882a593Smuzhiyun help 270*4882a593Smuzhiyun virgl is the 3D acceleration backend for the virtio-gpu 271*4882a593Smuzhiyun shipping with qemu. 272*4882a593Smuzhiyun 273*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_VDPAU 274*4882a593Smuzhiyun bool "Gallium VDPAU state tracker" 275*4882a593Smuzhiyun depends on BR2_PACKAGE_XORG7 276*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ 277*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 \ 278*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ 279*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI 280*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_X11 281*4882a593Smuzhiyun select BR2_PACKAGE_LIBVDPAU 282*4882a593Smuzhiyun help 283*4882a593Smuzhiyun VDPAU state tracker (needs r300, r600, radeonsi or nouveau 284*4882a593Smuzhiyun gallium drivers). 285*4882a593Smuzhiyun 286*4882a593Smuzhiyuncomment "Gallium VDPAU state tracker needs X.org and gallium drivers r300, r600, radeonsi or nouveau" 287*4882a593Smuzhiyun depends on !BR2_PACKAGE_XORG7 || \ 288*4882a593Smuzhiyun !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ 289*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R300 \ 290*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \ 291*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI) 292*4882a593Smuzhiyun 293*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_XVMC 294*4882a593Smuzhiyun bool "Gallium XvMC state tracker" 295*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 296*4882a593Smuzhiyun depends on BR2_PACKAGE_XORG7 297*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ 298*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 299*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_X11 300*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXV 301*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXVMC 302*4882a593Smuzhiyun help 303*4882a593Smuzhiyun XvMC state tracker (needs r600 or nouveau gallium drivers). 304*4882a593Smuzhiyun 305*4882a593Smuzhiyuncomment "Gallium XvMC state tracker needs X.org and gallium drivers r600 or nouveau" 306*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 307*4882a593Smuzhiyun depends on !BR2_PACKAGE_XORG7 || \ 308*4882a593Smuzhiyun !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \ 309*4882a593Smuzhiyun || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600) 310*4882a593Smuzhiyun 311*4882a593Smuzhiyuncomment "DRI drivers" 312*4882a593Smuzhiyun 313*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRI_DRIVER_I915 314*4882a593Smuzhiyun bool "DRI i915 driver" 315*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 316*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRI_DRIVER 317*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_INTEL 318*4882a593Smuzhiyun help 319*4882a593Smuzhiyun Support for i915-based Intel GPUs. 320*4882a593Smuzhiyun 321*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRI_DRIVER_I965 322*4882a593Smuzhiyun bool "DRI i965 driver" 323*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 324*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h 325*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRI_DRIVER 326*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_INTEL 327*4882a593Smuzhiyun help 328*4882a593Smuzhiyun Support for i965-based Intel GPUs. 329*4882a593Smuzhiyun 330*4882a593Smuzhiyuncomment "DRI i965 driver needs a toolchain w/ headers >= 3.17" 331*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 332*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 333*4882a593Smuzhiyun 334*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU 335*4882a593Smuzhiyun bool "DRI nouveau driver" 336*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRI_DRIVER 337*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_NOUVEAU 338*4882a593Smuzhiyun help 339*4882a593Smuzhiyun Support for Nvidia-based GPUs. 340*4882a593Smuzhiyun 341*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON 342*4882a593Smuzhiyun bool "DRI radeon r100 driver" 343*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 344*4882a593Smuzhiyun # libdrm's radeon option depends on LIBDRM_HAS_ATOMIC. Propagating 345*4882a593Smuzhiyun # that dependency here causes a circular dependency that Kconfig 346*4882a593Smuzhiyun # can't see is just spurious. However, that dependency is about 347*4882a593Smuzhiyun # the toolchain having sync4 primitives, which is always a given 348*4882a593Smuzhiyun # for i386 and x86_64. 349*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_DRI_DRIVER 350*4882a593Smuzhiyun select BR2_PACKAGE_LIBDRM_RADEON 351*4882a593Smuzhiyun help 352*4882a593Smuzhiyun Legacy Radeon driver for R100 series GPUs. 353*4882a593Smuzhiyun 354*4882a593Smuzhiyuncomment "Vulkan drivers" 355*4882a593Smuzhiyun 356*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL 357*4882a593Smuzhiyun bool "Vulkan Intel driver" 358*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 359*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence 360*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h 361*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert 362*4882a593Smuzhiyun depends on BR2_PACKAGE_XORG7 # xorgproto 363*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_VULKAN_DRIVER 364*4882a593Smuzhiyun select BR2_PACKAGE_XORGPROTO 365*4882a593Smuzhiyun select BR2_PACKAGE_XLIB_LIBXSHMFENCE 366*4882a593Smuzhiyun help 367*4882a593Smuzhiyun Vulkan driver for Intel hardware from Ivy Bridge onward. 368*4882a593Smuzhiyun 369*4882a593Smuzhiyuncomment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.17" 370*4882a593Smuzhiyun depends on BR2_i386 || BR2_x86_64 371*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_SYNC_4 372*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \ 373*4882a593Smuzhiyun !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7 374*4882a593Smuzhiyun 375*4882a593Smuzhiyuncomment "Off-screen Rendering" 376*4882a593Smuzhiyun 377*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_OSMESA_GALLIUM 378*4882a593Smuzhiyun bool "OSMesa (Gallium) library" 379*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST 380*4882a593Smuzhiyun help 381*4882a593Smuzhiyun The OSMesa API provides functions for off-screen rendering. 382*4882a593Smuzhiyun 383*4882a593Smuzhiyunif BR2_PACKAGE_MESA3D_DRIVER 384*4882a593Smuzhiyun 385*4882a593Smuzhiyuncomment "OpenGL API Support" 386*4882a593Smuzhiyun 387*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_GBM 388*4882a593Smuzhiyun bool "gbm" 389*4882a593Smuzhiyun depends on BR2_PACKAGE_MESA3D_DRI_DRIVER \ 390*4882a593Smuzhiyun || (BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL) 391*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBGBM 392*4882a593Smuzhiyun select BR2_PACKAGE_LIBGBM_HAS_FEATURE_FORMAT_MODIFIER_PLANE_COUNT 393*4882a593Smuzhiyun select BR2_PACKAGE_LIBGBM_HAS_FEATURE_DMA_BUF 394*4882a593Smuzhiyun help 395*4882a593Smuzhiyun Enable Generic Buffer Management (gbm) 396*4882a593Smuzhiyun 397*4882a593Smuzhiyuncomment "gbm support needs a dri driver or a gallium driver w/ EGL support." 398*4882a593Smuzhiyun depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER \ 399*4882a593Smuzhiyun && !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER && BR2_PACKAGE_MESA3D_OPENGL_EGL) 400*4882a593Smuzhiyun 401*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_OPENGL_GLX 402*4882a593Smuzhiyun bool "OpenGL GLX" 403*4882a593Smuzhiyun depends on BR2_PACKAGE_XORG7 404*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBGL 405*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_NEEDS_X11 406*4882a593Smuzhiyun help 407*4882a593Smuzhiyun Enable GLX graphic acceleration (OpenGL + X11). 408*4882a593Smuzhiyun 409*4882a593Smuzhiyuncomment "OpenGL GLX support needs X11" 410*4882a593Smuzhiyun depends on !BR2_PACKAGE_XORG7 411*4882a593Smuzhiyun 412*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_OPENGL_EGL 413*4882a593Smuzhiyun bool "OpenGL EGL" 414*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBEGL 415*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBEGL_WAYLAND 416*4882a593Smuzhiyun select BR2_PACKAGE_MESA3D_GBM 417*4882a593Smuzhiyun help 418*4882a593Smuzhiyun Use the Khronos EGL APIs. EGL is a window manager for OpenGL 419*4882a593Smuzhiyun applications similar to GLX, for X, and WGL, for Windows. 420*4882a593Smuzhiyun 421*4882a593Smuzhiyunconfig BR2_PACKAGE_MESA3D_OPENGL_ES 422*4882a593Smuzhiyun bool "OpenGL ES" 423*4882a593Smuzhiyun select BR2_PACKAGE_HAS_LIBGLES 424*4882a593Smuzhiyun help 425*4882a593Smuzhiyun Use the Khronos OpenGL ES APIs. This is commonly used on 426*4882a593Smuzhiyun embedded systems and represents a subset of the OpenGL API. 427*4882a593Smuzhiyun 428*4882a593Smuzhiyunendif # BR2_PACKAGE_MESA3D_DRIVER 429*4882a593Smuzhiyun 430*4882a593Smuzhiyunconfig BR2_PACKAGE_PROVIDES_LIBGBM 431*4882a593Smuzhiyun default "mesa3d" if BR2_PACKAGE_MESA3D_GBM 432*4882a593Smuzhiyun 433*4882a593Smuzhiyunconfig BR2_PACKAGE_PROVIDES_LIBGL 434*4882a593Smuzhiyun default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_GLX 435*4882a593Smuzhiyun 436*4882a593Smuzhiyunconfig BR2_PACKAGE_PROVIDES_LIBEGL 437*4882a593Smuzhiyun default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL 438*4882a593Smuzhiyun 439*4882a593Smuzhiyunconfig BR2_PACKAGE_PROVIDES_LIBGLES 440*4882a593Smuzhiyun default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES 441*4882a593Smuzhiyun 442*4882a593Smuzhiyunconfig BR2_PACKAGE_PROVIDES_LIBOPENCL 443*4882a593Smuzhiyun default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL 444*4882a593Smuzhiyun 445*4882a593Smuzhiyunendif # BR2_PACKAGE_MESA3D 446*4882a593Smuzhiyun 447*4882a593Smuzhiyuncomment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library" 448*4882a593Smuzhiyun depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \ 449*4882a593Smuzhiyun BR2_STATIC_LIBS 450*4882a593Smuzhiyun depends on BR2_TOOLCHAIN_HAS_SYNC_1 451*4882a593Smuzhiyun 452*4882a593Smuzhiyuncomment "mesa3d needs a toolchain w/ gcc >= 7" 453*4882a593Smuzhiyun depends on BR2_m68k 454*4882a593Smuzhiyun depends on !BR2_TOOLCHAIN_GCC_AT_LEAST_7 455