vkGetDeviceProcAddr and vkDestroySurfaceKHR

I don’t know why but for some reason vkGetDeviceProcAddr returns NULL only for vkDestroySurfaceKHR. Is this intended? It feels like a bug because the vkGetInstanceProcAddr returns non-NULL and the other functions from KHR_surface extension are there. I’m using a GeForce 780 GTX with the driver version 368.39 and Windows 10 64bits. Thanks in advance for any info.

vkDestroySurfaceKHR is an instance-level function and vkGetInstanceProcAddr should be used for its retrieval.

From Valid Usage for vkGetDeviceProcAddr (https://www.khronos.org/registry/vulkan/specs/1.0-wsi_extensions/xhtml/vkspec.html#vkGetDeviceProcAddr):

pName must be the name of a supported command that has a first parameter of type VkDevice, VkQueue or VkCommandBuffer, either in the core API or an enabled extension

I’ve read that in the spec but I was confused because the only function I couldn’t get the addr was vkDestroySurfaceKHR and also I was checking this library (https://github.com/MrVallentin/vkel) which seems to load every function using vkGetDeviceProcAddr at some time(with vkelDeviceInit at vkel.c).

So either vkGetDeviceProcAddr is returning the address for functions it shouldn’t or it should load vkDestroySurfaceKHR aswell.