2016-08-20 179 views
1

我一直有我的GearVR的應用程序性能問題(上統一開發5.4),所以我決定做一個小實驗,並建立儘可能簡單的現場學習表演:性能問題

  • 一個靜態平面
  • 一個靜態立方體
  • 兩個用相同的材​​料:移動未受光照着色器與8X8單色紋理
  • 一個烘焙定向光
  • 默認最快質量設置
  • 默認播放器的設置保存爲VR啓用多線程渲染啓用

在我的電腦,當我看着探查我得到了以下配置:

PC profile profile

關於你預計:接近4000 FPS。

然而,當我建立我完全一樣的場景,在我的Galaxy S6運行(與ETC2 GLES 3.0紋理壓縮),我得到這樣的輪廓:

enter image description here

它現在已經下降到約60FPS。 WTF?當我看到更多的進入細節我看到絕大多數的CPU使用時間都花在等待GPU:

enter image description here

,然後當我看GPU使用我看到它花其99%的時間將GUITexture.draw:

enter image description here

問題是...有沒有再用GUI紋理我很簡單的場景!我不明白這一點。有人可以向我解釋發生了什麼,以及如何減少PC和手機之間的性能差異?

回答

2

我不知道你是否已經找到答案(我希望你做到了),但是不久前我有同樣的問題,而其他人可能會面臨同樣的問題。

1)GUITexture.Draw

的GUITexture.Draw是由於 「開發構建」 模式。它在渲染整個場景之後添加dev水印紋理。我們可以在Unity的框架調試中看到它。 Unity frame debug

着色器屬性表示它使用名爲「UnityWatermark-dev」的紋理作爲_MainTex。您可以使用圖形調試器進行確認,我使用了Mali圖形調試器。

這裏紋理會是什麼樣子:UnityWatermark-dev

我不知道爲什麼它會在VR模式這樣的開銷,但是當你禁用VR它是相當便宜的。

2)剖析

profiling的時候,除非你打算啓動裂痕或萬歲版本不要使用您的電腦。 Galaxy S6和你的PC之間的處理能力有很大的不同(如果你的GPU和處理器不同,甚至可以在PC之間)。

配置文件時,請始終使用您的目標設備。這是正確瞭解項目發生情況的唯一方法。如果你想在你的PC上啓動一個Rift/Vive項目配置文件,如果你想在你的移動設備上使用GearVR版本的配置文件。