Vulkan驱动程序api vs sdk api支持

时间:2017-04-04 13:17:43

标签: api graphics nvidia vulkan

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

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

2 个答案:

答案 0 :(得分:1)

报告的版本可能受到它找到的Vulkan Loader / Runtime的限制。首先是这个Windows还是Linux?

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

答案 1 :(得分:1)

“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 / Layers版本。 LunarG Vulkan SDK版本的表格 vulkan_major.vulkan_minor.vulkan_patch.optionally_SDK_patch
  • 运行时机器的Vulkan运行时 - 它基本上是Vulkan Loader dll(如果应用程序使用它)。 SDK和驱动程序都安装了这个(并存)并且他们使用自己的版本控制方案。 SDK版本还会将验证层安装到系统中。
  • 应用程序开发人员计算机上的SDK / Header。如上所述的版本控制。 vulkan.h标题始终为1.0,因此只有单个数字版本 - VK_HEADER_VERSION(与Vulkan补丁版本匹配 - 但未来不必)
  • 驱动程序开发人员计算机上的SDK / Header。如上所述的版本控制。应该和Vulkan驱动程序版本一样。并且很可能由驱动程序安装的Vulkan RT将是相同的版本。但我认为我已经看到这一点有所不同。

这应该没关系,因为所有的补丁版本都应该是双向兼容的(实际上不是真的 - 有一些变化,但驱动程序制造商似乎跟上到目前为止提供更新的驱动程序,所以它不是问题)。事实上,这是我在driver documentation:“Vulkan 1.0”支持中唯一能找到的东西。

我希望你现在如此开悟,以至于你达到了无聊的最终状态。

377是来自https://developer.nvidia.com/vulkan-driver的测试版驱动程序。无法保证测试版功能会转移到后续版本。根据{{​​3}}它没有(378确实有1.0.37和377有1.0.42,更重要的是有你想要尝试的扩展)。如果您想要其中的功能,请立即继续使用测试版。至于图层和其他SDK功能,您不应该需要更新的驱动程序 - 事实上,您应该始终使用最新版本来从验证层错误修正和改进中受益。