Config.in 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390
  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_WAYLAND_PROTOCOLS if BR2_PACKAGE_WAYLAND
  10. select BR2_PACKAGE_ZLIB
  11. help
  12. Mesa 3D, an open-source implementation of the OpenGL
  13. specification.
  14. http://mesa3d.org
  15. if BR2_PACKAGE_MESA3D
  16. # Some Gallium driver needs libelf when built with LLVM support
  17. config BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
  18. bool
  19. config BR2_PACKAGE_MESA3D_LLVM
  20. bool "llvm support"
  21. depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
  22. depends on BR2_HOST_GCC_AT_LEAST_4_8
  23. depends on BR2_TOOLCHAIN_GCC_AT_LEAST_4_8
  24. depends on BR2_TOOLCHAIN_HAS_THREADS
  25. depends on BR2_INSTALL_LIBSTDCPP
  26. depends on !BR2_TOOLCHAIN_HAS_GCC_BUG_64735 # std::shared_future
  27. depends on !BR2_STATIC_LIBS
  28. depends on BR2_USE_WCHAR # std::wstring
  29. select BR2_PACKAGE_LLVM
  30. comment "llvm support needs a toolchain w/ wchar, threads, C++, gcc >= 4.8, host gcc >= 4.8, dynamic library"
  31. depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
  32. depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP || \
  33. !BR2_HOST_GCC_AT_LEAST_4_8 || !BR2_TOOLCHAIN_GCC_AT_LEAST_4_8 \
  34. || BR2_STATIC_LIBS || !BR2_USE_WCHAR
  35. comment "llvm support needs a toolchain not affected by GCC bug 64735"
  36. depends on BR2_PACKAGE_LLVM_ARCH_SUPPORTS
  37. depends on BR2_TOOLCHAIN_HAS_GCC_BUG_64735
  38. # clang and libclc dependencies are satisfied by
  39. # BR2_PACKAGE_MESA3D_LLVM
  40. config BR2_PACKAGE_MESA3D_OPENCL
  41. bool "OpenCL support"
  42. depends on BR2_PACKAGE_MESA3D_LLVM
  43. depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 || \
  44. BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
  45. select BR2_PACKAGE_LLVM_RTTI
  46. select BR2_PACKAGE_CLANG
  47. select BR2_PACKAGE_LIBCLC
  48. select BR2_PACKAGE_HAS_LIBOPENCL
  49. # inform the .mk file of gallium, dri or vulkan driver selection
  50. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  51. bool
  52. select BR2_PACKAGE_MESA3D_DRIVER
  53. config BR2_PACKAGE_MESA3D_DRI_DRIVER
  54. bool
  55. select BR2_PACKAGE_MESA3D_DRIVER
  56. select BR2_PACKAGE_XLIB_LIBXSHMFENCE if \
  57. (BR2_PACKAGE_XORG7 && BR2_TOOLCHAIN_HAS_SYNC_4)
  58. config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
  59. bool
  60. select BR2_PACKAGE_MESA3D_DRIVER
  61. config BR2_PACKAGE_MESA3D_DRIVER
  62. bool
  63. # Gallium xa state tracker.
  64. # Quote from mesa3d meson.build: "XA state tracker requires at least
  65. # one of the following gallium drivers: nouveau, freedreno, i915, svga.
  66. config BR2_PACKAGE_MESA3D_NEEDS_XA
  67. bool
  68. # Quote from mesa3d meson.build: "kmsro driver requires one or more
  69. # renderonly drivers (vc4, etnaviv, freedreno)".
  70. config BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  71. bool
  72. comment "Gallium drivers"
  73. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
  74. bool "Gallium Etnaviv driver"
  75. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  76. select BR2_PACKAGE_LIBDRM_ETNAVIV
  77. select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  78. select BR2_PACKAGE_MESA3D_OPENGL_EGL
  79. help
  80. Mesa driver for Vivante GPUs.
  81. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_FREEDRENO
  82. bool "Gallium freedreno driver"
  83. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  84. select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  85. help
  86. Mesa driver for Freedreno GPUs.
  87. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_KMSRO
  88. bool "Gallium KMSRO driver"
  89. depends on BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  90. help
  91. Support various sorts of KMS displays with the
  92. renderonly layer used to attach a GPU.
  93. comment "Gallium KMSRO needs one or more renderonly drivers"
  94. depends on !BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  95. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_LIMA
  96. bool "Gallium lima driver"
  97. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  98. select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  99. help
  100. Mesa driver for ARM Mali Utgard GPUs.
  101. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
  102. bool "Gallium nouveau driver"
  103. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  104. select BR2_PACKAGE_LIBDRM_NOUVEAU
  105. select BR2_PACKAGE_MESA3D_NEEDS_XA
  106. select BR2_PACKAGE_LLVM_RTTI if BR2_PACKAGE_MESA3D_LLVM
  107. help
  108. Supports all Nvidia GPUs.
  109. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_PANFROST
  110. bool "Gallium panfrost driver"
  111. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  112. select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  113. help
  114. Mesa driver for ARM Mali Midgard and Bifrost GPUs.
  115. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
  116. bool "Gallium Radeon R600 driver"
  117. depends on BR2_i386 || BR2_x86_64
  118. depends on !BR2_PACKAGE_MESA3D_LLVM || \
  119. (BR2_PACKAGE_MESA3D_LLVM && (BR2_TOOLCHAIN_USES_UCLIBC || \
  120. BR2_TOOLCHAIN_USES_GLIBC)) # elfutils
  121. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  122. select BR2_PACKAGE_LIBDRM_RADEON
  123. select BR2_PACKAGE_LLVM_AMDGPU if BR2_PACKAGE_MESA3D_LLVM
  124. select BR2_PACKAGE_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
  125. select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS if BR2_PACKAGE_MESA3D_LLVM
  126. help
  127. Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.
  128. # R600 needs libelf when Mesa3D is built with LLVM support
  129. # musl is not currently compatible with elfutils
  130. comment "R600 driver needs a uClibc or glibc toolchain when llvm is enabled"
  131. depends on BR2_PACKAGE_MESA3D_LLVM
  132. depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
  133. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
  134. bool "Gallium Radeon SI driver"
  135. depends on BR2_USE_MMU # libdrm
  136. depends on BR2_i386 || BR2_x86_64
  137. depends on BR2_PACKAGE_MESA3D_LLVM
  138. depends on BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC # elfutils
  139. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  140. select BR2_PACKAGE_LIBDRM_AMDGPU
  141. select BR2_PACKAGE_LIBDRM_RADEON
  142. select BR2_PACKAGE_LLVM_AMDGPU
  143. select BR2_PACKAGE_ELFUTILS
  144. select BR2_PACKAGE_MESA3D_NEEDS_ELFUTILS
  145. help
  146. Driver for ATI/AMD Radeon HD7000/HD8000/Rx200 GPUs.
  147. # Radeon SI needs libelf
  148. # musl is not currently compatible with elfutils
  149. comment "Radeon SI driver needs a uClibc or glibc toolchain"
  150. depends on BR2_USE_MMU
  151. depends on BR2_PACKAGE_MESA3D_LLVM
  152. depends on !(BR2_TOOLCHAIN_USES_UCLIBC || BR2_TOOLCHAIN_USES_GLIBC)
  153. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
  154. bool "Gallium vmware svga driver"
  155. depends on BR2_i386 || BR2_x86_64
  156. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  157. select BR2_PACKAGE_LIBDRM_VMWGFX
  158. select BR2_PACKAGE_MESA3D_NEEDS_XA
  159. help
  160. This is a virtual GPU driver for VMWare virtual machines.
  161. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
  162. bool "Gallium swrast driver"
  163. depends on !BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
  164. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  165. help
  166. This is a software opengl implementation using the Gallium3D
  167. infrastructure.
  168. comment "Gallium swrast: Only one swrast provider can be built"
  169. depends on BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
  170. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_TEGRA
  171. bool "Gallium tegra driver"
  172. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  173. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
  174. select BR2_PACKAGE_LIBDRM_NOUVEAU
  175. select BR2_PACKAGE_MESA3D_NEEDS_XA
  176. help
  177. Adds support for Nvidia Tegra GPUs, requires nouveau.
  178. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
  179. bool "Gallium vc4 driver"
  180. depends on BR2_arm || BR2_aarch64
  181. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  182. select BR2_PACKAGE_MESA3D_GALLIUM_KMSRO
  183. select BR2_PACKAGE_LIBDRM_VC4
  184. select BR2_PACKAGE_MESA3D_OPENGL_EGL
  185. help
  186. Driver for Broadcom VC4 (rpi2/3) GPUs.
  187. It requires a vanilla 4.5+ kernel with drm vc4 (open) support.
  188. config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
  189. bool "Gallium virgl driver"
  190. select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
  191. select BR2_PACKAGE_MESA3D_OPENGL_EGL
  192. help
  193. virgl is the 3D acceleration backend for the virtio-gpu
  194. shipping with qemu.
  195. config BR2_PACKAGE_MESA3D_VDPAU
  196. bool "Gallium VDPAU state tracker"
  197. depends on BR2_PACKAGE_XORG7
  198. depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \
  199. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \
  200. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI
  201. select BR2_PACKAGE_LIBVDPAU
  202. help
  203. VDPAU state tracker (needs r600, radeonsi or nouveau gallium
  204. drivers).
  205. comment "Gallium VDPAU state tracker needs X.org and gallium drivers r600, radeonsi or nouveau"
  206. depends on !BR2_PACKAGE_XORG7 || \
  207. !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \
  208. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600 \
  209. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_RADEONSI)
  210. config BR2_PACKAGE_MESA3D_XVMC
  211. bool "Gallium XvMC state tracker"
  212. depends on BR2_i386 || BR2_x86_64
  213. depends on BR2_PACKAGE_XORG7
  214. depends on BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \
  215. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
  216. select BR2_PACKAGE_XLIB_LIBXV
  217. select BR2_PACKAGE_XLIB_LIBXVMC
  218. help
  219. XvMC state tracker (needs r600 or nouveau gallium drivers).
  220. comment "Gallium XvMC state tracker needs X.org and gallium drivers r600 or nouveau"
  221. depends on BR2_i386 || BR2_x86_64
  222. depends on !BR2_PACKAGE_XORG7 || \
  223. !(BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU \
  224. || BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600)
  225. comment "DRI drivers"
  226. config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
  227. bool "DRI swrast driver"
  228. select BR2_PACKAGE_MESA3D_DRI_DRIVER
  229. help
  230. This is a software opengl implementation using the DRI
  231. infrastructure.
  232. config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
  233. bool "DRI i915 driver"
  234. depends on BR2_i386 || BR2_x86_64
  235. select BR2_PACKAGE_MESA3D_DRI_DRIVER
  236. select BR2_PACKAGE_LIBDRM_INTEL
  237. help
  238. Support for i915-based Intel GPUs.
  239. config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
  240. bool "DRI i965 driver"
  241. depends on BR2_i386 || BR2_x86_64
  242. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
  243. select BR2_PACKAGE_MESA3D_DRI_DRIVER
  244. select BR2_PACKAGE_LIBDRM_INTEL
  245. help
  246. Support for i965-based Intel GPUs.
  247. comment "DRI i965 driver needs a toolchain w/ headers >= 3.17"
  248. depends on BR2_i386 || BR2_x86_64
  249. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17
  250. config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU
  251. bool "DRI nouveau driver"
  252. select BR2_PACKAGE_MESA3D_DRI_DRIVER
  253. select BR2_PACKAGE_LIBDRM_NOUVEAU
  254. help
  255. Support for Nvidia-based GPUs.
  256. config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
  257. bool "DRI radeon driver"
  258. select BR2_PACKAGE_MESA3D_DRI_DRIVER
  259. select BR2_PACKAGE_LIBDRM_RADEON
  260. help
  261. Legacy Radeon driver for R100 series GPUs.
  262. comment "Vulkan drivers"
  263. config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
  264. bool "Vulkan Intel driver"
  265. depends on BR2_i386 || BR2_x86_64
  266. depends on BR2_TOOLCHAIN_HAS_SYNC_4 # libxshmfence
  267. depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 # memfd.h
  268. depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
  269. depends on BR2_PACKAGE_XORG7 # xorgproto
  270. select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
  271. select BR2_PACKAGE_XORGPROTO
  272. select BR2_PACKAGE_XLIB_LIBXSHMFENCE
  273. help
  274. Vulkan driver for Intel hardware from Ivy Bridge onward.
  275. comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.17"
  276. depends on BR2_i386 || BR2_x86_64
  277. depends on BR2_TOOLCHAIN_HAS_SYNC_4
  278. depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_17 || \
  279. !BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7
  280. comment "Off-screen Rendering"
  281. config BR2_PACKAGE_MESA3D_OSMESA_CLASSIC
  282. bool "OSMesa (classic) library"
  283. help
  284. The OSMesa classic API provides functions for
  285. making off-screen renderings.
  286. if BR2_PACKAGE_MESA3D_DRIVER
  287. comment "OpenGL API Support"
  288. config BR2_PACKAGE_MESA3D_OPENGL_GLX
  289. bool "OpenGL GLX"
  290. depends on BR2_PACKAGE_XORG7
  291. select BR2_PACKAGE_HAS_LIBGL
  292. select BR2_PACKAGE_LIBXCB
  293. select BR2_PACKAGE_XLIB_LIBX11
  294. select BR2_PACKAGE_XLIB_LIBXDAMAGE
  295. select BR2_PACKAGE_XLIB_LIBXEXT
  296. select BR2_PACKAGE_XLIB_LIBXFIXES
  297. select BR2_PACKAGE_XLIB_LIBXRANDR
  298. select BR2_PACKAGE_XLIB_LIBXXF86VM
  299. select BR2_PACKAGE_XORGPROTO
  300. help
  301. Enable GLX graphic acceleration (OpenGL + X11).
  302. comment "OpenGL GLX support needs X11"
  303. depends on !BR2_PACKAGE_XORG7
  304. config BR2_PACKAGE_MESA3D_OPENGL_EGL
  305. bool "OpenGL EGL"
  306. select BR2_PACKAGE_HAS_LIBEGL
  307. select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
  308. help
  309. Use the Khronos EGL APIs. EGL is a window manager for OpenGL
  310. applications similar to GLX, for X, and WGL, for Windows.
  311. config BR2_PACKAGE_MESA3D_OPENGL_ES
  312. bool "OpenGL ES"
  313. select BR2_PACKAGE_HAS_LIBGLES
  314. help
  315. Use the Khronos OpenGL ES APIs. This is commonly used on
  316. embedded systems and represents a subset of the OpenGL API.
  317. endif # BR2_PACKAGE_MESA3D_DRIVER
  318. config BR2_PACKAGE_PROVIDES_LIBGL
  319. default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_GLX
  320. config BR2_PACKAGE_PROVIDES_LIBEGL
  321. default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL
  322. config BR2_PACKAGE_PROVIDES_LIBGLES
  323. default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES
  324. config BR2_PACKAGE_PROVIDES_LIBOPENCL
  325. default "mesa3d" if BR2_PACKAGE_MESA3D_OPENCL
  326. endif # BR2_PACKAGE_MESA3D
  327. comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
  328. depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
  329. BR2_STATIC_LIBS
  330. depends on BR2_TOOLCHAIN_HAS_SYNC_1