Closed tim-rex closed 7 months ago
Would you mind sending this as an email to "vulkan-support@nvidia.com"? That is our mailing list for Vulkan developer support. It's monitored by folks who should be able to answer your question.
Thanks @erik-kz , much appreciated. I'll close this issue and report back if anything relevant comes back.
Response from nVidia follows
We know what causes this issue, and we're discussing internally whether it should be considered a loader bug or a driver bug (I.e., whether it's valid for an ICD to return NULL when queried for these bootstrap-level function pointers if driver init has failed).
This may not be the right project for this issue, please advise if that is the case as this is very probably for the driver team. It's quite minor, as things go.
I have two scenarios where vulkaninfo will report
Scenario 1) When the nVidia drivers are not loaded at all (example: A dual GPU configuration and booting up with nvidia drivers disabled).
Secnario 2) When the nVidia drivers are enabled but have not been fully initialized. A bit of a deep dive this one. See thread here
The second scenario is perhaps harder to reason about, so I'll focus on the first. I have the nvidia drivers blacklisted, and can confirm they are not loaded. Nothing will attempt to load them and nvidia-modprobe is out of the picture.
Under normal circumstances, a tool such as vulkaninfo would query all available devices via their ICD. In the case where nvidia drivers are not loaded at all, I would expect no such errors and for there simply to not be a device to query.
I'm unfamiliar with what the ICD loader should expect from a driver in a scenario where the drivers are not loaded at all, however I note that when I am running with nvidia drivers only, there are no such errors forthcoming from the radeon ICD.
I could work around this myself of course (various overrides mechanisms defined here)
Looking at the documentation for Driver Entry Point Discovery , it states:
I suppose that means gkGetInstanceProcAddr should be available from _libGLXnvidia.so.0 via _vkicdGetInstanceProcAddr, regardless of wether the drivers are fully initialised or not. Beyond that, I'm not sure how the device not being available should be negotiated.
Here's the full output of vulkaninfo
Here's the nvidia ICD definition