Vulkan 簡介html
Vulkan是一個免費開放的、跨平臺的、底層的圖形API,在必定程度上比AMD Mantle、微軟DirectX 十二、蘋果Metal更值得開發者關注。android
Vulkan的最大任務不是競爭DirectX,而是取代OpenGL,因此重點要看和後者的對比。git
在高分辨率、高畫質、須要GPU發揮的時候,Vulkan、OpenGL的速度基本差很少,可是隨着分辨率的下降,CPU愈來愈重要,Vulkan逐漸體現了出來,尤爲是看看GTX 980 Ti,最多能夠領先OpenGL 33%之多!github
Vulkan 是和 DirectX 12 相似的跨平臺底層 API,Vulkan 和 DirectX 12 都是基於 AMD 開源的 Mantle API,事實上二者的早期文檔就是將 AMD 的 Mantle 文檔修改一下名字。編程
自1992年問世以來,OpenGL已經成爲了PC遊戲迄今爲止最經常使用的圖形API之一。做爲一種多語言、跨平臺的應用程序編程接口,它已經被普遍用於GPU的交互和硬件加速。多線程
使用至今,人們固然也發現了它的缺點。由於源代碼是90年代的產物,對於目前在市面上大行其道的多核CPU(GPU)利用效率不佳,每每只能提供有限的單線程負載,因此幀率、能耗都難取得突破。ide
做爲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/十、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。它們包括:
Vulkan 僅適用於已啓用 Vulkan 硬件的設備上的應用,如 Nexus 5X、Nexus 6P 和 Nexus Player。咱們正在與合做夥伴密切合做,以儘快使 Vulkan 能面向更多的設備。
如需瞭解詳細信息,請參閱 API 文檔。