• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2017-2019 Intel Corporation
2
3# Permission is hereby granted, free of charge, to any person obtaining a copy
4# of this software and associated documentation files (the "Software"), to deal
5# in the Software without restriction, including without limitation the rights
6# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7# copies of the Software, and to permit persons to whom the Software is
8# furnished to do so, subject to the following conditions:
9
10# The above copyright notice and this permission notice shall be included in
11# all copies or substantial portions of the Software.
12
13# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19# SOFTWARE.
20
21option(
22  'platforms',
23  type : 'array',
24  value : ['auto'],
25  choices : [
26    'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'ohos',
27  ],
28  description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
29)
30option(
31  'egl-native-platform',
32  type : 'combo',
33  value : 'auto',
34  choices : [
35    'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
36    'surfaceless', 'drm', 'ohos',
37  ],
38  description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
39)
40option(
41  'android-stub',
42  type : 'boolean',
43  value : false,
44  description : 'Build against android-stub',
45)
46
47option(
48  'dri3',
49  type : 'combo',
50  value : 'auto',
51  choices : ['auto', 'true', 'false', 'disabled', 'enabled'],
52  description : 'enable support for dri3'
53)
54option(
55  'dri-drivers',
56  type : 'array',
57  description : 'DEPRECATED: List of dri drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
58)
59option(
60  'dri-drivers-path',
61  type : 'string',
62  value : '',
63  description : 'Location to install dri drivers. Default: $libdir/dri.'
64)
65option(
66  'dri-search-path',
67  type : 'string',
68  value : '',
69  description : 'Locations to search for dri drivers, passed as colon separated list. Default: dri-drivers-path.'
70)
71option(
72  'gallium-drivers',
73  type : 'array',
74  value : ['auto'],
75  choices : [
76    'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
77    'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
78    'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus'
79  ],
80  description : 'List of gallium drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
81)
82option(
83  'gallium-extra-hud',
84  type : 'boolean',
85  value : false,
86  description : 'Enable HUD block/NIC I/O HUD status support',
87)
88option(
89  'gallium-vdpau',
90  type : 'combo',
91  value : 'auto',
92  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
93  description : 'enable gallium vdpau frontend.',
94)
95option(
96  'vdpau-libs-path',
97  type : 'string',
98  value : '',
99  description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
100)
101option(
102  'gallium-xvmc',
103  type : 'combo',
104  value : 'auto',
105  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
106  description : 'enable gallium xvmc frontend.',
107)
108option(
109  'xvmc-libs-path',
110  type : 'string',
111  value : '',
112  description : 'path to put xvmc libraries. defaults to $libdir.'
113)
114option(
115  'gallium-omx',
116  type : 'combo',
117  value : 'auto',
118  choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
119  description : 'enable gallium omx frontend.',
120)
121option(
122  'omx-libs-path',
123  type : 'string',
124  value : '',
125  description : 'path to put omx libraries. defaults to omx-bellagio pkg-config pluginsdir.'
126)
127option(
128  'gallium-va',
129  type : 'combo',
130  value : 'auto',
131  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
132  description : 'enable gallium va frontend.',
133)
134option(
135  'va-libs-path',
136  type : 'string',
137  value : '',
138  description : 'path to put va libraries. defaults to $libdir/dri.'
139)
140option(
141  'gallium-xa',
142  type : 'combo',
143  value : 'auto',
144  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
145  description : 'enable gallium xa frontend.',
146)
147option(
148  'gallium-nine',
149  type : 'boolean',
150  value : false,
151  description : 'build gallium "nine" Direct3D 9.x frontend.',
152)
153option(
154  'gallium-d3d10umd',
155  type : 'boolean',
156  value : false,
157  description : 'build gallium D3D10 WDDM UMD frontend.',
158)
159option(
160  'gallium-opencl',
161  type : 'combo',
162  choices : ['icd', 'standalone', 'disabled'],
163  value : 'disabled',
164  description : 'build gallium "clover" OpenCL frontend.',
165)
166option(
167  'opencl-spirv',
168  type : 'boolean',
169  value : false,
170  description : 'build gallium "clover" OpenCL frontend with SPIR-V binary support.',
171)
172option(
173  'opencl-native',
174  type : 'boolean',
175  value : true,
176  description : 'build gallium "clover" OpenCL frontend with native LLVM codegen support.',
177)
178option(
179  'static-libclc',
180  type : 'array',
181  value : [],
182  choices : ['spirv', 'spirv64', 'all'],
183  description : 'Link libclc SPIR-V statically.',
184)
185option(
186  'd3d-drivers-path',
187  type : 'string',
188  value : '',
189  description : 'Location of D3D drivers. Default: $libdir/d3d',
190)
191option(
192  'vulkan-drivers',
193  type : 'array',
194  value : ['auto'],
195  choices : ['auto', 'amd', 'broadcom', 'freedreno', 'imagination-experimental', 'intel', 'microsoft-experimental', 'panfrost', 'swrast', 'virtio-experimental'],
196  description : 'List of vulkan drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
197)
198option(
199  'freedreno-kgsl',
200  type : 'boolean',
201  value : false,
202  description : 'use kgsl backend for freedreno vulkan driver',
203)
204option(
205  'freedreno-virtio',
206  type : 'boolean',
207  value : false,
208  description : 'use experimental virtio backend for freedreno (currently only gallium driver)',
209)
210option(
211  'imagination-srv',
212  type : 'boolean',
213  value : false,
214  description : 'Enable Services backend for Imagination Technologies vulkan driver',
215)
216option(
217  'shader-cache',
218  type : 'combo',
219  value : 'auto',
220  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
221  description : 'Build with on-disk shader cache support.',
222)
223option(
224  'shader-cache-default',
225  type : 'boolean',
226  value : true,
227  description : 'If set to false, the feature is only activated when environment variable MESA_SHADER_CACHE_DISABLE is set to false',
228)
229option(
230  'shader-cache-max-size',
231  type : 'string',
232  value : '',
233  description : '''Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment variable.
234   If set, determines the maximum size of the on-disk cache of compiled
235   shader programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
236   ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
237   gigabytes. By default, gigabytes will be assumed. And if unset, a
238   maximum size of 1GB will be used.'''
239)
240option(
241  'vulkan-icd-dir',
242  type : 'string',
243  value : '',
244  description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
245)
246option(
247  'moltenvk-dir',
248  type : 'string',
249  value : '',
250  description : 'Location of the MoltenVk SDK. Default: '
251)
252option(
253  'vulkan-layers',
254  type : 'array',
255  value : [],
256  choices : ['device-select', 'intel-nullhw', 'overlay'],
257  description : 'List of vulkan layers to build'
258)
259option(
260  'shared-glapi',
261  type : 'combo',
262  value : 'auto',
263  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
264  description : 'Whether to build a shared or static glapi. Defaults to false on Windows, true elsewhere'
265)
266option(
267  'gles1',
268  type : 'combo',
269  value : 'auto',
270  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
271  description : 'Build support for OpenGL ES 1.x'
272)
273option(
274  'gles2',
275  type : 'combo',
276  value : 'auto',
277  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
278  description : 'Build support for OpenGL ES 2.x and 3.x'
279)
280option(
281  'opengl',
282  type : 'boolean',
283  value : true,
284  description : 'Build support for OpenGL (all versions)'
285)
286option(
287  'gbm',
288  type : 'combo',
289  value : 'auto',
290  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
291  description : 'Build support for gbm platform'
292)
293option(
294  'gbm-backends-path',
295  type : 'string',
296  value : '',
297  description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
298)
299option(
300  'glx',
301  type : 'combo',
302  value : 'auto',
303  choices : ['auto', 'disabled', 'dri', 'xlib'],
304  description : 'Build support for GLX platform'
305)
306option(
307  'egl',
308  type : 'combo',
309  value : 'auto',
310  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
311  description : 'Build support for EGL platform'
312)
313option(
314  'glvnd',
315  type : 'boolean',
316  value : false,
317  description : 'Enable GLVND support.'
318)
319option(
320  'microsoft-clc',
321  type : 'feature',
322  value : 'auto',
323  description : 'Build support for the Microsoft CLC to DXIL compiler'
324)
325option(
326  'spirv-to-dxil',
327  type : 'boolean',
328  value : false,
329  description : 'Build support for the SPIR-V to DXIL library'
330)
331option(
332  'glvnd-vendor-name',
333  type : 'string',
334  value : 'mesa',
335  description : 'Vendor name string to use for glvnd libraries'
336)
337option(
338   'glx-read-only-text',
339   type : 'boolean',
340   value : false,
341   description : 'Disable writable .text section on x86 (decreases performance)'
342)
343option(
344  'llvm',
345  type : 'combo',
346  value : 'auto',
347  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
348  description : 'Build with LLVM support.'
349)
350option(
351  'shared-llvm',
352  type : 'combo',
353  value : 'auto',
354  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
355  description : 'Whether to link LLVM shared or statically.'
356)
357option(
358  'draw-use-llvm',
359  type : 'boolean',
360  value : true,
361  description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
362)
363option(
364  'valgrind',
365  type : 'combo',
366  value : 'auto',
367  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
368  description : 'Build with valgrind support'
369)
370option(
371  'libunwind',
372  type : 'combo',
373  value : 'auto',
374  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
375  description : 'Use libunwind for stack-traces'
376)
377option(
378  'lmsensors',
379  type : 'combo',
380  value : 'auto',
381  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
382  description : 'Enable HUD lmsensors support.'
383)
384option(
385  'build-tests',
386  type : 'boolean',
387  value : false,
388  description : 'Build unit tests. Currently this will build *all* unit tests except the ACO tests, which may build more than expected.'
389)
390option(
391  'build-aco-tests',
392  type : 'boolean',
393  value : false,
394  description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.'
395)
396option(
397  'install-intel-gpu-tests',
398  type : 'boolean',
399  value : false,
400  description : 'Build and install Intel unit tests which require the GPU.  This option is for developers and the Intel CI system only.'
401)
402option(
403  'selinux',
404  type : 'boolean',
405  value : false,
406  description : 'Build an SELinux-aware Mesa.  This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.'
407)
408option(
409  'execmem',
410  type : 'boolean',
411  value : true,
412  description : 'Enable execmem support.  Without execmem, glapi will fail to generate dynamic glapi stubs when entrypoints unknown to glapi but known to DRI drivers are requested in eglGetProcAddress or glXGetProcAddress.  This should be enabled unless the platform can guarantee glapi and DRI drivers are always built from the same source tree.'
413)
414option(
415  'osmesa',
416  type : 'boolean',
417  value : false,
418  description : 'Build OSmesa.'
419)
420option(
421  'osmesa-bits',
422  type : 'combo',
423  value : 'unspecified',
424  choices : ['unspecified', '8', '16', '32'],
425  description : 'DEPRECATED: Number of channel bits for OSMesa.'
426)
427
428option(
429  'tools',
430  type : 'array',
431  value : [],
432  choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'],
433  description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
434)
435option(
436  'power8',
437  type : 'combo',
438  value : 'auto',
439  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
440  description : 'Enable power8 optimizations.',
441)
442option(
443  'xlib-lease',
444  type : 'combo',
445  value : 'auto',
446  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
447  description : 'Enable VK_EXT_acquire_xlib_display.'
448)
449option(
450  'glx-direct',
451  type : 'boolean',
452  value : true,
453  description : 'Enable direct rendering in GLX and EGL for DRI',
454)
455option('egl-lib-suffix',
456  type : 'string',
457  value : '',
458  description : 'Suffix to append to EGL library name.  Default: none.'
459)
460option(
461  'gles-lib-suffix',
462  type : 'string',
463  value : '',
464  description : 'Suffix to append to GLES library names.  Default: none.'
465)
466option(
467  'platform-sdk-version',
468  type : 'integer',
469  min : 25,
470  max : 10000,
471  value : 25,
472  description : 'Android Platform SDK version. Default: Nougat version.'
473)
474option(
475  'zstd',
476  type : 'combo',
477  choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
478  value : 'auto',
479  description : 'Use ZSTD instead of ZLIB in some cases.'
480)
481option(
482   'zlib',
483   type : 'feature',
484   value : 'enabled',
485   description : 'Use ZLIB to build driver. Default: enabled'
486)
487option(
488  'sse2',
489  type : 'boolean',
490  value : true,
491  description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
492)
493option(
494  'perfetto',
495  type : 'boolean',
496  value : false,
497  description : 'Enable performance analysis with Perfetto. Default: false'
498)
499option(
500  'datasources',
501  type : 'array',
502  value : ['auto'],
503  choices : ['auto', 'panfrost', 'intel', 'freedreno'],
504  description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]'
505)
506option(
507  'custom-shader-replacement',
508  type : 'string',
509  value : '',
510  description : 'Enable a custom shader replacement mechanism. Note that enabling this option requires adding/generating a shader_replacement.h file that can be included (see shaderapi.c).'
511)
512option(
513  'vmware-mks-stats',
514  type : 'boolean',
515  value : false,
516  description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.'
517)
518option(
519  'vulkan-beta',
520  type : 'boolean',
521  value : false,
522  description : 'Build vulkan drivers with BETA extensions enabled.'
523)
524option(
525  'intel-clc',
526  type : 'feature',
527  value : 'disabled',
528  description : 'Build the intel-clc compiler (required for ray queries).'
529)
530option(
531  'video-codecs',
532  type : 'array',
533  value : [],
534  choices: [
535    'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc'
536  ],
537  description : 'List of patent encumbered codecs to build support for. Distros might want to consult their legal department before enabling these. This is used for all video APIs (vaapi, vdpau, vulkan). Non-patent encumbered codecs will be enabled by default.'
538)
539option(
540  'gallium-d3d12-video',
541  type : 'feature',
542  value : 'auto',
543  description : 'build gallium d3d12 with video support.',
544)
545option(
546  'radv-build-id',
547  type : 'string',
548  value : '',
549  description : 'Override build id for shader cache keys (hex string). Can be extracted with readelf -x .note.gnu.build-id'
550)
551option(
552  'min-windows-version',
553  type : 'integer',
554  min : 7,
555  max : 11,
556  value : 8,
557  description : 'Minimum Windows version to support. Defaults to Windows 8.'
558)
559