xref: /OK3568_Linux_fs/buildroot/package/mesa3d/Config.in (revision 4882a59341e53eb6f0b4789bf948001014eff981)
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