上一篇有提到 Unity 內建的的 Profiler 在繪圖分析方面有所不足之處,但這個可以用 Android 各家 GPU 原廠的工具來補足。因為每一家的工具都只能拿來分析自家的晶片,所以最一開始要先了解自己的機器用的是哪家的 GPU 。
一般來講常見的有
Qualcomm: Adreno
Intel: HD Graphics
Imagination: PowerVR
ARM: Mali
Nvidia: Tegra
然後這裡只會介紹 Intel 跟 Qualcomm 的工具,因為只有這兩家的工具不需要 root 機器,我自己對 root 完全沒有概念也不太敢用那些工具。Nvidia 有提供不需要 root 的 static library 作為替代方案,但是因為我還沒有辦法把那個特殊的 OpenGL library 跟 Unity 匯出的 Android Studio 專案整合,所以目前也沒有辦法介紹。國外有一篇所有平台的啟動教學在這裡,如果對於 root 比較在行的朋友可以參考那篇。
知道這些 GPU 的名稱也有助於 Android 上面的除錯,因為有些問題是特定的晶片才會有的。像是老一點的 Adreno 用 Unity 的 Stencil 會有裁切不完全的問題,然後 Tegra 在 16-bit back buffer 開啟的狀態下 Color banding 的問題比其他家都還嚴重。知道 GPU 晶片有助於除錯,讀 Unity Release Note 的時候也比較方便知道是不是同一個問題、有沒有被修掉這樣。
OpenGL Extension Viewer
機器用的 GPU 晶片通常可以從 Wiki 上面找到,但是不時還是會有像是 Galaxy S3 那種不同區域或是不同批次使用不同 GPU 的情況。我通常會裝 OpenGL Extension Viewer 這