校验层
之前提到,Vulkan的设计目标是高性能、低驱动程序开销。所以,默认情况下,它提供的错误检测和调试功能非常有限。驱动程序会在发生错误时直接崩溃,而不是返回一个错误代码。这可能导致对于某种显卡可以工作,不会崩溃,但对于其它显卡无法工作,驱动程序崩溃。
可以通过Vulkan的校验层(Validation layers)特性来进行一定的错误检查措施。校验层是一段被插入在Vulkan API和驱动程序之间的代码,可以对Vulkan API函数的参数进行检查,跟踪内存分配。我们可以在开发期开启校验层,然后在发布程序时关闭校验层,减少性能损失。校验层可以完全自己编写,但为了方便,我们的教程直接使用了Vulkan SDK提供的一组校验层。我们通过注册的回调函数来接受来自校验层的调试信息。
由于Vulkan的每个操作都要显式定义,加之校验层的使用,调试使用Vulkan的程序要比调试使用OpenGL和Direct3D的程序轻松太多。
接下来让我们配置开发环境,开始我们的Vulkan编程之旅吧!