图形标准Vulkan 1.3发布

经过两年的努力,图形标准联盟 Khronos 发布了 Vulkan 1.3 规范,该规范定义了用于访问 GPU 图形和计算能力的 API。 新规范包含了两年来积累的修正和扩展。 值得注意的是,Vulkan 1.3规范的要求是针对OpenGL ES 3.1类图形设备设计的,这将确保所有支持Vulkan 1.2的GPU都支持新的图形API。 Vulkan SDK工具计划于XNUMX月中旬发布。 除了主要规格外,还计划为中端和高端移动和桌面设备提供额外的扩展,这些扩展将作为“Vulkan Milestone”版本的一部分得到支持。

同时,还提出了一项计划,以实现对新规范的支持以及显卡和设备驱动程序中的附加扩展。 Intel、AMD、ARM 和 NVIDIA 正准备发布支持 Vulkan 1.3 的产品。 例如,AMD宣布很快将在AMD Radeon RX Vega系列显卡以及基于AMD RDNA架构的所有显卡中支持Vulkan 1.3。 NVIDIA 正准备发布支持 Linux 和 Windows 的 Vulkan 1.3 的驱动程序。 ARM 将为 Mali GPU 添加对 Vulkan 1.3 的支持。

主要创新:

  • 已实现对简化渲染通道(Streamlined Render Passes、VK_KHR_dynamic_rendering)的支持,使您无需创建渲染通道和帧缓冲区对象即可开始渲染。
  • 添加了新的扩展来简化图形管道编译的管理(管道,一组将矢量图形图元和纹理转换为像素表示的操作)。
    • VK_EXT_extended_dynamic_state、VK_EXT_extended_dynamic_state2 - 添加额外的动态状态以减少编译和附加状态对象的数量。
    • VK_EXT_pipeline_creation_cache_control - 提供对何时以及如何编译管道的高级控制。
    • VK_EXT_pipeline_creation_feedback - 提供有关已编译管道的信息,以使分析和调试更容易。
  • 许多功能已从可选功能转变为强制功能。 例如,缓冲区引用 (VK_KHR_buffer_device_address) 和 Vulkan 内存模型(定义并发线程如何访问共享数据和同步操作)的实现现在是强制性的。
  • 提供了细粒度的子组控制(VK_EXT_subgroup_size_control),以便供应商可以提供对多种子组大小的支持,并且开发人员可以选择他们需要的大小。
  • 提供了 VK_KHR_shader_integer_dot_product 扩展,由于点积运算的硬件加速,可用于优化机器学习框架的性能。
  • 总共包括 23 个新扩展:
    • VK_KHR_copy_commands2
    • VK_KHR_动态渲染
    • VK_KHR_format_feature_flags2
    • VK_KHR_维护4
    • VK_KHR_shader_integer_dot_product
    • VK_KHR_shader_non_semantic_info
    • VK_KHR_shader_terminate_inspiration
    • VK_KHR_同步2
    • VK_KHR_zero_initialize_workgroup_memory
    • VK_EXT_4444_formats
    • VK_EXT_扩展_动态_状态
    • VK_EXT_extended_dynamic_state2
    • VK_EXT_image_鲁棒性
    • VK_EXT_inline_uniform_block
    • VK_EXT_pipeline_creation_cache_control
    • VK_EXT_pipeline_creation_feedback
    • VK_EXT_私有_数据
    • VK_EXT_shader_demote_to_helper_inspiration
    • VK_EXT_subgroup_size_control
    • VK_EXT_texel_buffer_alignment
    • VK_EXT_texture_compression_astc_hdr
    • VK_EXT_工具_信息
    • VK_EXT_ycbcr_2plane_444_formats
  • 添加了新的对象类型 VkPrivateDataSlot。 实施了 37 个新命令和 60 多个结构。
  • SPIR-V 1.6 规范已更新,定义了所有平台通用的中间着色器表示形式,可用于图形和并行计算。 SPIR-V 涉及将单独的着色器编译阶段分离为中间表示,这允许您为各种高级语言创建前端。 基于各种高级实现,单独生成单个中间代码,可供 OpenGL、Vulkan 和 OpenCL 驱动程序使用,而无需使用内置着色器编译器。
  • 提出了兼容性配置文件的概念。 Google 是第一个发布 Android 平台基准配置文件的公司,这将使您更容易确定超出 Vulkan 1.0 规范的设备上对高级 Vulkan 功能的支持级别。 对于大多数设备,无需安装 OTA 更新即可提供配置文件支持。

让我们回想一下,Vulkan API 以其驱动程序的彻底简化、将 GPU 命令的生成转移到应用程序端、连接调试层的能力、针对各种平台的 API 的统一以及预编译的使用而闻名。在 GPU 端执行的代码的中间表示。 为了确保高性能和可预测性,Vulkan 为应用程序提供了对 GPU 操作的直接控制以及对 GPU 多线程的本机支持,从而最大限度地减少了驱动程序开销,并使驱动程序端功能更加简单和可预测。 例如,在驱动程序端以 OpenGL 实现的内存管理和错误处理等操作被移至 Vulkan 中的应用程序级别。

Vulkan 跨越所有可用平台,并为桌面、移动和 Web 提供单一 API,允许跨多个 GPU 和应用程序使用一个通用 API。 得益于 Vulkan 的多层架构,这意味着工具可以与任何 GPU 配合使用,OEM 可以在开发过程中使用行业标准工具进行代码审查、调试和分析。 为了创建着色器,基于 LLVM 并与 OpenCL 共享核心技术,提出了一种新的便携式中间表示 SPIR-V。 为了控制设备和屏幕,Vulkan 提供了 WSI(窗口系统集成)接口,它解决了与 OpenGL ES 中的 EGL 大致相同的问题。 Wayland 中开箱即用地提供 WSI 支持 - 所有使用 Vulkan 的应用程序都可以在未经修改的 Wayland 服务器环境中运行。 Android、X11(带 DRI3)、Windows、Tizen、macOS 和 iOS 也可以通过 WSI 进行工作。

来源: opennet.ru

添加评论