游戏开发论坛

 找回密码
 ????
搜索
查看: 5618|回复: 1

与对手共享? 寒霜3开发者Mantle解析

[复制链接]

3773

主题

3782

帖子

1万

积分

论坛元老

网站编辑

Rank: 8Rank: 8

积分
11716
发表于 2013-11-26 13:36:06 | 显示全部楼层 |阅读模式
        EA将推出15款游戏支持Mantle

        AMD虽然在这一代仅发布了一款新GPU核心,却带来了一个足以震撼PC游戏界的全新理念。通过像游戏机那样直接控制硬件,减少系统中间层,来充分发挥GPU性能。足够好的理想,如果不能变成成品那永远是理想。尽管之前说的全平台导入Mantle这一预计被索尼和微软否掉了,但我们还是看到了PC上的《战地4》Mantle版没有停止开发,并且称在年底会与大家见面。

        在没有看到成品,大家还在期盼的同时,AMD开发者峰会在美国圣何塞会议中心召开了。会议的游戏图形阶段,EA方面的寒霜引擎开发技术指导Johan Andersson主持了名为「Mantle for Developers」的讲演。日本游戏媒体4gamer.net发布了一篇对此的报导,我们将此文予以编译,看看从支持Mantle的游戏开发商的角度,Mantle的当下、和前景是什么样的。



        AMD在美国召开的开发者峰会「AMD Developer Summit 2013」(以下简称APU13)上,对GCN架构Radeon专用的独家图形API「Mantle」进行了详细说明。在此之前的R9 290、280等系列评测中我们也向大家简要介绍过。

8872f8ed-7725-4af2-b8a9-d7dc696e9ba2.jpg
▲ Johan Andersson (EA DICE,寒霜引擎技术指导)

        大会的第三天,即北美时间2013年11月13日,重点转向了关于游戏的图形运用,举行了名为「Mantle for Developers」的讲演。本文主要说的就是这一方面的内容。

        主持讲演的是EA DICE技术指导Johan Andersson。负责寒霜3引擎的开发,本次通过「Battlefield 4」(以下简称BF4),从对Mantle支持的立场,对Mantle的优势与可能性进行解说。

● EA准备令15款作品支持Mantle

e2f7bbe3-845a-4422-9156-a173a455146e.jpg

        Andersson说,Mantle版BF4以12月下旬发布为目标,现在正在开发进行中。实现方式是将PlayStation 4的渲染引擎装载进Mantle中。开发时间实际上仅有两个月。

        但是,「由于需要更深层的优化与多GPU的支持,且要将PC版的图形要素全部加入,因此绝对不是PS4版的移植」。

        与BF4同样使用寒霜3引擎的「植物大战僵尸:花园战争」也正在向Mantle移植中。这款游戏并非面向高性能独立显卡使用,而是以APU为对象,以逼近高配置PC的图形效果为方向进行开发。

        另外除EA DICE之外,Electronic Arts公司(以下简称EA)旗下其他工作室负责的游戏,已经确定有15款以对Mantle的支持为前提进行开发。比如《极品飞车18;宿敌》 《龙腾世纪:审判》 《境之边缘》系列的新作与《星球大战》的新作,还有《质量效应》系列等,都准备支持Mantle。

4a7af997-ca2a-42e2-ab94-ef6b3cce502d.jpg
▲ 《植物大战僵尸》支持Mantle,目标是APU流畅运行

a4952eb2-3003-40b0-9ce2-5329032ab4f4.jpg
▲ 不限于EA DICE,EA公司各工作室共计15款作品都准备支持Mantle

       绕开繁琐的传输机制 缩短延迟


        Andersson这次要说的并不是这些游戏作品,而是要谈谈Mantle到底能做什么。所谓「通过特定的架构,弱化虚拟层,以达到直接控制GPU」的Mantle,具体是怎么实现的,就有必要进行一番了解了。事实上Andersson也是从这开始谈起的。

        目前PC上使用的的DirectX(Direct 3D)和OpenGL图形API,是以不同厂商(目前主流的AMD/ATI、nVidia、Intel,更多的已经成为历史的如S3、3Dfx、3DLabs、Matrox等等)制造的不同架构GPU为对象开发的。使用这些API进行开发,目的是同样的应用程序最终得到同样的运行结果(性能上先不论)。

        这些API登场的90年代,是很多半导体制造商独自架构的GPU投入市场,百家争鸣的年代。因此要在不同架构间的差异之上,让所有的GPU都能有同样的图形表现,这一「稳定兼容」的保证,造就了这些图形API。从显卡的角度上看,也就是一款显卡需要「支持DirectX」「支持OpenGL」,才能保证可以运行市面上的应用。

c0f58682-1427-49b9-8d99-736f4ed5f239.jpg

        ▲ 从游戏(应用程序)角度来看,DirectX与OpenGL这些API就像黑盒,即只知道外部接口,内部是不为所知的
        为了实现稳定兼容、弱化硬件架构差异,因而使用了复杂的硬件抽象层。由此一来,从应用程序的角度来看,DirectX或者OpenGL就像是黑盒一般的存在。

        然而这种做法虽然取得了很好的通用性,但一个弊端就是,硬件本来所持有的,即原生的性能无发完全发挥。Andersson指出:「现在的DirectX和OpenGL,即便是在搭载多核心CPU的电脑上,向GPU传送指令和数据时,多核心的优势也得不到发挥」。

        在这里有必要简要说明一下游戏图形的描绘过程:





        ——应用程序呼出DirectX或OpenGL的API



        ——API将标记「让GPU处理」的指令存储至内存中称为「指令缓存」的一个区域。



        ——图形驱动程序将这些命令依次发送至GPU



        ——根据驱动程序发送的顺序,GPU依次执行




        这里面重要的一点是,DirectX或OpenGL的情况下,对「指令缓存」的管理并不是由应用程序,而是由API执行。于是DirectX或OpenGL,则一直在改善着处理「指令缓存」时多核心CPU的充分利用。

        然而API与应用程序的线程管理是完全脱离开的,应用程序方面无法做到完全并行的细化控制。相反,一些场合还会出现应用程序的执行线程与API相冲突,进而造成的就是处理延迟。Andersson指出的「多核心优势得不到发挥」就是指的这一点。

c95ac7a0-15ee-4e6a-bf43-2b9485b57612.jpg

        ▲ 上面幻灯片显示了DirectX与OpenGL「并行处理的局限」。核心数虽多,「Render(渲染)」进程仅能由「CPU 1」进行处理。

        因此Mantle将性能最大化的路径,就在于与DirectX或OpenGL不同的方法。Mantle的「指令缓存」管理设计为,不经由指令缓存,由应用程序直接向GPU发送指令。

        这样一来,各CPU线程拥有独自的指令缓存,可以依次向GPU传送。由此一来,多核心的执行效率得到提高,到达GPU的延迟缩短,结果就是硬件的性能得到充分的发挥。


89705ace-a360-4fb0-bda9-6c1bdcf32808.jpg


▲ Mantle的情况:指令缓存控制自身实现每个CPU核心并行化处理,提高了处理效率

       实现至今为止无法做到的高度并行?

        现在的GPU不仅有图形渲染功能,还具备GPGPU(通用计算)、显存与系统内存之间的传输处理「DMA」(Direct Memory Access)的执行部分。这些执行部分,毫无疑问同样是通过指令缓存所存储的指令来执行的。

1eee00ae-afbd-4a40-9b01-231c8cbd89ba.jpg
▲ 现代GPU包含图形渲染(图形)与GPGPU(运算)、DMA这些功能


912c63f2-e0e0-498c-a9b0-c47e7e1dd229.jpg
▲ Mantle的GPU处理优化,是通过CPU方面应用程序的协调运作实现的


        Mantle实现了让应用程序管理指令缓存,不再需要中间层,应用程序可以直接控制GPU的各执行部分运作。「GPU的运作将变得与黑盒式的DirectX或OpenGL大大不同」,Andersson这样描述道。

        有了Mantle,应用程序则可以实现「某一图形渲染工作正在执行的其间,DMA得到命令,将下一个渲染所需要的数据从系统内存传输至显存」这样的协调动作,也就是减少了等待时间。

        再或者,GPGPU方面一边运算光照,着色器则同时生成阴影,最终两方面的结果加以合成,这样也可是可以做到的。

f47ec101-b5f8-4bde-b343-d4798b5dc46f.jpg
▲ 协调工作优化的实例。这里图形方面处理渲染的途中,DMA方面复制接下来需要的数据

34f5b75e-b0af-423a-ab71-48a7950b7a51.jpg
▲ 其他的优化实例。GPGPU方面处理光照,同时图形方面处理阴影

        可能有人觉得GPGPU理应是用作图形以外的用途,作为图形使用这一点比较奇怪。但这正是 PlayStation 4与Xbox One这一代游戏主机在游戏图形上所使用的手段。寒霜3引擎就使用了这一模式,利用GPGPU处理culling与后期效果。

        回到Mantle。Andersson称,应用程序获得了控制图形渲染与GPGPU、DMA的各执行部分的权限,为了使应用程序可以做到适宜地覆盖并行处理,Mantle「对渲染管线进行了革新」。

f759f159-b22d-4905-9b91-78bb1950688c.jpg

        ▲ 通过Mantle,可以实现GPGPU进行几何处理与栅格化,与图形渲染同时协调工作,这是至今为止无法实现的。

        比如,有了Mantle,可以通过GPGPU执行几何处理与光栅化处理,仅将最后的像素着色任务交给着色器,这样的话就可以得到相当实用的处理速度。

        具体的,Mantle可以在游戏图形中处理庞大的顶点数据「点云(point cloud)」或皮克斯在CG动画爱用的「微多边形化(其实就是曲面细分?)」手法。也就是说,Mantle可以实现不需要三角形(多边形)网格3D模型的游戏图形。

e5713f71-9126-4d95-b824-38bcc824037b.jpg

        PlayStation 3游戏图形流行利用Cell CPU内的协处理器进行特殊的顶点着色,这一类似通用计算的手法,Mantle使用起来也是毫无问题的。将不需要描绘的多边形进行废弃的culling操作、判定可否遮蔽的「Occlusion Query(遮蔽探査)」这些任务,可以通过GPGPU进行处理。

        这样一来,GPGPU与着色器并用的手法,达到了GPU与CPU充分利用,「支持Mantle的应用程序中,可能会实现全新的渲染机制」,Andersson对此表示期待。

39a6d9f6-657c-47b0-9f76-7bc0e6f146ce.jpg

        成败由其他厂商的支持与否决定?

        Mantle现在仅在Windows环境下提供。因为Mantle目标硬件为PC,Windows作为PC游戏大量占有的平台,被优先支持也是理所当然的。

        不过Andersson希望Mantle也在其他的平台上展开。具体的对象,Andersson称,希望既有Linux与Mac OS,也有Android等移动操作系统。

        Andersson说,假设Mantle支持了Linux,Valve计划的基于Linux的游戏机「Steam Machine」的存在就变得非常有意思。另外,移动设备上,他主张,「正因为绝对性能较低,Mantle更具存在意义」。

9e0f4de3-2c50-4e77-bdee-8d2374ec6863.jpg
10f367b6-1b38-4114-bbd5-2efb681f8e0d.jpg
▲ Andersson主张将Mantle覆盖面扩张至Linux、Mac OS,以及移动平台

abd01544-7049-4f50-9e05-d584582851f2.jpg

▲ Andersson指出,Mantle的普及需要多家厂商的参与,言外之意就是NVIDIA的参与是必要的

        先不说PC上运行的Linux,这是少数群体。在移动设备领域上,AMD还没有涉足,单单要求AMD一家推进Mantle是很困难的。若要实现Mantle向移动设备推进,需要与涉及SoC的其他图形厂商携手共进才行。

00fe0ce6-195d-416b-8352-628c3b2d2850.jpg

        ▲ AMD Mantle首席架构师、原ATi图形开发人员、《无冬之夜》《F.E.A.R》系列开发参与者 Guennadi Riguer

        在前几天的APU13上,AMD Mantle首席架构师、明星编程师Guennadi Riguer称,「NVIDIA等GPU竞争对手在技术上也可以参加『Mantle计划』」。

        Andersson也基于此,主张:「从现代的GPU架构上来看,其他制造商的GPU也可以导入Mantle框架」,「希望所有的GPU都能实现通过Mantle的控制」。

        9月份Mantle发布,从这一时间可以看出,AMD想借PS4、Xbox One所采用GCN架构GPU这一优势,将Mantle推至两大主机使用。然而发布一个月之后,尽管得到游戏开发者群体良好的回应,但对于Mantle今后能否形成一股势力,却并不是非常乐观。

        在Mantle上,AMD现在似乎在期待顶尖游戏工作室的明星编程师、NVIDIA等其他的GPU制造商(Intel、移动平台的PowerVR、高通等)的回应和建议。但要得到这些支援,AMD亟需一些动作让他们看到(Mantle的实物,至少是雏形)。不过,很快了不是么?

  ◇ 4gamer.net 作者:西川善司



编辑结语:

        与大家之前看到的一些论调不同,从Andersson的话中,AMD并没有希望借Mantle给NVIDIA等竞争对手予以重击,而是侧重于GPU性能的挖掘。不是商人的姿态,这次的AMD更像是一个忠实的开发者。当然不排除意识到不能闭门造车,开放才会有希望而转变态度的可能。总之不论过程怎样,现在看来,Mantle似乎又将成为一个共享的产品或是方案。

        不过这里有一个前后矛盾的地方,就是在「共享」这一实现上,Mantle本来是基于对应的专用硬件进行将中间层「瘦身化」的产物。如果做到令多家GPU架构共用,那么又会像DirectX类的API一样臃肿起来,也就违背了Mantle的初衷。

        或许AMD想让其他厂商参与的只是这一个模式,而非最终成品。那么届时会有对应Radeon的Mantle,对应Geforce的Mantle等。这样一来,GPU厂商众则就是以各自的自家高效API来替代DirectX的Direct 3D部分。尽管Direct 3D不是DirectX的全部,但作为DirectX重要的部分,与微软之间出现竞争是不可避免的。同时出现多套互斥的API之后(同一款PC游戏就会有至少3套),对游戏开发者的压力也会几倍地增长。预算拮据的游戏厂商可能会由于无法推出对应全部显卡的游戏,而出现旗下某款游戏仅支持某家显卡而不支持其他显卡的情况。从各方面考虑,目前Mantle站的并不是很稳。

        总之在第一款Mantle游戏没有推出之前,一切都是纸上谈兵。待到基于这款API的游戏真正登场,然后Mantle是将继续成为话题,还是「就没有然后」了呢,我们拭目以待。


via:硬派

0

主题

22

帖子

137

积分

注册会员

Rank: 2

积分
137
发表于 2013-11-26 19:38:31 | 显示全部楼层
好高端。。对我们最底层的码农到底有啥影响
您需要登录后才可以回帖 登录 | ????

本版积分规则

????|????|????|????|?????? ( ?ICP?17032699?-3 )

GMT+8, 2025-5-25 04:18

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表