我应该使用 Vulkan 加载程序吗?

Should I use the Vulkan loader?

根据子主题 "Application Interface to the Loader" 下的 vulkan sdk 文档,设置 Vulkan 界面的最佳性能方法是

https://vulkan.lunarg.com/doc/view/1.0.57.0/windows/LoaderAndLayerInterface.html#user-content-best-application-performance-setup

但我不知道如何实际实现它,或者是否有库已经这样做了。

作为旁注,如果我选择使用加载程序库,那么所有非核心非 wsi 函数的列表在哪里?

查看 Vulkan Cookbook 中的 first part of Intel's tutorial or code samples。它们包含有关如何连接 Vulkan 库以及如何动态加载函数指针的信息。

至于扩展列表 - 您需要全部吗?启用所有已发布的实例和设备扩展可能不是一个好主意,因为它极大地限制了您的代码将在其上运行的设备 运行。您的项目只需要 select 个扩展,在实例 and/or 设备创建期间启用它们,并(如有必要)使用上面提供的链接中提供的代码加载它们的功能。

您应该使用加载程序,几乎没有理由不这样做。最简单的方法是 link 针对加载程序库,但如果您的应用程序可能需要 运行 在未安装 Vulkan 驱动程序的系统上(即使它只需要 运行足以显示一条错误消息)那么你应该动态加载加载程序库。

即使在使用加载程序时,通过调用通过 vkGetDeviceProcAddr 获取的函数,也可以获得与未使用加载程序时相同的性能。当你这样做时,你直接调用驱动程序,加载程序的开销实际上为零。

所有可用的扩展都在 vulkan.h 中。扩展命令(函数)按提供它们的扩展进行排序,因此很容易判断特定命令需要哪个扩展。你也可以看看 spec;每个扩展都列在附录中,并列出了它添加的结构和命令。