• 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',
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',
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 : ['device-select', 'intel-nullhw', 'overlay', 'screenshot'],
291  description : 'List of vulkan layers to build'
292)
293
294option(
295  'shared-glapi',
296  type : 'feature',
297  deprecated: {'true': 'enabled', 'false': 'disabled'},
298  description : 'Whether to build a shared or static glapi. Defaults to ' +
299                'disabled on Windows, enabled elsewhere'
300)
301
302option(
303  'gles1',
304  type : 'feature',
305  deprecated: {'true': 'enabled', 'false': 'disabled'},
306  description : 'Build support for OpenGL ES 1.x'
307)
308
309option(
310  'gles2',
311  type : 'feature',
312  deprecated: {'true': 'enabled', 'false': 'disabled'},
313  description : 'Build support for OpenGL ES 2.x and 3.x'
314)
315
316option(
317  'opengl',
318  type : 'boolean',
319  value : true,
320  description : 'Build support for desktop OpenGL'
321)
322
323option(
324  'gbm',
325  type : 'feature',
326  deprecated: {'true': 'enabled', 'false': 'disabled'},
327  description : 'Build support for gbm platform'
328)
329
330option(
331  'gbm-backends-path',
332  type : 'string',
333  value : '',
334  description : 'Locations to search for gbm backends, passed as colon ' +
335                'separated list. Default: $libdir/gbm.'
336)
337
338option(
339  'glx',
340  type : 'combo',
341  value : 'auto',
342  choices : ['auto', 'disabled', 'dri', 'xlib'],
343  description : 'Build support for GLX platform'
344)
345
346option(
347  'egl',
348  type : 'feature',
349  deprecated: {'true': 'enabled', 'false': 'disabled'},
350  description : 'Build support for EGL platform'
351)
352
353option(
354  'glvnd',
355  type : 'feature',
356  deprecated: {'true': 'enabled', 'false': 'disabled'},
357  description : 'Enable GLVND support.'
358)
359
360option(
361  'microsoft-clc',
362  type : 'feature',
363  value : 'auto',
364  deprecated: {'true': 'enabled', 'false': 'disabled'},
365  description : 'Build support for the Microsoft CLC to DXIL compiler'
366)
367
368option(
369  'spirv-to-dxil',
370  type : 'boolean',
371  value : false,
372  description : 'Build support for the SPIR-V to DXIL library'
373)
374
375option(
376  'glvnd-vendor-name',
377  type : 'string',
378  value : 'mesa',
379  description : 'Vendor name string to use for glvnd libraries'
380)
381
382option(
383   'glx-read-only-text',
384   type : 'boolean',
385   value : false,
386   description : 'Disable writable .text section on x86 (decreases performance)'
387)
388
389option(
390  'llvm',
391  type : 'feature',
392  deprecated: {'true': 'enabled', 'false': 'disabled'},
393  description : 'Build with LLVM support.'
394)
395
396option(
397  'shared-llvm',
398  type : 'feature',
399  deprecated: {'true': 'enabled', 'false': 'disabled'},
400  description : 'Whether to link LLVM shared or statically.'
401)
402
403option(
404  'draw-use-llvm',
405  type : 'boolean',
406  value : true,
407  description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' +
408                'is included.'
409)
410
411option(
412  'amd-use-llvm',
413  type : 'boolean',
414  value : true,
415  description : 'Whether to use LLVM for the AMD drivers, if LLVM ' +
416                'is included.'
417)
418
419option (
420  'llvm-orcjit',
421  type : 'boolean',
422  value : false,
423  description: 'Build llvmpipe with LLVM ORCJIT support. Has no effect when ' +
424               'building for architectures without LLVM MCJIT support -- ' +
425               'ORCJIT is the only choice on such architectures and will ' +
426               'always be enabled.'
427)
428
429option(
430  'valgrind',
431  type : 'feature',
432  deprecated: {'true': 'enabled', 'false': 'disabled'},
433  description : 'Build with valgrind support'
434)
435
436option(
437  'libunwind',
438  type : 'feature',
439  deprecated: {'true': 'enabled', 'false': 'disabled'},
440  description : 'Use libunwind for stack-traces'
441)
442
443option(
444  'lmsensors',
445  type : 'feature',
446  deprecated: {'true': 'enabled', 'false': 'disabled'},
447  description : 'Enable HUD lmsensors support.'
448)
449
450option(
451  'build-tests',
452  type : 'boolean',
453  value : false,
454  description : 'Build unit tests. Currently this will build *all* unit ' +
455                'tests except the ACO tests, which may build more than expected.'
456)
457
458option(
459  'enable-glcpp-tests',
460  type : 'boolean',
461  value : true,
462  description : 'Build glcpp unit tests. These are flaky on CI.'
463)
464
465option(
466  'build-aco-tests',
467  type : 'boolean',
468  value : false,
469  description : 'Build ACO tests. These require RADV and glslang but not ' +
470                'an AMD GPU.'
471)
472
473option(
474  'install-intel-gpu-tests',
475  type : 'boolean',
476  value : false,
477  description : 'Build and install Intel unit tests which require the GPU. ' +
478                'This option is for developers and the Intel CI system only.'
479)
480
481option(
482  'html-docs',
483  type : 'feature',
484  value : 'disabled',
485  description : 'Build HTML documentation.'
486)
487
488option(
489  'html-docs-path',
490  type : 'string',
491  value : '',
492  description : 'Location to install HTML documentation. Default: $datadir/doc/mesa.'
493)
494
495option(
496  'selinux',
497  type : 'boolean',
498  deprecated : true,
499  description : 'Does nothing, left here for a while to avoid build breakages.',
500)
501
502option(
503  'execmem',
504  type : 'boolean',
505  deprecated : true,
506  description : 'Does nothing, left here for a while to avoid build breakages.',
507)
508
509option(
510  'osmesa',
511  type : 'boolean',
512  value : false,
513  description : 'Build OSmesa.'
514)
515
516option(
517  'tools',
518  type : 'array',
519  value : [],
520  choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui',
521             'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination',
522             'all', 'dlclose-skip'],
523  description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
524)
525
526option(
527  'power8',
528  type : 'feature',
529  deprecated: {'true': 'enabled', 'false': 'disabled'},
530  description : 'Enable power8 optimizations.',
531)
532
533option(
534  'xlib-lease',
535  type : 'feature',
536  deprecated: {'true': 'enabled', 'false': 'disabled'},
537  description : 'Enable VK_EXT_acquire_xlib_display.'
538)
539
540option(
541  'glx-direct',
542  type : 'boolean',
543  value : true,
544  description : 'Enable direct rendering in GLX and EGL for DRI',
545)
546
547option('egl-lib-suffix',
548  type : 'string',
549  value : '',
550  description : 'Suffix to append to EGL library name.  Default: none.'
551)
552
553option(
554  'gles-lib-suffix',
555  type : 'string',
556  value : '',
557  description : 'Suffix to append to GLES library names.  Default: none.'
558)
559
560option(
561  'platform-sdk-version',
562  type : 'integer',
563  min : 25,
564  max : 10000,
565  value : 25,
566  description : 'Android Platform SDK version. Default: Nougat version.'
567)
568
569option(
570   'allow-kcmp',
571   type : 'feature',
572  deprecated: {'true': 'enabled', 'false': 'disabled'},
573   description : 'Allow using KCMP_FILE to compare file descriptions. ' +
574                 'auto = allowed everywhere except on Android'
575)
576
577option(
578  'zstd',
579  type : 'feature',
580  deprecated: {'true': 'enabled', 'false': 'disabled'},
581  description : 'Use ZSTD instead of ZLIB in some cases.'
582)
583
584option(
585   'zlib',
586   type : 'feature',
587   deprecated: {'true': 'enabled', 'false': 'disabled'},
588   value : 'enabled',
589   description : 'Use ZLIB to build driver. Default: enabled'
590)
591
592option(
593  'sse2',
594  type : 'boolean',
595  value : true,
596  description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
597)
598
599option(
600  'perfetto',
601  type : 'boolean',
602  value : false,
603  description : 'Enable performance analysis with Perfetto. Default: false'
604)
605
606option(
607  'datasources',
608  type : 'array',
609  value : ['auto'],
610  choices : ['auto', 'panfrost', 'intel', 'freedreno'],
611  description : 'List of Perfetto datasources to build. If this is set to ' +
612                '`auto`, datasources that can not be build are skipped. ' +
613                'Default: [`auto`]'
614)
615
616option(
617  'teflon',
618  type : 'boolean',
619  value : false,
620  description : 'Enable TensorFlow Lite delegate. Default: false'
621)
622
623option(
624  'gpuvis',
625  type : 'boolean',
626  value : false,
627  description : 'Enable tracing markers for gpuvis. Default: false'
628)
629
630option(
631  'custom-shader-replacement',
632  type : 'string',
633  value : '',
634  description : 'Enable a custom shader replacement mechanism. Note that ' +
635                'enabling this option requires adding/generating a ' +
636                'shader_replacement.h file that can be included (see ' +
637                'shaderapi.c).'
638)
639
640option(
641  'vmware-mks-stats',
642  type : 'boolean',
643  value : false,
644  description : 'Build gallium VMware/svga driver with mksGuestStats ' +
645                'instrumentation.'
646)
647
648option(
649  'vulkan-beta',
650  type : 'boolean',
651  value : false,
652  description : 'Build vulkan drivers with BETA extensions enabled.'
653)
654
655option(
656  'intel-clc',
657  type : 'combo',
658  deprecated: {'true': 'enabled'},
659  value : 'auto',
660  choices : [
661    'enabled', 'system', 'auto'
662  ],
663  description : 'Build the intel-clc compiler or use a system version.'
664)
665
666option(
667  'intel-bvh-grl',
668  type : 'boolean',
669  value : false,
670  description : 'Build the BVH structure using GRL.'
671)
672
673option(
674  'install-intel-clc',
675  type : 'boolean',
676  value : false,
677  description : 'Install the intel-clc compiler (if needed for cross builds).'
678)
679
680option(
681  'intel-rt',
682  type : 'feature',
683  deprecated: {'true': 'enabled', 'false': 'disabled'},
684  description : 'Build Ray Tracing on supported hardware.'
685)
686
687option(
688  'video-codecs',
689  type : 'array',
690  value : ['all_free'],
691  choices: [
692    'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec'
693  ],
694  description : 'List of codecs to build support for. ' +
695                'Distros might want to consult their legal department before ' +
696                'enabling these. This is used for all video APIs (vaapi, ' +
697                'vdpau, vulkan). Non-patent encumbered codecs will be ' +
698                'enabled by default with the all_free default value.'
699)
700
701option(
702  'gallium-d3d12-video',
703  type : 'feature',
704  value : 'auto',
705  deprecated: {'true': 'enabled', 'false': 'disabled'},
706  description : 'build gallium d3d12 with video support.',
707)
708
709option(
710  'gallium-d3d12-graphics',
711  type : 'feature',
712  value : 'auto',
713  description : 'build gallium d3d12 with graphics pipeline support.',
714)
715
716option(
717  'radv-build-id',
718  type : 'string',
719  value : '',
720  description : 'Override build id for shader cache keys (hex string). ' +
721                'Can be extracted with readelf -x .note.gnu.build-id'
722)
723
724option(
725  'min-windows-version',
726  type : 'integer',
727  min : 7,
728  max : 11,
729  value : 8,
730  description : 'Minimum Windows version to support. Defaults to Windows 8.'
731)
732
733option(
734  'xmlconfig',
735  type : 'feature',
736  value : 'auto',
737  deprecated: {'true': 'enabled', 'false': 'disabled'},
738  description : 'Build custom xmlconfig (driconf) support. If disabled, ' +
739                'the default driconf file is hardcoded into Mesa. ' +
740                'Requires expat.'
741)
742
743option(
744  'legacy-x11',
745  type : 'array',
746  value : ['none'],
747  description : 'Build legacy X11 support features.',
748  choices : [
749    'none', 'dri2'
750  ],
751)
752
753option(
754  'mesa-clc',
755  type : 'combo',
756  value : 'auto',
757  choices : [
758    'enabled', 'system', 'auto'
759  ],
760  description : 'Build the mesa-clc compiler or use a system version.'
761)
762
763option(
764  'install-mesa-clc',
765  type : 'boolean',
766  value : false,
767  description : 'Install the mesa-clc compiler (if needed for cross builds).'
768)
769
770option(
771  'precomp-compiler',
772  type : 'combo',
773  value : 'auto',
774  choices : [
775    'enabled', 'system', 'auto'
776  ],
777  description : 'Build drivers internal shader compilers or use a system version'
778)
779
780option(
781  'install-precomp-compiler',
782  type : 'boolean',
783  value : false,
784  description : 'Install the drivers internal shader compilers (if needed for cross builds).'
785)
786