1 menuconfig BR2_PACKAGE_MESA3D
3 depends on BR2_INSTALL_LIBSTDCPP
4 depends on !BR2_STATIC_LIBS
5 depends on BR2_TOOLCHAIN_HAS_SYNC_1
6 depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
7 select BR2_PACKAGE_LIBDRM
8 select BR2_PACKAGE_EXPAT
9 select BR2_PACKAGE_HAS_LIBGL if BR2_PACKAGE_XORG7
10 select BR2_PACKAGE_XPROTO_DRI2PROTO if BR2_PACKAGE_XORG7
11 select BR2_PACKAGE_XPROTO_GLPROTO if BR2_PACKAGE_XORG7
12 select BR2_PACKAGE_XPROTO_XF86DRIPROTO if BR2_PACKAGE_XORG7
13 select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
14 select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
15 select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
16 select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
17 select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
19 Mesa 3D, an open-source implementation of the OpenGL specification.
25 # inform the .mk file of gallium, dri or vulkan driver selection
26 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
27 select BR2_PACKAGE_MESA3D_DRIVER
30 config BR2_PACKAGE_MESA3D_DRI_DRIVER
31 select BR2_PACKAGE_MESA3D_DRIVER
32 select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XPROTO_DRI3PROTO
33 select BR2_PACKAGE_XPROTO_PRESENTPROTO if BR2_PACKAGE_XPROTO_DRI3PROTO
36 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
38 select BR2_PACKAGE_MESA3D_DRIVER
40 config BR2_PACKAGE_MESA3D_DRIVER
43 config BR2_PACKAGE_MESA3D_NEEDS_XA
46 comment "Gallium drivers"
48 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
49 bool "Gallium Etnaviv driver"
51 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
52 select BR2_PACKAGE_LIBDRM_ETNAVIV
53 select BR2_PACKAGE_MESA3D_OPENGL_EGL
55 Mesa driver for Vivante GPUs.
57 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
58 bool "Gallium nouveau driver"
59 depends on BR2_i386 || BR2_x86_64
60 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
61 select BR2_PACKAGE_LIBDRM_NOUVEAU
62 select BR2_PACKAGE_MESA3D_NEEDS_XA
64 Supports all Nvidia GPUs.
66 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
67 bool "Gallium Radeon R600 driver"
68 depends on BR2_i386 || BR2_x86_64
69 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
70 select BR2_PACKAGE_LIBDRM_RADEON
71 select BR2_PACKAGE_MESA3D_NEEDS_XA
73 Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
75 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
76 bool "Gallium vmware svga driver"
77 depends on BR2_i386 || BR2_x86_64
78 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
79 select BR2_PACKAGE_LIBDRM_VMWGFX
80 select BR2_PACKAGE_MESA3D_NEEDS_XA
82 This is a virtual GPU driver for VMWare virtual machines.
84 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
85 bool "Gallium swrast driver"
86 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
88 This is a software opengl implementation using the Gallium3D
91 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
92 bool "Gallium vc4 driver"
94 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
95 select BR2_PACKAGE_LIBDRM_VC4
96 select BR2_PACKAGE_MESA3D_NEEDS_XA
98 Driver for Broadcom VC4 (rpi2/3) GPUs.
99 It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
101 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
102 bool "Gallium virgl driver"
103 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
104 select BR2_PACKAGE_MESA3D_OPENGL_EGL
106 virgl is the 3D acceleration backend for the virtio-gpu
109 comment "DRI drivers"
111 config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
112 bool "DRI swrast driver"
113 select BR2_PACKAGE_MESA3D_DRI_DRIVER
115 This is a software opengl implementation using the DRI
118 config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
119 bool "DRI i915 driver"
120 depends on BR2_i386 || BR2_x86_64
121 select BR2_PACKAGE_MESA3D_DRI_DRIVER
122 select BR2_PACKAGE_LIBDRM_INTEL
124 Support for i915-based Intel GPUs.
126 config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
127 bool "DRI i965 driver"
128 depends on BR2_i386 || BR2_x86_64
129 select BR2_PACKAGE_MESA3D_DRI_DRIVER
130 select BR2_PACKAGE_LIBDRM_INTEL
132 Support for i965-based Intel GPUs.
134 config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU
135 bool "DRI nouveau driver"
136 select BR2_PACKAGE_MESA3D_DRI_DRIVER
137 select BR2_PACKAGE_LIBDRM_NOUVEAU
139 Support for Nvidia-based GPUs.
141 config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
142 bool "DRI radeon driver"
143 select BR2_PACKAGE_MESA3D_DRI_DRIVER
144 select BR2_PACKAGE_LIBDRM_RADEON
146 Legacy Radeon driver for R100 series GPUs.
148 comment "Vulkan drivers"
150 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
151 bool "Vulkan Intel driver"
152 depends on BR2_i386 || BR2_x86_64
153 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # memfd.h
154 depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
155 depends on BR2_PACKAGE_XORG7 # xproto_dri3proto
156 # We need a SHA1 implementation. If either openssl or
157 # libgcrypt are already part of the build, we'll use one of
158 # them, otherwise, use the small libsha1 library.
159 select BR2_PACKAGE_LIBSHA1 if (!BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_LIBGCRYPT)
160 select BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
161 select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
162 select BR2_PACKAGE_XPROTO_DRI3PROTO
164 Vulkan driver for Intel hardware from Ivy Bridge onward.
166 comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.18"
167 depends on BR2_i386 || BR2_x86_64
168 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 || \
169 !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
171 comment "Off-screen Rendering"
173 config BR2_PACKAGE_MESA3D_OSMESA
174 bool "OSMesa library"
176 The OSMesa API provides functions for making off-screen renderings.
178 if BR2_PACKAGE_MESA3D_DRIVER
180 comment "Additional API Support"
182 config BR2_PACKAGE_MESA3D_OPENGL_EGL
184 select BR2_PACKAGE_HAS_LIBEGL
185 select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
187 Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
188 similar to GLX, for X, and WGL, for Windows.
190 config BR2_PACKAGE_MESA3D_OPENGL_ES
192 select BR2_PACKAGE_HAS_LIBGLES
194 Use the Khronos OpenGL ES APIs. This is commonly used on embedded
195 systems and represents a subset of the OpenGL API.
197 endif # BR2_PACKAGE_MESA3D_DRIVER
199 config BR2_PACKAGE_PROVIDES_LIBGL
200 default "mesa3d" if BR2_PACKAGE_XORG7
202 config BR2_PACKAGE_PROVIDES_LIBEGL
203 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
205 config BR2_PACKAGE_PROVIDES_LIBGLES
206 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
208 endif # BR2_PACKAGE_MESA3D
210 comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
211 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
213 depends on BR2_TOOLCHAIN_HAS_SYNC_1