Android支持Vulkan ,這是一種用於高性能3D圖形的開銷很小的跨平台API。像OpenGL ES(GLES)一樣,Vulkan提供了用於在應用程序中創建高質量,實時圖形的工具。使用Vulkan的優點包括減少CPU開銷以及對SPIR-V Binary Intermediate語言的支持。
諸如GPU獨立硬件供應商(IHV)之類的片上系統供應商(SoC)可以編寫適用於Android的Vulkan驅動程序。 OEM需要為特定設備集成這些驅動程序。有關Vulkan驅動程序如何與系統交互,應如何安裝GPU專用工具以及Android特定要求的詳細信息,請參閱實施Vulkan。
應用程序開發人員使用Vulkan創建可在GPU上執行命令的應用程序,從而大大降低了開銷。與EGL和GLES相比,Vulkan還提供了對當前圖形硬件中功能的更直接映射,從而最大程度地減少了驅動程序錯誤的可能性,並減少了開發人員的測試時間。
有關Vulkan的一般信息,請參考Vulkan概述或參閱參考資料列表。
Vulkan組件
Vulkan支持包括以下組件。
圖1. Vulkan組件
組件名稱 | 提供者 | 描述 |
---|---|---|
Vulkan驗證層 | Android(在NDK中) | 在Vulkan應用程序的開發過程中使用的庫,用於查找應用程序對Vulkan API的使用中的錯誤。發現API使用錯誤後,應刪除這些庫。 |
Vulkan運行時 | 安卓 | 本機庫libvulkan.so ,提供本機Vulkan API。Vulkan Runtime的大多數功能是由GPU供應商提供的驅動程序實現的。 Vulkan運行時包裝驅動程序,提供API攔截功能(用於調試和其他開發人員工具),並管理驅動程序和平台依賴項之間的交互。 |
Vulkan驅動程序 | 片上系統 | 將Vulkan API映射到特定於硬件的GPU命令以及與內核圖形驅動程序的交互。 |
修改後的組件
BufferQueue和Gralloc支持Vulkan:
- BufferQueue。 BufferQueue和
ANativeWindow
接口中的其他枚舉值和方法使Vulkan Runtime可以通過ANativeWindow
連接到ANativeWindow
。 - Gralloc。可選接口使Gralloc可以發現給定格式是否可用於特定的生產者/消費者組合而無需分配緩衝區。
有關這些組件的詳細信息,請參見BufferQueue和gralloc 。有關ANativeWindow
詳細信息,請參見EGLSurfaces和OpenGL ES )。
資源
使用以下資源來了解有關Vulkan的更多信息:
-
platform/frameworks/native/vulkan
Vulkan加載程序(libvulkan.so
)。包含Android的Vulkan加載程序,以及一些對平台開發人員有用的Vulkan相關工具。 - 實施Vulkan 。適用於為GPU IHV編寫適用於Android的Vulkan驅動程序,以及OEM將這些驅動程序集成到特定設備的OEM。它描述了Vulkan驅動程序如何與系統交互,應如何安裝特定於GPU的工具以及特定於Android的實現要求。
- Vulkan Graphics API指南。包括有關在Android應用程序中開始使用Vulkan,Android的Vulkan設計準則平台,使用Vulkan的著色器編譯器以及使用驗證層來幫助確保使用Vulkan的應用程序穩定性的信息。
- Vulkan新聞。涵蓋事件,補丁,教程以及更多與Vulkan相關的新聞文章。