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