kumquat-buildroot/package/mesa3d/Config.in

241 lines
7.3 KiB
Plaintext
Raw Normal View History

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_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND
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
package/mesa3d: add support for Intel Vulkan driver 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>
2016-07-17 18:27:55 +02:00
# 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)
package/mesa3d: add support for Intel Vulkan driver 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>
2016-07-17 18:27:55 +02:00
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"
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 || BR2_aarch64
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.
package/mesa3d: add support for Intel Vulkan driver 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>
2016-07-17 18:27:55 +02:00
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.
package/mesa3d: allow to enable OpenGL texture float support While testing on a PC target with an HD6310 graphic card, the OpenGL support was in "compat profile" mode (i.e OpenGL 2.1). Extended renderer info (GLX_MESA_query_renderer): Vendor: X.Org (0x1002) Device: AMD PALM (DRM 2.49.0 / 4.10.4) (0x9802) Version: 17.0.2 Accelerated: yes Video memory: 256MB Unified memory: no Preferred profile: compat (0x2) Max core profile version: 0.0 Max compat profile version: 2.1 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 2.0 OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD PALM (DRM 2.49.0 / 4.10.4) OpenGL version string: 2.1 Mesa 17.0.2 OpenGL shading language version string: 1.30 OpenGL ES profile version string: OpenGL ES 2.0 Mesa 17.0.2 OpenGL ES profile shading language version string: OpenGL ES GLSL ES 1.0.16 It turn out that texture float support was missing... Extended renderer info (GLX_MESA_query_renderer): Vendor: X.Org (0x1002) Device: AMD PALM (DRM 2.49.0 / 4.10.4) (0x9802) Version: 17.0.2 Accelerated: yes Video memory: 256MB Unified memory: no Preferred profile: core (0x1) Max core profile version: 3.3 Max compat profile version: 3.0 Max GLES1 profile version: 1.1 Max GLES[23] profile version: 3.0 OpenGL vendor string: X.Org OpenGL renderer string: Gallium 0.4 on AMD PALM (DRM 2.49.0 / 4.10.4) OpenGL core profile version string: 3.3 (Core Profile) Mesa 17.0.2 OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile OpenGL version string: 3.0 Mesa 17.0.2 OpenGL shading language version string: 1.30 OpenGL context flags: (none) Add a new option to let the user disable this feature if it doesn't comply to the SGI license. Add docs/patents.txt to MESA3D_LICENSE_FILES Signed-off-by: Romain Naour <romain.naour@gmail.com> Cc: Bernd Kuhls <bernd.kuhls@t-online.de> [Thomas: - rewrap Config.in help text - add note that not all drivers are affected by the texture float option.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
2017-03-26 18:28:49 +02:00
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