查询属性、扩展、特性、限制和格式
Vulkan 的主要特点之一是可在多个平台和设备上进行开发。为了实现这一点,应用程序负责从每个物理设备查询信息,然后根据此信息做出相应的决策。
可以从物理设备查询的项目:
- 属性
- 特性
- 扩展
- 限制
- 格式
属性
术语 “properties” 是可查询的任何只读数据的总称。
扩展
很多时候,Vulkan 需要一些当前并不存在的新功能,扩展可以用来添加新功能。扩展可以定义新的 Vulkan 函数、枚举、结构或特性。默认情况下,扩展可以在 Vulkan头文件中找到,但如果未启用扩展,使用扩展将是未定义行为。
特征
特征描述了一些并非所有设备都支持的功能。在创建VkDevice
可以查询并开启某些特性。除了所有特性列表外,Vulkan 新版本或扩展可能会启用某些强制启用的特性 。
一种常见的技术是让扩展公开一个可以通过pNext
传递的新结构,从而添加要查询的功能。
限制
限制是应用程序可能需要注意的,因为它表明了设备硬件参数的最小值、最大值和其他特性。除了所有限制列表外,某些限制还具有设备保证的最小/最大值。
格式
Vulkan 提供了许多VkFormat
,VkFormat
具有多个VkFormatFeatureFlags
,每个VkFormatFeatureFlags
都包含各种 VkFormatFeatureFlagBits 位掩码(可查询)。
查看 格式章节了解更多信息。
工具
有一些工具可以帮助读者快速获取格式的所有信息,并且方便阅读。
vulkaninfo
是一个适用于 Windows、Linux 和 macOS 的命令行程序,可以让使用者查看上面列出的有关 GPU 的所有条目。请参阅Vulkan SDK 中的 Vulkaninfo 文档。
Sascha Willems 开发的 Vulkan Hardware Capability Viewer 是一款 Android 应用,可以显示 Vulkan 设备的所有详细信息。