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 21option( 22 'platforms', 23 type : 'array', 24 value : ['auto'], 25 choices : [ 26 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'ohos', 27 ], 28 description : 'window systems to support. If this is set to `auto`, all platforms applicable will be enabled.' 29) 30option( 31 'egl-native-platform', 32 type : 'combo', 33 value : 'auto', 34 choices : [ 35 'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 36 'surfaceless', 'drm', 'ohos', 37 ], 38 description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY', 39) 40option( 41 'android-stub', 42 type : 'boolean', 43 value : false, 44 description : 'Build against android-stub', 45) 46 47option( 48 'dri3', 49 type : 'combo', 50 value : 'auto', 51 choices : ['auto', 'true', 'false', 'disabled', 'enabled'], 52 description : 'enable support for dri3' 53) 54option( 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) 59option( 60 'dri-drivers-path', 61 type : 'string', 62 value : '', 63 description : 'Location to install dri drivers. Default: $libdir/dri.' 64) 65option( 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) 71option( 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) 82option( 83 'gallium-extra-hud', 84 type : 'boolean', 85 value : false, 86 description : 'Enable HUD block/NIC I/O HUD status support', 87) 88option( 89 'gallium-vdpau', 90 type : 'combo', 91 value : 'auto', 92 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 93 description : 'enable gallium vdpau frontend.', 94) 95option( 96 'vdpau-libs-path', 97 type : 'string', 98 value : '', 99 description : 'path to put vdpau libraries. defaults to $libdir/vdpau.' 100) 101option( 102 'gallium-xvmc', 103 type : 'combo', 104 value : 'auto', 105 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 106 description : 'enable gallium xvmc frontend.', 107) 108option( 109 'xvmc-libs-path', 110 type : 'string', 111 value : '', 112 description : 'path to put xvmc libraries. defaults to $libdir.' 113) 114option( 115 'gallium-omx', 116 type : 'combo', 117 value : 'auto', 118 choices : ['auto', 'disabled', 'bellagio', 'tizonia'], 119 description : 'enable gallium omx frontend.', 120) 121option( 122 'omx-libs-path', 123 type : 'string', 124 value : '', 125 description : 'path to put omx libraries. defaults to omx-bellagio pkg-config pluginsdir.' 126) 127option( 128 'gallium-va', 129 type : 'combo', 130 value : 'auto', 131 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 132 description : 'enable gallium va frontend.', 133) 134option( 135 'va-libs-path', 136 type : 'string', 137 value : '', 138 description : 'path to put va libraries. defaults to $libdir/dri.' 139) 140option( 141 'gallium-xa', 142 type : 'combo', 143 value : 'auto', 144 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 145 description : 'enable gallium xa frontend.', 146) 147option( 148 'gallium-nine', 149 type : 'boolean', 150 value : false, 151 description : 'build gallium "nine" Direct3D 9.x frontend.', 152) 153option( 154 'gallium-d3d10umd', 155 type : 'boolean', 156 value : false, 157 description : 'build gallium D3D10 WDDM UMD frontend.', 158) 159option( 160 'gallium-opencl', 161 type : 'combo', 162 choices : ['icd', 'standalone', 'disabled'], 163 value : 'disabled', 164 description : 'build gallium "clover" OpenCL frontend.', 165) 166option( 167 'opencl-spirv', 168 type : 'boolean', 169 value : false, 170 description : 'build gallium "clover" OpenCL frontend with SPIR-V binary support.', 171) 172option( 173 'opencl-native', 174 type : 'boolean', 175 value : true, 176 description : 'build gallium "clover" OpenCL frontend with native LLVM codegen support.', 177) 178option( 179 'static-libclc', 180 type : 'array', 181 value : [], 182 choices : ['spirv', 'spirv64', 'all'], 183 description : 'Link libclc SPIR-V statically.', 184) 185option( 186 'd3d-drivers-path', 187 type : 'string', 188 value : '', 189 description : 'Location of D3D drivers. Default: $libdir/d3d', 190) 191option( 192 'vulkan-drivers', 193 type : 'array', 194 value : ['auto'], 195 choices : ['auto', 'amd', 'broadcom', 'freedreno', 'imagination-experimental', 'intel', 'microsoft-experimental', 'panfrost', 'swrast', 'virtio-experimental'], 196 description : 'List of vulkan drivers to build. If this is set to auto all drivers applicable to the target OS/architecture will be built' 197) 198option( 199 'freedreno-kgsl', 200 type : 'boolean', 201 value : false, 202 description : 'use kgsl backend for freedreno vulkan driver', 203) 204option( 205 'freedreno-virtio', 206 type : 'boolean', 207 value : false, 208 description : 'use experimental virtio backend for freedreno (currently only gallium driver)', 209) 210option( 211 'imagination-srv', 212 type : 'boolean', 213 value : false, 214 description : 'Enable Services backend for Imagination Technologies vulkan driver', 215) 216option( 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) 223option( 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) 229option( 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) 240option( 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) 246option( 247 'moltenvk-dir', 248 type : 'string', 249 value : '', 250 description : 'Location of the MoltenVk SDK. Default: ' 251) 252option( 253 'vulkan-layers', 254 type : 'array', 255 value : [], 256 choices : ['device-select', 'intel-nullhw', 'overlay'], 257 description : 'List of vulkan layers to build' 258) 259option( 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) 266option( 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) 273option( 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) 280option( 281 'opengl', 282 type : 'boolean', 283 value : true, 284 description : 'Build support for OpenGL (all versions)' 285) 286option( 287 'gbm', 288 type : 'combo', 289 value : 'auto', 290 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 291 description : 'Build support for gbm platform' 292) 293option( 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) 299option( 300 'glx', 301 type : 'combo', 302 value : 'auto', 303 choices : ['auto', 'disabled', 'dri', 'xlib'], 304 description : 'Build support for GLX platform' 305) 306option( 307 'egl', 308 type : 'combo', 309 value : 'auto', 310 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 311 description : 'Build support for EGL platform' 312) 313option( 314 'glvnd', 315 type : 'boolean', 316 value : false, 317 description : 'Enable GLVND support.' 318) 319option( 320 'microsoft-clc', 321 type : 'feature', 322 value : 'auto', 323 description : 'Build support for the Microsoft CLC to DXIL compiler' 324) 325option( 326 'spirv-to-dxil', 327 type : 'boolean', 328 value : false, 329 description : 'Build support for the SPIR-V to DXIL library' 330) 331option( 332 'glvnd-vendor-name', 333 type : 'string', 334 value : 'mesa', 335 description : 'Vendor name string to use for glvnd libraries' 336) 337option( 338 'glx-read-only-text', 339 type : 'boolean', 340 value : false, 341 description : 'Disable writable .text section on x86 (decreases performance)' 342) 343option( 344 'llvm', 345 type : 'combo', 346 value : 'auto', 347 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 348 description : 'Build with LLVM support.' 349) 350option( 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) 357option( 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) 363option( 364 'valgrind', 365 type : 'combo', 366 value : 'auto', 367 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 368 description : 'Build with valgrind support' 369) 370option( 371 'libunwind', 372 type : 'combo', 373 value : 'auto', 374 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 375 description : 'Use libunwind for stack-traces' 376) 377option( 378 'lmsensors', 379 type : 'combo', 380 value : 'auto', 381 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 382 description : 'Enable HUD lmsensors support.' 383) 384option( 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) 390option( 391 'build-aco-tests', 392 type : 'boolean', 393 value : false, 394 description : 'Build ACO tests. These require RADV and glslang but not an AMD GPU.' 395) 396option( 397 'install-intel-gpu-tests', 398 type : 'boolean', 399 value : false, 400 description : 'Build and install Intel unit tests which require the GPU. This option is for developers and the Intel CI system only.' 401) 402option( 403 'selinux', 404 type : 'boolean', 405 value : false, 406 description : 'Build an SELinux-aware Mesa. This currently disables execmem support at runtime unless SELinux is configured with allow_execmem.' 407) 408option( 409 'execmem', 410 type : 'boolean', 411 value : true, 412 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.' 413) 414option( 415 'osmesa', 416 type : 'boolean', 417 value : false, 418 description : 'Build OSmesa.' 419) 420option( 421 'osmesa-bits', 422 type : 'combo', 423 value : 'unspecified', 424 choices : ['unspecified', '8', '16', '32'], 425 description : 'DEPRECATED: Number of channel bits for OSMesa.' 426) 427 428option( 429 'tools', 430 type : 'array', 431 value : [], 432 choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui', 'nir', 'nouveau', 'xvmc', 'lima', 'panfrost', 'asahi', 'imagination', 'all', 'dlclose-skip'], 433 description : 'List of tools to build. (Note: `intel-ui` selects `intel`)', 434) 435option( 436 'power8', 437 type : 'combo', 438 value : 'auto', 439 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 440 description : 'Enable power8 optimizations.', 441) 442option( 443 'xlib-lease', 444 type : 'combo', 445 value : 'auto', 446 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 447 description : 'Enable VK_EXT_acquire_xlib_display.' 448) 449option( 450 'glx-direct', 451 type : 'boolean', 452 value : true, 453 description : 'Enable direct rendering in GLX and EGL for DRI', 454) 455option('egl-lib-suffix', 456 type : 'string', 457 value : '', 458 description : 'Suffix to append to EGL library name. Default: none.' 459) 460option( 461 'gles-lib-suffix', 462 type : 'string', 463 value : '', 464 description : 'Suffix to append to GLES library names. Default: none.' 465) 466option( 467 'platform-sdk-version', 468 type : 'integer', 469 min : 25, 470 max : 10000, 471 value : 25, 472 description : 'Android Platform SDK version. Default: Nougat version.' 473) 474option( 475 'zstd', 476 type : 'combo', 477 choices : ['auto', 'true', 'false', 'enabled', 'disabled'], 478 value : 'auto', 479 description : 'Use ZSTD instead of ZLIB in some cases.' 480) 481option( 482 'zlib', 483 type : 'feature', 484 value : 'enabled', 485 description : 'Use ZLIB to build driver. Default: enabled' 486) 487option( 488 'sse2', 489 type : 'boolean', 490 value : true, 491 description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true', 492) 493option( 494 'perfetto', 495 type : 'boolean', 496 value : false, 497 description : 'Enable performance analysis with Perfetto. Default: false' 498) 499option( 500 'datasources', 501 type : 'array', 502 value : ['auto'], 503 choices : ['auto', 'panfrost', 'intel', 'freedreno'], 504 description: 'List of Perfetto datasources to build. If this is set to `auto`, datasources that can not be build are skipped. Default: [`auto`]' 505) 506option( 507 'custom-shader-replacement', 508 type : 'string', 509 value : '', 510 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).' 511) 512option( 513 'vmware-mks-stats', 514 type : 'boolean', 515 value : false, 516 description : 'Build gallium VMware/svga driver with mksGuestStats instrumentation.' 517) 518option( 519 'vulkan-beta', 520 type : 'boolean', 521 value : false, 522 description : 'Build vulkan drivers with BETA extensions enabled.' 523) 524option( 525 'intel-clc', 526 type : 'feature', 527 value : 'disabled', 528 description : 'Build the intel-clc compiler (required for ray queries).' 529) 530option( 531 'video-codecs', 532 type : 'array', 533 value : [], 534 choices: [ 535 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc' 536 ], 537 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.' 538) 539option( 540 'gallium-d3d12-video', 541 type : 'feature', 542 value : 'auto', 543 description : 'build gallium d3d12 with video support.', 544) 545option( 546 'radv-build-id', 547 type : 'string', 548 value : '', 549 description : 'Override build id for shader cache keys (hex string). Can be extracted with readelf -x .note.gnu.build-id' 550) 551option( 552 'min-windows-version', 553 type : 'integer', 554 min : 7, 555 max : 11, 556 value : 8, 557 description : 'Minimum Windows version to support. Defaults to Windows 8.' 558) 559