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
28 select BR2_PACKAGE_MESA3D_DRIVER
30 config BR2_PACKAGE_MESA3D_DRI_DRIVER
32 select BR2_PACKAGE_MESA3D_DRIVER
33 select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XPROTO_DRI3PROTO
34 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 select BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
157 select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
158 select BR2_PACKAGE_XPROTO_DRI3PROTO
160 Vulkan driver for Intel hardware from Ivy Bridge onward.
162 comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.18"
163 depends on BR2_i386 || BR2_x86_64
164 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 || \
165 !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
167 comment "Off-screen Rendering"
169 config BR2_PACKAGE_MESA3D_OSMESA
170 bool "OSMesa library"
172 The OSMesa API provides functions for making off-screen renderings.
174 if BR2_PACKAGE_MESA3D_DRIVER
176 comment "Additional API Support"
178 config BR2_PACKAGE_MESA3D_OPENGL_EGL
180 select BR2_PACKAGE_HAS_LIBEGL
181 select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
183 Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
184 similar to GLX, for X, and WGL, for Windows.
186 config BR2_PACKAGE_MESA3D_OPENGL_ES
188 select BR2_PACKAGE_HAS_LIBGLES
190 Use the Khronos OpenGL ES APIs. This is commonly used on embedded
191 systems and represents a subset of the OpenGL API.
193 config BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT
194 bool "OpenGL texture float (patented format)"
196 GL_ARB_texture_float is required to enable GLX core profile
197 (OpenGL3.x) otherwise the compat profile is used
200 The source code to implement ARB_texture_float extension is
201 included and can be toggled on at compile time, for those
202 who purchased a license from SGI, or are in a country where
203 the patent does not apply, etc.
205 Please consult docs/patents.txt with your lawyer before
208 Also, note that this option doesn't affect all drivers. Some
209 drivers have support for texture float enabled
214 http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327
216 endif # BR2_PACKAGE_MESA3D_DRIVER
218 config BR2_PACKAGE_PROVIDES_LIBGL
219 default "mesa3d" if BR2_PACKAGE_XORG7
221 config BR2_PACKAGE_PROVIDES_LIBEGL
222 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
224 config BR2_PACKAGE_PROVIDES_LIBGLES
225 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
227 endif # BR2_PACKAGE_MESA3D
229 comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
230 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
232 depends on BR2_TOOLCHAIN_HAS_SYNC_1