1# Copyright © 2017-2019 Intel Corporation 2# SPDX-License-Identifier: MIT 3 4option( 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)', 9) 10option( 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.' 19) 20 21option( 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', 30) 31 32option( 33 'android-stub', 34 type : 'boolean', 35 value : false, 36 description : 'Build against android-stub', 37) 38 39option( 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' 46) 47 48option( 49 'android-libbacktrace', 50 type : 'feature', 51 description : 'Use Android\'s libbacktrace', 52) 53 54option( 55 'dri-drivers-path', 56 type : 'string', 57 value : '', 58 description : 'Location to install dri drivers. Default: $libdir/dri.' 59) 60 61option( 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' 67) 68 69option( 70 'expat', 71 type : 'feature', 72 value : 'auto', 73 description : 'Controls the use of expat. ' + 74 'Cannot be disabled if xmlconfig is enabled.' 75) 76 77option( 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.' 90) 91 92option( 93 'gallium-extra-hud', 94 type : 'boolean', 95 value : false, 96 description : 'Enable HUD block/NIC I/O HUD status support', 97) 98 99option( 100 'gallium-vdpau', 101 type : 'feature', 102 deprecated: {'true': 'enabled', 'false': 'disabled'}, 103 description : 'enable gallium vdpau frontend.', 104) 105 106option( 107 'vdpau-libs-path', 108 type : 'string', 109 value : '', 110 description : 'path to put vdpau libraries. defaults to $libdir/vdpau.' 111) 112 113option( 114 'gallium-va', 115 type : 'feature', 116 deprecated: {'true': 'enabled', 'false': 'disabled'}, 117 description : 'enable gallium va frontend.', 118) 119 120option( 121 'va-libs-path', 122 type : 'string', 123 value : '', 124 description : 'path to put va libraries. defaults to $libdir/dri.' 125) 126 127option( 128 'gallium-xa', 129 type : 'feature', 130 deprecated: {'true': 'enabled', 'false': 'disabled'}, 131 description : 'enable gallium xa frontend.', 132) 133 134option( 135 'gallium-nine', 136 type : 'boolean', 137 value : false, 138 description : 'build gallium "nine" Direct3D 9.x frontend.', 139) 140 141option( 142 'gallium-d3d10umd', 143 type : 'boolean', 144 value : false, 145 description : 'build gallium D3D10 WDDM UMD frontend.', 146) 147 148option( 149 'gallium-opencl', 150 type : 'combo', 151 choices : ['icd', 'standalone', 'disabled'], 152 value : 'disabled', 153 description : 'build gallium "clover" OpenCL frontend.', 154) 155 156option( 157 'gallium-rusticl', 158 type : 'boolean', 159 value : false, 160 description : 'build gallium "rusticl" OpenCL frontend.', 161) 162 163option( 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', 169) 170 171option( 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', 177) 178 179option( 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', 185) 186 187option( 188 'static-libclc', 189 type : 'array', 190 value : [], 191 choices : ['spirv', 'spirv64', 'all'], 192 description : 'Link libclc SPIR-V statically.', 193) 194 195option( 196 'd3d-drivers-path', 197 type : 'string', 198 value : '', 199 description : 'Location of D3D drivers. Default: $libdir/d3d', 200) 201 202option( 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' 213) 214 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. 218option( 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', 225) 226 227option( 228 'amdgpu-virtio', 229 type : 'boolean', 230 value : false, 231 description : 'use experimental virtio backend for radeonsi/radv', 232) 233option( 234 'imagination-srv', 235 type : 'boolean', 236 value : false, 237 description : 'Enable Services backend for Imagination Technologies ' + 238 'vulkan driver', 239) 240 241option( 242 'shader-cache', 243 type : 'feature', 244 deprecated: {'true': 'enabled', 'false': 'disabled'}, 245 description : 'Build with on-disk shader cache support.', 246) 247 248option( 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', 255) 256 257option( 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.' 269) 270 271option( 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' 277) 278 279option( 280 'moltenvk-dir', 281 type : 'string', 282 value : '', 283 description : 'Location of the MoltenVk SDK. Default: ' 284) 285 286option( 287 'vulkan-layers', 288 type : 'array', 289 value : [], 290 choices : ['device-select', 'intel-nullhw', 'overlay', 'screenshot'], 291 description : 'List of vulkan layers to build' 292) 293 294option( 295 'shared-glapi', 296 type : 'feature', 297 deprecated: {'true': 'enabled', 'false': 'disabled'}, 298 description : 'Whether to build a shared or static glapi. Defaults to ' + 299 'disabled on Windows, enabled elsewhere' 300) 301 302option( 303 'gles1', 304 type : 'feature', 305 deprecated: {'true': 'enabled', 'false': 'disabled'}, 306 description : 'Build support for OpenGL ES 1.x' 307) 308 309option( 310 'gles2', 311 type : 'feature', 312 deprecated: {'true': 'enabled', 'false': 'disabled'}, 313 description : 'Build support for OpenGL ES 2.x and 3.x' 314) 315 316option( 317 'opengl', 318 type : 'boolean', 319 value : true, 320 description : 'Build support for desktop OpenGL' 321) 322 323option( 324 'gbm', 325 type : 'feature', 326 deprecated: {'true': 'enabled', 'false': 'disabled'}, 327 description : 'Build support for gbm platform' 328) 329 330option( 331 'gbm-backends-path', 332 type : 'string', 333 value : '', 334 description : 'Locations to search for gbm backends, passed as colon ' + 335 'separated list. Default: $libdir/gbm.' 336) 337 338option( 339 'glx', 340 type : 'combo', 341 value : 'auto', 342 choices : ['auto', 'disabled', 'dri', 'xlib'], 343 description : 'Build support for GLX platform' 344) 345 346option( 347 'egl', 348 type : 'feature', 349 deprecated: {'true': 'enabled', 'false': 'disabled'}, 350 description : 'Build support for EGL platform' 351) 352 353option( 354 'glvnd', 355 type : 'feature', 356 deprecated: {'true': 'enabled', 'false': 'disabled'}, 357 description : 'Enable GLVND support.' 358) 359 360option( 361 'microsoft-clc', 362 type : 'feature', 363 value : 'auto', 364 deprecated: {'true': 'enabled', 'false': 'disabled'}, 365 description : 'Build support for the Microsoft CLC to DXIL compiler' 366) 367 368option( 369 'spirv-to-dxil', 370 type : 'boolean', 371 value : false, 372 description : 'Build support for the SPIR-V to DXIL library' 373) 374 375option( 376 'glvnd-vendor-name', 377 type : 'string', 378 value : 'mesa', 379 description : 'Vendor name string to use for glvnd libraries' 380) 381 382option( 383 'glx-read-only-text', 384 type : 'boolean', 385 value : false, 386 description : 'Disable writable .text section on x86 (decreases performance)' 387) 388 389option( 390 'llvm', 391 type : 'feature', 392 deprecated: {'true': 'enabled', 'false': 'disabled'}, 393 description : 'Build with LLVM support.' 394) 395 396option( 397 'shared-llvm', 398 type : 'feature', 399 deprecated: {'true': 'enabled', 'false': 'disabled'}, 400 description : 'Whether to link LLVM shared or statically.' 401) 402 403option( 404 'draw-use-llvm', 405 type : 'boolean', 406 value : true, 407 description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' + 408 'is included.' 409) 410 411option( 412 'amd-use-llvm', 413 type : 'boolean', 414 value : true, 415 description : 'Whether to use LLVM for the AMD drivers, if LLVM ' + 416 'is included.' 417) 418 419option ( 420 'llvm-orcjit', 421 type : 'boolean', 422 value : false, 423 description: 'Build llvmpipe with LLVM ORCJIT support. Has no effect when ' + 424 'building for architectures without LLVM MCJIT support -- ' + 425 'ORCJIT is the only choice on such architectures and will ' + 426 'always be enabled.' 427) 428 429option( 430 'valgrind', 431 type : 'feature', 432 deprecated: {'true': 'enabled', 'false': 'disabled'}, 433 description : 'Build with valgrind support' 434) 435 436option( 437 'libunwind', 438 type : 'feature', 439 deprecated: {'true': 'enabled', 'false': 'disabled'}, 440 description : 'Use libunwind for stack-traces' 441) 442 443option( 444 'lmsensors', 445 type : 'feature', 446 deprecated: {'true': 'enabled', 'false': 'disabled'}, 447 description : 'Enable HUD lmsensors support.' 448) 449 450option( 451 'build-tests', 452 type : 'boolean', 453 value : false, 454 description : 'Build unit tests. Currently this will build *all* unit ' + 455 'tests except the ACO tests, which may build more than expected.' 456) 457 458option( 459 'enable-glcpp-tests', 460 type : 'boolean', 461 value : true, 462 description : 'Build glcpp unit tests. These are flaky on CI.' 463) 464 465option( 466 'build-aco-tests', 467 type : 'boolean', 468 value : false, 469 description : 'Build ACO tests. These require RADV and glslang but not ' + 470 'an AMD GPU.' 471) 472 473option( 474 'install-intel-gpu-tests', 475 type : 'boolean', 476 value : false, 477 description : 'Build and install Intel unit tests which require the GPU. ' + 478 'This option is for developers and the Intel CI system only.' 479) 480 481option( 482 'html-docs', 483 type : 'feature', 484 value : 'disabled', 485 description : 'Build HTML documentation.' 486) 487 488option( 489 'html-docs-path', 490 type : 'string', 491 value : '', 492 description : 'Location to install HTML documentation. Default: $datadir/doc/mesa.' 493) 494 495option( 496 'selinux', 497 type : 'boolean', 498 deprecated : true, 499 description : 'Does nothing, left here for a while to avoid build breakages.', 500) 501 502option( 503 'execmem', 504 type : 'boolean', 505 deprecated : true, 506 description : 'Does nothing, left here for a while to avoid build breakages.', 507) 508 509option( 510 'osmesa', 511 type : 'boolean', 512 value : false, 513 description : 'Build OSmesa.' 514) 515 516option( 517 'tools', 518 type : 'array', 519 value : [], 520 choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 521 'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination', 522 'all', 'dlclose-skip'], 523 description : 'List of tools to build. (Note: `intel-ui` selects `intel`)', 524) 525 526option( 527 'power8', 528 type : 'feature', 529 deprecated: {'true': 'enabled', 'false': 'disabled'}, 530 description : 'Enable power8 optimizations.', 531) 532 533option( 534 'xlib-lease', 535 type : 'feature', 536 deprecated: {'true': 'enabled', 'false': 'disabled'}, 537 description : 'Enable VK_EXT_acquire_xlib_display.' 538) 539 540option( 541 'glx-direct', 542 type : 'boolean', 543 value : true, 544 description : 'Enable direct rendering in GLX and EGL for DRI', 545) 546 547option('egl-lib-suffix', 548 type : 'string', 549 value : '', 550 description : 'Suffix to append to EGL library name. Default: none.' 551) 552 553option( 554 'gles-lib-suffix', 555 type : 'string', 556 value : '', 557 description : 'Suffix to append to GLES library names. Default: none.' 558) 559 560option( 561 'platform-sdk-version', 562 type : 'integer', 563 min : 25, 564 max : 10000, 565 value : 25, 566 description : 'Android Platform SDK version. Default: Nougat version.' 567) 568 569option( 570 'allow-kcmp', 571 type : 'feature', 572 deprecated: {'true': 'enabled', 'false': 'disabled'}, 573 description : 'Allow using KCMP_FILE to compare file descriptions. ' + 574 'auto = allowed everywhere except on Android' 575) 576 577option( 578 'zstd', 579 type : 'feature', 580 deprecated: {'true': 'enabled', 'false': 'disabled'}, 581 description : 'Use ZSTD instead of ZLIB in some cases.' 582) 583 584option( 585 'zlib', 586 type : 'feature', 587 deprecated: {'true': 'enabled', 'false': 'disabled'}, 588 value : 'enabled', 589 description : 'Use ZLIB to build driver. Default: enabled' 590) 591 592option( 593 'sse2', 594 type : 'boolean', 595 value : true, 596 description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true', 597) 598 599option( 600 'perfetto', 601 type : 'boolean', 602 value : false, 603 description : 'Enable performance analysis with Perfetto. Default: false' 604) 605 606option( 607 'datasources', 608 type : 'array', 609 value : ['auto'], 610 choices : ['auto', 'panfrost', 'intel', 'freedreno'], 611 description : 'List of Perfetto datasources to build. If this is set to ' + 612 '`auto`, datasources that can not be build are skipped. ' + 613 'Default: [`auto`]' 614) 615 616option( 617 'teflon', 618 type : 'boolean', 619 value : false, 620 description : 'Enable TensorFlow Lite delegate. Default: false' 621) 622 623option( 624 'gpuvis', 625 type : 'boolean', 626 value : false, 627 description : 'Enable tracing markers for gpuvis. Default: false' 628) 629 630option( 631 'custom-shader-replacement', 632 type : 'string', 633 value : '', 634 description : 'Enable a custom shader replacement mechanism. Note that ' + 635 'enabling this option requires adding/generating a ' + 636 'shader_replacement.h file that can be included (see ' + 637 'shaderapi.c).' 638) 639 640option( 641 'vmware-mks-stats', 642 type : 'boolean', 643 value : false, 644 description : 'Build gallium VMware/svga driver with mksGuestStats ' + 645 'instrumentation.' 646) 647 648option( 649 'vulkan-beta', 650 type : 'boolean', 651 value : false, 652 description : 'Build vulkan drivers with BETA extensions enabled.' 653) 654 655option( 656 'intel-clc', 657 type : 'combo', 658 deprecated: {'true': 'enabled'}, 659 value : 'auto', 660 choices : [ 661 'enabled', 'system', 'auto' 662 ], 663 description : 'Build the intel-clc compiler or use a system version.' 664) 665 666option( 667 'intel-bvh-grl', 668 type : 'boolean', 669 value : false, 670 description : 'Build the BVH structure using GRL.' 671) 672 673option( 674 'install-intel-clc', 675 type : 'boolean', 676 value : false, 677 description : 'Install the intel-clc compiler (if needed for cross builds).' 678) 679 680option( 681 'intel-rt', 682 type : 'feature', 683 deprecated: {'true': 'enabled', 'false': 'disabled'}, 684 description : 'Build Ray Tracing on supported hardware.' 685) 686 687option( 688 'video-codecs', 689 type : 'array', 690 value : ['all_free'], 691 choices: [ 692 'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec' 693 ], 694 description : 'List of codecs to build support for. ' + 695 'Distros might want to consult their legal department before ' + 696 'enabling these. This is used for all video APIs (vaapi, ' + 697 'vdpau, vulkan). Non-patent encumbered codecs will be ' + 698 'enabled by default with the all_free default value.' 699) 700 701option( 702 'gallium-d3d12-video', 703 type : 'feature', 704 value : 'auto', 705 deprecated: {'true': 'enabled', 'false': 'disabled'}, 706 description : 'build gallium d3d12 with video support.', 707) 708 709option( 710 'gallium-d3d12-graphics', 711 type : 'feature', 712 value : 'auto', 713 description : 'build gallium d3d12 with graphics pipeline support.', 714) 715 716option( 717 'radv-build-id', 718 type : 'string', 719 value : '', 720 description : 'Override build id for shader cache keys (hex string). ' + 721 'Can be extracted with readelf -x .note.gnu.build-id' 722) 723 724option( 725 'min-windows-version', 726 type : 'integer', 727 min : 7, 728 max : 11, 729 value : 8, 730 description : 'Minimum Windows version to support. Defaults to Windows 8.' 731) 732 733option( 734 'xmlconfig', 735 type : 'feature', 736 value : 'auto', 737 deprecated: {'true': 'enabled', 'false': 'disabled'}, 738 description : 'Build custom xmlconfig (driconf) support. If disabled, ' + 739 'the default driconf file is hardcoded into Mesa. ' + 740 'Requires expat.' 741) 742 743option( 744 'legacy-x11', 745 type : 'array', 746 value : ['none'], 747 description : 'Build legacy X11 support features.', 748 choices : [ 749 'none', 'dri2' 750 ], 751) 752 753option( 754 'mesa-clc', 755 type : 'combo', 756 value : 'auto', 757 choices : [ 758 'enabled', 'system', 'auto' 759 ], 760 description : 'Build the mesa-clc compiler or use a system version.' 761) 762 763option( 764 'install-mesa-clc', 765 type : 'boolean', 766 value : false, 767 description : 'Install the mesa-clc compiler (if needed for cross builds).' 768) 769 770option( 771 'precomp-compiler', 772 type : 'combo', 773 value : 'auto', 774 choices : [ 775 'enabled', 'system', 'auto' 776 ], 777 description : 'Build drivers internal shader compilers or use a system version' 778) 779 780option( 781 'install-precomp-compiler', 782 type : 'boolean', 783 value : false, 784 description : 'Install the drivers internal shader compilers (if needed for cross builds).' 785) 786