ANGLE是Chrome组织中的一个项目,该项目使用Vulkan而不是设备供应商提供的本机ES驱动程序来处理OpenGL ES图形调用 。
Android设备上的不同硬件供应商提供了许多OpenGL ES驱动程序。这种多样性导致图形驱动程序质量的变化以及这些驱动程序上行为的不一致。这也意味着错误修复程序通常不会传播到所有设备,并有助于导致OpenGL ES生态系统的碎片化。
Android 11,ANGLE APK将包含一个配置文件,以按应用启用ANGLE。同时,从Android 11开始,您可以使用ANGLE运行非核心应用程序以评估性能并确定特定应用程序是否应使用ANGLE。该评估和选择加入选项使开发人员可以逐渐转向ANGLE。
要尝试ANGLE,请按照下列步骤操作:
1.启用开发人员选项。
2.打开开发人员选项,然后选择“ANGLE Preferences"
3.选择一个应用程序。
4.选择应用程序的驱动程序。
选择angle。要恢复为本机OpenGL驱动程序,请选择native或default。
OpenGL ES vs Vulkan
在移动领域,传统API的硬件程序模型已不再很好匹配硬件,而且CPU往多核发展后,传统API不能有效利用多核优势。大家期望着替代品的出现,于是Mantle、DX12、Metal之类的新软件应运而生,而Khronos(The Khronos Group, 一个由领先硬件和软件公司组成的开源组织)则开发了Vulkan作为新的3D图形接口需求的解决方案。
CPU占用率
如同OpenGL,Vulkan针对实时3D程序(如电子游戏)设计,计划提供高性能和低CPU管理负担(overhead)。Vulkan是OpenGL与OpenGL ES的继任者,并且更加高效。ARM日前便公布了一段视频对比了Vulkan API 与OpenGL ES API 在CPU占用率及能效上优劣。
OpenGL ES的CPU占用率在不同情况下大约有20-50%,部分情况下甚至达到60%以上,而Vulan的CPU占用率就低太多了,绝大部分情况下都在5%,或者10%以内,相比OpenGL ES降幅明显,多线程支持非常给力。
能耗
另一方面,支持多核处理器也有助于降低能耗,视频中有具体的数值对比,同样的画面OpenGL ES消耗了1270J能量,Vulkan消耗的则是1123J,减少了15%,这对改善续航时间来说是相当大的变化,毕竟玩游戏的情况下手机处理器消耗电力还是非常快的。