Skip to content

Share a single JSON manifest per Vulkan driver between all architectures

Simon McVittie requested to merge smcv/mesa:bug980148 into debian-unstable
  • Share a single JSON manifest per Vulkan driver between all architectures

    Because our Vulkan driver libraries are installed to a directory in the dynamic linker's search path, we can list them in their JSON manifest by the library's basename rather than its absolute path. This makes the content of the JSON manifest the same for each architecture, so it can be a single file shared between architectures via dpkg's multiarch file reference-counting.

    This avoids multiarch file collisions between pairs of architectures that have the same Meson CPU name but a different library directory, such as armel and armhf.

    The JSON manifests for Mesa's EGL driver and Vulkan layers, and for the Nvidia proprietary driver's Vulkan driver, are already implemented this way.

Closes: #980148


Briefly tested with vkgears on my x86 Intel system: both vkgears.x86_64-linux-gnu and vkgears.i386-linux-gnu successfully load libvulkan_intel_hasvk.so and so on, and render some gears. libvulkan_gfxstream.so which only exists for 64-bit on my system is successfully loaded by the 64-bit loader, and correctly fails to load (with no error message shown) with the 32-bit loader.

Merge request reports

Loading