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