伏爾甘

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 Runtime 能夠通過 ANativeWindow 連接到ANativeWindow
  • 格拉洛克。一個可選的接口讓 Gralloc 發現給定的格式是否可以用於特定的生產者/消費者組合,而無需分配緩衝區。

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

資源

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

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