brw: Drop unnecessary mlen/header_size on virtual GET_BUFFER_SIZE op
[mesa.git] / meson_options.txt
blob84e0f20dcfde7a7f45ab88b83ccf36a0cc1f265c
1 # Copyright © 2017-2019 Intel Corporation
2 # SPDX-License-Identifier: MIT
4 option(
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)',
10 option(
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.'
21 option(
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',
32 option(
33   'android-stub',
34   type : 'boolean',
35   value : false,
36   description : 'Build against android-stub',
39 option(
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'
48 option(
49   'android-libbacktrace',
50   type : 'feature',
51   description : 'Use Android\'s libbacktrace',
54 option(
55   'dri-drivers-path',
56   type : 'string',
57   value : '',
58   description : 'Location to install dri drivers. Default: $libdir/dri.'
61 option(
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'
69 option(
70   'expat',
71   type : 'feature',
72   value : 'auto',
73   description : 'Controls the use of expat. ' +
74                 'Cannot be disabled if xmlconfig is enabled.'
77 option(
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.'
92 option(
93   'gallium-extra-hud',
94   type : 'boolean',
95   value : false,
96   description : 'Enable HUD block/NIC I/O HUD status support',
99 option(
100   'gallium-vdpau',
101   type : 'feature',
102   deprecated: {'true': 'enabled', 'false': 'disabled'},
103   description : 'enable gallium vdpau frontend.',
106 option(
107   'vdpau-libs-path',
108   type : 'string',
109   value : '',
110   description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
113 option(
114   'gallium-va',
115   type : 'feature',
116   deprecated: {'true': 'enabled', 'false': 'disabled'},
117   description : 'enable gallium va frontend.',
120 option(
121   'va-libs-path',
122   type : 'string',
123   value : '',
124   description : 'path to put va libraries. defaults to $libdir/dri.'
127 option(
128   'gallium-xa',
129   type : 'feature',
130   deprecated: {'true': 'enabled', 'false': 'disabled'},
131   description : 'enable gallium xa frontend.',
134 option(
135   'gallium-nine',
136   type : 'boolean',
137   value : false,
138   description : 'build gallium "nine" Direct3D 9.x frontend.',
141 option(
142   'gallium-d3d10umd',
143   type : 'boolean',
144   value : false,
145   description : 'build gallium D3D10 WDDM UMD frontend.',
148 option(
149   'gallium-opencl',
150   type : 'combo',
151   choices : ['icd', 'standalone', 'disabled'],
152   value : 'disabled',
153   description : 'build gallium "clover" OpenCL frontend.',
156 option(
157   'gallium-rusticl',
158   type : 'boolean',
159   value : false,
160   description : 'build gallium "rusticl" OpenCL frontend.',
163 option(
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',
171 option(
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',
179 option(
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',
187 option(
188   'static-libclc',
189   type : 'array',
190   value : [],
191   choices : ['spirv', 'spirv64', 'all'],
192   description : 'Link libclc SPIR-V statically.',
195 option(
196   'd3d-drivers-path',
197   type : 'string',
198   value : '',
199   description : 'Location of D3D drivers. Default: $libdir/d3d',
202 option(
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'
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.
218 option(
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',
227 option(
228   'amdgpu-virtio',
229   type : 'boolean',
230   value : false,
231   description : 'use experimental virtio backend for radeonsi/radv',
233 option(
234   'imagination-srv',
235   type : 'boolean',
236   value : false,
237   description : 'Enable Services backend for Imagination Technologies ' +
238                 'vulkan driver',
241 option(
242   'shader-cache',
243   type : 'feature',
244   deprecated: {'true': 'enabled', 'false': 'disabled'},
245   description : 'Build with on-disk shader cache support.',
248 option(
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',
257 option(
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.'
271 option(
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'
279 option(
280   'moltenvk-dir',
281   type : 'string',
282   value : '',
283   description : 'Location of the MoltenVk SDK. Default: '
286 option(
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'
297 option(
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'
305 option(
306   'gles1',
307   type : 'feature',
308   deprecated: {'true': 'enabled', 'false': 'disabled'},
309   description : 'Build support for OpenGL ES 1.x'
312 option(
313   'gles2',
314   type : 'feature',
315   deprecated: {'true': 'enabled', 'false': 'disabled'},
316   description : 'Build support for OpenGL ES 2.x and 3.x'
319 option(
320   'opengl',
321   type : 'boolean',
322   value : true,
323   description : 'Build support for desktop OpenGL'
326 option(
327   'gbm',
328   type : 'feature',
329   deprecated: {'true': 'enabled', 'false': 'disabled'},
330   description : 'Build support for gbm platform'
333 option(
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.'
341 option(
342   'glx',
343   type : 'combo',
344   value : 'auto',
345   choices : ['auto', 'disabled', 'dri', 'xlib'],
346   description : 'Build support for GLX platform'
349 option(
350   'egl',
351   type : 'feature',
352   deprecated: {'true': 'enabled', 'false': 'disabled'},
353   description : 'Build support for EGL platform'
356 option(
357   'glvnd',
358   type : 'feature',
359   deprecated: {'true': 'enabled', 'false': 'disabled'},
360   description : 'Enable GLVND support.'
363 option(
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'
371 option(
372   'spirv-to-dxil',
373   type : 'boolean',
374   value : false,
375   description : 'Build support for the SPIR-V to DXIL library'
378 option(
379   'glvnd-vendor-name',
380   type : 'string',
381   value : 'mesa',
382   description : 'Vendor name string to use for glvnd libraries'
385 option(
386    'glx-read-only-text',
387    type : 'boolean',
388    value : false,
389    description : 'Disable writable .text section on x86 (decreases performance)'
392 option(
393   'llvm',
394   type : 'feature',
395   deprecated: {'true': 'enabled', 'false': 'disabled'},
396   description : 'Build with LLVM support.'
399 option(
400   'shared-llvm',
401   type : 'feature',
402   deprecated: {'true': 'enabled', 'false': 'disabled'},
403   description : 'Whether to link LLVM shared or statically.'
406 option(
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.'
414 option(
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.'
422 option (
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.'
432 option(
433   'valgrind',
434   type : 'feature',
435   deprecated: {'true': 'enabled', 'false': 'disabled'},
436   description : 'Build with valgrind support'
439 option(
440   'libunwind',
441   type : 'feature',
442   deprecated: {'true': 'enabled', 'false': 'disabled'},
443   description : 'Use libunwind for stack-traces'
446 option(
447   'lmsensors',
448   type : 'feature',
449   deprecated: {'true': 'enabled', 'false': 'disabled'},
450   description : 'Enable HUD lmsensors support.'
453 option(
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.'
461 option(
462   'enable-glcpp-tests',
463   type : 'boolean',
464   value : true,
465   description : 'Build glcpp unit tests. These are flaky on CI.'
468 option(
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.'
476 option(
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.'
484 option(
485   'html-docs',
486   type : 'feature',
487   value : 'disabled',
488   description : 'Build HTML documentation.'
491 option(
492   'html-docs-path',
493   type : 'string',
494   value : '',
495   description : 'Location to install HTML documentation. Default: $datadir/doc/mesa.'
498 option(
499   'selinux',
500   type : 'boolean',
501   deprecated : true,
502   description : 'Does nothing, left here for a while to avoid build breakages.',
505 option(
506   'execmem',
507   type : 'boolean',
508   deprecated : true,
509   description : 'Does nothing, left here for a while to avoid build breakages.',
512 option(
513   'osmesa',
514   type : 'boolean',
515   value : false,
516   description : 'Build OSmesa.'
519 option(
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`)',
529 option(
530   'power8',
531   type : 'feature',
532   deprecated: {'true': 'enabled', 'false': 'disabled'},
533   description : 'Enable power8 optimizations.',
536 option(
537   'xlib-lease',
538   type : 'feature',
539   deprecated: {'true': 'enabled', 'false': 'disabled'},
540   description : 'Enable VK_EXT_acquire_xlib_display.'
543 option(
544   'glx-direct',
545   type : 'boolean',
546   value : true,
547   description : 'Enable direct rendering in GLX and EGL for DRI',
550 option('egl-lib-suffix',
551   type : 'string',
552   value : '',
553   description : 'Suffix to append to EGL library name.  Default: none.'
556 option(
557   'gles-lib-suffix',
558   type : 'string',
559   value : '',
560   description : 'Suffix to append to GLES library names.  Default: none.'
563 option(
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.'
572 option(
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'
580 option(
581   'zstd',
582   type : 'feature',
583   deprecated: {'true': 'enabled', 'false': 'disabled'},
584   description : 'Use ZSTD instead of ZLIB in some cases.'
587 option(
588    'zlib',
589    type : 'feature',
590    deprecated: {'true': 'enabled', 'false': 'disabled'},
591    value : 'enabled',
592    description : 'Use ZLIB to build driver. Default: enabled'
595 option(
596   'sse2',
597   type : 'boolean',
598   value : true,
599   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
602 option(
603   'perfetto',
604   type : 'boolean',
605   value : false,
606   description : 'Enable performance analysis with Perfetto. Default: false'
609 option(
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`]'
619 option(
620   'teflon',
621   type : 'boolean',
622   value : false,
623   description : 'Enable TensorFlow Lite delegate. Default: false'
626 option(
627   'gpuvis',
628   type : 'boolean',
629   value : false,
630   description : 'Enable tracing markers for gpuvis. Default: false'
633 option(
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).'
643 option(
644   'vmware-mks-stats',
645   type : 'boolean',
646   value : false,
647   description : 'Build gallium VMware/svga driver with mksGuestStats ' +
648                 'instrumentation.'
651 option(
652   'vulkan-beta',
653   type : 'boolean',
654   value : false,
655   description : 'Build vulkan drivers with BETA extensions enabled.'
658 option(
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.'
669 option(
670   'intel-bvh-grl',
671   type : 'boolean',
672   value : false,
673   description : 'Build the BVH structure using GRL.'
676 option(
677   'install-intel-clc',
678   type : 'boolean',
679   value : false,
680   description : 'Install the intel-clc compiler (if needed for cross builds).'
683 option(
684   'intel-rt',
685   type : 'feature',
686   deprecated: {'true': 'enabled', 'false': 'disabled'},
687   description : 'Build Ray Tracing on supported hardware.'
690 option(
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.'
699 option(
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.'
713 option(
714   'gallium-d3d12-video',
715   type : 'feature',
716   value : 'auto',
717   deprecated: {'true': 'enabled', 'false': 'disabled'},
718   description : 'build gallium d3d12 with video support.',
721 option(
722   'gallium-d3d12-graphics',
723   type : 'feature',
724   value : 'auto',
725   description : 'build gallium d3d12 with graphics pipeline support.',
728 option(
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'
736 option(
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.'
745 option(
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.'
755 option(
756   'legacy-x11',
757   type : 'array',
758   value : ['none'],
759   description : 'Build legacy X11 support features.',
760   choices : [
761     'none', 'dri2'
762   ],
765 option(
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.'
775 option(
776   'install-mesa-clc',
777   type : 'boolean',
778   value : false,
779   description : 'Install the mesa-clc compiler (if needed for cross builds).'
782 option(
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'
792 option(
793   'install-precomp-compiler',
794   type : 'boolean',
795   value : false,
796   description : 'Install the drivers internal shader compilers (if needed for cross builds).'