查询属性、扩展、特性、限制和格式

Vulkan 的主要特性之一是它可以在多个平台和设备上进行开发。为了实现这一点,应用程序有责任从每个物理设备查询信息,然后根据此信息做出决策。

可以从物理设备查询的项目

  • 属性

  • 特性

  • 扩展

  • 限制

  • 格式

属性

Vulkan 中有许多其他组件被标记为属性。“属性”一词是任何可以查询的只读数据的总称。

扩展

有关更多信息,请查看启用扩展章节。

有一个包含所有可用扩展的注册表

在 Vulkan 中,有时会需要一组目前不存在的新功能。扩展具有添加新功能的能力。扩展可以定义新的 Vulkan 函数、枚举、结构或特性位。虽然所有这些扩展项都默认在 Vulkan 头文件中找到,但是如果未启用扩展,则使用扩展的 Vulkan 是未定义的行为

特性

有关更多信息,请查看启用特性章节。

特性描述了并非所有实现都支持的功能。可以在创建 VkDevice查询然后启用特性。除了所有特性列表之外,由于较新的 Vulkan 版本或扩展的使用,某些特性是强制性的

一种常见的技术是,扩展会公开一个新的结构,该结构可以通过 pNext 传递,从而添加更多要查询的特性。

限制

限制是实现相关的最小值、最大值以及应用程序可能需要注意的其他设备特性。除了所有限制列表之外,某些限制还具有 Vulkan 实现保证的最小/最大要求值

格式

Vulkan 提供了许多 VkFormat,它们具有多个 VkFormatFeatureFlags,每个都持有各种可以查询的 VkFormatFeatureFlagBits 位掩码。

有关更多信息,请查看格式章节

工具

有一些工具可以帮助您以快速且人类可读的格式获取所有信息。

vulkaninfo 是一个用于 Windows、Linux 和 macOS 的命令行实用程序,使您能够查看上面列出的有关 GPU 的所有可用项目。请参阅 Vulkan SDK 中的Vulkaninfo 文档

由 Sascha Willems 开发的Vulkan 硬件能力查看器应用程序是一款 Android 应用程序,用于显示支持 Vulkan 的设备的所有详细信息。