vkel icon indicating copy to clipboard operation
vkel copied to clipboard

vkelDeviceInit crashes on NVIDIA driver

Open Mixthos opened this issue 9 years ago • 4 comments

The line where it crashes is:

__vkGetPhysicalDeviceDisplayPlanePropertiesKHR = (PFN_vkGetPhysicalDeviceDisplayPlanePropertiesKHR) vkelGetDeviceProcAddr(device, "vkGetPhysicalDeviceDisplayPlanePropertiesKHR");

I crashes inside vkelGetInstanceProcAddr(NULL, pName) at the call to vkGetInstanceProcAddr(instance, pName).

This is probably a bug in NVIDIA's driver, but it could be avoided by checking for extension support before trying to get an extension's function pointers.

Mixthos avatar Aug 11 '16 17:08 Mixthos

I also crashes on loading vkInternalAllocationNotification, vkInternalFreeNotification, vkReallocationFunction and vkVoidFunction. Those aren't Vulkan functions; they're supposed to be defined by the application. (Although the driver shouldn't crash on trying to load a non-existing function anyway.)

Mixthos avatar Aug 11 '16 18:08 Mixthos

I also crashes on vkelGetDeviceProcAddr(device, "vkCreateWin32SurfaceKHR"). Probably because vkCreateWin32SurfaceKHR is part of an instance extension.

Mixthos avatar Aug 11 '16 18:08 Mixthos

I could use some more information if you don't mind! :)

Could you clarify which OS you're using? and also after calling vkelInit() (assuming it returns VK_TRUE), does printing the address of either vkGetInstanceProcAddr or vkGetDeviceProcAddr result in a null pointer?

vallentin avatar Aug 12 '16 10:08 vallentin

Sorry for the late response; I was on vacation.

The OS is Windows 10 64-bit. vkelInit() returns true and neither vkGetInstanceProcAddr nor vkGetDeviceProcAddr is a null pointer.

Mixthos avatar Aug 21 '16 12:08 Mixthos