zink: simplify swapchain imageview handling
[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   'vulkan-rt-drivers',
193   type : 'array',
194   value : ['auto'],
195   choices : ['auto', 'intel'],
196   description : 'List of vulkan drivers to enable ray-tracing support on. If this is set to auto all drivers applicable to the target OS/architecture will enabled ray-tracing support.'
197 )
198 option(
199   'freedreno-kgsl',
200   type : 'boolean',
201   value : false,
202   description : 'use kgsl backend for freedreno vulkan driver',
203 )
204 option(
205   'freedreno-virtio',
206   type : 'boolean',
207   value : false,
208   description : 'use experimental virtio backend for freedreno (currently only gallium driver)',
209 )
210 option(
211   'imagination-srv',
212   type : 'boolean',
213   value : false,
214   description : 'Enable Services backend for Imagination Technologies vulkan driver',
215 )
216 option(
217   'shader-cache',
218   type : 'combo',
219   value : 'auto',
220   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
221   description : 'Build with on-disk shader cache support.',
222 )
223 option(
224   'shader-cache-default',
225   type : 'boolean',
226   value : true,
227   description : 'If set to false, the feature is only activated when environment variable MESA_SHADER_CACHE_DISABLE is set to false',
228 )
229 option(
230   'shader-cache-max-size',
231   type : 'string',
232   value : '',
233   description : '''Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment variable.
234    If set, determines the maximum size of the on-disk cache of compiled
235    shader programs, can be overriden by enviroment variable if needed. Should be set to a number optionally followed by
236    ``K``, ``M``, or ``G`` to specify a size in kilobytes, megabytes, or
237    gigabytes. By default, gigabytes will be assumed. And if unset, a
238    maximum size of 1GB will be used.'''
239 )
240 option(
241   'vulkan-icd-dir',
242   type : 'string',
243   value : '',
244   description : 'Location relative to prefix to put vulkan icds on install. Default: $datadir/vulkan/icd.d'
245 )
246 option(
247   'moltenvk-dir',
248   type : 'string',
249   value : '',
250   description : 'Location of the MoltenVk SDK. Default: '
251 )
252 option(
253   'vulkan-layers',
254   type : 'array',
255   value : [],
256   choices : ['device-select', 'intel-nullhw', 'overlay'],
257   description : 'List of vulkan layers to build'
258 )
259 option(
260   'shared-glapi',
261   type : 'combo',
262   value : 'auto',
263   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
264   description : 'Whether to build a shared or static glapi. Defaults to false on Windows, true elsewhere'
265 )
266 option(
267   'gles1',
268   type : 'combo',
269   value : 'auto',
270   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
271   description : 'Build support for OpenGL ES 1.x'
272 )
273 option(
274   'gles2',
275   type : 'combo',
276   value : 'auto',
277   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
278   description : 'Build support for OpenGL ES 2.x and 3.x'
279 )
280 option(
281   'opengl',
282   type : 'boolean',
283   value : true,
284   description : 'Build support for OpenGL (all versions)'
285 )
286 option(
287   'gbm',
288   type : 'combo',
289   value : 'auto',
290   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
291   description : 'Build support for gbm platform'
292 )
293 option(
294   'gbm-backends-path',
295   type : 'string',
296   value : '',
297   description : 'Locations to search for gbm backends, passed as colon separated list. Default: $libdir/gbm.'
298 )
299 option(
300   'glx',
301   type : 'combo',
302   value : 'auto',
303   choices : ['auto', 'disabled', 'dri', 'xlib'],
304   description : 'Build support for GLX platform'
305 )
306 option(
307   'egl',
308   type : 'combo',
309   value : 'auto',
310   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
311   description : 'Build support for EGL platform'
312 )
313 option(
314   'glvnd',
315   type : 'boolean',
316   value : false,
317   description : 'Enable GLVND support.'
318 )
319 option(
320   'microsoft-clc',
321   type : 'feature',
322   value : 'auto',
323   description : 'Build support for the Microsoft CLC to DXIL compiler'
324 )
325 option(
326   'spirv-to-dxil',
327   type : 'boolean',
328   value : false,
329   description : 'Build support for the SPIR-V to DXIL library'
330 )
331 option(
332   'glvnd-vendor-name',
333   type : 'string',
334   value : 'mesa',
335   description : 'Vendor name string to use for glvnd libraries'
336 )
337 option(
338    'glx-read-only-text',
339    type : 'boolean',
340    value : false,
341    description : 'Disable writable .text section on x86 (decreases performance)'
342 )
343 option(
344   'llvm',
345   type : 'combo',
346   value : 'auto',
347   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
348   description : 'Build with LLVM support.'
349 )
350 option(
351   'shared-llvm',
352   type : 'combo',
353   value : 'auto',
354   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
355   description : 'Whether to link LLVM shared or statically.'
356 )
357 option(
358   'draw-use-llvm',
359   type : 'boolean',
360   value : true,
361   description : 'Whether to use LLVM for the Gallium draw module, if LLVM is included.'
362 )
363 option(
364   'valgrind',
365   type : 'combo',
366   value : 'auto',
367   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
368   description : 'Build with valgrind support'
369 )
370 option(
371   'libunwind',
372   type : 'combo',
373   value : 'auto',
374   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
375   description : 'Use libunwind for stack-traces'
376 )
377 option(
378   'lmsensors',
379   type : 'combo',
380   value : 'auto',
381   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
382   description : 'Enable HUD lmsensors support.'
383 )
384 option(
385   'build-tests',
386   type : 'boolean',
387   value : false,
388   description : 'Build unit tests. Currently this will build *all* unit tests except the ACO tests, which may build more than expected.'
389 )
390 option(
391   'enable-glcpp-tests',
392   type : 'boolean',
393   value : true,
394   description : 'Build glcpp unit tests. These are flaky on CI.'
395 )
396 option(
397   'build-aco-tests',
398   type : 'boolean',
399   value : false,
400   description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.'
401 )
402 option(
403   'install-intel-gpu-tests',
404   type : 'boolean',
405   value : false,
406   description : 'Build and install Intel unit tests which require the GPU.  This option is for developers and the Intel CI system only.'
407 )
408 option(
409   'selinux',
410   type : 'boolean',
411   value : false,
412   description : 'Build an SELinux-aware Mesa.  This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.'
413 )
414 option(
415   'execmem',
416   type : 'boolean',
417   value : true,
418   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.'
419 )
420 option(
421   'osmesa',
422   type : 'boolean',
423   value : false,
424   description : 'Build OSmesa.'
425 )
426 option(
427   'osmesa-bits',
428   type : 'combo',
429   value : 'unspecified',
430   choices : ['unspecified', '8', '16', '32'],
431   description : 'DEPRECATED: Number of channel bits for OSMesa.'
432 )
433
434 option(
435   'tools',
436   type : 'array',
437   value : [],
438   choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'],
439   description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
440 )
441 option(
442   'power8',
443   type : 'combo',
444   value : 'auto',
445   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
446   description : 'Enable power8 optimizations.',
447 )
448 option(
449   'xlib-lease',
450   type : 'combo',
451   value : 'auto',
452   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
453   description : 'Enable VK_EXT_acquire_xlib_display.'
454 )
455 option(
456   'glx-direct',
457   type : 'boolean',
458   value : true,
459   description : 'Enable direct rendering in GLX and EGL for DRI',
460 )
461 option('egl-lib-suffix',
462   type : 'string',
463   value : '',
464   description : 'Suffix to append to EGL library name.  Default: none.'
465 )
466 option(
467   'gles-lib-suffix',
468   type : 'string',
469   value : '',
470   description : 'Suffix to append to GLES library names.  Default: none.'
471 )
472 option(
473   'platform-sdk-version',
474   type : 'integer',
475   min : 25,
476   max : 10000,
477   value : 25,
478   description : 'Android Platform SDK version. Default: Nougat version.'
479 )
480 option(
481   'zstd',
482   type : 'combo',
483   choices : ['auto', 'true', 'false', 'enabled', 'disabled'],
484   value : 'auto',
485   description : 'Use ZSTD instead of ZLIB in some cases.'
486 )
487 option(
488    'zlib',
489    type : 'feature',
490    value : 'enabled',
491    description : 'Use ZLIB to build driver. Default: enabled'
492 )
493 option(
494   'sse2',
495   type : 'boolean',
496   value : true,
497   description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
498 )
499 option(
500   'perfetto',
501   type : 'boolean',
502   value : false,
503   description : 'Enable performance analysis with Perfetto. Default: false'
504 )
505 option(
506   'datasources',
507   type : 'array',
508   value : ['auto'],
509   choices : ['auto', 'panfrost', 'intel', 'freedreno'],
510   description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]'
511 )
512 option(
513   'custom-shader-replacement',
514   type : 'string',
515   value : '',
516   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).'
517 )
518 option(
519   'vmware-mks-stats',
520   type : 'boolean',
521   value : false,
522   description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.'
523 )
524 option(
525   'vulkan-beta',
526   type : 'boolean',
527   value : false,
528   description : 'Build vulkan drivers with BETA extensions enabled.'
529 )
530 option(
531   'intel-clc',
532   type : 'feature',
533   value : 'disabled',
534   description : 'Build the intel-clc compiler (required for ray queries).'
535 )
536 option(
537   'video-codecs',
538   type : 'array',
539   value : [],
540   choices: [
541     'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc'
542   ],
543   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.'
544 )
545 option(
546   'gallium-d3d12-video',
547   type : 'feature',
548   value : 'auto',
549   description : 'build gallium d3d12 with video support.',
550 )
551 option(
552   'radv-build-id',
553   type : 'string',
554   value : '',
555   description : 'Override build id for shader cache keys (hex string). Can be extracted with readelf -x .note.gnu.build-id'
556 )
557 option(
558   'min-windows-version',
559   type : 'integer',
560   min : 7,
561   max : 11,
562   value : 8,
563   description : 'Minimum Windows version to support. Defaults to Windows 8.'
564 )