VulkanCreateSurface(instance interface{}) returns an uintptr which is a dangerous behaviour hence uintptr is not updated by the garbage collector. It should return the unsafe.Pointer instead which is updated.
In VulkanGetVkGetInstanceProcAddr() it is done correctly.
if you use VulkanCreateSurface() and try to cast it to a vkSurfaceKHR, you need to cast it back to unsafe.Pointer which then causes a warning when call "go vet": "possible misuse of unsafe.Pointer"
VulkanCreateSurface(instance interface{}) returns an uintptr which is a dangerous behaviour hence uintptr is not updated by the garbage collector. It should return the unsafe.Pointer instead which is updated. In VulkanGetVkGetInstanceProcAddr() it is done correctly. if you use VulkanCreateSurface() and try to cast it to a vkSurfaceKHR, you need to cast it back to unsafe.Pointer which then causes a warning when call "go vet": "possible misuse of unsafe.Pointer"