Vulkan driver api vs sdk api support



我安装了 NVIDIA 驱动程序 v 378.92,根据 nvidia 网站自驱动程序版本 377.14 以来,驱动程序支持 vulkan API 1.0.42.1。我的 vulkan SDK api 版本是 1.0.42.2。但是,当我使用 vulkan SDK 中的vkjson_info.exe检查我的设备支持信息时,声明仅支持 apiVersion 1.0.37。

我有点困惑这是如何工作的,任何人都可以启发一下吗?

报告的版本可能受到它找到的 Vulkan 加载程序/运行时的限制。 首先是Windows还是Linux?

如果您安装了 Vulkan SDK 1.0.42.2,您可以运行 VIA 工具吗? 它应该生成一个 HTML 输出。 如果您查看"运行时"部分,您应该看到哪些可用以及它正在使用哪些。 为获得最佳效果,请尝试从与vkjson_info.exe相同的文件夹中运行它。 但是,如果您只是在任何地方运行它,它应该会给您一个好主意。

">

1.0.42.1"不是Vulkan版本。Vulkan只有三个级别(即major.minor.patch)。因此,"1.0.37"可能是正确的,"1.0.42.1"可能是某些LunarG Vulkan SDK的版本,也可能是随之而来的Vulkan Runtime的版本。

通常有几种类型的版本飞来飞去:

  • Vulkan 驱动程序版本。它是major.minor.patch格式,它是VkPhysicalDeviceProperties::apiVersion的,也可以通过VHCV等工具获得。
  • (可选)运行时计算机上的 SDK/层版本。LunarG Vulkan SDK 版本控制形式为 vulkan_major.vulkan_minor.vulkan_patch.optionally_SDK_patch.
  • 运行时机器的 Vulkan
  • 运行时 — 它基本上是 Vulkan Loader dll(如果应用程序使用它)。SDK 和驱动程序都安装此(并共存),并且它们使用自己的版本控制方案。SDK 版本还会将验证层安装到系统中。
  • 应用程序开发人员计算机上的 SDK/标头。如上所述的版本控制。vulkan.h标头始终为 1.0,因此只有一个数字版本 —VK_HEADER_VERSION(与 Vulkan 补丁版本匹配 — 但将来不必如此)
  • 驱动程序开发人员计算机上的 SDK/标头。如上所述的版本控制。实际上应该与 Vulkan 驱动程序版本相同。并且驱动程序安装的 Vulkan RT 很可能是同一版本。但我想我已经看到这一点不同。

这应该无关紧要,因为所有补丁版本都应该是双向兼容的(实际上并非如此 - 有一些变化,但驱动程序制造商似乎到目前为止一直在提供更新的驱动程序,所以这不是问题)。事实上,这是我在驱动程序文档中唯一能找到的东西:"Vulkan 1.0"支持。

我希望你现在开悟了,你达到了无聊的终极境界。

377 是 https://developer.nvidia.com/vulkan-driver 的测试版驱动程序。不保证测试版功能将延续到后续发布版本。根据 http://vulkan.gpuinfo.org/listreports.php 它没有(378 确实有 1.0.37,377 有 1.0.42,更重要的是有你想尝试的扩展)。如果您想要其中的功能,请立即继续使用测试版。至于层和其他SDK功能,你不应该需要更新的驱动程序——事实上,你应该始终使用最新的,以从验证层的错误修复和改进中受益。

最新更新