| 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 |
| select BR2_PACKAGE_ZLIB |
| 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 |
| 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" |
| depends on BR2_arm |
| 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 |
| 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_CPU_HAS_NEON |
| 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 |