在今年的 Unity 亚洲开发者大会上,高通公司半导体事业部资深经理刘晓光从硬件芯片、引擎优化、OpenGL ES 3.0 支持,以及开发工具等角度,分享了如何软硬件双管齐下,开发及优化出优秀的移动游戏。
高通公司半导体事业部资深经理刘晓光
高通深植无线领域已逾 25 年,一直引领无线领域的创新,到目前为止芯片出货量已超过 150 亿。高通仅 2013 年在R&D方面投入了 50 亿美元,这在所有高科技公司中,每年 50 亿美元的R&D投入是非常大的。刘晓光表示“到目前为止高通拥有超过 84000 多个合作伙伴,我们的市值也已经达到 1280 亿美元。”
到现在为止高通覆盖了市场中超过 1350 款终端,而且还有 500 款正在紧锣密鼓地研发过程中。截止至目前,与已经有超过 100 个厂家采用高通处理器研制手机。
采用高通 Snapdragon 的平板电脑
高通和微软进行了深度合作,在 Windows Phone 领域中,高通是最大的供货商,100% 的 Windows Phone 都是采用的高通处理器。同时,我们也是最先支持 Windows Phone 和 Windows 8 的芯片供应商。到目前为止,已经有超过 50 款 Windows Phone 和 RT 设备面世,将来还会有更多 Windows Phone 平台设备会应用到高通处理器。
移动游戏与芯片
移动游戏这几年的发展突飞猛进,其增长率甚至超过了整个游戏领域增长率。据 Gartner 分析报告显示,从 2013 到 2015 年,移动游戏领域收入将会翻倍,实现从 132 亿至 220 亿美元的增长。而且将会有更多的游戏开发商和设备生产商被吸引至移动平台上来。到底是什么使移动游戏如此流行?刘晓光认为真正原因还是用户体验。如果对比 2010 年狂野飙车的界面和 2013 年狂野飙车 8 的界面,渲染、背景,俨然是两个时代的产品。
高通的处理器不仅仅是面向高端领域,从低端入门到高端的产品均有涉猎,从低到几百元的智能手机,到最高端的智能手机,大多数用的都是高通骁龙芯片。高通骁龙芯片有四个特点,提供最完整的单芯片解决方案,有强大的图形处理器,以及异步对称多处理(aSMP)CPU 架构,这是现在很多芯片所不具备的。
在 CPU 构架方面,高通在移动领域上是唯一支持异步对称多处理架构的公司。留意一下关于手机芯片的新闻你会发现一个问题,有很多性能比较高的芯片进入市场,但是为什么在手机上很少见呢?那是因为高性能并不是全部,高性能和低功耗相结合才是刚需。异步处理器,在性能和功耗能效上具备最佳平衡,只有异步处理器,才能保证当手机忙的时候,让所有的核都工作起来,让手机性能达到最高,但是手机空闲的时候,不同的 CPU 可以单独工作,让功耗降至最低。
“在 SoC 嵌入式 GPU 领域,高通市场份额第一,占有 32.3% 的市场份额,Nvidia 占 1.4%,剩下的 48 家厂商则占 66.3%”刘晓光表示,“GPU 在移动领域发展非常迅速,甚至超过了整个 PC 领域。高通在短短几年内,从最早的 GPU 的 Adreno A200 开始到现在最新的 Adreno A420 的处理器,将其整体性能提升了 65 倍。”
观众现场体验采用高通技术的平板电脑
基于 OpenGL ES 3.0 进行优化
高通不仅支持从 DX9.3 到 DX11.1 版本,也是全球第一个支持 OpenGL ES 2.0 和 OpenGL ES 3.0 的芯片,并在 GDC 上宣布支持 OpenGL ES 3.1。
以实例化几何渲染(Instaced Geometry Rendering)为例,大家绘制比较复杂的图形时,经常会遇到一些需要重复渲染的小元素,比如说天上的鸟,地上的蚂蚁等类似场景,以前需要对它们逐一渲染,这会占用很多 CPU 资源,非常耗电。而现在绘制一个实例,GPU 可以一次渲染多个类似对象,这让游戏绘制流畅很多。
对于 OpenGL ES 3.0 的遮挡查询(Occlusin Queries)方面。我们在移动设备做事情讲的最多的就是提高效率,我们也想了很多方法来提高效率,比如说有景深的画面,如果前面的元素遮挡了后面的元素,那么后面的元素是不需要渲染的。而这在以前开发过程中需要全部渲染出来,做了许多无用功。我们用遮挡查询,可以让绘图效率达到最高,通过查询简单的查询,可以判断边界是否被遮挡,比如在做镜头光晕效果时,可以查询太阳是否可见,并且只渲染镜头光晕。
另外高通对阴影 PCF 做了很多优化,让整个阴影更加的流畅,包括延迟着色和光照,对于几何物体,在第一遍着色时就会被渲染,在第二遍着色时,只有在有光照的情况下才会最终被渲染成像素。可以说,OpenGL ES 3.0 开启了移动领域的延迟光照,这需要 GPU 支持多渲染目标和浮点纹理。“我们可以同时对多个目标进行渲染,我们的浮点纹理处理性能也非常高。”刘晓光表示。
很多开发者可能都有过这样的体会,当你做纹理压缩的时候,OpenGL ES 2.0 就是个恶梦,直到 3.0 定义了纹理压缩格式。“希望大家尽快迁移到 3.0 版本,因为 OpenGL 2.0 做游戏,要针对不同的 GPU 做不同的纹理压缩包。不是让应用体积增大,就是需要你在用的时候下载不同的扩展包。对于小白用户来说,他不知道自己的手机是什么样的,也不知道,这个游戏是不是为他所用的设备生产的,有那么多的下载资源,如果游戏下载到手机上,发现没法玩的时候,受害最大的还是开发者,如果迁移到 3.0 上的话,这些问题就迎刃而解了。”
对 GPU 的历史熟悉的朋友肯定知道,以前 GPU 曾有两派,一种是可编程单元式顶点着色器和像素着色器用不同的单元做,另一种则是同一单元可以做顶点着色,也可以做像素着色。各有各的好处,到移动领域,最优解是同样的处理单元可以做不同的工作。现在 GPU 画图时,如果顶点处理的任务和像素处理的任务,并没有完全充分利用到现在的处理单元的话,有一部分单元是空闲的。在移动领域最不容忍的就是浪费效率和浪费能耗。
广泛支持引擎中间件
高通跟很多游戏引擎中间件都有合作,包括包括游戏引擎 Unity、Unreal、CryENGINE、Unigine,物理引擎 Box2D、havok、Bullet,音频引擎 FMOD、SRS、Dolby、Wwise,以及高级渲染引擎 Lighting Engine、Enlighten、ALG、Procedural Texturing,让开发者无需接触 GPU 开发,可以直接通过这些引擎达到 GPU 优化的目的。
高通针对第三方引擎我们做了很多优化,首先是渲染和用户界面,让游戏引擎针对我们的 GPU 进行优化,包括最新的 API 调用,以及 GPU 的特性。针对物理和 AI 的引擎,则让它充分利用到高通 GPU 的多线程的特性,并且让它利用高效的处理单元,甚至 DSP 以最低功耗最快的速度处理你需要的数据。在视频和音频方面,让解码器用 DPS,把最完美的图像做出来。高通芯片支持所有的网络协议,在 LTE Cat6 的下载速度可以达到 300Mbps 的水平,通过与游戏引擎公司合作,让他们在网络层面进行充分优化,让需要联网的应用或游戏网络延迟更小。
Unity CEO 参观高通展位
多种工具助力开发及优化
高通为开发者提供了 Adreno 的 SDK 和调试工具 Adreno Profiler。Adreno SDK 在桌面上可以模拟 OpenGl ES,高通有实例和教程,可以掌握 OpenGL ES 的用法。调试工具对于开发者来说非常必要,它能够对 GPU 的利用率进行细致分析。同时,高通还有工具库,帮开发者做纹理压缩和混合优化。
大家在开发过程中可能会碰到各种各样的问题,以前靠猜问题出在哪儿,甚至走很多弯路。Adreno GPU 分析器,它有两种模式,一个是“洗涤器模式”,在一帧里着色纹理,所有调用信息实时进行处理,让你知道绘制这个图的时候,你的程序给 GPU 下了什么指令,GPU 做的动作是什么。另外一个是“绘图器模式”,实时监视并分析所有数据,包括每种 3D 场景,GPU 调用的实施情况,你可以从中知道 GPU 是否在想要的状态下工作。
高通骁龙覆盖低端、中端、高端移动终端。高通和 Unity 一起基于高通处理器对 Unity 4.3 做了优化,大家可以享受高通处理器优化的功能。同时,高通还未为开发者提供工具和文档,节约开发时间。刘晓光表示,对于优秀的顶级厂商,还有应用开发商,高通还会为大家的应用提供更多的展示机会。