Vulkan:修订间差异
外观
删除的内容 添加的内容
简介、版本 更新 |
添加特性 另见 |
||
第18行: | 第18行: | ||
与[[OpenGL]]类似,Vulkan針對全平台即時3D程式(如[[電子遊戲]]和[[互動式多媒體|交互媒体]])設計,并提供高效能与更均衡的CPU/GPU使用,這也是[[Direct3D]] 12和[[AMD]]的[[Mantle (API)|Mantle]]的目標。与Direct3D(12版之前)和OpenGL的其他主要区别是,Vulkan是一个底层API,并且能执行并行任务。除此之外,Vulkan还能更好地分配[[多核心處理器|多个CPU核心]]的使用。<ref>{{Cite news|url=http://www.extremetech.com/gaming/200836-next-generation-vulkan-api-could-be-valves-killer-advantage-in-battling-microsoft|title=Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech|date=2015-03-10|newspaper=ExtremeTech|accessdate=2017-02-17|language=en-US}}</ref> |
与[[OpenGL]]类似,Vulkan針對全平台即時3D程式(如[[電子遊戲]]和[[互動式多媒體|交互媒体]])設計,并提供高效能与更均衡的CPU/GPU使用,這也是[[Direct3D]] 12和[[AMD]]的[[Mantle (API)|Mantle]]的目標。与Direct3D(12版之前)和OpenGL的其他主要区别是,Vulkan是一个底层API,并且能执行并行任务。除此之外,Vulkan还能更好地分配[[多核心處理器|多个CPU核心]]的使用。<ref>{{Cite news|url=http://www.extremetech.com/gaming/200836-next-generation-vulkan-api-could-be-valves-killer-advantage-in-battling-microsoft|title=Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech|date=2015-03-10|newspaper=ExtremeTech|accessdate=2017-02-17|language=en-US}}</ref> |
||
== 特性 == |
|||
[[File:Division of labor cpu and gpu.svg|缩略图|OpenGL与Vulkan都是执行图形渲染任务的API,GPU处理[[着色器]],而CPU执行其他的一切任务。]] |
|||
Vulkan旨在提供其他API缺少的优势特性,例如更低的CPU开销与更直接的GPU控制,大体与Direct3D 12和Mantle类似。<ref name=":0" /> |
|||
以下是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]]有第三方支持<ref>{{Cite news|url=https://moltengl.com/moltenvk/|title=MoltenVK {{!}} Run Vulkan on iOS and OS X|newspaper=Molten|accessdate=2017-02-18|language=en-US}}</ref>)。 |
|||
* 降低了驱动程序的开销和CPU负载。<ref>{{Cite news|url=http://www.tomshardware.com/news/khronos-group-vulkan-graphics-api,28678.html|title=Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API|date=2015-03-03|newspaper=Tom's Hardware|accessdate=2017-02-18|language=en}}</ref> |
|||
* 通过批量处理(Batching)减少CPU负载,使CPU可以自由地执行更多计算或者渲染任务。<ref>{{Cite news|url=http://blog.imgtec.com/powervr/vulkan-high-efficiency-on-mobile|title=Vulkan: High efficiency on mobile - Imagination Technologies|date=2015-11-05|newspaper=Imagination Technologies|accessdate=2017-02-18|language=en-GB}}</ref> |
|||
* 在多核心CPU上更好地将任务分配到多个线程。Direct3D 11和OpenGL 4最初为单核心CPU设计,后来出现了优化多核心处理的扩展,不过即使开发者使用该扩展,API对多核心CPU的优化通常也不会很好。<ref>{{Cite news|url=http://blog.imgtec.com/powervr/vulkan-scaling-to-multiple-threads|title=Vulkan: Scaling to multiple threads - Imagination Technologies|date=2015-11-24|newspaper=Imagination Technologies|accessdate=2017-02-18|language=en-GB}}</ref> |
|||
* 对驱动程序的友好性。OpenGL使用高级语言[[GLSL]]编写[[着色器]],这使得不同的OpenGL驱动要在程序运行时执行自身特定的GLSL编译器,将程序的着色器转换为GPU可执行的机器代码。而Vulkan驱动将着色器语言预先转化为[[SPIR-V]](Standard Portable Intermediate Representation)的中间二进制格式,类似于[[Direct3D]]中[[HLSL]]着色器编译的二进制格式。通过着色器预编译,应用程序加载速度提高,并且每个场景可以使用更多种类的着色器。Vulkan驱动只需要做对GPU特定的优化与生成代码,这使得驱动程序更容易维护,驱动程序包更小(目前GPU供应商仍需包括OpenGL和OpenCL的支持)。<ref>{{cite web|url=https://www.khronos.org/registry/spir-v/papers/WhitePaper.pdf|title=An Introduction to SPIR-V|accessdate=2017-02-18|author=|date=|last=Kessenich|first=John|publisher=[[Khronos Group]]}}</ref> |
|||
* 计算与图形处理的统一管理,无需与单独的计算API配合使用。 |
|||
== 另见 == |
|||
* [[OpenGL]],科納斯組織的另一个图形API |
|||
* [[OpenCL]],科納斯組織的一个[[异构计算]]框架 |
|||
* [[Mantle (API)|Mantle]],AMD的底层图形与计算API,Vulkan的基础 |
|||
* [[Direct3D]],Windows和Xbox独有的图形API |
|||
* [[Metal (API)|Metal]],iOS和macOS的一个底层图形与计算API |
|||
==參考資料== |
==參考資料== |
||
{{reflist}} |
{{reflist|2}} |
||
{{Khronos Group standards}} |
{{Khronos Group standards}} |
2017年2月18日 (六) 04:09的版本
此條目需要擴充。 (2015年3月30日) |
開發者 | 科納斯組織,基于AMD的Mantle开发[1] |
---|---|
首次发布 | 2016年2月16日[2] |
当前版本 | 1.0.40(2017年2月11日[3]) |
源代码库 | |
操作系统 | Android、Linux、Tizen、Microsoft Windows[4][5] |
平台 | 跨平台 |
类型 | 3D图形与计算API |
许可协议 | |
网站 | khronos.org/Vulkan |
Vulkan是一個低CPU开销、跨平台的2D和3D繪圖与计算的應用程式介面(API),[6]最早由科納斯組織在2015年遊戲開發者大會(GDC)上發表。[7][8]科納斯最先把Vulkan API稱為「次世代OpenGL行動」(next generation OpenGL initiative)或「glNext」,但在正式宣佈Vulkan之後這些名字就沒有再使用了。[9]Vulkan基于Mantle而构建,这是由于AMD将Mantle API捐赠给科納斯組織,给予该组织开发底层API的基础,使其成为行业标准。[10][11][12][13][14]
与OpenGL类似,Vulkan針對全平台即時3D程式(如電子遊戲和交互媒体)設計,并提供高效能与更均衡的CPU/GPU使用,這也是Direct3D 12和AMD的Mantle的目標。与Direct3D(12版之前)和OpenGL的其他主要区别是,Vulkan是一个底层API,并且能执行并行任务。除此之外,Vulkan还能更好地分配多个CPU核心的使用。[15]
特性
Vulkan旨在提供其他API缺少的优势特性,例如更低的CPU开销与更直接的GPU控制,大体与Direct3D 12和Mantle类似。[16]
以下是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有第三方支持[17])。
- 降低了驱动程序的开销和CPU负载。[18]
- 通过批量处理(Batching)减少CPU负载,使CPU可以自由地执行更多计算或者渲染任务。[19]
- 在多核心CPU上更好地将任务分配到多个线程。Direct3D 11和OpenGL 4最初为单核心CPU设计,后来出现了优化多核心处理的扩展,不过即使开发者使用该扩展,API对多核心CPU的优化通常也不会很好。[20]
- 对驱动程序的友好性。OpenGL使用高级语言GLSL编写着色器,这使得不同的OpenGL驱动要在程序运行时执行自身特定的GLSL编译器,将程序的着色器转换为GPU可执行的机器代码。而Vulkan驱动将着色器语言预先转化为SPIR-V(Standard Portable Intermediate Representation)的中间二进制格式,类似于Direct3D中HLSL着色器编译的二进制格式。通过着色器预编译,应用程序加载速度提高,并且每个场景可以使用更多种类的着色器。Vulkan驱动只需要做对GPU特定的优化与生成代码,这使得驱动程序更容易维护,驱动程序包更小(目前GPU供应商仍需包括OpenGL和OpenCL的支持)。[21]
- 计算与图形处理的统一管理,无需与单独的计算API配合使用。
另见
- OpenGL,科納斯組織的另一个图形API
- OpenCL,科納斯組織的一个异构计算框架
- Mantle,AMD的底层图形与计算API,Vulkan的基础
- Direct3D,Windows和Xbox独有的图形API
- Metal,iOS和macOS的一个底层图形与计算API
參考資料
- ^ Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts. 2015-03-04 [2015-03-30].
- ^ Khronos Releases Vulkan 1.0 Specification - Khronos Group Press Release.
- ^ https://www.khronos.org/registry/vulkan/specs/1.0/xhtml/vkspec.html
- ^ Bright, Peter; Walton, Mark. Vulkan now official, with 1.0 API release and AMD driver [Updated]. United Kingdom: Ars Technica. 16 February 2016 [18 February 2016].
- ^ Valich, Theo. Mantle Cycle is Complete as Khronos Releases Vulkan 1.0. VR World. 17 February 2016 [19 February 2016].
- ^ Does Vulkan support 2D graphics? - LunarG. www.lunarg.com. [2017-02-17] (美国英语).
- ^ Vulkan : Graphics and compute Belong Together (PDF). Khronos.org. March 2015 [2015-03-05].
- ^ Vulkan - Graphics and compute belong together. Khronos.org. [2015-03-05].
- ^ glNext revealed as Vulkan graphics API. 2015-03-03 [2015-03-30].
- ^ Mantle is a Vulkan: AMD's dead graphics API rises from the ashes in OpenGL's successor. PCWorld. [2017-02-17] (英语).
- ^ AMD Gaming: One of Mantle's Futures: Vulkan | AMD Blogs. Community.amd.com. [2015-03-05].
- ^ Not dead yet: AMD’s Mantle powers new Vulkan API, VR efforts. ExtremeTech. [2015-03-05].
- ^ AMD's Mantle Lives On In Vulkan - Lays The Foundation For The Next OpenGL. Wccftech.com. 2014-06-20 [2015-03-05].
- ^ Kirsch, Nathan. Is AMD Mantle Dead As We Have Known It? Vulcan API Uses Mantle Technology for OpenGL. Legit Reviews. [2015-03-05].
- ^ Next-generation Vulkan API could be Valve's killer advantage in battling Microsoft - ExtremeTech. ExtremeTech. 2015-03-10 [2017-02-17] (美国英语).
- ^ 引用错误:没有为名为
:0
的参考文献提供内容 - ^ MoltenVK | Run Vulkan on iOS and OS X. Molten. [2017-02-18] (美国英语).
- ^ Khronos Group Announces The Next-Generation 'Vulkan' Graphics And Compute API. Tom's Hardware. 2015-03-03 [2017-02-18] (英语).
- ^ Vulkan: High efficiency on mobile - Imagination Technologies. Imagination Technologies. 2015-11-05 [2017-02-18] (英国英语).
- ^ Vulkan: Scaling to multiple threads - Imagination Technologies. Imagination Technologies. 2015-11-24 [2017-02-18] (英国英语).
- ^ Kessenich, John. An Introduction to SPIR-V (PDF). Khronos Group. [2017-02-18].