Vulkan 簡介
Vulkan是一個免費開放的、跨平台的、底層的圖形API,在一定程度上比AMD Mantle、微軟DirectX 12、蘋果Metal更值得開發者關注。
Vulkan的最大任務不是競爭DirectX,而是取代OpenGL,所以重點要看和后者的對比。
在高分辨率、高畫質、需要GPU發揮的時候,Vulkan、OpenGL的速度基本差不多,但是隨着分辨率的降低,CPU越來越重要,Vulkan逐漸體現了出來,尤其是看看GTX 980 Ti,最多可以領先OpenGL 33%之多!
Vulkan 是和 DirectX 12 類似的跨平台底層 API,Vulkan 和 DirectX 12 都是基於 AMD 開源的 Mantle API,事實上兩者的早期文檔就是將 AMD 的 Mantle 文檔修改一下名字。
自1992年問世以來,OpenGL已經成為了PC游戲迄今為止最常用的圖形API之一。作為一種多語言、跨平台的應用程序編程接口,它已經被廣泛用於GPU的交互和硬件加速。
使用至今,人們當然也發現了它的缺點。因為源代碼是90年代的產物,對於目前在市面上大行其道的多核CPU(GPU)利用效率不佳,往往只能提供有限的單線程負載,所以幀率、能耗都難取得突破。
作為OpenGL官方組織,Khronos在今年三月份推出了新一代API規范Vulkan(昵稱“火山”或者“福爾康”),同樣采用跨平台設計,但最重要的貢獻是大幅降低繪制命令開銷(draw call overhead),改善多線程性能,渲染性能更快,背后的理念和DX12和Mantle都是一致的。
另外,Vulkan還會統一桌面的OpenGL和移動平台的OpenGL ES,而且谷歌已經明確了Android將會支持Vulkan。
Vulkan在改善功耗、多核優化提升繪圖調用上之於前輩OpenGL有着非常明顯的優勢。
Khronos組織正式發布了Vulkan 1.0標准規范,我們終於有了一個開放開源的、跨平台的、底層的圖形和計算API。
Vulkan在很大程度上汲取了AMD Mantle的靈感,但是進行了大幅度的擴展和增強,構成了一個完善的開發體系,功能和性能都十分豐富,擁有最新圖形技術、通用目的計算、預編譯着色器、多核心多線程高效率、底層驅動過載、橫跨桌面/移動/主機/嵌入式、底層GPU硬件控制、精煉API。
硬件方面,凡是支持OpenGL ES 3.1/4.x的都可以支持,而在操作系統方面,它支持Android(版本待定)、Windows XP/7/8/10、SteamOS、Ubuntu、Red Hat、Tizen等等,但是不支持iOS、OS X——蘋果一度參與過Vulkan的開發,但最終單獨搞了一套Metal,還是關起門來自己玩。
The Khronos Group --vulkan 開源集
https://github.com/KhronosGroup
Vulkan API
Android 7.0 將一項新的 3D 渲染 API Vulkan™ 集成到平台中。就像 OpenGL™ ES 一樣,Vulkan 是 3D 圖形和渲染的一項開放標准,由 Khronos Group 維護。
Vulkan 是完全從零開始設計,以最小化驅動器中的 CPU 開銷,並能讓您的應用更直接地控制 GPU 操作。Vulkan 還允許多個線程同時執行工作,如命令緩沖區構建,以獲得更好的並行化。
Vulkan 開發工具和庫都已卷入 Android 7.0DK。它們包括:
- 標頭
- 驗證層(調試庫)
- SPIR-V 着色程序編譯器
- SPIR-V 運行時着色器編譯庫
Vulkan 僅適用於已啟用 Vulkan 硬件的設備上的應用,如 Nexus 5X、Nexus 6P 和 Nexus Player。我們正在與合作伙伴密切合作,以盡快使 Vulkan 能面向更多的設備。
如需了解詳細信息,請參閱 API 文檔。
