• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright © 2017-2019 Intel Corporation
2# SPDX-License-Identifier: MIT
3
4option(
5  'platforms',
6  type : 'array',
7  value : ['auto'],
8  choices : [
9    'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
10  ],
11  description : 'window systems to support. If this is set to `auto`, all ' +
12                'platforms applicable will be enabled.'
13)
14
15option(
16  'egl-native-platform',
17  type : 'combo',
18  value : 'auto',
19  choices : [
20    'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
21    'surfaceless', 'drm',
22  ],
23  description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
24)
25
26option(
27  'android-stub',
28  type : 'boolean',
29  value : false,
30  description : 'Build against android-stub',
31)
32
33option(
34  'android-strict',
35  type : 'boolean',
36  value : true,
37  description : 'Enable strict Android compliance. Disabling may cause CTS ' +
38                'failures or other problems, but allows drivers to expose ' +
39                'capabilities that are normally hidden. Default: true'
40)
41
42option(
43  'android-libbacktrace',
44  type : 'feature',
45  description : 'Use Android\'s libbacktrace',
46)
47
48option(
49  'dri3',
50  type : 'feature',
51  deprecated: {'true': 'enabled', 'false': 'disabled'},
52  description : 'enable support for dri3'
53)
54
55option(
56  'dri-drivers-path',
57  type : 'string',
58  value : '',
59  description : 'Location to install dri drivers. Default: $libdir/dri.'
60)
61
62option(
63  'dri-search-path',
64  type : 'string',
65  value : '',
66  description : 'Locations to search for dri drivers, passed as colon ' +
67                'separated list. Default: dri-drivers-path.'
68)
69
70option(
71  'expat',
72  type : 'feature',
73  value : 'auto',
74  description : 'Controls the use of expat. ' +
75                'Cannot be disabled if xmlconfig is enabled.'
76)
77
78option(
79  'gallium-drivers',
80  type : 'array',
81  value : ['auto'],
82  choices : [
83    'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
84    'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
85    'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus', 'all',
86  ],
87  description : 'List of gallium drivers to build. If this is set to auto ' +
88                'all drivers applicable to the target OS/architecture ' +
89                'will be built'
90)
91
92option(
93  'gallium-extra-hud',
94  type : 'boolean',
95  value : false,
96  description : 'Enable HUD block/NIC I/O HUD status support',
97)
98
99option(
100  'gallium-vdpau',
101  type : 'feature',
102  deprecated: {'true': 'enabled', 'false': 'disabled'},
103  description : 'enable gallium vdpau frontend.',
104)
105
106option(
107  'vdpau-libs-path',
108  type : 'string',
109  value : '',
110  description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
111)
112
113option(
114  'gallium-omx',
115  type : 'combo',
116  value : 'auto',
117  choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
118  description : 'enable gallium omx frontend.',
119)
120
121option(
122  'omx-libs-path',
123  type : 'string',
124  value : '',
125  description : 'path to put omx libraries. defaults to omx-bellagio ' +
126                'pkg-config pluginsdir.'
127)
128
129option(
130  'gallium-va',
131  type : 'feature',
132  deprecated: {'true': 'enabled', 'false': 'disabled'},
133  description : 'enable gallium va frontend.',
134)
135
136option(
137  'va-libs-path',
138  type : 'string',
139  value : '',
140  description : 'path to put va libraries. defaults to $libdir/dri.'
141)
142
143option(
144  'gallium-xa',
145  type : 'feature',
146  deprecated: {'true': 'enabled', 'false': 'disabled'},
147  description : 'enable gallium xa frontend.',
148)
149
150option(
151  'gallium-nine',
152  type : 'boolean',
153  value : false,
154  description : 'build gallium "nine" Direct3D 9.x frontend.',
155)
156
157option(
158  'gallium-d3d10umd',
159  type : 'boolean',
160  value : false,
161  description : 'build gallium D3D10 WDDM UMD frontend.',
162)
163
164option(
165  'gallium-opencl',
166  type : 'combo',
167  choices : ['icd', 'standalone', 'disabled'],
168  value : 'disabled',
169  description : 'build gallium "clover" OpenCL frontend.',
170)
171
172option(
173  'gallium-rusticl',
174  type : 'boolean',
175  value : false,
176  description : 'build gallium "rusticl" OpenCL frontend.',
177)
178
179option(
180  'gallium-wgl-dll-name',
181  type : 'string',
182  value : 'libgallium_wgl',
183  description : 'name of gallium wgl target DLL built for Windows. ' +
184                'defaults to libgallium_wgl.dll to match DRI',
185)
186
187option(
188  'gallium-d3d10-dll-name',
189  type : 'string',
190  value : 'libgallium_d3d10',
191  description : 'name of gallium d3d10 target DLL built for Windows. ' +
192                'defaults to libgallium_d3d10.dll to match DRI',
193)
194
195option(
196  'opencl-spirv',
197  type : 'boolean',
198  value : false,
199  description : 'build gallium "clover" OpenCL frontend with SPIR-V ' +
200                'binary support.',
201)
202
203option(
204  'static-libclc',
205  type : 'array',
206  value : [],
207  choices : ['spirv', 'spirv64', 'all'],
208  description : 'Link libclc SPIR-V statically.',
209)
210
211option(
212  'd3d-drivers-path',
213  type : 'string',
214  value : '',
215  description : 'Location of D3D drivers. Default: $libdir/d3d',
216)
217
218option(
219  'vulkan-drivers',
220  type : 'array',
221  value : ['auto'],
222  choices : ['auto', 'amd', 'broadcom', 'freedreno', 'intel', 'intel_hasvk',
223             'panfrost', 'swrast', 'virtio', 'imagination-experimental',
224             'microsoft-experimental', 'nouveau-experimental',
225             'gfxstream-experimental', 'all'],
226  description : 'List of vulkan drivers to build. If this is set to auto ' +
227                'all drivers applicable to the target OS/architecture ' +
228                'will be built'
229)
230
231# Note that currently turnip supports msm and kgsl, while the gallium driver
232# support msm and virtio.  This is a temporary situation with virtio support
233# for turnip and kgsl support for gallium planned/in-progress.
234option(
235  'freedreno-kmds',
236  type : 'array',
237  value : ['msm'],
238  choices : ['msm', 'kgsl', 'virtio', 'wsl'],
239  description : 'List of kernel-mode drivers to enable for freedreno ' +
240                'gallium and vulkan driver',
241)
242
243option(
244  'imagination-srv',
245  type : 'boolean',
246  value : false,
247  description : 'Enable Services backend for Imagination Technologies ' +
248                'vulkan driver',
249)
250
251option(
252  'shader-cache',
253  type : 'feature',
254  deprecated: {'true': 'enabled', 'false': 'disabled'},
255  description : 'Build with on-disk shader cache support.',
256)
257
258option(
259  'shader-cache-default',
260  type : 'boolean',
261  value : true,
262  description : 'If set to false, the feature is only activated when ' +
263                'environment variable MESA_SHADER_CACHE_DISABLE is set ' +
264                'to false',
265)
266
267option(
268  'shader-cache-max-size',
269  type : 'string',
270  value : '',
271  description : 'Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment ' +
272                'variable. If set, determines the maximum size of the ' +
273                'on-disk cache of compiled shader programs, can be overriden ' +
274                'by enviroment variable if needed. Should be set to a number ' +
275                'optionally followed by ``K``, ``M``, or ``G`` to specify ' +
276                'a size in kilobytes, megabytes, or gigabytes. By default, ' +
277                'gigabytes will be assumed. And if unset, a maximum size of ' +
278                '1GB will be used.'
279)
280
281option(
282  'vulkan-icd-dir',
283  type : 'string',
284  value : '',
285  description : 'Location relative to prefix to put vulkan icds on install. ' +
286                'Default: $datadir/vulkan/icd.d'
287)
288
289option(
290  'moltenvk-dir',
291  type : 'string',
292  value : '',
293  description : 'Location of the MoltenVk SDK. Default: '
294)
295
296option(
297  'vulkan-layers',
298  type : 'array',
299  value : [],
300  choices : ['device-select', 'intel-nullhw', 'overlay'],
301  description : 'List of vulkan layers to build'
302)
303
304option(
305  'shared-glapi',
306  type : 'feature',
307  deprecated: {'true': 'enabled', 'false': 'disabled'},
308  description : 'Whether to build a shared or static glapi. Defaults to ' +
309                'disabled on Windows, enabled elsewhere'
310)
311
312option(
313  'gles1',
314  type : 'feature',
315  deprecated: {'true': 'enabled', 'false': 'disabled'},
316  description : 'Build support for OpenGL ES 1.x'
317)
318
319option(
320  'gles2',
321  type : 'feature',
322  deprecated: {'true': 'enabled', 'false': 'disabled'},
323  description : 'Build support for OpenGL ES 2.x and 3.x'
324)
325
326option(
327  'opengl',
328  type : 'boolean',
329  value : true,
330  description : 'Build support for desktop OpenGL'
331)
332
333option(
334  'gbm',
335  type : 'feature',
336  deprecated: {'true': 'enabled', 'false': 'disabled'},
337  description : 'Build support for gbm platform'
338)
339
340option(
341  'gbm-backends-path',
342  type : 'string',
343  value : '',
344  description : 'Locations to search for gbm backends, passed as colon ' +
345                'separated list. Default: $libdir/gbm.'
346)
347
348option(
349  'glx',
350  type : 'combo',
351  value : 'auto',
352  choices : ['auto', 'disabled', 'dri', 'xlib'],
353  description : 'Build support for GLX platform'
354)
355
356option(
357  'egl',
358  type : 'feature',
359  deprecated: {'true': 'enabled', 'false': 'disabled'},
360  description : 'Build support for EGL platform'
361)
362
363option(
364  'glvnd',
365  type : 'boolean',
366  value : false,
367  description : 'Enable GLVND support.'
368)
369
370option(
371  'microsoft-clc',
372  type : 'feature',
373  value : 'auto',
374  deprecated: {'true': 'enabled', 'false': 'disabled'},
375  description : 'Build support for the Microsoft CLC to DXIL compiler'
376)
377
378option(
379  'spirv-to-dxil',
380  type : 'boolean',
381  value : false,
382  description : 'Build support for the SPIR-V to DXIL library'
383)
384
385option(
386  'glvnd-vendor-name',
387  type : 'string',
388  value : 'mesa',
389  description : 'Vendor name string to use for glvnd libraries'
390)
391
392option(
393   'glx-read-only-text',
394   type : 'boolean',
395   value : false,
396   description : 'Disable writable .text section on x86 (decreases performance)'
397)
398
399option(
400  'llvm',
401  type : 'feature',
402  deprecated: {'true': 'enabled', 'false': 'disabled'},
403  description : 'Build with LLVM support.'
404)
405
406option(
407  'shared-llvm',
408  type : 'feature',
409  deprecated: {'true': 'enabled', 'false': 'disabled'},
410  description : 'Whether to link LLVM shared or statically.'
411)
412
413option(
414  'draw-use-llvm',
415  type : 'boolean',
416  value : true,
417  description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' +
418                'is included.'
419)
420
421option(
422  'valgrind',
423  type : 'feature',
424  deprecated: {'true': 'enabled', 'false': 'disabled'},
425  description : 'Build with valgrind support'
426)
427
428option(
429  'libunwind',
430  type : 'feature',
431  deprecated: {'true': 'enabled', 'false': 'disabled'},
432  description : 'Use libunwind for stack-traces'
433)
434
435option(
436  'lmsensors',
437  type : 'feature',
438  deprecated: {'true': 'enabled', 'false': 'disabled'},
439  description : 'Enable HUD lmsensors support.'
440)
441
442option(
443  'build-tests',
444  type : 'boolean',
445  value : false,
446  description : 'Build unit tests. Currently this will build *all* unit ' +
447                'tests except the ACO tests, which may build more than expected.'
448)
449
450option(
451  'enable-glcpp-tests',
452  type : 'boolean',
453  value : true,
454  description : 'Build glcpp unit tests. These are flaky on CI.'
455)
456
457option(
458  'build-aco-tests',
459  type : 'boolean',
460  value : false,
461  description : 'Build ACO tests. These require RADV and glslang but not ' +
462                'an AMD GPU.'
463)
464
465option(
466  'install-intel-gpu-tests',
467  type : 'boolean',
468  value : false,
469  description : 'Build and install Intel unit tests which require the GPU. ' +
470                'This option is for developers and the Intel CI system only.'
471)
472
473option(
474  'selinux',
475  type : 'boolean',
476  value : false,
477  description : 'Build an SELinux-aware Mesa.  This currently disables ' +
478                'execmem support at runtime unless SELinux is configured ' +
479                'with allow_execmem.'
480)
481
482option(
483  'execmem',
484  type : 'boolean',
485  deprecated : true,
486  description : 'Does nothing, left here for a while to avoid build breakages.',
487)
488
489option(
490  'osmesa',
491  type : 'boolean',
492  value : false,
493  description : 'Build OSmesa.'
494)
495
496option(
497  'tools',
498  type : 'array',
499  value : [],
500  choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui',
501             'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination',
502             'all', 'dlclose-skip'],
503  description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
504)
505
506option(
507  'power8',
508  type : 'feature',
509  deprecated: {'true': 'enabled', 'false': 'disabled'},
510  description : 'Enable power8 optimizations.',
511)
512
513option(
514  'xlib-lease',
515  type : 'feature',
516  deprecated: {'true': 'enabled', 'false': 'disabled'},
517  description : 'Enable VK_EXT_acquire_xlib_display.'
518)
519
520option(
521  'glx-direct',
522  type : 'boolean',
523  value : true,
524  description : 'Enable direct rendering in GLX and EGL for DRI',
525)
526
527option('egl-lib-suffix',
528  type : 'string',
529  value : '',
530  description : 'Suffix to append to EGL library name.  Default: none.'
531)
532
533option(
534  'gles-lib-suffix',
535  type : 'string',
536  value : '',
537  description : 'Suffix to append to GLES library names.  Default: none.'
538)
539
540option(
541  'platform-sdk-version',
542  type : 'integer',
543  min : 25,
544  max : 10000,
545  value : 25,
546  description : 'Android Platform SDK version. Default: Nougat version.'
547)
548
549option(
550   'allow-kcmp',
551   type : 'feature',
552  deprecated: {'true': 'enabled', 'false': 'disabled'},
553   description : 'Allow using KCMP_FILE to compare file descriptions. ' +
554                 'auto = allowed everywhere except on Android'
555)
556
557option(
558  'zstd',
559  type : 'feature',
560  deprecated: {'true': 'enabled', 'false': 'disabled'},
561  description : 'Use ZSTD instead of ZLIB in some cases.'
562)
563
564option(
565   'zlib',
566   type : 'feature',
567   deprecated: {'true': 'enabled', 'false': 'disabled'},
568   value : 'enabled',
569   description : 'Use ZLIB to build driver. Default: enabled'
570)
571
572option(
573  'sse2',
574  type : 'boolean',
575  value : true,
576  description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
577)
578
579option(
580  'perfetto',
581  type : 'boolean',
582  value : false,
583  description : 'Enable performance analysis with Perfetto. Default: false'
584)
585
586option(
587  'datasources',
588  type : 'array',
589  value : ['auto'],
590  choices : ['auto', 'panfrost', 'intel', 'freedreno'],
591  description : 'List of Perfetto datasources to build. If this is set to ' +
592                '`auto`, datasources that can not be build are skipped. ' +
593                'Default: [`auto`]'
594)
595
596option(
597  'teflon',
598  type : 'boolean',
599  value : false,
600  description : 'Enable TensorFlow Lite delegate. Default: false'
601)
602
603option(
604  'gpuvis',
605  type : 'boolean',
606  value : false,
607  description : 'Enable tracing markers for gpuvis. Default: false'
608)
609
610option(
611  'custom-shader-replacement',
612  type : 'string',
613  value : '',
614  description : 'Enable a custom shader replacement mechanism. Note that ' +
615                'enabling this option requires adding/generating a ' +
616                'shader_replacement.h file that can be included (see ' +
617                'shaderapi.c).'
618)
619
620option(
621  'vmware-mks-stats',
622  type : 'boolean',
623  value : false,
624  description : 'Build gallium VMware/svga driver with mksGuestStats ' +
625                'instrumentation.'
626)
627
628option(
629  'vulkan-beta',
630  type : 'boolean',
631  value : false,
632  description : 'Build vulkan drivers with BETA extensions enabled.'
633)
634
635option(
636  'intel-clc',
637  type : 'combo',
638  deprecated: {'true': 'enabled'},
639  value : 'auto',
640  choices : [
641    'enabled', 'system', 'auto'
642  ],
643  description : 'Build the intel-clc compiler or use a system version.'
644)
645
646option(
647  'install-intel-clc',
648  type : 'boolean',
649  value : false,
650  description : 'Install the intel-clc compiler (if needed for cross builds).'
651)
652
653option(
654  'intel-rt',
655  type : 'feature',
656  deprecated: {'true': 'enabled', 'false': 'disabled'},
657  description : 'Build Ray Tracing on supported hardware.'
658)
659
660option(
661  'video-codecs',
662  type : 'array',
663  value : ['all_free'],
664  choices: [
665    'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec'
666  ],
667  description : 'List of codecs to build support for. ' +
668                'Distros might want to consult their legal department before ' +
669                'enabling these. This is used for all video APIs (vaapi, ' +
670                'vdpau, vulkan). Non-patent encumbered codecs will be ' +
671                'enabled by default with the all_free default value.'
672)
673
674option(
675  'gallium-d3d12-video',
676  type : 'feature',
677  value : 'auto',
678  deprecated: {'true': 'enabled', 'false': 'disabled'},
679  description : 'build gallium d3d12 with video support.',
680)
681
682option(
683  'radv-build-id',
684  type : 'string',
685  value : '',
686  description : 'Override build id for shader cache keys (hex string). ' +
687                'Can be extracted with readelf -x .note.gnu.build-id'
688)
689
690option(
691  'min-windows-version',
692  type : 'integer',
693  min : 7,
694  max : 11,
695  value : 8,
696  description : 'Minimum Windows version to support. Defaults to Windows 8.'
697)
698
699option(
700  'xmlconfig',
701  type : 'feature',
702  value : 'auto',
703  deprecated: {'true': 'enabled', 'false': 'disabled'},
704  description : 'Build custom xmlconfig (driconf) support. If disabled, ' +
705                'the default driconf file is hardcoded into Mesa. ' +
706                'Requires expat.'
707)
708
709option (
710  'intel-xe-kmd',
711  type : 'feature',
712  value : 'disabled',
713  description: 'Enable Intel Xe KMD support.'
714)
715option(
716  'gfxstream-backend',
717  type : 'boolean',
718  value : 'false',
719  description : 'Build gfxstream backend'
720)
721