Vulkan

Android 支援 Vulkan,這是一種低負擔的跨平台 API,可用於製作高品質 3D 圖像。與 OpenGL ES (GLES) 類似,Vulkan 提供相關工具,可在應用程式中建立高品質的即時圖像。使用 Vulkan 的優點包括降低 CPU 負擔,以及支援 SPIR-V 二進位中介語言。

晶片系統 (SoC) 供應商 (例如 GPU 獨立硬體供應商 (IHV)) 可以為 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 Runtime Android 原生程式庫 libvulkan.so,提供原生 Vulkan API。

Vulkan Runtime 的大部分功能都是由 GPU 供應商提供的驅動程式實作。Vulkan 執行階段會包裝驅動程式、提供 API 攔截功能 (適用於偵錯和其他開發人員工具),並管理驅動程式與平台依附元件之間的互動。
Vulkan 驅動程式 SoC 將 Vulkan API 對應至硬體專屬的 GPU 指令和互動,以及與核心圖形驅動程式的互動。

修改過的元件

BufferQueue 和 Gralloc 支援 Vulkan:

  • BufferQueue:BufferQueue 和 ANativeWindow 介面中的其他列舉值和方法,可讓 Vulkan 執行階段透過 ANativeWindow 連線至 BufferQueue。
  • Gralloc。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 News。涵蓋活動、修補程式、教學課程,以及更多與 Vulkan 相關的新聞報導。