圖形標準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

添加評論