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