跳到主要内容

vulkan开发工具

Vulkan 生态系统有许多开发工具。因为篇幅有限,下面仅仅列出一些常用的工具,这里并没有列出所有的vulkan调试工具,请读者自行搜索研究其他相关工具。

Khronos 有一个开源工程 Vulkan Samples,它展示了Vulkan API 的用法并展示了性能最佳的使用方式。

LunarG 由私人赞助开发和维护 Vulkan 生态系统组件,目前是 Vulkan LoaderVulkan Validation Layers Khronos 小组代码库的管理者。此外,LunarG 还负责发布 Vulkan SDK 和开发其他关键工具,例如 Vulkan ConfiguratorGFXReconstruct

Vulkan Layer

Layer是 Vulkan系统的可选组件,它可以在应用程序中拦截、评估和修改现有的 Vulkan 功能。Layer使用系统动态库的实现方式,可以通过 Vulkan Configurator 启用和配置。

Khronos Leyer

  • VK_LAYER_KHRONOS_validation,称为Khronos验证层(Khronos Validation Layer)。 它是每个开发人员在调试 Vulkan 应用程序时的第一个layer,这就是它位于此列表顶部的原因。更多详细信息请阅读 Validation Layer。 验证层包括多个功能:
    • 同步验证:识别由于读写相同内存区域的操作,如(Draw、Copy、Dispatch、Blit)之间缺失或错误使用同步操作而导致的资源访问冲突。
    • GPU 辅助验证:检测着色器代码,防止着色器执行期间产生错误。
    • Shader printf:在着色器中打印内容到 stdout 来调试着色器代码。
    • 最佳实践警告:突出显示潜在的性能问题、可疑的使用方式以及常见错误。

Vulkan SDK Layer

除了 Khronos Layer之外,Vulkan SDK 还包括其他有用的平台独立层。

Vulkan 扩展 Layer

Vulkan 扩展层包含了一些扩展的实现。默认情况下,如果底层驱动程序提供了这些扩展,该Layer将自动禁用。

Vulkan 第三方 Layer

还有其他一些公开的Layer可用于帮助开发。

  • VK_LAYER_IMG_powervr_perf_doc PowerVR的PerfDoc Layer。 检查 Vulkan 应用程序在 Imagination Technologies PowerVR 设备上的最佳实践。
  • VK_LAYER_adreno Adreno Layer。 检查 Vulkan 应用程序在 Qualcomm Adreno 设备上的最佳实践。

调试

在 GPU 上调试正在运行的内容可能非常困难,下面这些工具可能会提供帮助:

性能分析

下面列出了一些厂商提供的性能分析器:

  • AMD Radeon GPU Profiler - 适用于 AMD Radeon GPU 的低级性能分析工具。
  • [Arm Streamline Performance Analyzer](https://developer.arm.com/Tools and Software/Streamline Performance Analyzer) - 适用于Arm设备上游戏和应用程序的性能分析。
  • Intel® GPA - Intel 的图形性能分析器,支持捕获和分析 Vulkan 应用的帧。
  • OCAT - 开放式捕获和分析工具 (OCAT),为 D3D11、D3D12 和 Vulkan 提供帧率性能测量。
  • PVRTune - 面向 Imagination Technologies PowerVR 设备上的性能分析工具。
  • Qualcomm Snapdragon Profiler - 面向 Adreno GPU 的分析工具。
  • VKtracer - 跨供应商和跨平台的分析器。