Config.in 9.9 KB

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