Crash in vkCreateInstance()

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

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: (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 :-) .