summaryrefslogtreecommitdiffstats
path: root/package/mesa3d/Config.in
blob: e5ff7d73dbd918ddc11b07cef0d382aae9654f97 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
menuconfig BR2_PACKAGE_MESA3D
	bool "mesa3d"
	depends on BR2_INSTALL_LIBSTDCPP
	depends on !BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_SYNC_1
	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
	select BR2_PACKAGE_LIBDRM
	select BR2_PACKAGE_EXPAT
	select BR2_PACKAGE_HAS_LIBGL if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XPROTO_DRI2PROTO if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XPROTO_GLPROTO if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XPROTO_XF86DRIPROTO if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBX11 if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBXEXT if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBXDAMAGE if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_XLIB_LIBXFIXES if BR2_PACKAGE_XORG7
	select BR2_PACKAGE_LIBXCB if BR2_PACKAGE_XORG7
	help
	  Mesa 3D, an open-source implementation of the OpenGL specification.

	  http://mesa3d.org

if BR2_PACKAGE_MESA3D

# inform the .mk file of gallium, dri or vulkan driver selection
config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	bool
	select BR2_PACKAGE_MESA3D_DRIVER

config BR2_PACKAGE_MESA3D_DRI_DRIVER
	bool
	select BR2_PACKAGE_MESA3D_DRIVER
	select BR2_PACKAGE_XLIB_LIBXSHMFENCE if BR2_PACKAGE_XPROTO_DRI3PROTO
	select BR2_PACKAGE_XPROTO_PRESENTPROTO if BR2_PACKAGE_XPROTO_DRI3PROTO

config BR2_PACKAGE_MESA3D_VULKAN_DRIVER
	bool
	select BR2_PACKAGE_MESA3D_DRIVER

config BR2_PACKAGE_MESA3D_DRIVER
	bool

config BR2_PACKAGE_MESA3D_NEEDS_XA
	bool

comment "Gallium drivers"

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_ETNAVIV
	bool "Gallium Etnaviv driver"
	depends on BR2_arm
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_LIBDRM_ETNAVIV
	select BR2_PACKAGE_MESA3D_OPENGL_EGL
	help
	  Mesa driver for Vivante GPUs.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_NOUVEAU
	bool "Gallium nouveau driver"
	depends on BR2_i386 || BR2_x86_64
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_LIBDRM_NOUVEAU
	select BR2_PACKAGE_MESA3D_NEEDS_XA
	help
	  Supports all Nvidia GPUs.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_R600
	bool "Gallium Radeon R600 driver"
	depends on BR2_i386 || BR2_x86_64
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_LIBDRM_RADEON
	select BR2_PACKAGE_MESA3D_NEEDS_XA
	help
	  Driver for ATI/AMD Radeon R600/R700/HD5000/HD6000 GPUs.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SVGA
	bool "Gallium vmware svga driver"
	depends on BR2_i386 || BR2_x86_64
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_LIBDRM_VMWGFX
	select BR2_PACKAGE_MESA3D_NEEDS_XA
	help
	  This is a virtual GPU driver for VMWare virtual machines.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_SWRAST
	bool "Gallium swrast driver"
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	help
	  This is a software opengl implementation using the Gallium3D
	  infrastructure.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VC4
	bool "Gallium vc4 driver"
	depends on BR2_arm
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_LIBDRM_VC4
	select BR2_PACKAGE_MESA3D_NEEDS_XA
	help
	  Driver for Broadcom VC4 (rpi2/3) GPUs.
	  It requires a vanilla 4.5+ kernel with drm vc4 (open) support.

config BR2_PACKAGE_MESA3D_GALLIUM_DRIVER_VIRGL
	bool "Gallium virgl driver"
	select BR2_PACKAGE_MESA3D_GALLIUM_DRIVER
	select BR2_PACKAGE_MESA3D_OPENGL_EGL
	help
	  virgl is the 3D acceleration backend for the virtio-gpu
	  shipping with qemu.

comment "DRI drivers"

config BR2_PACKAGE_MESA3D_DRI_DRIVER_SWRAST
	bool "DRI swrast driver"
	select BR2_PACKAGE_MESA3D_DRI_DRIVER
	help
	  This is a software opengl implementation using the DRI
	  infrastructure.

config BR2_PACKAGE_MESA3D_DRI_DRIVER_I915
	bool "DRI i915 driver"
	depends on BR2_i386 || BR2_x86_64
	select BR2_PACKAGE_MESA3D_DRI_DRIVER
	select BR2_PACKAGE_LIBDRM_INTEL
	help
	  Support for i915-based Intel GPUs.

config BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
	bool "DRI i965 driver"
	depends on BR2_i386 || BR2_x86_64
	select BR2_PACKAGE_MESA3D_DRI_DRIVER
	select BR2_PACKAGE_LIBDRM_INTEL
	help
	  Support for i965-based Intel GPUs.

config BR2_PACKAGE_MESA3D_DRI_DRIVER_NOUVEAU
	bool "DRI nouveau driver"
	select BR2_PACKAGE_MESA3D_DRI_DRIVER
	select BR2_PACKAGE_LIBDRM_NOUVEAU
	help
	  Support for Nvidia-based GPUs.

config BR2_PACKAGE_MESA3D_DRI_DRIVER_RADEON
	bool "DRI radeon driver"
	select BR2_PACKAGE_MESA3D_DRI_DRIVER
	select BR2_PACKAGE_LIBDRM_RADEON
	help
	  Legacy Radeon driver for R100 series GPUs.

comment "Vulkan drivers"

config BR2_PACKAGE_MESA3D_VULKAN_DRIVER_INTEL
	bool "Vulkan Intel driver"
	depends on BR2_i386 || BR2_x86_64
	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 # memfd.h
	depends on BR2_TOOLCHAIN_USES_GLIBC # ifunc, static_assert
	depends on BR2_PACKAGE_XORG7 # xproto_dri3proto
	select BR2_PACKAGE_MESA3D_DRI_DRIVER_I965
	select BR2_PACKAGE_MESA3D_VULKAN_DRIVER
	select BR2_PACKAGE_XPROTO_DRI3PROTO
	help
	  Vulkan driver for Intel hardware from Ivy Bridge onward.

comment "intel vulkan depends on X.org and needs a glibc toolchain w/ headers >= 3.18"
	depends on BR2_i386 || BR2_x86_64
	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_18 || \
		!BR2_TOOLCHAIN_USES_GLIBC || !BR2_PACKAGE_XORG7

comment "Off-screen Rendering"

config BR2_PACKAGE_MESA3D_OSMESA
	bool "OSMesa library"
	help
	  The OSMesa API provides functions for making off-screen renderings.

if BR2_PACKAGE_MESA3D_DRIVER

comment "Additional API Support"

config BR2_PACKAGE_MESA3D_OPENGL_EGL
	bool "OpenGL EGL"
	select BR2_PACKAGE_HAS_LIBEGL
	select BR2_PACKAGE_HAS_LIBEGL_WAYLAND
	help
	  Use the Khronos EGL APIs. EGL is a window manager for OpenGL applications
	  similar to GLX, for X, and WGL, for Windows.

config BR2_PACKAGE_MESA3D_OPENGL_ES
	bool "OpenGL ES"
	select BR2_PACKAGE_HAS_LIBGLES
	help
	  Use the Khronos OpenGL ES APIs. This is commonly used on embedded
	  systems and represents a subset of the OpenGL API.

config BR2_PACKAGE_MESA3D_OPENGL_TEXTURE_FLOAT
	bool "OpenGL texture float (patented format)"
	help
	  GL_ARB_texture_float is required to enable GLX core profile
	  (OpenGL3.x) otherwise the compat profile is used
	  (OpenGL2.1).

	  The source code to implement ARB_texture_float extension is
	  included and can be toggled on at compile time, for those
	  who purchased a license from SGI, or are in a country where
	  the patent does not apply, etc.

	  Please consult docs/patents.txt with your lawyer before
	  building Mesa.

	  Also, note that this option doesn't affect all drivers. Some
	  drivers have support for texture float enabled
	  unconditionally.

	  If unsure, say N.

	  http://www.google.com/patents/about?id=mIIOAAAAEBAJ&dq=6650327

endif # BR2_PACKAGE_MESA3D_DRIVER

config BR2_PACKAGE_PROVIDES_LIBGL
	default "mesa3d" if BR2_PACKAGE_XORG7

config BR2_PACKAGE_PROVIDES_LIBEGL
	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_EGL

config BR2_PACKAGE_PROVIDES_LIBGLES
	default "mesa3d" if BR2_PACKAGE_MESA3D_OPENGL_ES

endif # BR2_PACKAGE_MESA3D

comment "mesa3d needs a toolchain w/ C++, NPTL, dynamic library"
	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS_NPTL || \
		BR2_STATIC_LIBS
	depends on BR2_TOOLCHAIN_HAS_SYNC_1
OpenPOWER on IntegriCloud