Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Error] ICD loader specification update breaks Vulkan inside distrobox containers when using NVIDIA driver host integration (openSUSE and Fedora) #1687

Open
m4nn opened this issue Feb 13, 2025 · 0 comments · May be fixed by #1688
Labels
bug Something isn't working

Comments

@m4nn
Copy link

m4nn commented Feb 13, 2025

Describe the bug

A change to openSUSE's NVIDIA graphics driver kernel module package that can be traced back to release 550.120 results in a naming convention alteration to the Vulkan ICD configuration file, from nvidia_icd.json to nvidia_icd.%{_target_cpu}.json.

The consequence of this is that any distrobox container created using --nvidia will be unable to utilize Vulkan within the guest container due to the missing ICD configuration file.

As far as my understanding goes, the change is valid due to an update to the ICD loader specification where the expected file pattern is vendor_icd.target_cpu.json. The specification was updated to avoid conflict where both i686 and x86_64 Vulkan libraries are utilized on the same system, Mesa drivers are also using the same pattern from what I can see.

To Reproduce

  1. Create a container with NVIDIA driver host integration: distrobox-create -n test --nvidia
  2. Enter the container: distrobox-enter test
  3. Install the Vulkan tools package: sudo zypper install --no-recommends vulkan-tools
  4. Verify integrity of Vulkan: vulkaninfo --summary and/or vkcube

Expected behavior

  1. vulkaninfo --summary to return Vulkan information summary.
  2. vkcube to render the 3D cube verifying a successful Vulkan install.

Logs

  1. vulkaninfo --summary output:
WARNING: [Loader Message] Code 0 : Layer VK_LAYER_MESA_device_select uses API version 1.3 which is older than the application specified API version of 1.4. May cause issues.
ERROR: [Loader Message] Code 0 : setup_loader_term_phys_devs:  Failed to detect any valid GPUs in the current config
ERROR at /home/abuild/rpmbuild/BUILD/Vulkan-Tools-1.4.304/vulkaninfo/./vulkaninfo.h:247:vkEnumeratePhysicalDevices failed with ERROR_INITIALIZATION_FAILED
  1. vkcube output:
Selected WSI platform: xcb
vkEnumeratePhysicalDevices reported zero accessible devices.

Do you have a compatible Vulkan installable client driver (ICD) installed?
Please look at the Getting Started guide for additional information.

Desktop (please complete the following information):

  • Are you using podman, docker or lilipod? podman
  • Which version or podman, docker or lilipod? podman version 5.3.2
  • Which version of distrobox? distrobox: 1.8.1.2
  • Which host distribution? openSUSE Tumbleweed 20250209
  • How did you install distrobox? sudo zypper install --no-recommends distrobox

Additional context

The naming convention has also been amended in the equivalent Fedora package and I would suspect in other Linux distributions too.

@m4nn m4nn added the bug Something isn't working label Feb 13, 2025
@m4nn m4nn changed the title [Error] ICD loader specification update breaks Vulkan inside distrobox containers when using NVIDIA driver host integration (OpenSUSE and Fedora) [Error] ICD loader specification update breaks Vulkan inside distrobox containers when using NVIDIA driver host integration (openSUSE and Fedora) Feb 13, 2025
m4nn pushed a commit to m4nn/distrobox that referenced this issue Feb 14, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
1 participant