Crash in vkCreateInstance()

Hi, our support team was solving a crash with one of our customers. The problem was narrowed to Vulkan driver problem.

Details:
I am getting crash in vkCreateInstance() on Win10 system and Quadro 2000. Surely, there is no Vulkan support on Fermi generation, but all I expect is no crash as our software can safely continue running without Vulkan. So, I would either expect that there would be no vulkan-1.dll in the system, or that the system refuses to create Vulkan Instance, or (preferably) that it will return zero devices, or something similar. Instead, I am getting application crash inside Vulkan driver - yes, there is vulkan driver installed on this system - installed by the latest driver installer for this graphics card.

vkvia output of the problematic system:
vkvia.html (19.6 KB)

Steps to reproduce:

  • get system with Quadro 2000 (Fermi generation) and install the latest graphics drivers
  • call vkCreateInstance with VK_KHR_get_physical_device_properties2 among the extensions and with apiVersion VK_API_VERSION_1_0.
  • crash inside vkCreateInstance() follows

Note that the crash does not happen with apiVersion VK_API_VERSION_1_1 and it does not happen if I replace VK_KHR_get_physical_device_properties2 with some arbitrary string.

To further analyze the problem, I created simple application:
main.cpp (2.0 KB)
executable and 8 batch files for various options:
vulkanInstanceCrash.zip (25.8 KB)

In “results” subfolder, you can see v10-noExtension.txt that shows the correct failure in enumeratePhysicalDevices():

Creating instance (apiVersion: 0x400000, extensionName: < nullptr >)…
Instance created.
Failed because of Vulkan exception: vk::Instance::enumeratePhysicalDevices: ErrorInitializationFailed

I believe that error is correct although returning just zero devices would be better (?).

In v10-PhysicalDeviceProperties2Extension.txt, you can see only single line not followed by “Instance created” text because of the crash inside vkCreateInstance():

Creating instance (apiVersion: 0x400000, extensionName: VK_KHR_get_physical_device_properties2)…

This is the problematic case that would be nice to have fixed by the correct Vulkan error instead of application crash.

The rest of txt files shows various Vulkan error codes returned on this Vulkan-free system. Hopefully, the error codes are right and according to doc. Anyway, no crash is all that I am asking :-) .

John

Thank you for reporting the bug. I have reviewed the development timeline. In the vkvia.html it reports a driver version 21.21.13.7783. NVIDIA DRIVERS Quadro Desktop/Quadro Notebook Driver Release 375 WHQL shows it was released on 2018.1.18. Vulkan 1.1 driver was first release on March 7th, 2018 - Windows 389.10, Linux 387.42.05 based on Vulkan Driver Support | NVIDIA Developer. Unfortunately we cannot port a new Vulkan version back into an older branch because all the new features and its dependencies.

Please, do not port Vulkan 1.1 to Quadro 2000, or, actually I do not care. I would rather see Vulkan 1.0 fixed. That is the point when it crashes.

If I may suggest the solution: Just do not initialize Vulkan support in the driver as Quadro 2000 is GF106GL (Fermi). I do not think you support Vulkan on Fermi generation.