VkLayer_khronos_validation.dll 是 Khronos Group 官方 Vulkan SDK 中 Validation Layers 的动态链接库实现,对应层名 VK_LAYER_KHRONOS_validation。它由 Vulkan Loader 在应用启动阶段按需加载,位于应用程序与驱动程序之间,充当图形 API 调用链上的“安检节点”。
该 DLL 导出了 Loader 约定的层入口点,包括 vkNegotiateLoaderLayerInterfaceVersion、vkGetInstanceProcAddr 与 vkGetDeviceProcAddr,配合同目录下的层描述 JSON 文件完成版本协商、扩展枚举与连锁调用链(Chain)的插入。
拦截 vkCreateInstance、vkCreateDevice、vkAllocateMemory、vkCmdDraw、vkQueueSubmit 等数百个入口,检查句柄有效性、枚举取值合法性、数组长度、sType 与 pNext 链表的正确性,并核对 VkPhysicalDeviceFeatures 与实际启用能力的匹配关系。
维护 VkDeviceMemory、VkBuffer、VkImage、VkImageView、VkPipeline 等对象的内部状态表,检测未绑定内存即提交、越界访问、重复销毁、销毁后继续引用等典型错误,避免驱动层难以定位的静默崩溃。
Synchronization Validation 检查读写 Hazard、Barrier 与 Semaphore/Fence 使用是否构成数据竞争;SPIR-V 验证模块在管线创建时检查字节码合规性,GPU 辅助验证(GPU-AV)与 Best Practices、Debug Printf 则给出性能与写法层面的提示。