mesa/src/broadcom/vulkan
Simon McVittie b860ae309a vulkan: Optionally share one JSON manifest per driver between architectures
If the library_path is just a basename like `libvulkan_lvp.so`, then we
can share the same JSON manifest like `lvp_icd.json` between all of the
architectures, like we already do for Vulkan layers. The library will
be looked up in the dynamic linker's default search path in this case,
and in practice will be found in `${libdir}`. This is how the Mesa's
EGL driver and Vulkan layers work, how Mesa is packaged in Debian 13,
and also how the Nvidia proprietary driver works; it makes installation
simpler for distros, especially on multiarch systems like Debian and
the freedesktop.org SDK.

However, if we want a separate manifest per architecture in order to
be able to write the full path into it, we still need per-architecture
filename disambiguation like `lvp_icd.x86_64.json`.

We presumably still want a separate per architecture on Windows, because
the concept of a single monolithic `${libdir}` is less common there, and
it can also be helpful during development when setting `$VK_DRIVER_FILES`
to force the use of a specific driver installed in a non-default location.

Use the following parameter to passed to vk_icd_gen:
'--icd-lib-path', vulkan_icd_lib_path,
'--icd-filename', icd_file_name,
output : 'virtio_icd.' + vulkan_manifest_suffix,

and the output is passed by '--out', '@OUTPUT@',
so we can detect vulkan_manifest_per_architecture from the --out parameter in script.

Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/13745
Signed-off-by: Simon McVittie <smcv@collabora.com>
Co-authored-by: Yonggang Luo <luoyonggang@gmail.com>
Reviewed-by: Mel Henning <mhenning@darkrefraction.com>
Reviewed-by: Matt Turner <mattst88@gmail.com>
Reviewed-by: Eric Engestrom <eric@igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/37314>
2025-11-24 19:05:57 +00:00
..
.dir-locals.el
.editorconfig
meson.build vulkan: Optionally share one JSON manifest per driver between architectures 2025-11-24 19:05:57 +00:00
v3dv_bo.c mesa: replace most occurrences of getenv() with os_get_option() 2025-11-06 04:36:13 +00:00
v3dv_bo.h v3dv: store the offset of the BRANCH instruction in a CL 2024-04-03 12:57:56 +02:00
v3dv_cl.c v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
v3dv_cl.h v3d,v3dv: document cl_emit_with_prepacked 2024-06-07 09:44:13 +02:00
v3dv_cmd_buffer.c broadcom/common: Add subgroup support to CSD super-group packing 2025-10-13 08:25:24 +02:00
v3dv_descriptor_set.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
v3dv_device.c mesa: replace most occurrences of getenv() with os_get_option() 2025-11-06 04:36:13 +00:00
v3dv_event.c treewide: use nir_break_if with named if 2025-06-30 14:51:54 -04:00
v3dv_formats.c v3dv: only apply simulator stride alignment for from_wsi images 2025-11-12 21:03:42 +00:00
v3dv_image.c v3dv: only apply simulator stride alignment for from_wsi images 2025-11-12 21:03:42 +00:00
v3dv_limits.h v3dv/device: set value for maxInlineUniformTotalSize 2024-08-05 15:10:24 +00:00
v3dv_meta_clear.c v3dv: Take format plane when packing hw clear color 2025-09-30 12:48:42 +00:00
v3dv_meta_common.h v3dv/v3d: Fix copyright holder to Raspberry Pi Ltd 2022-02-18 11:50:07 +01:00
v3dv_meta_copy.c v3dv: Enable VK_FORMAT_B8G8R8A8_SNORM format 2025-11-06 13:34:53 +00:00
v3dv_pass.c v3dv: Switch to v3d_X(..) 2024-12-02 14:13:24 +00:00
v3dv_pipeline.c nir: rename nir_lower_indirect_derefs -> nir_lower_indirect_derefs_to_if_else_trees 2025-11-20 05:42:11 +00:00
v3dv_pipeline_cache.c v3dv: use Mesa log infrastructure instead of using stderr 2024-11-26 12:09:29 +00:00
v3dv_private.h v3dv: only apply simulator stride alignment for from_wsi images 2025-11-12 21:03:42 +00:00
v3dv_query.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
v3dv_queue.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
v3dv_uniforms.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
v3dv_wsi.c v3dv: adopt wsi_common_get_memory 2025-07-10 09:51:39 +00:00
v3dvx_cmd_buffer.c v3dv: enable forward facing primitive for lines and points 2025-10-29 11:10:59 +00:00
v3dvx_descriptor_set.c v3dv: add support for multi-planar formats, enable YCbCr 2023-01-16 14:10:21 +00:00
v3dvx_device.c v3dv: Add support for 16bit normalised formats 2025-09-30 12:48:43 +00:00
v3dvx_formats.c v3dv: Enable VK_FORMAT_B8G8R8A8_SNORM format 2025-11-06 13:34:53 +00:00
v3dvx_image.c v3dv: use new texture shader state rb_swap and reverse fields in v3d 7.x 2023-10-13 22:37:43 +00:00
v3dvx_meta_common.c v3dv: fix a few asserts that check layerCount instead of array_layers 2024-06-06 07:12:27 +00:00
v3dvx_pipeline.c build: avoid redefining unreachable() which is standard in C23 2025-07-31 17:49:42 +00:00
v3dvx_private.h v3dv: Take format plane when packing hw clear color 2025-09-30 12:48:42 +00:00
v3dvx_queue.c v3d,v3dv: don't use max internal bpp for tile sizing in V3D 7.x 2023-10-13 22:37:43 +00:00