【问题标题】:What is the Vulkan API version variant in VK_MAKE_API_VERSION?VK_MAKE_API_VERSION 中的 Vulkan API 版本变体是什么?
【发布时间】:2021-10-12 03:43:54
【问题描述】:

我刚刚在使用 VK_MAKE_VERSION 时意识到它已被弃用。弃用消息建议改用VK_MAKE_API_VERSION。它们之间唯一的区别是后者多了一个variant参数。

我知道major、minor 和patch 是什么意思,但我以前从未见过variant 版本。什么意思?

【问题讨论】:

  • 在写这个问题时,我意识到也许我会在规范中找到答案,我做到了,所以我把它贴在这里似乎受到鼓励:stackoverflow.blog/2011/07/01/…。

标签: version specifications vulkan


【解决方案1】:

这在the current Vulkan specification 的30.2.1. Version Numbers 部分进行了解释:

Vulkan 版本号由四部分组成,分别表示变体、主要、次要和补丁 Vulkan API 规范的版本。

variant 表示实现支持的 Vulkan API 的变体。这总是 Vulkan API 为 0。

注意

非零变体表示 API 是 Vulkan API 的变体,并且 通常需要修改应用程序才能针对它运行。变体字段 是对版本号的后来添加,在版本 1.2.175 中添加 规格。由于 Vulkan 使用变体 0,因此此更改完全向后兼容 使用 Vulkan 实现的先前版本号格式。新的 已为此更改添加了版本号宏和旧宏 已弃用。对于使用旧格式和宏的现有应用程序, 具有非零变体的实现将解码为非常高的 Vulkan 版本。 执行适当的应用程序应该可以检测到高版本号 版本检查。

【讨论】:

  • 你认为一个变体可以用来表示像 OpenGL 和 OpenGLES 这样的东西吗? VulkanES 还是 WebVk?
  • @Columbo 它不能是 OpenGL 或 OpenGLES,因为它们与 Vulkan 完全不同。为什么有人会使用 OpenGL 风格的 Vulkan 而不仅仅是 OpenGL?我知道它可能是“VulkanES”或“WebVk”之类的东西,尽管这似乎违背了 Vulkan 的跨平台理念——相同的 Vulkan 代码目前可以在 Windows、Android 甚至 Nintendo Switch 上运行。为什么要创造一种新的、独立的 Vulkan 风格?不过,这只是猜测。有可能我只是找不到任何 Vulkan 变体,而有些变体已经存在或正在计划中。
猜你喜欢
  • 1970-01-01
  • 2019-04-12
  • 2018-11-30
  • 2019-05-27
  • 1970-01-01
  • 2018-03-05
  • 1970-01-01
  • 1970-01-01
  • 2019-09-23
相关资源
最近更新 更多