Vulkan

Android 支援Vulkan ,這是一種用於高效能 3D 圖形的低開銷、跨平台 API。與OpenGL ES (GLES)一樣,Vulkan 提供了在應用程式中創建高品質即時圖形的工具。使用 Vulkan 的優點包括減少 CPU 開銷以及支援SPIR-V 二進位中間語言。

GPU 獨立硬體供應商 (IHV) 等系統供應商 (SoC) 可以為 Android 編寫 Vulkan 驅動程式。 OEM 需要為特定裝置整合這些驅動程式。有關 Vulkan 驅動程式如何與系統互動、如何安裝 GPU 特定工具以及 Android 特定要求的詳細信息,請參閱實作 Vulkan。

應用程式開發人員使用 Vulkan 創建在 GPU 上執行命令的應用程序,並顯著減少開銷。與EGL和 GLES 相比,Vulkan 還提供了對當前圖形硬體功能的更直接映射,最大限度地減少了驅動程式錯誤的機會並減少了開發人員的測試時間。

有關 Vulkan 的一般信息,請參閱Vulkan 概述或查看資源清單。

Vulkan 組件

Vulkan 支援包括以下組件。

Vulkan 組件

圖 1.Vulkan組件

元件名稱提供者描述
Vulkan 驗證層Android(在 NDK 中)在 Vulkan 應用程式開發過程中使用的程式庫,用於尋找應用程式使用 Vulkan API 時出現的錯誤。發現API使用錯誤後,應刪除這些函式庫。
Vulkan 運行時安卓本機函式庫libvulkan.so提供本機 Vulkan API。

Vulkan Runtime 的大部分功能都是由 GPU 供應商提供的驅動程式實現的。 Vulkan Runtime 包裝驅動程序,提供 API 攔截功能(用於調試和其他開發人員工具),並管理驅動程式和平台依賴項之間的互動。
Vulkan 驅動程式系統將 Vulkan API 對應到特定於硬體的 GPU 命令以及與核心圖形驅動程式的交互作用。

改裝組件

BufferQueue 和 Gralloc 支持 Vulkan:

  • 緩衝區佇列。 BufferQueue 和ANativeWindow介面中的其他枚舉值和方法使 Vulkan 運行時能夠透過ANativeWindow連接到 BufferQueue。
  • 格拉洛克。可選介面允許 Gralloc 發現給定格式是否可以用於特定的生產者/消費者組合,而無需分配緩衝區。

有關這些組件的詳細信息,請參閱BufferQueue 和 gralloc 。有關ANativeWindow的詳細信息,請參閱EGLSurfaces 和 OpenGL ES )。

資源

使用以下資源了解更多有關 Vulkan 的資訊:

  • Vulkan 載入器( libvulkan.so ) 位於platform/frameworks/native/vulkan 。包含 Android 的 Vulkan 載入器,以及一些對平台開發人員有用的 Vulkan 相關工具。
  • 實施 Vulkan 。適用於為 Android 編寫 Vulkan 驅動程式的 GPU IHV 以及為特定裝置整合這些驅動程式的 OEM。它描述了 Vulkan 驅動程式如何與系統互動、如何安裝特定於 GPU 的工具以及特定於 Android 的實作要求。
  • Vulkan 圖形 API 指南。包括有關在 Android 應用程式中使用 Vulkan 的入門資訊、Android 的 Vulkan 設計指南平台、使用 Vulkan 的著色器編譯器以及使用驗證層來幫助確保使用 Vulkan 的應用程式的穩定性。
  • 伏爾甘新聞。涵蓋事件、補丁、教學和更多與 Vulkan 相關的新聞文章。