请选择 进入手机版 | 继续访问电脑版

#楼主# 7 天前

跳转到指定楼层
Vulkan相比于OpenGL、DX12、Metal和Mantle有什么优势、劣势?
原文地址:https://www.zhihu.com/question/46536915
转播转播 分享淘帖
回复

使用道具

0

主题

9

帖子

15

积分

新手上路

Rank: 1

积分
15
Sun944 发表于 7 天前
最近开始了解了一下Vulkan,我觉得他的对手应该是DX12,所以我们主要讨论一下Vulkan和DX12之间的区别。总的来说,Vulkan比起DX12在于“步子没有迈的太大,所以没有扯到蛋”。
从往年的经验来开,一种新API,新技术的推行过程大概分为以下几个阶段:敢于创新的大公司工作室,自研引擎开始尝(cai)试(keng)->商业引擎开始大规模推行->使用商业引擎的开发者逐渐接受->业界流行。
那么目前Vulkan的情况是怎么样的呢,Vulkan表现出的系统兼容性已经不需要多说了,他主要的短板在于驱动支持,老黄的新版驱动已经完美解决了这个问题,至少运行起来,各种压力测试都没问题,一些恶意的bug,如显存溢出,也是正常的报错并强制退出应用,不会导致系统蓝屏死机等。
Vulkan已经走到了“第二阶段”,现在商业引擎中,Unity3D已经发布了跨平台的Vulkan稳定版本,注意是稳定版本,之前两年一直是experimental,我们自己的项目已经开始尝试使用了,多线程渲染管线,绘制提交比起DX11来说,性能提高高达20-40%,当然实际游戏中因为绘制指令提交的时间占整个游戏运行的时间并不会很多,所以实际提升肯定也不会有这么显著,但是起码证明,Vulkan在Windows,安卓等跨平台的运行效果良好。这里上一组压力测试的截图:
Vulkan相比于OpenGL、DX12、Metal和Mantle有什么优势、劣势?-1.jpg Vulkan相比于OpenGL、DX12、Metal和Mantle有什么优势、劣势?-2.jpg 这个场景中强行塞入的30000dc以及上百种材质Shder,从事引擎图形研发的同行应该能充分感受到Vulkan的恐怖效率。
不过目前就我所知,全面支持稳定跨平台的Vulkan API的引擎貌似只有Unity3D,不过个人认为UE4等其他商业引擎不久之后也会发布全面的支持,毕竟老黄的驱动到位了,再加上已经有游戏开始用了,Vulkan看起来还是很有前景的(希望不被打脸)。
至于DX12,则是“第一阶段”都没过去,目前各3A大厂还在积极踩坑DX12,一部分已经深深的掉进了坑中,比如杀手6,杀手6使用的冰川引擎在打开mesh reuse和async compute以后,帧数只有dx11的1/3(#手动捂脸#),古墓丽影,狙击精英等游戏已经保证了DX12勉强达到或高于DX11的性能,但是远远没达到微软发布的Demo那样数十倍的性能,究其原因,个人认为还是“步子迈的太大”,DX12的理念可以说十分先进,乃至过于先进,首先它非常灵活,而且是基于Agressively GPU Driven, Async Compute等管线设计思想,是一种面向未来的API,微软正确的预判到未来的GPU发展,以及其在主机,PC平台的地位变化,认为GPU在渲染管线的绘制阶段中将彻底代替并解放CPU,并使CPU只专注于周边的工作,如流式加载,LOD等。然而这就意味着之前所有的管线,包括DX11的管线,将基本失去作用,因此各方面的研发曲线也会十分陡峭。同时,目前的PC,主机平台硬件还没有达到微软的预想状态,这些方面都还有很长的路要走。
那么,第一阶段都还没完全过去,第二阶段就不用说咯,各大商业引擎也只是随意的挂上一个DX12的支持,然后标记成experimental,并且在其默认管线下理所当然的不如DX11效率高。
所以本人的结论:目前来看Vulkan已经初露锋芒,而DX12的普及也并非遥遥无期,起码从理论上讲DX12在主机上和PC上是会大放异彩的。
P.S. 本人最近也在做一些渲染管线方面的研究,有兴趣的朋友欢迎加QQ交流群:146025605
回复

使用道具 举报

0

主题

73

帖子

141

积分

注册会员

Rank: 2

积分
141
依然永恒 发表于 7 天前
这里只和D3D12、metal比。跟OpenGL没什么可比的。

优势是跨平台,移动桌面都能(除了苹果系),windows/linux/android都已经有vulkan的实现。是第三个实现了桌面和移动统一原生支持的图形API。

劣势是厂商驱动的优劣对API的表现影响很大。OpenGL在AMD卡上已经悲剧那么多年了,到了Vulkan时代,虽然驱动变薄,出错的可能性降低,但一出错的后果比以前严重很多。

效果不变,帧数提高。
回复

使用道具 举报

0

主题

8

帖子

10

积分

新手上路

Rank: 1

积分
10
艺记醒 发表于 7 天前
如果 Vulkan 的优势是跨平台的话,那等于说没有优势。因为现在除非写玩具,每个 app 都要有自己对 graphics API 的抽象层。这个抽象层要是不能兼容主流的几个 API,就是设计失败。我们的 app 里有个三年前设计的 graphics 抽象层。去年花了半年就支持 Metal 了。
Vulkan 目前的设计过于复杂,很多流于表面的概念并没有实际用途,不能简单的用「为了适应更广的应用场景」就敷衍过去了。我倒是建议不得不用 Vulkan 的人先看看 Metal 是如何进行简化设计的,然后理清思路怎么在 Vulkan 上写抽象层。
从 Metal 看 Vulkan —— 重用还是重建
回复

使用道具 举报

0

主题

15

帖子

10

积分

新手上路

Rank: 1

积分
10
笨笨笨丫头2017 发表于 7 天前
相比dx12,vulkan的api感觉会更底层一点点,虽然大部分概念两者都有很好的对应关系,但是setup一个vulkan的程序还是更繁琐。相应的,我记得3d mark前不久的一个测试来看,仅就draw call最大并发数而言,vulkan要略胜于dx12,尤其是在1060上。。。在a卡上似乎是两者性能更接近一些。当然大家都知道a卡料比较足,早年驱动不给力也是性能不如n卡的主要原因之一。所以这一代api的驱动层更薄,对a卡比以前更友好了。。。
回复

使用道具 举报

0

主题

14

帖子

10

积分

新手上路

Rank: 1

积分
10
教我赚钱盅 发表于 7 天前
想在这个层面实现跨平台,我估计难,层次太低了,属于os层面的api
像win,mac这种,3d图形api属于os的核心利益,一般产商不会轻易放手拱手让人
所以一般都会在3d图形api上再封装一层高级语言的图形引擎,以图形引擎的形式实现跨平台
比如rust和java都有类似的图形引擎,同时兼容opengl,direct3d,metal和vulkan,看具体哪个os了
如果标准放宽一点,不考虑3d,仅2d的话,那dart等语言也都有了
你倒腾这些如果只是图做一个游戏的话,这些图形引擎其实足够你用了
然后我看医疗那些领域,对这些图形引擎比游戏行当的还要积极得多
因为毕竟游戏行当很多还是在套引擎,至少有引擎可以套,还可以先用一阵
医疗等领域引擎都没有了
这样也是好事,高级语言这些年发展神速,各种疑难杂症都已经得到了解决,将来注定是polyglot的天下,就像当年封装cpu上os一样用图形引擎封装这些gpu的图形驱动
回复

使用道具 举报

0

主题

12

帖子

10

积分

新手上路

Rank: 1

积分
10
俄武器去 发表于 7 天前
凭借我不太多的经验 openGL渲染只支持单线程 Vulkan支持多线程
同时Vulkan的渲染步骤多了一层硬件控制(只看过架构介绍 没用过 可能记错)应该可以做更精确也更复杂的操作
不过再怎么说 api怎么样主要还是看厂商的支持。。。
回复

使用道具 举报

0

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
123458359 发表于 7 天前
本人使用过多种GPU API进行过开发,对这个问题,发表下自己的一些看法:
优势:
1、跨平台兼容性更好(相对于DX2,  Metal,cuda),opengl的跨平台也做得很好,不过vulkan从某种角度来说就是为了替代opengl。用上vulkan几乎可以全平台支持,对于一些小企业来说是个不错的选择
2、更加接近底层,vulkan相对于opengl来说,api更加接近底层(驱动和硬件),开发者能更好的利用硬件特性做更多的优化
3、很多大公司都在大力支持,这个很重要,生态旺盛了,开发就更容易,也更有进展空间,就比如个人认为OpenCL是个很不错的通用计算库,但是各个公司的支持力度较为一般,会出现一些严重的兼容性问题。
劣势:
1、vulkan不太可能得到苹果的官方支持,因此总体上,性能不可能在苹果设备上超过metal的性能
2、vulkan也有很多扩展,各家厂商的扩展不一样,对于开发人员需要做的事情更多
3、vulkan更加接近底层,自然细节也更多,上手有一定门槛
回复

使用道具 举报

0

主题

13

帖子

10

积分

新手上路

Rank: 1

积分
10
川西节度使庇 发表于 7 天前
比起OpenGL已有定论,Mantle属于更高的一层,和这些无法比较。
就技术来说,一个极端是高性能,另一个极端是易用。其他大牛们已经表示Vulkan相对性能好一些,但易用性比Metal还是差远了。
如果看市场的话,DX前景很好,不过可有可能Vulkan携安卓之势崛起。
回复

使用道具 举报

0

主题

18

帖子

10

积分

新手上路

Rank: 1

积分
10
Le174 发表于 7 天前
    Compute queue presentMore flexible memory types/heapsCross-platformThe only choice on non-Apple mobile devices
回复

使用道具 举报

12下一页
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则