git: fix build with with no threads
[buildroot-gz.git] / package / mesa3d / Config.in
blob2b085ab592640b8fe7f7cc21fbcdc12a12a9fc61
1 menuconfig BR2_PACKAGE_MESA3D
2         bool "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
18         help
19           Mesa 3D, an open-source implementation of the OpenGL specification.
21           http://mesa3d.org
23 if BR2_PACKAGE_MESA3D
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
28         bool
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
34         bool
36 config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
37         bool
38         select BR2_PACKAGE_MESA3D_DRIVER
40 config BR2_PACKAGE_MESA3D_DRIVER
41         bool
43 config BR2_PACKAGE_MESA3D_NEEDS_XA
44         bool
46 comment "Gallium drivers"
48 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
49         bool "Gallium Etnaviv driver"
50         depends on BR2_arm
51         select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
52         select BR2_PACKAGE_LIBDRM_ETNAVIV
53         select BR2_PACKAGE_MESA3D_OPENGL_EGL
54         help
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
63         help
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
72         help
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
81         help
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
87         help
88           This is a software opengl implementation using the Gallium3D
89           infrastructure.
91 config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
92         bool "Gallium vc4 driver"
93         depends on BR2_arm
94         select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
95         select BR2_PACKAGE_LIBDRM_VC4
96         select BR2_PACKAGE_MESA3D_NEEDS_XA
97         help
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
105         help
106           virgl is the 3D acceleration backend for the virtio-gpu
107           shipping with qemu.
109 comment "DRI drivers"
111 config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
112         bool "DRI swrast driver"
113         select BR2_PACKAGE_MESA3D_DRI_DRIVER
114         help
115           This is a software opengl implementation using the DRI
116           infrastructure.
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
123         help
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
131         help
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
138         help
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
145         help
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
163         help
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"
175         help
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
183         bool "OpenGL EGL"
184         select BR2_PACKAGE_HAS_LIBEGL
185         select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
186         help
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
191         bool "OpenGL ES"
192         select BR2_PACKAGE_HAS_LIBGLES
193         help
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 || \
212                 BR2_STATIC_LIBS
213         depends on BR2_TOOLCHAIN_HAS_SYNC_1