2019-11-01 04:26:00 +08:00
|
|
|
# Copyright © 2017-2019 Intel Corporation
|
2022-08-20 00:10:52 +08:00
|
|
|
# SPDX-License-Identifier: MIT
|
2017-09-15 08:57:17 +08:00
|
|
|
|
2022-12-30 01:08:57 +08:00
|
|
|
option(
|
|
|
|
'split-debug',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'disabled',
|
|
|
|
description : 'split debug information (-gsplit-dwarf compile flag) and debug information in the gdb index format (--gdb-index)',
|
|
|
|
)
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'platforms',
|
2018-04-17 06:18:08 +08:00
|
|
|
type : 'array',
|
|
|
|
value : ['auto'],
|
|
|
|
choices : [
|
2024-09-14 00:42:19 +08:00
|
|
|
'auto', 'x11', 'wayland', 'haiku', 'android', 'windows', 'macos',
|
2018-04-17 06:18:08 +08:00
|
|
|
],
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'window systems to support. If this is set to `auto`, all ' +
|
|
|
|
'platforms applicable will be enabled.'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-07-21 08:52:47 +08:00
|
|
|
option(
|
|
|
|
'egl-native-platform',
|
|
|
|
type : 'combo',
|
|
|
|
value : 'auto',
|
|
|
|
choices : [
|
|
|
|
'auto', 'x11', 'wayland', 'haiku', 'android', 'windows',
|
|
|
|
'surfaceless', 'drm',
|
|
|
|
],
|
|
|
|
description : 'the window system EGL assumes for EGL_DEFAULT_DISPLAY',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-07-29 06:25:49 +08:00
|
|
|
option(
|
|
|
|
'android-stub',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Build against android-stub',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-09-08 02:07:56 +08:00
|
|
|
option(
|
|
|
|
'android-strict',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'Enable strict Android compliance. Disabling may cause CTS ' +
|
|
|
|
'failures or other problems, but allows drivers to expose ' +
|
|
|
|
'capabilities that are normally hidden. Default: true'
|
|
|
|
)
|
|
|
|
|
2022-11-15 16:48:02 +08:00
|
|
|
option(
|
|
|
|
'android-libbacktrace',
|
2023-01-26 02:44:33 +08:00
|
|
|
type : 'feature',
|
2022-11-15 16:48:02 +08:00
|
|
|
description : 'Use Android\'s libbacktrace',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'dri-drivers-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2018-01-17 02:36:28 +08:00
|
|
|
description : 'Location to install dri drivers. Default: $libdir/dri.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2024-08-09 06:23:34 +08:00
|
|
|
option(
|
|
|
|
'unversion-libgallium',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Do not include mesa version in libgallium DSO filename. ' +
|
|
|
|
'Do not enable unless you know what you are doing. Default: false'
|
|
|
|
)
|
|
|
|
|
2023-06-13 01:53:58 +08:00
|
|
|
option(
|
|
|
|
'expat',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
|
|
|
description : 'Controls the use of expat. ' +
|
|
|
|
'Cannot be disabled if xmlconfig is enabled.'
|
|
|
|
)
|
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'gallium-drivers',
|
2018-04-17 06:18:08 +08:00
|
|
|
type : 'array',
|
|
|
|
value : ['auto'],
|
|
|
|
choices : [
|
2024-08-01 17:43:51 +08:00
|
|
|
'auto', 'radeonsi', 'r300', 'r600', 'nouveau', 'freedreno',
|
2019-01-25 04:03:54 +08:00
|
|
|
'swrast', 'v3d', 'vc4', 'etnaviv', 'tegra', 'i915', 'svga', 'virgl',
|
2023-10-25 20:46:30 +08:00
|
|
|
'panfrost', 'iris', 'lima', 'zink', 'd3d12', 'asahi', 'crocus', 'all',
|
2024-02-14 03:50:50 +08:00
|
|
|
'softpipe', 'llvmpipe',
|
2018-04-17 06:18:08 +08:00
|
|
|
],
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'List of gallium drivers to build. If this is set to auto ' +
|
|
|
|
'all drivers applicable to the target OS/architecture ' +
|
2024-02-14 03:50:50 +08:00
|
|
|
'will be built.'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-11-29 08:31:06 +08:00
|
|
|
option(
|
|
|
|
'gallium-extra-hud',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Enable HUD block/NIC I/O HUD status support',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-31 05:04:21 +08:00
|
|
|
option(
|
|
|
|
'gallium-vdpau',
|
2022-12-21 06:59:48 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2019-12-04 09:38:14 +08:00
|
|
|
description : 'enable gallium vdpau frontend.',
|
2017-10-31 05:04:21 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-31 05:04:21 +08:00
|
|
|
option(
|
|
|
|
'vdpau-libs-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'path to put vdpau libraries. defaults to $libdir/vdpau.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-31 06:49:37 +08:00
|
|
|
option(
|
|
|
|
'gallium-va',
|
2022-12-21 07:05:26 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2019-12-04 09:38:14 +08:00
|
|
|
description : 'enable gallium va frontend.',
|
2017-10-31 06:49:37 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-31 06:49:37 +08:00
|
|
|
option(
|
|
|
|
'va-libs-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'path to put va libraries. defaults to $libdir/dri.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-31 08:40:30 +08:00
|
|
|
option(
|
|
|
|
'gallium-xa',
|
2022-12-21 07:07:14 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2019-12-04 09:38:14 +08:00
|
|
|
description : 'enable gallium xa frontend.',
|
2017-10-31 08:40:30 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-11-14 09:58:51 +08:00
|
|
|
option(
|
|
|
|
'gallium-nine',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2019-12-04 09:38:14 +08:00
|
|
|
description : 'build gallium "nine" Direct3D 9.x frontend.',
|
2017-11-14 09:58:51 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-05-05 18:57:43 +08:00
|
|
|
option(
|
|
|
|
'gallium-d3d10umd',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'build gallium D3D10 WDDM UMD frontend.',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-12-09 07:26:00 +08:00
|
|
|
option(
|
|
|
|
'gallium-opencl',
|
|
|
|
type : 'combo',
|
|
|
|
choices : ['icd', 'standalone', 'disabled'],
|
|
|
|
value : 'disabled',
|
2019-12-04 09:38:14 +08:00
|
|
|
description : 'build gallium "clover" OpenCL frontend.',
|
2020-11-09 03:28:21 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-09 03:28:21 +08:00
|
|
|
option(
|
|
|
|
'gallium-rusticl',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'build gallium "rusticl" OpenCL frontend.',
|
2017-12-09 07:26:00 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2024-09-16 19:29:29 +08:00
|
|
|
option(
|
|
|
|
'gallium-rusticl-enable-drivers',
|
|
|
|
type : 'array',
|
2024-09-17 17:29:30 +08:00
|
|
|
value : ['auto', 'asahi'],
|
2024-09-16 19:29:29 +08:00
|
|
|
description : 'List of gallium drivers for which rusticl will be enabled ' +
|
|
|
|
'by default',
|
|
|
|
)
|
|
|
|
|
2022-08-25 05:57:25 +08:00
|
|
|
option(
|
2024-02-01 21:14:48 +08:00
|
|
|
'gallium-wgl-dll-name',
|
2022-08-25 05:57:25 +08:00
|
|
|
type : 'string',
|
|
|
|
value : 'libgallium_wgl',
|
2024-02-01 21:14:48 +08:00
|
|
|
description : 'name of gallium wgl target DLL built for Windows. ' +
|
2022-08-20 00:10:52 +08:00
|
|
|
'defaults to libgallium_wgl.dll to match DRI',
|
2022-08-25 05:57:25 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2024-02-01 21:14:48 +08:00
|
|
|
option(
|
|
|
|
'gallium-d3d10-dll-name',
|
|
|
|
type : 'string',
|
|
|
|
value : 'libgallium_d3d10',
|
|
|
|
description : 'name of gallium d3d10 target DLL built for Windows. ' +
|
|
|
|
'defaults to libgallium_d3d10.dll to match DRI',
|
|
|
|
)
|
|
|
|
|
2020-10-07 00:26:07 +08:00
|
|
|
option(
|
|
|
|
'static-libclc',
|
|
|
|
type : 'array',
|
|
|
|
value : [],
|
|
|
|
choices : ['spirv', 'spirv64', 'all'],
|
|
|
|
description : 'Link libclc SPIR-V statically.',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-11-14 09:58:51 +08:00
|
|
|
option(
|
|
|
|
'd3d-drivers-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'Location of D3D drivers. Default: $libdir/d3d',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'vulkan-drivers',
|
2018-04-17 06:18:08 +08:00
|
|
|
type : 'array',
|
|
|
|
value : ['auto'],
|
2022-08-20 00:10:52 +08:00
|
|
|
choices : ['auto', 'amd', 'broadcom', 'freedreno', 'intel', 'intel_hasvk',
|
2023-04-13 02:15:33 +08:00
|
|
|
'panfrost', 'swrast', 'virtio', 'imagination-experimental',
|
2024-11-16 00:12:23 +08:00
|
|
|
'microsoft-experimental', 'nouveau', 'asahi', 'gfxstream',
|
|
|
|
'all'],
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'List of vulkan drivers to build. If this is set to auto ' +
|
|
|
|
'all drivers applicable to the target OS/architecture ' +
|
|
|
|
'will be built'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-02-18 03:51:49 +08:00
|
|
|
# Note that currently turnip supports msm and kgsl, while the gallium driver
|
|
|
|
# support msm and virtio. This is a temporary situation with virtio support
|
|
|
|
# for turnip and kgsl support for gallium planned/in-progress.
|
2020-04-08 03:36:20 +08:00
|
|
|
option(
|
2023-02-18 03:51:49 +08:00
|
|
|
'freedreno-kmds',
|
|
|
|
type : 'array',
|
|
|
|
value : ['msm'],
|
2023-11-02 20:53:03 +08:00
|
|
|
choices : ['msm', 'kgsl', 'virtio', 'wsl'],
|
2023-02-18 03:51:49 +08:00
|
|
|
description : 'List of kernel-mode drivers to enable for freedreno ' +
|
|
|
|
'gallium and vulkan driver',
|
2022-02-03 02:56:26 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-02-25 18:28:39 +08:00
|
|
|
option(
|
|
|
|
'imagination-srv',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Enable Services backend for Imagination Technologies ' +
|
|
|
|
'vulkan driver',
|
2022-02-25 18:28:39 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'shader-cache',
|
2022-12-21 07:09:41 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2020-11-20 08:09:22 +08:00
|
|
|
description : 'Build with on-disk shader cache support.',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-20 08:09:22 +08:00
|
|
|
option(
|
|
|
|
'shader-cache-default',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'If set to false, the feature is only activated when ' +
|
|
|
|
'environment variable MESA_SHADER_CACHE_DISABLE is set ' +
|
|
|
|
'to false',
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-10-18 04:43:59 +08:00
|
|
|
option(
|
|
|
|
'shader-cache-max-size',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Default value for MESA_SHADER_CACHE_MAX_SIZE enviroment ' +
|
|
|
|
'variable. If set, determines the maximum size of the ' +
|
|
|
|
'on-disk cache of compiled shader programs, can be overriden ' +
|
|
|
|
'by enviroment variable if needed. Should be set to a number ' +
|
|
|
|
'optionally followed by ``K``, ``M``, or ``G`` to specify ' +
|
|
|
|
'a size in kilobytes, megabytes, or gigabytes. By default, ' +
|
|
|
|
'gigabytes will be assumed. And if unset, a maximum size of ' +
|
|
|
|
'1GB will be used.'
|
2020-10-18 04:43:59 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'vulkan-icd-dir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Location relative to prefix to put vulkan icds on install. ' +
|
|
|
|
'Default: $datadir/vulkan/icd.d'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-06-02 17:28:32 +08:00
|
|
|
option(
|
|
|
|
'moltenvk-dir',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'Location of the MoltenVk SDK. Default: '
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2019-01-20 05:26:12 +08:00
|
|
|
option(
|
2019-11-12 05:01:23 +08:00
|
|
|
'vulkan-layers',
|
|
|
|
type : 'array',
|
|
|
|
value : [],
|
vulkan/screenshot-layer: Add Vulkan screenshot layer
This change adds a Vulkan screenshot layer that allows users to take
screenshots from a Vulkan application, but has an emphasis on
performance, decreasing the performance impact on the application
involved. This allows for automated setups to use this layer to take
screenshots for navigating various in-application menus.
This layer works by hooking into various common Vulkan setup functions, until
it enters the vkQueuePresentKHR function, and from there it copies the current
frame's image from the swapchain as an RGB image to host-cached memory, where
we will receive the information as a framebuffer pointer. From there, we copy
the framebuffer contents to a thread that will detach from the main process
so it can write the image to a PNG file without holding back the main thread.
This layer was created from using the existing overlay layer as a template,
then adding portions of LunarG's VulkanTools screenshot layer:
https://github.com/LunarG/VulkanTools/blob/main/layersvt/screenshot.cpp
More specifically, there were usages of functions, along with modifications of
various functions from screenshot.cpp in the VulkanTools project, used in
screenshot.cpp.
There are some sections of the screenshotting functionality that remain
unmodified from the original screenshot.cpp file in VulkanTools, including the
global locking structures and the writeFile() function, which takes care of
obtaining the images from the swapchain. There were various areas in which
modifications were made, including how images are written to a file (using PNG
instead of PPM, introducing threading, added fences/semaphores, etc), along
with many smaller changes.
v2: Fix segfault upon application exit
v3: Fix filename issue with concatenation, along with some leftover
memory handling that wasn't cleaned up.
v4: Fix some error handling and nits
v5: Fix output directory handling
Reviewed-by: Ivan Briano <ivan.briano@intel.com
Signed-off-by: Casey Bowman <casey.g.bowman@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/30527>
2024-05-30 14:39:45 +08:00
|
|
|
choices : ['device-select', 'intel-nullhw', 'overlay', 'screenshot'],
|
2019-11-12 05:01:23 +08:00
|
|
|
description : 'List of vulkan layers to build'
|
2020-03-30 07:38:38 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'shared-glapi',
|
2022-12-21 07:12:47 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Whether to build a shared or static glapi. Defaults to ' +
|
2023-06-03 12:17:10 +08:00
|
|
|
'disabled on Windows, enabled elsewhere'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'gles1',
|
2022-12-21 07:17:13 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Build support for OpenGL ES 1.x'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'gles2',
|
2022-12-21 07:19:00 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Build support for OpenGL ES 2.x and 3.x'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'opengl',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
2023-07-12 18:28:00 +08:00
|
|
|
description : 'Build support for desktop OpenGL'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'gbm',
|
2022-12-21 07:21:11 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Build support for gbm platform'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-04-23 14:18:49 +08:00
|
|
|
option(
|
|
|
|
'gbm-backends-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Locations to search for gbm backends, passed as colon ' +
|
|
|
|
'separated list. Default: $libdir/gbm.'
|
2021-04-23 14:18:49 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'glx',
|
|
|
|
type : 'combo',
|
|
|
|
value : 'auto',
|
2021-04-16 01:07:40 +08:00
|
|
|
choices : ['auto', 'disabled', 'dri', 'xlib'],
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Build support for GLX platform'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-19 03:20:43 +08:00
|
|
|
option(
|
|
|
|
'egl',
|
2022-12-21 09:48:04 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-19 03:20:43 +08:00
|
|
|
description : 'Build support for EGL platform'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'glvnd',
|
2023-11-20 23:08:26 +08:00
|
|
|
type : 'feature',
|
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Enable GLVND support.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-07 00:09:30 +08:00
|
|
|
option(
|
|
|
|
'microsoft-clc',
|
2020-11-20 08:14:54 +08:00
|
|
|
type : 'feature',
|
2020-11-07 00:09:30 +08:00
|
|
|
value : 'auto',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2020-11-07 00:09:30 +08:00
|
|
|
description : 'Build support for the Microsoft CLC to DXIL compiler'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-12-22 06:58:47 +08:00
|
|
|
option(
|
|
|
|
'spirv-to-dxil',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Build support for the SPIR-V to DXIL library'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-18 23:26:19 +08:00
|
|
|
option(
|
|
|
|
'glvnd-vendor-name',
|
|
|
|
type : 'string',
|
|
|
|
value : 'mesa',
|
|
|
|
description : 'Vendor name string to use for glvnd libraries'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-06-07 11:25:09 +08:00
|
|
|
option(
|
|
|
|
'glx-read-only-text',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Disable writable .text section on x86 (decreases performance)'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'llvm',
|
2022-12-21 07:36:13 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-11 06:44:14 +08:00
|
|
|
description : 'Build with LLVM support.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-09-18 07:08:07 +08:00
|
|
|
option(
|
|
|
|
'shared-llvm',
|
2022-12-22 01:26:25 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2020-04-15 00:41:00 +08:00
|
|
|
description : 'Whether to link LLVM shared or statically.'
|
2018-09-18 07:08:07 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-02-25 02:42:49 +08:00
|
|
|
option(
|
|
|
|
'draw-use-llvm',
|
|
|
|
type : 'boolean',
|
2022-04-01 23:57:13 +08:00
|
|
|
value : true,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Whether to use LLVM for the Gallium draw module, if LLVM ' +
|
|
|
|
'is included.'
|
2021-02-25 02:42:49 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2024-04-29 22:52:25 +08:00
|
|
|
option(
|
|
|
|
'amd-use-llvm',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'Whether to use LLVM for the AMD drivers, if LLVM ' +
|
|
|
|
'is included.'
|
|
|
|
)
|
|
|
|
|
2024-06-25 13:50:51 +08:00
|
|
|
option (
|
|
|
|
'llvm-orcjit',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2024-08-10 18:15:23 +08:00
|
|
|
description: 'Build llvmpipe with LLVM ORCJIT support. Has no effect when ' +
|
|
|
|
'building for architectures without LLVM MCJIT support -- ' +
|
|
|
|
'ORCJIT is the only choice on such architectures and will ' +
|
|
|
|
'always be enabled.'
|
2024-06-25 13:50:51 +08:00
|
|
|
)
|
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'valgrind',
|
2022-12-21 07:38:10 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-25 16:02:38 +08:00
|
|
|
description : 'Build with valgrind support'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-24 02:54:03 +08:00
|
|
|
option(
|
|
|
|
'libunwind',
|
2022-12-21 07:41:44 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-10-25 16:02:38 +08:00
|
|
|
description : 'Use libunwind for stack-traces'
|
2017-10-24 02:54:03 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-11-29 08:42:37 +08:00
|
|
|
option(
|
|
|
|
'lmsensors',
|
2022-12-21 07:43:55 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2017-11-29 08:42:37 +08:00
|
|
|
description : 'Enable HUD lmsensors support.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2017-10-11 06:44:14 +08:00
|
|
|
option(
|
|
|
|
'build-tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Build unit tests. Currently this will build *all* unit ' +
|
|
|
|
'tests except the ACO tests, which may build more than expected.'
|
2020-01-23 03:58:27 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-08-09 22:29:13 +08:00
|
|
|
option(
|
|
|
|
'enable-glcpp-tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'Build glcpp unit tests. These are flaky on CI.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-01-23 03:58:27 +08:00
|
|
|
option(
|
|
|
|
'build-aco-tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Build ACO tests. These require RADV and glslang but not ' +
|
|
|
|
'an AMD GPU.'
|
2017-10-11 06:44:14 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2019-04-02 23:26:09 +08:00
|
|
|
option(
|
|
|
|
'install-intel-gpu-tests',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Build and install Intel unit tests which require the GPU. ' +
|
|
|
|
'This option is for developers and the Intel CI system only.'
|
2019-04-02 23:26:09 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-06-21 19:07:54 +08:00
|
|
|
option(
|
|
|
|
'html-docs',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'disabled',
|
|
|
|
description : 'Build HTML documentation.'
|
|
|
|
)
|
|
|
|
|
2023-05-23 15:56:20 +08:00
|
|
|
option(
|
|
|
|
'html-docs-path',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'Location to install HTML documentation. Default: $datadir/doc/mesa.'
|
|
|
|
)
|
|
|
|
|
2017-10-26 23:19:41 +08:00
|
|
|
option(
|
|
|
|
'selinux',
|
|
|
|
type : 'boolean',
|
2024-10-15 15:46:19 +08:00
|
|
|
deprecated : true,
|
|
|
|
description : 'Does nothing, left here for a while to avoid build breakages.',
|
2021-05-26 04:21:40 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-06-28 02:39:27 +08:00
|
|
|
option(
|
|
|
|
'execmem',
|
|
|
|
type : 'boolean',
|
|
|
|
deprecated : true,
|
|
|
|
description : 'Does nothing, left here for a while to avoid build breakages.',
|
|
|
|
)
|
|
|
|
|
2017-10-21 12:48:18 +08:00
|
|
|
option(
|
|
|
|
'osmesa',
|
2019-07-04 02:10:32 +08:00
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2017-10-21 12:48:18 +08:00
|
|
|
description : 'Build OSmesa.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-02-08 08:55:24 +08:00
|
|
|
option(
|
|
|
|
'tools',
|
2018-04-17 06:18:08 +08:00
|
|
|
type : 'array',
|
|
|
|
value : [],
|
2022-08-20 00:10:52 +08:00
|
|
|
choices : ['drm-shim', 'etnaviv', 'freedreno', 'glsl', 'intel', 'intel-ui',
|
|
|
|
'nir', 'nouveau', 'lima', 'panfrost', 'asahi', 'imagination',
|
|
|
|
'all', 'dlclose-skip'],
|
2018-10-30 19:26:46 +08:00
|
|
|
description : 'List of tools to build. (Note: `intel-ui` selects `intel`)',
|
2018-02-08 08:55:24 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-06-08 02:13:34 +08:00
|
|
|
option(
|
|
|
|
'power8',
|
2022-12-21 08:06:10 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2018-06-08 02:13:34 +08:00
|
|
|
description : 'Enable power8 optimizations.',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-02-09 23:45:58 +08:00
|
|
|
option(
|
|
|
|
'xlib-lease',
|
2022-12-21 08:36:46 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2018-02-09 23:45:58 +08:00
|
|
|
description : 'Enable VK_EXT_acquire_xlib_display.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-12-05 02:06:08 +08:00
|
|
|
option(
|
|
|
|
'glx-direct',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
|
|
|
description : 'Enable direct rendering in GLX and EGL for DRI',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-06-14 06:17:32 +08:00
|
|
|
option('egl-lib-suffix',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'Suffix to append to EGL library name. Default: none.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2018-06-14 06:17:32 +08:00
|
|
|
option(
|
|
|
|
'gles-lib-suffix',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
|
|
|
description : 'Suffix to append to GLES library names. Default: none.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2019-03-16 01:08:45 +08:00
|
|
|
option(
|
|
|
|
'platform-sdk-version',
|
|
|
|
type : 'integer',
|
|
|
|
min : 25,
|
2022-03-14 23:24:30 +08:00
|
|
|
max : 10000,
|
2019-03-16 01:08:45 +08:00
|
|
|
value : 25,
|
|
|
|
description : 'Android Platform SDK version. Default: Nougat version.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-02-02 01:58:02 +08:00
|
|
|
option(
|
|
|
|
'allow-kcmp',
|
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Allow using KCMP_FILE to compare file descriptions. ' +
|
|
|
|
'auto = allowed everywhere except on Android'
|
2023-02-02 01:58:02 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2019-11-01 04:26:00 +08:00
|
|
|
option(
|
|
|
|
'zstd',
|
2022-12-21 08:37:35 +08:00
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2019-11-01 04:26:00 +08:00
|
|
|
description : 'Use ZSTD instead of ZLIB in some cases.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-27 00:48:38 +08:00
|
|
|
option(
|
|
|
|
'zlib',
|
|
|
|
type : 'feature',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2020-11-27 00:48:38 +08:00
|
|
|
value : 'enabled',
|
|
|
|
description : 'Use ZLIB to build driver. Default: enabled'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2020-11-27 00:47:10 +08:00
|
|
|
option(
|
|
|
|
'sse2',
|
|
|
|
type : 'boolean',
|
|
|
|
value : true,
|
2021-03-27 07:25:01 +08:00
|
|
|
description : 'use msse2 flag for x86. Uses sse/sse2 instead of x87. Default: true',
|
2020-11-27 00:47:10 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-03-15 23:07:39 +08:00
|
|
|
option(
|
|
|
|
'perfetto',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Enable performance analysis with Perfetto. Default: false'
|
2021-03-19 01:30:45 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-03-19 01:30:45 +08:00
|
|
|
option(
|
|
|
|
'datasources',
|
|
|
|
type : 'array',
|
|
|
|
value : ['auto'],
|
2021-03-18 02:27:30 +08:00
|
|
|
choices : ['auto', 'panfrost', 'intel', 'freedreno'],
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'List of Perfetto datasources to build. If this is set to ' +
|
|
|
|
'`auto`, datasources that can not be build are skipped. ' +
|
|
|
|
'Default: [`auto`]'
|
2021-03-19 01:30:45 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-09-07 00:26:37 +08:00
|
|
|
option(
|
|
|
|
'teflon',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Enable TensorFlow Lite delegate. Default: false'
|
|
|
|
)
|
|
|
|
|
2023-04-14 20:07:40 +08:00
|
|
|
option(
|
|
|
|
'gpuvis',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Enable tracing markers for gpuvis. Default: false'
|
|
|
|
)
|
|
|
|
|
2021-05-27 22:06:15 +08:00
|
|
|
option(
|
|
|
|
'custom-shader-replacement',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-08-20 00:10:52 +08:00
|
|
|
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).'
|
2021-05-27 22:06:15 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-03-30 23:56:47 +08:00
|
|
|
option(
|
|
|
|
'vmware-mks-stats',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Build gallium VMware/svga driver with mksGuestStats ' +
|
|
|
|
'instrumentation.'
|
2021-03-30 23:56:47 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-11-05 07:52:05 +08:00
|
|
|
option(
|
|
|
|
'vulkan-beta',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Build vulkan drivers with BETA extensions enabled.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2021-02-20 00:34:49 +08:00
|
|
|
option(
|
|
|
|
'intel-clc',
|
2023-09-01 01:16:29 +08:00
|
|
|
type : 'combo',
|
2024-02-16 04:36:58 +08:00
|
|
|
deprecated: {'true': 'enabled'},
|
2024-02-13 17:36:17 +08:00
|
|
|
value : 'auto',
|
2023-09-01 01:16:29 +08:00
|
|
|
choices : [
|
2024-02-13 17:36:17 +08:00
|
|
|
'enabled', 'system', 'auto'
|
2023-09-01 01:16:29 +08:00
|
|
|
],
|
2024-02-13 17:36:17 +08:00
|
|
|
description : 'Build the intel-clc compiler or use a system version.'
|
2023-11-06 17:10:23 +08:00
|
|
|
)
|
|
|
|
|
2024-02-12 21:06:06 +08:00
|
|
|
option(
|
|
|
|
'install-intel-clc',
|
|
|
|
type : 'boolean',
|
|
|
|
value : false,
|
|
|
|
description : 'Install the intel-clc compiler (if needed for cross builds).'
|
|
|
|
)
|
|
|
|
|
2023-11-06 17:10:23 +08:00
|
|
|
option(
|
|
|
|
'intel-rt',
|
2024-02-16 04:08:20 +08:00
|
|
|
type : 'feature',
|
2023-11-06 17:10:23 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
|
|
|
description : 'Build Ray Tracing on supported hardware.'
|
2021-02-20 00:34:49 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-03-07 10:37:29 +08:00
|
|
|
option(
|
|
|
|
'video-codecs',
|
|
|
|
type : 'array',
|
2023-11-22 00:08:15 +08:00
|
|
|
value : ['all_free'],
|
2022-03-07 10:37:29 +08:00
|
|
|
choices: [
|
2023-11-22 00:08:15 +08:00
|
|
|
'all', 'all_free', 'vc1dec', 'h264dec', 'h264enc', 'h265dec', 'h265enc', 'av1dec', 'av1enc', 'vp9dec'
|
2022-03-07 10:37:29 +08:00
|
|
|
],
|
2023-11-22 00:08:15 +08:00
|
|
|
description : 'List of codecs to build support for. ' +
|
2022-08-20 00:10:52 +08:00
|
|
|
'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 ' +
|
2023-11-22 00:08:15 +08:00
|
|
|
'enabled by default with the all_free default value.'
|
2022-03-07 10:37:29 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-05-23 22:10:36 +08:00
|
|
|
option(
|
|
|
|
'gallium-d3d12-video',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2022-05-23 22:10:36 +08:00
|
|
|
description : 'build gallium d3d12 with video support.',
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2023-08-03 00:58:17 +08:00
|
|
|
option(
|
|
|
|
'gallium-d3d12-graphics',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
|
|
|
description : 'build gallium d3d12 with graphics pipeline support.',
|
|
|
|
)
|
|
|
|
|
2022-07-09 00:18:13 +08:00
|
|
|
option(
|
|
|
|
'radv-build-id',
|
|
|
|
type : 'string',
|
|
|
|
value : '',
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Override build id for shader cache keys (hex string). ' +
|
|
|
|
'Can be extracted with readelf -x .note.gnu.build-id'
|
2022-07-09 02:16:44 +08:00
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-07-09 02:16:44 +08:00
|
|
|
option(
|
|
|
|
'min-windows-version',
|
|
|
|
type : 'integer',
|
|
|
|
min : 7,
|
|
|
|
max : 11,
|
|
|
|
value : 8,
|
|
|
|
description : 'Minimum Windows version to support. Defaults to Windows 8.'
|
|
|
|
)
|
2022-08-20 00:10:52 +08:00
|
|
|
|
2022-11-10 03:30:31 +08:00
|
|
|
option(
|
|
|
|
'xmlconfig',
|
|
|
|
type : 'feature',
|
|
|
|
value : 'auto',
|
2023-02-23 18:48:58 +08:00
|
|
|
deprecated: {'true': 'enabled', 'false': 'disabled'},
|
2022-08-20 00:10:52 +08:00
|
|
|
description : 'Build custom xmlconfig (driconf) support. If disabled, ' +
|
|
|
|
'the default driconf file is hardcoded into Mesa. ' +
|
|
|
|
'Requires expat.'
|
2024-04-15 21:10:40 +08:00
|
|
|
)
|
2024-06-28 23:02:09 +08:00
|
|
|
|
|
|
|
option(
|
|
|
|
'legacy-x11',
|
|
|
|
type : 'array',
|
|
|
|
value : ['none'],
|
|
|
|
description : 'Build legacy X11 support features.',
|
|
|
|
choices : [
|
|
|
|
'none', 'dri2'
|
|
|
|
],
|
|
|
|
)
|