a8ee37245c
The VC4 GPU does not support full GL, it only provides EGL. Currently, it is possible to build the VC4 backend without EGL support, but that does not make sense in the slighest. So, forcibly enable EGL with VC4, like is done for etnaviv and virgl. Reported-by: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Bernd Kuhls <bernd.kuhls@t-online.de> Cc: Waldemar Brodkorb <wbx@openadk.org> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
241 lines
7.2 KiB
Plaintext
241 lines
7.2 KiB
Plaintext
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
|