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', 'ohos', 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', 'ohos', 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 : [ 291 'device-select', 'intel-nullhw', 'overlay', 'screenshot', 292 'vram-report-limit', 293 ], 294 description : 'List of vulkan layers to build' 295) 296 297option( 298 'shared-glapi', 299 type : 'feature', 300 deprecated: {'true': 'enabled', 'false': 'disabled'}, 301 description : 'Whether to build a shared or static glapi. Defaults to ' + 302 'disabled on Windows, enabled elsewhere' 303) 304 305option( 306 'gles1', 307 type : 'feature', 308 deprecated: {'true': 'enabled', 'false': 'disabled'}, 309 description : 'Build support for OpenGL ES 1.x' 310) 311 312option( 313 'gles2', 314 type : 'feature', 315 deprecated: {'true': 'enabled', 'false': 'disabled'}, 316 description : 'Build support for OpenGL ES 2.x and 3.x' 317) 318 319option( 320 'opengl', 321 type : 'boolean', 322 value : true, 323 description : 'Build support for desktop OpenGL' 324) 325 326option( 327 'gbm', 328 type : 'feature', 329 deprecated: {'true': 'enabled', 'false': 'disabled'}, 330 description : 'Build support for gbm platform' 331) 332 333option( 334 'gbm-backends-path', 335 type : 'string', 336 value : '', 337 description : 'Locations to search for gbm backends, passed as colon ' + 338 'separated list. Default: $libdir/gbm.' 339) 340 341option( 342 'glx', 343 type : 'combo', 344 value : 'auto', 345 choices : ['auto', 'disabled', 'dri', 'xlib'], 346 description : 'Build support for GLX platform' 347) 348 349option( 350 'egl', 351 type : 'feature', 352 deprecated: {'true': 'enabled', 'false': 'disabled'}, 353 description : 'Build support for EGL platform' 354) 355 356option( 357 'glvnd', 358 type : 'feature', 359 deprecated: {'true': 'enabled', 'false': 'disabled'}, 360 description : 'Enable GLVND support.' 361) 362 363option( 364 'microsoft-clc', 365 type : 'feature', 366 value : 'auto', 367 deprecated: {'true': 'enabled', 'false': 'disabled'}, 368 description : 'Build support for the Microsoft CLC to DXIL compiler' 369) 370 371option( 372 'spirv-to-dxil', 373 type : 'boolean', 374 value : false, 375 description : 'Build support for the SPIR-V to DXIL library' 376) 377 378option( 379 'glvnd-vendor-name', 380 type : 'string', 381 value : 'mesa', 382 description : 'Vendor name string to use for glvnd libraries' 383) 384 385option( 386 'glx-read-only-text', 387 type : 'boolean', 388 value : false, 389 description : 'Disable writable .text section on x86 (decreases performance)' 390) 391 392option( 393 'llvm', 394 type : 'feature', 395 deprecated: {'true': 'enabled', 'false': 'disabled'}, 396 description : 'Build with LLVM support.' 397) 398 399option( 400 'shared-llvm', 401 type : 'feature', 402 deprecated: {'true': 'enabled', 'false': 'disabled'}, 403 description : 'Whether to link LLVM shared or statically.' 404) 405 406option( 407 'draw-use-llvm', 408 type : 'boolean', 409 value : true, 410 description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' + 411 'is included.' 412) 413 414option( 415 'amd-use-llvm', 416 type : 'boolean', 417 value : true, 418 description : 'Whether to use LLVM for the AMD drivers, if LLVM ' + 419 'is included.' 420) 421 422option ( 423 'llvm-orcjit', 424 type : 'boolean', 425 value : false, 426 description: 'Build llvmpipe with LLVM ORCJIT support. Has no effect when ' + 427 'building for architectures without LLVM MCJIT support -- ' + 428 'ORCJIT is the only choice on such architectures and will ' + 429 'always be enabled.' 430) 431 432option( 433 'valgrind', 434 type : 'feature', 435 deprecated: {'true': 'enabled', 'false': 'disabled'}, 436 description : 'Build with valgrind support' 437) 438 439option( 440 'libunwind', 441 type : 'feature', 442 deprecated: {'true': 'enabled', 'false': 'disabled'}, 443 description : 'Use libunwind for stack-traces' 444) 445 446option( 447 'lmsensors', 448 type : 'feature', 449 deprecated: {'true': 'enabled', 'false': 'disabled'}, 450 description : 'Enable HUD lmsensors support.' 451) 452 453option( 454 'build-tests', 455 type : 'boolean', 456 value : false, 457 description : 'Build unit tests. Currently this will build *all* unit ' + 458 'tests except the ACO tests, which may build more than expected.' 459) 460 461option( 462 'enable-glcpp-tests', 463 type : 'boolean', 464 value : true, 465 description : 'Build glcpp unit tests. These are flaky on CI.' 466) 467 468option( 469 'build-aco-tests', 470 type : 'boolean', 471 value : false, 472 description : 'Build ACO tests. These require RADV and glslang but not ' + 473 'an AMD GPU.' 474) 475 476option( 477 'install-intel-gpu-tests', 478 type : 'boolean', 479 value : false, 480 description : 'Build and install Intel unit tests which require the GPU. ' + 481 'This option is for developers and the Intel CI system only.' 482) 483 484option( 485 'html-docs', 486 type : 'feature', 487 value : 'disabled', 488 description : 'Build HTML documentation.' 489) 490 491option( 492 'html-docs-path', 493 type : 'string', 494 value : '', 495 description : 'Location to install HTML documentation. Default: $datadir/doc/mesa.' 496) 497 498option( 499 'selinux', 500 type : 'boolean', 501 deprecated : true, 502 description : 'Does nothing, left here for a while to avoid build breakages.', 503) 504 505option( 506 'execmem', 507 type : 'boolean', 508 deprecated : true, 509 description : 'Does nothing, left here for a while to avoid build breakages.', 510) 511 512option( 513 'osmesa', 514 type : 'boolean', 515 value : false, 516 description : 'Build OSmesa.' 517) 518 519option( 520 'tools', 521 type : 'array', 522 value : [], 523 choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 524 'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination', 525 'all', 'dlclose-skip'], 526 description : 'List of tools to build. (Note: `intel-ui` selects `intel`)', 527) 528 529option( 530 'power8', 531 type : 'feature', 532 deprecated: {'true': 'enabled', 'false': 'disabled'}, 533 description : 'Enable power8 optimizations.', 534) 535 536option( 537 'xlib-lease', 538 type : 'feature', 539 deprecated: {'true': 'enabled', 'false': 'disabled'}, 540 description : 'Enable VK_EXT_acquire_xlib_display.' 541) 542 543option( 544 'glx-direct', 545 type : 'boolean', 546 value : true, 547 description : 'Enable direct rendering in GLX and EGL for DRI', 548) 549 550option('egl-lib-suffix', 551 type : 'string', 552 value : '', 553 description : 'Suffix to append to EGL library name. Default: none.' 554) 555 556option( 557 'gles-lib-suffix', 558 type : 'string', 559 value : '', 560 description : 'Suffix to append to GLES library names. Default: none.' 561) 562 563option( 564 'platform-sdk-version', 565 type : 'integer', 566 min : 25, 567 max : 10000, 568 value : 25, 569 description : 'Android Platform SDK version. Default: Nougat version.' 570) 571 572option( 573 'allow-kcmp', 574 type : 'feature', 575 deprecated: {'true': 'enabled', 'false': 'disabled'}, 576 description : 'Allow using KCMP_FILE to compare file descriptions. ' + 577 'auto = allowed everywhere except on Android' 578) 579 580option( 581 'zstd', 582 type : 'feature', 583 deprecated: {'true': 'enabled', 'false': 'disabled'}, 584 description : 'Use ZSTD instead of ZLIB in some cases.' 585) 586 587option( 588 'zlib', 589 type : 'feature', 590 deprecated: {'true': 'enabled', 'false': 'disabled'}, 591 value : 'enabled', 592 description : 'Use ZLIB to build driver. Default: enabled' 593) 594 595option( 596 'sse2', 597 type : 'boolean', 598 value : true, 599 description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true', 600) 601 602option( 603 'perfetto', 604 type : 'boolean', 605 value : false, 606 description : 'Enable performance analysis with Perfetto. Default: false' 607) 608 609option( 610 'datasources', 611 type : 'array', 612 value : ['auto'], 613 choices : ['auto', 'panfrost', 'intel', 'freedreno'], 614 description : 'List of Perfetto datasources to build. If this is set to ' + 615 '`auto`, datasources that can not be build are skipped. ' + 616 'Default: [`auto`]' 617) 618 619option( 620 'teflon', 621 type : 'boolean', 622 value : false, 623 description : 'Enable TensorFlow Lite delegate. Default: false' 624) 625 626option( 627 'gpuvis', 628 type : 'boolean', 629 value : false, 630 description : 'Enable tracing markers for gpuvis. Default: false' 631) 632 633option( 634 'custom-shader-replacement', 635 type : 'string', 636 value : '', 637 description : 'Enable a custom shader replacement mechanism. Note that ' + 638 'enabling this option requires adding/generating a ' + 639 'shader_replacement.h file that can be included (see ' + 640 'shaderapi.c).' 641) 642 643option( 644 'vmware-mks-stats', 645 type : 'boolean', 646 value : false, 647 description : 'Build gallium VMware/svga driver with mksGuestStats ' + 648 'instrumentation.' 649) 650 651option( 652 'vulkan-beta', 653 type : 'boolean', 654 value : false, 655 description : 'Build vulkan drivers with BETA extensions enabled.' 656) 657 658option( 659 'intel-clc', 660 type : 'combo', 661 deprecated: {'true': 'enabled'}, 662 value : 'auto', 663 choices : [ 664 'enabled', 'system', 'auto' 665 ], 666 description : 'Build the intel-clc compiler or use a system version.' 667) 668 669option( 670 'intel-bvh-grl', 671 type : 'boolean', 672 value : false, 673 description : 'Build the BVH structure using GRL.' 674) 675 676option( 677 'install-intel-clc', 678 type : 'boolean', 679 value : false, 680 description : 'Install the intel-clc compiler (if needed for cross builds).' 681) 682 683option( 684 'intel-rt', 685 type : 'feature', 686 deprecated: {'true': 'enabled', 'false': 'disabled'}, 687 description : 'Build Ray Tracing on supported hardware.' 688) 689 690option( 691 'intel-elk', 692 type : 'boolean', 693 value : true, 694 description : 'Build ELK compiler (used for Gfx8 and earlier). ' + 695 'This is required for Crocus and Hasvk, and it is ' + 696 'optional for Iris and various developer tools.' 697) 698 699option( 700 'video-codecs', 701 type : 'array', 702 value : ['all_free'], 703 choices: [ 704 'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec' 705 ], 706 description : 'List of codecs to build support for. ' + 707 'Distros might want to consult their legal department before ' + 708 'enabling these. This is used for all video APIs (vaapi, ' + 709 'vdpau, vulkan). Non-patent encumbered codecs will be ' + 710 'enabled by default with the all_free default value.' 711) 712 713option( 714 'gallium-d3d12-video', 715 type : 'feature', 716 value : 'auto', 717 deprecated: {'true': 'enabled', 'false': 'disabled'}, 718 description : 'build gallium d3d12 with video support.', 719) 720 721option( 722 'gallium-d3d12-graphics', 723 type : 'feature', 724 value : 'auto', 725 description : 'build gallium d3d12 with graphics pipeline support.', 726) 727 728option( 729 'radv-build-id', 730 type : 'string', 731 value : '', 732 description : 'Override build id for shader cache keys (hex string). ' + 733 'Can be extracted with readelf -x .note.gnu.build-id' 734) 735 736option( 737 'min-windows-version', 738 type : 'integer', 739 min : 7, 740 max : 11, 741 value : 8, 742 description : 'Minimum Windows version to support. Defaults to Windows 8.' 743) 744 745option( 746 'xmlconfig', 747 type : 'feature', 748 value : 'auto', 749 deprecated: {'true': 'enabled', 'false': 'disabled'}, 750 description : 'Build custom xmlconfig (driconf) support. If disabled, ' + 751 'the default driconf file is hardcoded into Mesa. ' + 752 'Requires expat.' 753) 754 755option( 756 'legacy-x11', 757 type : 'array', 758 value : ['none'], 759 description : 'Build legacy X11 support features.', 760 choices : [ 761 'none', 'dri2' 762 ], 763) 764 765option( 766 'mesa-clc', 767 type : 'combo', 768 value : 'auto', 769 choices : [ 770 'enabled', 'system', 'auto' 771 ], 772 description : 'Build the mesa-clc compiler or use a system version.' 773) 774 775option( 776 'install-mesa-clc', 777 type : 'boolean', 778 value : false, 779 description : 'Install the mesa-clc compiler (if needed for cross builds).' 780) 781 782option( 783 'precomp-compiler', 784 type : 'combo', 785 value : 'auto', 786 choices : [ 787 'enabled', 'system', 'auto' 788 ], 789 description : 'Build drivers internal shader compilers or use a system version' 790) 791 792option( 793 'install-precomp-compiler', 794 type : 'boolean', 795 value : false, 796 description : 'Install the drivers internal shader compilers (if needed for cross builds).' 797) 798