Home > Mobile >  Weird error when calling vkCreateInstance()
Weird error when calling vkCreateInstance()

Time:12-14

When I try to call vkCreateInstance() , the following error is returned from the validation layers:

validation layer: windows_get_device_registry_files: GUID for 2 is not SoftwareComponent skipping
validation layer: Searching for ICD drivers named .\nvoglv64.dll
validation layer: Build ICD instance extension list

Seems like it couldn't find nvoglv64.dll? But I am very sure this is included in the NVIDIA drivers.

btw, I am using NVIDIA game ready driver ver.527.56 on windows11.

A more detailed loader debug info:

INFO | DRIVER:    windows_get_device_registry_entry: Device ID(1) Does not contain a value for "VulkanExplicitLayers"
INFO | DRIVER:    windows_get_device_registry_entry: Device ID(1) Does not contain a value for "VulkanExplicitLayers"
DRIVER:           Checking for Driver Manifest files in Registry at SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found no registry files in SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found ICD manifest file C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_f52c4b8723f8dd33\nv-vk64.json, version "1.0.0"
DRIVER:           Checking for Driver Manifest files in Registry at SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found no registry files in SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found ICD manifest file C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_f52c4b8723f8dd33\nv-vk64.json, version "1.0.0"
DRIVER:           Checking for Driver Manifest files in Registry at SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found no registry files in SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found ICD manifest file C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_f52c4b8723f8dd33\nv-vk64.json, version "1.0.0"
INFO | DRIVER:    windows_get_device_registry_entry: Device ID(1) Does not contain a value for "VulkanExplicitLayers"
validation layer: windows_get_device_registry_files: GUID for 2 is not SoftwareComponent skipping
DRIVER:           Checking for Driver Manifest files in Registry at SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found no registry files in SOFTWARE\Khronos\Vulkan\Drivers
DRIVER:           Found ICD manifest file C:\WINDOWS\System32\DriverStore\FileRepository\nv_dispi.inf_amd64_f52c4b8723f8dd33\nv-vk64.json, version "1.0.0"
validation layer: Searching for ICD drivers named .\nvoglv64.dll
validation layer: Build ICD instance extension list

and then it crashed.

CodePudding user response:

These messages are from the Vulkan loader (the part of the Vulkan component on your system which finds Vulkan layers and drivers). The loader sends out messages to the DebugReport/DebugUtils message logger which is why you are likely seeing them when you enable validation.

The first message states that it couldn't verify that there was a software component in the specified driver registry directory. The second message says it knew to look for nvoglv64.dll, so it must have found some driver Manifest JSON listing somewhere in the registry. The third message is just info.

You can filter out just the loader messages by running from the command line with set VK_LOADER_DEBUG=all and then re-running. This outputs messages to stdout/stderr. If you have a "newer" loader, you can even just do set VK_LOADER_DEBUG=driver which will just ouput driver-specific messages for easier filtering.

Without any of that, though, my first guess might be a bad Nvidia driver install. But dumping out loader debug info would be a great help.

CodePudding user response:

The error is due to false lifetime management of the createinfo struct, passing a null value into the vkCreateInstance() function.

  • Related