KhronosGroup / KhronosGroup/Vulkan-Loader
Loader still adds a layer that fails negotation
- Dominant language
- C
- Stars
- 695
- Forks
- 343
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 17
Description
I think there's a bug in the Vulkan loader. I've modified GFXReconstruct so that it fails during the `vkNegotiateLoaderLayerInterface` call with an error (VK_ERROR_INITIALIZATION_FAILED), and the loader is still adding the layer to the instance stack.
I think it should just continue after it fails `loader_get_layer_interface_version` in loader.c.
The problem is that even if the layer fails the negotiation, the loader still tries to load the GetInstanceProcAddr function from the OS, which is incorrect.
To reproduce, simply modify any layer to return `VK_ERROR_INITIALIZATION_FAILED` during the negotiation process (or modify the loader to pretend it gets that failure from any layer present).
Contributor guide
Assessment
This issue has not been assessed yet.