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