Android Q下ANGLE圖形引擎性能測試
農步祥 于 2019.07.28 10:39:01 | 源自:soomal.com | 版權:原創 | 平均/總評分:10.00/110
  • 從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
    117.136.092.***
    117.136.092.***
    發表于2019.09.18 09:58:55
    20
    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
    提示
    本貼可以匿名回復 ,您現在正處在潛水狀態
    回復
    驗證碼
    0890 為防止廣告機貼垃圾,不得已而為之
    表情
    正文
    京ICP備11010137號 京ICP證110276號 京公網安備110114000469號