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_NOUVEAU
49 bool "Gallium nouveau driver"
50 depends on BR2_i386 || BR2_x86_64
51 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
52 select BR2_PACKAGE_LIBDRM_NOUVEAU
53 select BR2_PACKAGE_MESA3D_NEEDS_XA
55 Supports all Nvidia GPUs.
57 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
58 bool "Gallium Radeon R600 driver"
59 depends on BR2_i386 || BR2_x86_64
60 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
61 select BR2_PACKAGE_LIBDRM_RADEON
62 select BR2_PACKAGE_MESA3D_NEEDS_XA
64 Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
66 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
67 bool "Gallium vmware svga driver"
68 depends on BR2_i386 || BR2_x86_64
69 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
70 select BR2_PACKAGE_LIBDRM_VMWGFX
71 select BR2_PACKAGE_MESA3D_NEEDS_XA
73 This is a virtual GPU driver for VMWare virtual machines.
75 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
76 bool "Gallium swrast driver"
77 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
79 This is a software opengl implementation using the Gallium3D
82 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
83 bool "Gallium vc4 driver"
85 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
86 select BR2_PACKAGE_LIBDRM_VC4
87 select BR2_PACKAGE_MESA3D_NEEDS_XA
89 Driver for Broadcom VC4 (rpi2/3) GPUs.
90 It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
92 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
93 bool "Gallium virgl driver"
94 select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
95 select BR2_PACKAGE_MESA3D_OPENGL_EGL
97 virgl is the 3D acceleration backend for the virtio-gpu
100 comment "DRI drivers"
102 config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
103 bool "DRI swrast driver"
104 select BR2_PACKAGE_MESA3D_DRI_DRIVER
106 This is a software opengl implementation using the DRI
109 config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
110 bool "DRI i915 driver"
111 depends on BR2_i386 || BR2_x86_64
112 select BR2_PACKAGE_MESA3D_DRI_DRIVER
113 select BR2_PACKAGE_LIBDRM_INTEL
115 Support for i915-based Intel GPUs.
117 config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
118 bool "DRI i965 driver"
119 depends on BR2_i386 || BR2_x86_64
120 select BR2_PACKAGE_MESA3D_DRI_DRIVER
121 select BR2_PACKAGE_LIBDRM_INTEL
123 Support for i965-based Intel GPUs.
125 config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU
126 bool "DRI nouveau driver"
127 select BR2_PACKAGE_MESA3D_DRI_DRIVER
128 select BR2_PACKAGE_LIBDRM_NOUVEAU
130 Support for Nvidia-based GPUs.
132 config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
133 bool "DRI radeon driver"
134 select BR2_PACKAGE_MESA3D_DRI_DRIVER
135 select BR2_PACKAGE_LIBDRM_RADEON
137 Legacy Radeon driver for R100 series GPUs.
139 comment "Vulkan drivers"
141 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
142 bool "Vulkan Intel driver"
143 depends on BR2_i386 || BR2_x86_64
144 depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # memfd.h
145 depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
146 depends on BR2_PACKAGE_XORG7 # xproto_dri3proto
147 # We need a SHA1 implementation. If either openssl or
148 # libgcrypt are already part of the build, we'll use one of
149 # them, otherwise, use the small libsha1 library.
150 select BR2_PACKAGE_LIBSHA1 if (!BR2_PACKAGE_OPENSSL && !BR2_PACKAGE_LIBGCRYPT)
151 select BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
152 select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
153 select BR2_PACKAGE_XPROTO_DRI3PROTO
155 Vulkan driver for Intel hardware from Ivy Bridge onward.
157 comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.18"
158 depends on BR2_i386 || BR2_x86_64
159 depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 || \
160 !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
162 comment "Off-screen Rendering"
164 config BR2_PACKAGE_MESA3D_OSMESA
165 bool "OSMesa library"
167 The OSMesa API provides functions for making off-screen renderings.
169 if BR2_PACKAGE_MESA3D_DRIVER
171 comment "Additional API Support"
173 config BR2_PACKAGE_MESA3D_OPENGL_EGL
175 select BR2_PACKAGE_HAS_LIBEGL
176 select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
178 Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
179 similar to GLX, for X, and WGL, for Windows.
181 config BR2_PACKAGE_MESA3D_OPENGL_ES
183 select BR2_PACKAGE_HAS_LIBGLES
185 Use the Khronos OpenGL ES APIs. This is commonly used on embedded
186 systems and represents a subset of the OpenGL API.
188 endif # BR2_PACKAGE_MESA3D_DRIVER
190 config BR2_PACKAGE_PROVIDES_LIBGL
191 default "mesa3d" if BR2_PACKAGE_XORG7
193 config BR2_PACKAGE_PROVIDES_LIBEGL
194 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
196 config BR2_PACKAGE_PROVIDES_LIBGLES
197 default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
199 endif # BR2_PACKAGE_MESA3D
201 comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
202 depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
204 depends on BR2_TOOLCHAIN_HAS_SYNC_1