Hi, I’m on a freshly installed ubuntu 22.04 server, trying to run a program that uses VK_EXT_external_memory_dma_buf. vulkan-info shows the extension as missing, even though similar extensions such as VK_EXT_image_drm_format_modifier are present:
The nvidia_drm module is definitely loaded. From dmesg:
[ 1.790275] nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 545.29.06 Thu Nov 16 01:47:29 UTC 2023
[ 1.792492] [drm] [nvidia-drm] [GPU ID 0x00000005] Loading driver
[ 1.792496] [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:00:05.0 on minor 0
Additionally, if I skip the check for the extension in my application, VkPhysicalDeviceDrmPropertiesEXT is empty when used with GetPhysicalDeviceProperties2, even though that comes from the VK_EXT_physical_device_drm extension, which is present (and enabled).
Is nvidia-drm.ko (or nvidia-drm.ko.zst or similar) in your initrd? You might need to run sudo update-initramfs to make sure the configuration in /etc/modprobe.d/* is copied into the initramfs.
If all else fails I think you can add nvidia-drm.modeset=1 to your kernel command line parameters from the bootloader.
Hmm, okay. Does your user have access to the relevant /dev/dri/renderD* device file? You might need getfacl /dev/dri/* to see the extended attributes on them.
I needed to usermod -aG render <myuser> and restart the shell. I had already added the user to the video group, but I didn’t know about the render group.
I apologize that it was such a basic oversight. Thanks so much for the help troubleshooting!