Android Q下ANGLE图形引擎性能测试
农步祥 于 2019.07.28 10:39:01 | 源自:soomal.com | 版权:原创 | 平均/总评分:10.00/150
  • 从Android Q开始,谷歌为Android操作系统引入了一个新的图形API接口——ANGLE,我们在《Google Android Q测试版系统安装和使用体验 》[作者:农步祥 ] 中已经简单介绍了ANGLE的作用,不过还是留下一个悬念留着今天来首度解答,那就是ANGLE是否真的有用,或者说能不能用?

    什么是ANGLE

    ANGLE全名是Almost Native Graphics Layer Engine[近似本地图形层引擎],是开源技术,它负责将OpenGL转换为其它3D引擎进行渲染。这并不是大家完全用不上的新奇或者非常稀罕技术,如果是Windows版Firefox或者各种Chrome亲戚浏览器的用户,ANGLE就是这些浏览器软件的渲染层引擎,负责将这些浏览器代码中原生的OpenGL图形层转换为相对更高效的DirectX进行处理。如果这些浏览器在Windows平台还以OpenGL模式运行,那么到今天恐怕在性能和省电上也完全打不过IE6,尤其是英特尔处理器的核显等低性能GPU,OpenGL性能完全就是史诗级灾难。另外这类技术在一些国内常见的安卓模拟器[网易MuMu等]上也有使用,将Android系统的图形底层从OpenGL转换成Direct X运行以提高CPU的利用效率。

    显然,DirectX是不大可能出现在Android平台上的,但在Android 10上推行ANGLE的目的也确实是为了性能提升,将现有的OpenGL ES图形层最终全部转换到GPU利用效率更高的Vulkan[《Vulkan API图形应用接口介绍和展望 》[作者:农步祥 ] ]上,谷歌认为这样可以解决不同硬件厂商自己开发OpenGL驱动的效率和性能差异。但对于现有的安卓应用来说,OpenGL仍是绝对的主流,而且很多旧手机或者旧版本Android并不支持Vulkan,仅有极个别的游戏和应用支持,例如《王者荣耀》只有测试版支持Vulkan,因为旧有设备和兼容性问题,是不能指望开发者直接全面使用Vulkan的,因此需要一个中间层把OpenGL转换成Vulkan进行正常显示。

  • 从目前谷歌开发网站公示的进度来看,Windows版的ANGLE技术最为完整,从Direct X 9、11到OpenGL ES和Vulkan的中间层实现,毕竟Chrome和ChromeOS才是亲儿子。但不太乐观的是在以Vulkan为底层渲染器时,OpenGL部分只实现了OpenGL ES2.0版本,如果是熟悉Android游戏的开发者或者专业用户都清楚,目前游戏开发底层最起码也是ES 3.0级别了,只有高版本才有比较完整的画面渲染功能,对应到DirectX中就和DX9和DX11的差别类似。好在3Dmark等跑分应用还是保留了ES2.0模式的,另外不少游戏也支持向下兼容,只是画质会变差,因此ANGLE的性能仍可以通过3D、HTML等常见标准测试进行验证。

    开启ANGLE和性能测试

    目前Pixel 3下Android Q Beta没有推送更新,版本号和我们在体验文章中的版本相同,开启ANGLE功能也比较简单,只要在开发者相关选项中会列出可以切换图形引擎的应用,选择特定应用切换到ANGLE即可。由于ANGLE仍不支持OpenGL ES3.0以上版本,在3DMark中也将只有老一些的Ice Storm项目可用,另外使用高通的Vellamo进行HTML图形部分测试。在测试中对着空调出风口以保证CPU不出现过热降频问题。

    测试项目 OpenGL ANGLE
    Ice Storm Unlimited 61117 38740
    物理测试 109.80 97.90
    Ice Storm Extreme    
    物理测试 60.50 42.30
    帧率 55-69 27-62
    Vellamo图形 4923 4365
    Pixel Blender 493 508
    CSS 3D Fish 510 396
    Aquarium Canvas 1138 676

    由于是测试版系统加上开发中的新功能,那么运行效果比较差并不会出人意料,Ice Storm这种比较老的OpenGL性能测试中ANGLE的得分只有原生OpenGL性能的约63%,对于Pixel 3上的骁龙845来说等于倒退了两代的性能。Vellamo的HTML图形测试落后得不多,但主要的WebGL的3D图形性能上也是大约只有OpenGL的六成水平。不过单纯性能下降倒不是致命问题,在激活ANGLE后,3D Mark无法正常输出3D画面,只能黑屏。

    总结

  • 虽然谷歌在技术上并不总是靠谱,不过ANGLE性能下降的原因可能并不是负优化或者功能不全所导致,在实际测试和游戏时,可以明显看到3D的画面出现异常,比如拖影和屏幕不停地闪烁,这有可能是在测试版系统中ANGLE开启了调试模式,在不停地往后台和屏幕大量输出调试或错误信息,在3D Mark只有黑屏被显示了出来,而正常的3D游戏则会出现画面闪烁。

    另外从实际游戏运行中,可以明显看出ANGLE模式下游戏画面输出的色彩也没有OpenGL那么鲜艳,这也是因为ANGLE不支持ES3.0以上的画面特效导致的,当然游戏性能上也会明显下降,例如《崩坏3rd》中开放场景地图就从60帧降到40帧左右。在2D图形相关的显示和像素填充中,ANGLE和OpenGL的性能倒是没有明显区别。

    另外,Android Q中开发者选项还出现了一个游戏引擎切换功能,在NEX S和Pixel 3中都有出现,但实际测试和使用来看差别几乎没有,谷歌和外文网站也没有提供任何技术资料或说明,可能是未完成的功能或者没有实现。

    虽然图形驱动层并不是普通消费者需要了解的知识,但这部分对于用户的使用体验和手机的性能、续航还是密切相关的,如果图形底层全面使用硬件效率更高的Vulkan,Android 10系统运行在低端硬件上的图形界面和操作流畅性上还是会有一定的提升。ANGLE对于开发者来说也只是一个运行启动时的转换选项,仍可以通过OpenGL的代码基础进行开发,并不需要进行大规模的代码迁移,便利性不言而喻,因此现在还不能对Android Q下ANGLE的药效做结论,等到Android 10.0推出正式版后我们还将会进行一次补充测试。

    请评分
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    03
    发表于2019.08.09 18:55:14
    19
    122.190.253.***
    122.190.253.***
    发表于2019.08.07 00:07:32
    18
    124.228.050.***
    124.228.050.***
    发表于2019.08.02 21:35:24
    17
    211.143.230.***
    211.143.230.***
    发表于2019.07.29 10:16:16
    15
    03
    好!技术贴,支持!
    发表于2019.07.28 19:47:14
    14
    058.063.131.***
    058.063.131.***
    发表于2019.07.28 19:46:31
    13
    027.018.086.***
    027.018.086.***
    发表于2019.07.28 16:59:47
    11
    Vulcan写错了,应该是Vulkan
    此帖使用Win10提交
    发表于2019.07.28 13:56:05
    10
    111.058.146.***
    111.058.146.***
    发表于2019.07.28 13:46:01
    9
    03

    此帖使用VIVO NEX S提交
    发表于2019.07.28 13:21:30
    7
    219.146.068.***
    219.146.068.***
    发表于2019.07.28 13:20:01
    6
    03

    此帖使用VIVO NEX S提交
    发表于2019.07.28 13:19:42
    5
    171.104.008.***
    171.104.008.***
    发表于2019.07.28 13:05:08
    4
    119.084.153.***
    119.084.153.***
    发表于2019.07.28 12:38:30
    3
    180.170.116.***
    180.170.116.***
    发表于2019.07.28 11:14:16
    1
    提示
    本贴不可匿名回复,回复等级为:1 ,您现在正处在潜水状态
    回复
    验证码
    2452 为防止广告机贴垃圾,不得已而为之
    表情
    正文