1
votes

According to this Vulkan tutorial, I can use vkEnumeratePhysicalDevices to get a list of available GPUs. However, I don't see my external NVIDIA GPU in there, only my Intel iGPU.

This eGPU is connected via Thunderbolt and is running CUDA code just fine. Is there anything I might have missed? Is it supposed to work out of the box?

My machine is running Arch Linux with up-to-date proprietary NVIDIA drivers.

The eGPU is a NVIDIA GTX 1050 (Lenovo Graphics Dock). Is it possible that it just does not support Vulkan somehow?

1
Yes, it should work out of the box. The NVIDIA GTX 1050 supports Vulkan definitely. The reason why it does not show up must be a different one. Do you have the option to test on a different operating system? - j00hi
I don't have a windows/mac machine at home, but I will try to bring my eGPU at work to test it on a windows system. - Touloudou
You can forget about Mac, but testing on Windows is a good idea. Enumerating the different physical devices always worked well for me. The only situation that I have encountered, that limits the choices of physical devices, is when you do not set the "Preferred graphics processor" setting to "Auto-select" in the NVIDIA control panel under Manage 3D Settings on a Notebook. Only the "Auto-select" option will allow all physical devices to be returned by vkEnumeratePhysicalDevices. - j00hi

1 Answers

0
votes

Vulkan support should work just as well with external GPUs (eGPUs). Seeing the eGPU enumerated as a Vulkan device may require the eGPU to be recoznized by Xorg (or Wayland in the future).

See recently created https://wiki.archlinux.org/title/External_GPU#Xorg for changes probably required in Xorg config.