跳到主要内容

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

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

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

  • 属性
  • 特性
  • 扩展
  • 限制
  • 格式

属性

术语 “properties” 是可查询的任何只读数据的总称。

扩展

很多时候,Vulkan 需要一些当前并不存在的新功能,扩展可以用来添加新功能。扩展可以定义新的 Vulkan 函数、枚举、结构或特性。默认情况下,扩展可以在 Vulkan头文件中找到,但如果未启用扩展,使用扩展将是未定义行为

特征

特征描述了一些并非所有设备都支持的功能。在创建VkDevice可以查询并开启某些特性。除了所有特性列表外,Vulkan 新版本或扩展可能会启用某些强制启用的特性

一种常见的技术是让扩展公开一个可以通过pNext传递的新结构,从而添加要查询的功能。

限制

限制是应用程序可能需要注意的,因为它表明了设备硬件参数的最小值、最大值和其他特性。除了所有限制列表外,某些限制还具有设备保证的最小/最大值

格式

Vulkan 提供了许多VkFormatVkFormat具有多个VkFormatFeatureFlags,每个VkFormatFeatureFlags都包含各种 VkFormatFeatureFlagBits 位掩码(可查询)。

查看 格式章节了解更多信息。

工具

有一些工具可以帮助读者快速获取格式的所有信息,并且方便阅读。

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

Sascha Willems 开发的 Vulkan Hardware Capability Viewer 是一款 Android 应用,可以显示 Vulkan 设备的所有详细信息。