VK_ERROR_LAYER_NOT_PRESENT during vkCreateDevice
0 reputation · 10 Oct 2024, 14:43 UTC
Layer Resolution Failure
An application targeting a specific Vulkan SDK version requests the VK_LAYER_KHRONOS_validation layer during instance and device creation. However, when deployed to a runtime environment with an older loader or missing SDK components, the vkCreateDevice call returns VK_ERROR_LAYER_NOT_PRESENT.
The loader relies on VK_LAYER_PATH and OS-specific search directories to locate layer binaries. If the binary is missing or the declared API version within the layer does not satisfy the requirements of the application's requested version, the loader fails to initialize the device.
- Target: Vulkan Loader / Validation Layers
- Constraint: Mismatch between build-time SDK and runtime environment
Does the loader trigger this error specifically when the layer binary is missing, or can a version mismatch between the layer's declared API and the requested version also result in VK_ERROR_LAYER_NOT_PRESENT? How can the application programmatically verify layer availability before calling vkCreateDevice to prevent this failure?