lavapipe: disable VK_FORMAT_FEATURE_2_COLOR_ATTACHMENT_BLEND_BIT for int formats
[platform/upstream/mesa.git] / meson_options.txt
1 # Copyright © 2017-2019 Intel Corporation
2
3 # Permission is hereby granted, free of charge, to any person obtaining a copy
4 # of this software and associated documentation files (the "Software"), to deal
5 # in the Software without restriction, including without limitation the rights
6 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 # copies of the Software, and to permit persons to whom the Software is
8 # furnished to do so, subject to the following conditions:
9
10 # The above copyright notice and this permission notice shall be included in
11 # all copies or substantial portions of the Software.
12
13 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 # AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 # LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 # SOFTWARE.
20
21 option(
22   'platforms',
23   type : 'array',
24   value : ['auto'],
25   choices : [
26     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
27   ],
28   description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.'
29 )
30 option(
31   'egl-native-platform',
32   type : 'combo',
33   value : 'auto',
34   choices : [
35     'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
36     'surfaceless', 'drm',
37   ],
38   description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
39 )
40 option(
41   'android-stub',
42   type : 'boolean',
43   value : false,
44   description : 'Build against android-stub',
45 )
46
47 option(
48   'dri3',
49   type : 'combo',
50   value : 'auto',
51   choices : ['auto', 'true', 'false', 'disabled', 'enabled'],
52   description : 'enable support for dri3'
53 )
54 option(
55   'dri-drivers',
56   type : 'array',
57   description : 'DEPRECATED: List of dri drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
58 )
59 option(
60   'dri-drivers-path',
61   type : 'string',
62   value : '',
63   description : 'Location to install dri drivers. Default: $libdir/dri.'
64 )
65 option(
66   'dri-search-path',
67   type : 'string',
68   value : '',
69   description : 'Locations to search for dri drivers, passed as colon separated list. Default: dri-drivers-path.'
70 )
71 option(
72   'gallium-drivers',
73   type : 'array',
74   value : ['auto'],
75   choices : [
76     'auto', 'kmsro', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
77     'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
78     'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus'
79   ],
80   description : 'List of gallium drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
81 )
82 option(
83   'gallium-extra-hud',
84   type : 'boolean',
85   value : false,
86   description : 'Enable HUD block/NIC I/O HUD status support',
87 )
88 option(
89   'gallium-vdpau',
90   type : 'combo',
91   value : 'auto',
92   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
93   description : 'enable gallium vdpau frontend.',
94 )
95 option(
96   'vdpau-libs-path',
97   type : 'string',
98   value : '',
99   description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
100 )
101 option(
102   'gallium-omx',
103   type : 'combo',
104   value : 'auto',
105   choices : ['auto', 'disabled', 'bellagio', 'tizonia'],
106   description : 'enable gallium omx frontend.',
107 )
108 option(
109   'omx-libs-path',
110   type : 'string',
111   value : '',
112   description : 'path to put omx libraries. defaults to omx-bellagio pkg-config pluginsdir.'
113 )
114 option(
115   'gallium-va',
116   type : 'combo',
117   value : 'auto',
118   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
119   description : 'enable gallium va frontend.',
120 )
121 option(
122   'va-libs-path',
123   type : 'string',
124   value : '',
125   description : 'path to put va libraries. defaults to $libdir/dri.'
126 )
127 option(
128   'gallium-xa',
129   type : 'combo',
130   value : 'auto',
131   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
132   description : 'enable gallium xa frontend.',
133 )
134 option(
135   'gallium-nine',
136   type : 'boolean',
137   value : false,
138   description : 'build gallium "nine" Direct3D 9.x frontend.',
139 )
140 option(
141   'gallium-d3d10umd',
142   type : 'boolean',
143   value : false,
144   description : 'build gallium D3D10 WDDM UMD frontend.',
145 )
146 option(
147   'gallium-opencl',
148   type : 'combo',
149   choices : ['icd', 'standalone', 'disabled'],
150   value : 'disabled',
151   description : 'build gallium "clover" OpenCL frontend.',
152 )
153 option(
154   'gallium-rusticl',
155   type : 'boolean',
156   value : false,
157   description : 'build gallium "rusticl" OpenCL frontend.',
158 )
159 option(
160   'gallium-windows-dll-name',
161   type : 'string',
162   value : 'libgallium_wgl',
163   description : 'name of gallium megadriver DLL built for Windows. defaults to libgallium_wgl.dll to match DRI',
164 )
165 option(
166   'opencl-spirv',
167   type : 'boolean',
168   value : false,
169   description : 'build gallium "clover" OpenCL frontend with SPIR-V binary support.',
170 )
171 option(
172   'static-libclc',
173   type : 'array',
174   value : [],
175   choices : ['spirv', 'spirv64', 'all'],
176   description : 'Link libclc SPIR-V statically.',
177 )
178 option(
179   'd3d-drivers-path',
180   type : 'string',
181   value : '',
182   description : 'Location of D3D drivers. Default: $libdir/d3d',
183 )
184 option(
185   'vulkan-drivers',
186   type : 'array',
187   value : ['auto'],
188   choices : ['auto', 'amd', 'broadcom', 'freedreno', 'imagination-experimental', 'intel', 'intel_hasvk', 'microsoft-experimental', 'panfrost', 'swrast', 'virtio-experimental'],
189   description : 'List of vulkan drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built'
190 )
191 option(
192   'freedreno-kgsl',
193   type : 'boolean',
194   value : false,
195   description : 'use kgsl backend for freedreno vulkan driver',
196 )
197 option(
198   'freedreno-virtio',
199   type : 'boolean',
200   value : false,
201   description : 'use experimental virtio backend for freedreno (currently only gallium driver)',
202 )
203 option(
204   'imagination-srv',
205   type : 'boolean',
206   value : false,
207   description : 'Enable Services backend for Imagination Technologies vulkan driver',
208 )
209 option(
210   'shader-cache',
211   type : 'combo',
212   value : 'auto',
213   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
214   description : 'Build with on-disk shader cache support.',
215 )
216 option(
217   'shader-cache-default',
218   type : 'boolean',
219   value : true,
220   description : 'If set to false, the feature is only activated when environment variable MESA_SHADER_CACHE_DISABLE is set to false',
221 )
222 option(
223   'shader-cache-max-size',
224   type : 'string',
225   value : '',
226   description : '''Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment variable.
227    If set, determines the maximum size of the on-disk cache of compiled
228    shader programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
229    ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
230    gigabytes. By default, gigabytes will be assumed. And if unset, a
231    maximum size of 1GB will be used.'''
232 )
233 option(
234   'vulkan-icd-dir',
235   type : 'string',
236   value : '',
237   description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
238 )
239 option(
240   'moltenvk-dir',
241   type : 'string',
242   value : '',
243   description : 'Location of the MoltenVk SDK. Default: '
244 )
245 option(
246   'vulkan-layers',
247   type : 'array',
248   value : [],
249   choices : ['device-select', 'intel-nullhw', 'overlay'],
250   description : 'List of vulkan layers to build'
251 )
252 option(
253   'shared-glapi',
254   type : 'combo',
255   value : 'auto',
256   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
257   description : 'Whether to build a shared or static glapi. Defaults to false on Windows, true elsewhere'
258 )
259 option(
260   'gles1',
261   type : 'combo',
262   value : 'auto',
263   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
264   description : 'Build support for OpenGL ES 1.x'
265 )
266 option(
267   'gles2',
268   type : 'combo',
269   value : 'auto',
270   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
271   description : 'Build support for OpenGL ES 2.x and 3.x'
272 )
273 option(
274   'opengl',
275   type : 'boolean',
276   value : true,
277   description : 'Build support for OpenGL (all versions)'
278 )
279 option(
280   'gbm',
281   type : 'combo',
282   value : 'auto',
283   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
284   description : 'Build support for gbm platform'
285 )
286 option(
287   'gbm-backends-path',
288   type : 'string',
289   value : '',
290   description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
291 )
292 option(
293   'glx',
294   type : 'combo',
295   value : 'auto',
296   choices : ['auto', 'disabled', 'dri', 'xlib'],
297   description : 'Build support for GLX platform'
298 )
299 option(
300   'egl',
301   type : 'combo',
302   value : 'auto',
303   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
304   description : 'Build support for EGL platform'
305 )
306 option(
307   'glvnd',
308   type : 'boolean',
309   value : false,
310   description : 'Enable GLVND support.'
311 )
312 option(
313   'microsoft-clc',
314   type : 'feature',
315   value : 'auto',
316   description : 'Build support for the Microsoft CLC to DXIL compiler'
317 )
318 option(
319   'spirv-to-dxil',
320   type : 'boolean',
321   value : false,
322   description : 'Build support for the SPIR-V to DXIL library'
323 )
324 option(
325   'glvnd-vendor-name',
326   type : 'string',
327   value : 'mesa',
328   description : 'Vendor name string to use for glvnd libraries'
329 )
330 option(
331    'glx-read-only-text',
332    type : 'boolean',
333    value : false,
334    description : 'Disable writable .text section on x86 (decreases performance)'
335 )
336 option(
337   'llvm',
338   type : 'combo',
339   value : 'auto',
340   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
341   description : 'Build with LLVM support.'
342 )
343 option(
344   'shared-llvm',
345   type : 'combo',
346   value : 'auto',
347   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
348   description : 'Whether to link LLVM shared or statically.'
349 )
350 option(
351   'draw-use-llvm',
352   type : 'boolean',
353   value : true,
354   description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
355 )
356 option(
357   'valgrind',
358   type : 'combo',
359   value : 'auto',
360   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
361   description : 'Build with valgrind support'
362 )
363 option(
364   'libunwind',
365   type : 'combo',
366   value : 'auto',
367   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
368   description : 'Use libunwind for stack-traces'
369 )
370 option(
371   'lmsensors',
372   type : 'combo',
373   value : 'auto',
374   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
375   description : 'Enable HUD lmsensors support.'
376 )
377 option(
378   'build-tests',
379   type : 'boolean',
380   value : false,
381   description : 'Build unit tests. Currently this will build *all* unit tests except the ACO tests, which may build more than expected.'
382 )
383 option(
384   'enable-glcpp-tests',
385   type : 'boolean',
386   value : true,
387   description : 'Build glcpp unit tests. These are flaky on CI.'
388 )
389 option(
390   'build-aco-tests',
391   type : 'boolean',
392   value : false,
393   description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.'
394 )
395 option(
396   'install-intel-gpu-tests',
397   type : 'boolean',
398   value : false,
399   description : 'Build and install Intel unit tests which require the GPU.  This option is for developers and the Intel CI system only.'
400 )
401 option(
402   'selinux',
403   type : 'boolean',
404   value : false,
405   description : 'Build an SELinux-aware Mesa.  This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.'
406 )
407 option(
408   'execmem',
409   type : 'boolean',
410   value : true,
411   description : 'Enable execmem support.  Without execmem, glapi will fail to generate dynamic glapi stubs when entrypoints unknown to glapi but known to DRI drivers are requested in eglGetProcAddress or glXGetProcAddress.  This should be enabled unless the platform can guarantee glapi and DRI drivers are always built from the same source tree.'
412 )
413 option(
414   'osmesa',
415   type : 'boolean',
416   value : false,
417   description : 'Build OSmesa.'
418 )
419 option(
420   'osmesa-bits',
421   type : 'combo',
422   value : 'unspecified',
423   choices : ['unspecified', '8', '16', '32'],
424   description : 'DEPRECATED: Number of channel bits for OSMesa.'
425 )
426
427 option(
428   'tools',
429   type : 'array',
430   value : [],
431   choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'],
432   description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
433 )
434 option(
435   'power8',
436   type : 'combo',
437   value : 'auto',
438   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
439   description : 'Enable power8 optimizations.',
440 )
441 option(
442   'xlib-lease',
443   type : 'combo',
444   value : 'auto',
445   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
446   description : 'Enable VK_EXT_acquire_xlib_display.'
447 )
448 option(
449   'glx-direct',
450   type : 'boolean',
451   value : true,
452   description : 'Enable direct rendering in GLX and EGL for DRI',
453 )
454 option('egl-lib-suffix',
455   type : 'string',
456   value : '',
457   description : 'Suffix to append to EGL library name.  Default: none.'
458 )
459 option(
460   'gles-lib-suffix',
461   type : 'string',
462   value : '',
463   description : 'Suffix to append to GLES library names.  Default: none.'
464 )
465 option(
466   'platform-sdk-version',
467   type : 'integer',
468   min : 25,
469   max : 10000,
470   value : 25,
471   description : 'Android Platform SDK version. Default: Nougat version.'
472 )
473 option(
474   'zstd',
475   type : 'combo',
476   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
477   value : 'auto',
478   description : 'Use ZSTD instead of ZLIB in some cases.'
479 )
480 option(
481    'zlib',
482    type : 'feature',
483    value : 'enabled',
484    description : 'Use ZLIB to build driver. Default: enabled'
485 )
486 option(
487   'sse2',
488   type : 'boolean',
489   value : true,
490   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
491 )
492 option(
493   'perfetto',
494   type : 'boolean',
495   value : false,
496   description : 'Enable performance analysis with Perfetto. Default: false'
497 )
498 option(
499   'datasources',
500   type : 'array',
501   value : ['auto'],
502   choices : ['auto', 'panfrost', 'intel', 'freedreno'],
503   description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]'
504 )
505 option(
506   'custom-shader-replacement',
507   type : 'string',
508   value : '',
509   description : 'Enable a custom shader replacement mechanism. Note that enabling this option requires adding/generating a shader_replacement.h file that can be included (see shaderapi.c).'
510 )
511 option(
512   'vmware-mks-stats',
513   type : 'boolean',
514   value : false,
515   description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.'
516 )
517 option(
518   'vulkan-beta',
519   type : 'boolean',
520   value : false,
521   description : 'Build vulkan drivers with BETA extensions enabled.'
522 )
523 option(
524   'intel-clc',
525   type : 'feature',
526   value : 'disabled',
527   description : 'Build the intel-clc compiler (enables Vulkan Intel Ray Tracing on supported hardware).'
528 )
529 option(
530   'video-codecs',
531   type : 'array',
532   value : [],
533   choices: [
534     'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc'
535   ],
536   description : 'List of patent encumbered codecs to build support for. Distros might want to consult their legal department before enabling these. This is used for all video APIs (vaapi, vdpau, vulkan). Non-patent encumbered codecs will be enabled by default.'
537 )
538 option(
539   'gallium-d3d12-video',
540   type : 'feature',
541   value : 'auto',
542   description : 'build gallium d3d12 with video support.',
543 )
544 option(
545   'radv-build-id',
546   type : 'string',
547   value : '',
548   description : 'Override build id for shader cache keys (hex string). Can be extracted with readelf -x .note.gnu.build-id'
549 )
550 option(
551   'min-windows-version',
552   type : 'integer',
553   min : 7,
554   max : 11,
555   value : 8,
556   description : 'Minimum Windows version to support. Defaults to Windows 8.'
557 )