跳转至

vkEnumerateInstanceLayerProperties

函数原型

1
2
3
VkResult vkEnumerateInstanceLayerProperties(
    uint32_t*                                   pPropertyCount,
    VkLayerProperties*                          pProperties);

描述

查询可用的instance级layer属性。

参数

  • pPropertyCount : 可用实例layer数量的整数的指针。

  • pProperties : NULL或者 VkLayerProperties 结构体数组指针。

    • pProperties 为NULL时,pPropertyCount 返回可用的layer数量;
    • pProperties 不为NULL时,写入 pPropertyCount 个layer信息到 pProperties中。

返回值

  • VK_SUCCESS : 查询成功。
  • VK_INCOMPLETE : pPropertyCount 小于驱动有效的layer数量。
  • 其他 : 查询失败。

代码示例

uint32_t instance_layer_count;
VkLayerProperties *vk_props = NULL;
VkResult res;

do {
    res = vkEnumerateInstanceLayerProperties(&instance_layer_count, NULL);
    if (res) return res;

    if (instance_layer_count == 0) {
        return VK_SUCCESS;
    }

    vk_props = (VkLayerProperties *)realloc(vk_props, instance_layer_count * sizeof(VkLayerProperties));

    res = vkEnumerateInstanceLayerProperties(&instance_layer_count, vk_props);
} while (res == VK_INCOMPLETE);