自己的遊戲因為有源代碼,所以有更多的分析工具。
RenderDoc
RenderDoc原本是CryEngine的圖形調試工具,現在開源了。這個工具主要用在Windows平臺,mac平臺還在開發中,目前進度比較慢。工具本身可以深度分析DirectX 11的圖形渲染,記錄API調用,記錄渲染狀態,記錄渲染資源等。,功能全面,使用簡單。
雖然工具也可以支持OpenGL,但是對OpenGL的支持還不夠成熟,所以主要用來分析DirectX。
該工具已集成到Unity Editor的Windows版本中,可以直接在編輯器中使用。
XCode儀器
XCode自帶的圖形調試工具已經非常好用了。如果是開發iOS遊戲,XCode自帶的工具已經能夠滿足需求。
Unity開發的遊戲,導出到iOS項目後,也可以用XCode的圖形調試功能進行調試。
Visual Studio框架調試器
VS自帶的圖形調試工具也很強大,當然只支持Windows平臺。因為現在的遊戲開發主要集中在iOS和Android的移動平臺,所以用的不多。
Unity幀調試器
Unity自帶圖形調試工具。這個功能比較弱,但是因為集成在Unity裏,打開很方便,所以偶爾可以用壹下,看看大概的渲染步驟。
第三方遊戲
第三方遊戲沒有源代碼,但是有壹些GPU工具可以輔助查看渲染狀態,分析渲染過程。這些工具壹般由GPU硬件提供商開發和維護,沒有開源版本可用。
PVRTrace
PVRTrace是Imagination Technology提供的GPU分析工具。在安卓手機上的使用步驟如下:
測試的Android手機需要使用Imagination Technology的GPU。雖然SGX系列芯片在蘋果手機上廣泛使用,但SGX在安卓平臺上使用並不特別多。亞馬遜的Kindle Fire HD使用SGX芯片組。
安卓手機需要Root。可以使用壹鍵root工具進行root操作。
在手機上安裝PVRHub
在PVRHub中打開Trace,選擇目標應用後,PVRTrace將開始記錄渲染數據。
渲染的結果數據保存在手機上,需要adb將渲染的數據拉到本地。
打開PVRTraceGUI以導入渲染數據。
此時,您可以開始分析數據了。
但是最終PVRTrace工具並沒有成功使用,並且遇到了以下問題:
我開始測試的手機是小米2,GPU不是SGX系列,是高通的Adreno系列。PVRTraceGUI的圖像窗口無法顯示渲染的幀緩沖區。
換成Kindle Fire HD後,發現Kinde的root不好處理。幾次失敗後,我停止了嘗試。
總結這些問題,其實壹直沒有找到合適的SGX GPU設備。不是工具本身。
腎上腺素剖面儀
Adreno Profiler是高通的壹款GPU渲染調試工具,功能上類似PVRTrace,提供渲染API的錄制和回放分析功能。這個工具也是為高通的芯片組開發的。
正好我手裏有小米2的設備,就測試了Adreno Profiler,最後還是不行。
Adreno Profiler基於mono,建議在windows平臺上使用。我也是在windows平臺上用的,沒有測試mac版本。使用之前需要安裝Android SDK,因為工具需要使用SDK中的adb。
妳需要測試遊戲有聯網功能,否則無法連接,PerfHud ES也有同樣的要求。
在滿足這些前提條件後,Adreno Profiler成功啟動,並能夠成功連接到移動電話。但使用球球大作戰測試,發現Adreno Profiler抓取壹幀數據分析後出現C#錯誤。最終還是沒能解決這個問題。
Adreno Profiler確實是所有調試工具中最容易設置的,但是實際使用中還是有bug的。壹個Bug使得Adreno Profiler無法使用。
佩爾胡德
PerfHud是nVidia的圖形分析工具。英偉達的工具強大而全面。它們以前被使用過,並且在桌面平臺中被廣泛使用。
但是由於nVidia的GPU,也就是Tegra系列,在手機平臺的市場占有率並不太高,所以壹直沒有機會在移動平臺上使用這款設備。
PerfHud ES集成在Nvidia CodeWorks中,需要下載CodeWorks才能使用。CodeWorkd會自動下載完整的Android開發環境,所以如果機器上沒有開發環境,用CodeWorks壹鍵搭建環境是非常省力的。但是CodeWorks下載的IDE是Eclipse,已經過時了。
啟動時,PerfHud ES可能找不到adb,所以需要在啟動時指定adb的路徑。