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 執行階段 Android 原生程式庫 libvulkan.so,可提供原生 Vulkan API。

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

已修改的元件

BufferQueue 和 Gralloc 支援 Vulkan:

  • BufferQueue:BufferQueue 和 ANativeWindow 介面中的其他列舉值和方法,可讓 Vulkan 執行階段透過 ANativeWindow 連線至 BufferQueue。
  • Gralloc。透過選用介面,Gralloc 可找出特定格式是否可用於特定的產生者/消費者組合,而無須配置緩衝區。

如要進一步瞭解這些元件,請參閱「BufferQueue 和 gralloc」一文。如要進一步瞭解 ANativeWindow,請參閱「EGLSurfaces 與 OpenGL ES」。

資源

請參閱下列資源,進一步瞭解 Vulkan:

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