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