(殴り書き)UnityのVRサポートでパフォーマンスとかプロファイルとか

この記事は絵麻さんを養って幸せな家庭を築く氏の


の Unity VR サポート向けの補足みたいなものです。

環境は Unity 5.2.2p2 + OculusRuntime0.8.0.0 です。
DirectDriverMode が動く人向けです。

VR サポート環境でプロファイラを見ると、CPUの負荷は紫色の Other が、その内訳は OculusWaitForGPU が多くを占めるようになります。

ぱっと見では CPU が 100% 使われているように見えるかもしれませんが、これは CPU での処理が終わって GPU での描画を待っているもので、実際に CPU を使っている時間ではありません。


紫と紫以外が合わせて13.3ms(1sec/75fps)で済んでいるなら問題なし、紫だけで13.3msを越えていたら GPU 負荷高過ぎ、紫以外で13.3msに近い場合は CPU 負荷高過ぎです。

(図を貼りたい。とりあえず上のフォーラムにあるのでそれを見て下さい)

あるフレームについて CPU + GPU で 13.3ms のタイミングで描画できない場合、OculusWaitForGPU は 26.6ms など次のタイミングを待つので、37.5fps になったりします。

あと GPU のプロファイルも環境によっては見られます。GeForceドライバ 358.87 で確認しています。めちゃくちゃ便利です。(プロファイル取るのに追加の負荷がかかりますのでそこは注意)


(出し方は左上の Add Profiler をクリックして選ぶ)

プロファイルを見るときはシーンビューは隠しましょう。当然それを描画するのに負荷が相当かかってます。

あとは CPU 負荷がキツくて GPU に余裕がある場合、PlayerSettings にある GPU Skinning のチェックを入れるのも手です。空いてる GPU のリソースを使うようにお願いできます。物理演算とかでたまに CPU 負荷がハネ上がるフレームがある場合などに有効な気がします。MMD4Mecanim +リアルタイムBulletPhysics するときとか。

とりいそぎここまでです。昼休み終わる

(19:30 ちょっとだけ整理)

コメント