Use driver-provided list of libraries when building runtime environment
At NVIDIA, we somewhat frequently re-arrange the libraries used by our Vulkan and OpenGL drivers to optimally share code and enable new features. Most of the time, these dependencies are picked up automatically via DT_NEEDED tree walking, but sometimes, for various reasons, we opt for runtime dynamic loading rather than build-time dependencies. Additionally, other issues specific to containerized/sandboxed environments, such as access to specific device files, /proc and /sys nodes, new permissions requirements, come up from time to time.
To make things easier on the various applications (browsers, pressure vessel, container toolkits) attempting to import our userspace drivers, we're exploring the benefits of shipping a machine-parseable manifest of files along with our drivers that would roughly describe what files are included and perhaps the purpose of each, such that containers could pick and choose what they import in a way that would work consistently across driver upgrades.
We made our initial proposal on the Chrome graphics developer mailing list here:
https://groups.google.com/a/chromium.org/g/graphics-dev/c/nsq8J9vGmaQ
And received some feedback. We wanted to invite the pressure vessel/steam runtime devs to provide feedback as well, either here or by responding on the existing Google group discussion.