instance之后要弄一个验证层,这个根据描述是用来调试的,release的时候就不需要他了,所以可以用宏来开关
呐 下面是教程获取可用验证层的方法,是同一个API,克洛罗斯API介绍第二个给NULL会返回可用的Layer的数量。
不给NULL就要指定一下要几个属性,然后会装到第二个传入参数里返回给你,如果你传入的数量less than可用数量,就应该是按你传入的数量填给你的第二个参数pProperties里,
API看起来会返回VK_SUCCESS,你传太大了就返回一个VK_INCOMPLETE,表示没有那么多验证层给你填充,还提到由于外面的原因,外面是啥就不懂了,会导致相同两个参数传入返回填充结果不一样。
还说一旦instance创建了且他的layer是启用状态,那么即使一些layer会在之后变成不可用的,但是在他生命周期内都是启用状态,听起来会报错一样囧。
.
似乎有这个string的存在就支持这个Debug,"VK_LAYER_KHRONOS_validation"
所以这个教程文章里用了一个const std::vector<const char*> validationLayers = { "VK_LAYER_KHRONOS_validation" };
找到这个字符串就可以用validation layer来debug了。