-
Vulkan
鎖定
Vulkan特性介紹
OpenGL已經發展了25年以上,並不斷滿足行業需求,但是現已經逐漸滿足不了行業的需要。
為了解決上述問題,行業對新一代GPU API的提出了更高的要求:
- Explicit(明確、透明)
- GPU driver做更少的事情,把更多的控制權交給開發者
- Streamlined(精簡)
- 更快的性能,更低的開銷,更少的延遲
- Portable(可移植)
- 雲端,桌面,遊戲主機,移動設備以及嵌入式設備
- Extensible (可擴展)
- 支持新功能的擴展,推動行業技術進步
以下是Vulkan相對於上一代API的優勢:
- Vulkan API適用於從高性能電腦到移動低功耗設備的顯卡(OpenGL具有名為OpenGL ES的移動設備API子集,它仍是支持Vulkan設備的備選API)。
- 相比於Direct3D 12,Vulkan與前身OpenGL類似,受多種操作系統支持。Vulkan已經能在Windows 7、Windows 8、Windows 10、Tizen、Linux與Android上運行(iOS和macOS有第三方支持)。
- 通過批量處理(Batching)減少CPU負載,使CPU可以執行更多其他的計算或渲染任務。
- 在多核心CPU上,Vulkan能對核心與線程進行優化。Direct3D 11與OpenGL 4最初為單核心CPU設計,儘管後來出現了針對多核心CPU優化的擴展,不過與Vulkan相比,優化仍不是很好。
- 減少了驅動程序的開銷與維護工作。OpenGL使用高級着色語言GLSL編寫着色器,不同的驅動在程序運行時需要執行自身的GLSL編譯器,將程序的着色器轉換為GPU可執行的機器代碼。而Vulkan驅動將着色器語言預先轉化為SPIR-V(Standard Portable Intermediate Representation)的中間二進制格式,其行為類似於Direct3D的HLSL着色器。通過着色器預編譯,應用程序加載速度更快,並且3D場景可以使用更多種着色器。Vulkan驅動只需對GPU進行優化並生成代碼,這使得驅動程序更容易維護,驅動程序包更小(GPU供應商仍需在驅動程序中提供OpenGL與OpenCL的支持)。
- 計算與圖形處理的統一管理,因此Vulkan無需與單獨的計算API配合使用。
英偉達指出,由於OpenGL的複雜度和維護難度比Vulkan低很多,在多數情況下也能提供理想的整體性能,現階段OpenGL仍是個很好的選擇。 AMD表示, Vulkan支持Close-To-Metal控制的獨特能力可加快跨 Windows和 Linux的性能並且提高影像質量。現今無其他圖形 API 提供如此強大的操作系統兼容性、成像功能和硬件效率組合 。 例如,CPU中包含的集成GPU可與高端專用GPU結合使用,以略微提高性能。
Vulkan 1.1
科納斯在SIGGRAPH2016上宣佈Vulkan將支持自動多GPU功能,類似於Direct3D 12所提供的功能,顯示驅動程序不再需要處理多個GPU的使用,相反,兩個或更多完全不同的GPU之間可以智能地分配工作負載。
科納斯於2018年3月7日發佈了Vulkan 1.1。它擴展了幾個核心功能,包括子集操作,例如多視圖、設備組、高級渲染和編輯操作程序跨流程API交互操作。這些核心功能還包括16位內存獲取高級計算,HLSL內存分佈支持,視頻流的顯示,處理和編程,通過許多視頻編輯解碼器生成的YCbcRr顏色格式化紋理的直接抽樣。同時,它還帶來了與DirectX 12的更好兼容性,顯式支持多GPU,光線跟蹤支持,為下一代GPU奠定了基礎。
vulkan 1.2
2020年1月15日,科納斯組織發佈了Vulkan 1.2,將23個已經通過驗證的擴展集成到基本Vulkan標準中[35],大部分用來幫助提升Vulkan與其他圖形API之間的兼容層性能。
計劃中的功能
科納斯在SIGGRAPH 2016上宣佈,Vulkan將提供類似於Direct3D 12的多卡互聯功能。通過Vulkan,不同型號的顯卡也能協同工作,而無需NVIDIA SLI或AMD Crossfire的支持。Vulkan多卡互聯功能允許API在多個不同的顯卡之間智能分配負載,例如,CPU上的集成顯卡與高端獨立顯卡協同工作,能夠略微提升顯示性能。
在OpenCL 2.2規範發佈時,科納斯宣佈OpenCL將在未來融入Vulkan。
獨特的跨 OS 支持
Vulkan™ 能夠支持深入硬件底層的控制,為 Windows® 7、Windows® 8.1、Windows® 10 和 Linux®
[4]
帶來更快的性能和更高的影像質量。Vulkan™ API 還提供超高的 OS 兼容性、渲染特性和硬件效率。
[4]
自動兼容 GCN 架構
只有基於GCN架構 的Radeon™ 顯卡擁有強大的“異步計算”功能,使顯卡得以並行處理3D幾何圖形與計算工作量。例如,當遊戲需要同時計算複雜照明與渲染人物時,這種功能就找到了用武之地。這些任務並不需要在Radeon™ 顯卡上串行運行,因此可以節約時間、提升整體幀速率。設計Vulkan應用的遊戲開發者可以在所有近期版本的Windows和Linux系統中利用這種獨特硬件特性。
[4]
Vulkan支持顯卡
AMD Radeon Software Crimson 版 16.3 及更新版本在 Windows® 7、Window® 8.1、Windows® 10 和 Linux® 中支持基於次世代圖形核心架構的以下 AMD APU 和 Radeon™ 顯卡:
[4]
- AMD Radeon™ R9 系列顯卡
- AMD Radeon™ R7 系列顯卡
- AMD Radeon™ R5 240 顯卡
- AMD Radeon™ HD 8000 系列 OEM 系統顯卡(HD 8570 及更高級別)
- AMD Radeon™ HD 8000M 系列筆記本顯卡
- AMD Radeon™ HD 7000 系列顯卡(HD 7730 及更高級別)
- AMD Radeon™ HD 7000M 系列筆記本顯卡(HD 7730M 及更高級別)
- AMD A4/A6/A8/A10-7000 系列 APU
- AMD A6/A8/A10 PRO-7000 系列 APU
- AMD A6/A8/A10/FX™ 8000 系列 APU
- AMD E1/A4/A10 Micro-6000 系列 APU
- AMD E1/E2/A4/A6/A8-6000 系列 APU
- AMD A4-1200、A4-1300 和 A6-1400 系列 APU
- 參考資料
-
- 1. Android 7.0 開發者版本 .Google開發者.2021-02-01[引用日期2017-03-31]
- 2. Vulkan Next將支持VR顯示以及多顯卡互聯技術 .VR 實驗室.2016-08-17[引用日期2016-10-25]
- 3. 毀滅戰士4支持Vulkan:1080可達120Fps .中關村在線.2016-05-09[引用日期2016-10-25]
- 4. AMD 顯卡已準備好支持Vulkan圖形API .中國財經網.2016-02-19[引用日期2016-10-25]