読者です 読者をやめる 読者になる 読者になる

渋谷ほととぎす通信

完全趣味でやってるUnityメモ。説明できないところを説明できるようにするための個人ブログ。昨日の自分より少しでも大きく慣れるように。。。 ※所属団体とは一切関係がありません

XcodeのCPU FrameTimeが表示されないときの設定項目


f:id:esakun:20161208031621p:plain

環境

  • Unity5.4.2f1
  • Xcode 8.1

f:id:esakun:20161208030707p:plain

とあるパフォーマンスを検証するために、CPU・GPU使用率と1フレームにかかる時間を計測するためにXcodeで実機プロファイリングした時に起きた問題です。

キャプチャの通り、GPUのフレームタイムは表示されますが、CPUの方は0sのまま。


諸々調査した結果、Unityビルド時のGraphicsAPIの設定が原因でした。

プラグインの関係で、このようにOpenGLES2に設定しています。

f:id:esakun:20161207113441p:plain

この状態ではCPUのフレームタイムは表示されません。

  • Auto Graphics APIにチェックを入れる
    f:id:esakun:20161208032605p:plain
  • OpenGLES2とMetalの順番を逆にしてMetalを優先させる
    f:id:esakun:20161208032630p:plain

上記どちらか一方の修正で直ります。 またOpenGLES3も選べますが駄目でした。

要は現状のXcodeのバージョンではMetal専用機能のようです。
※以前のバージョンではOpenGLES2でも使えました。一時的なバグかもしれません

そもそもなぜフレームタイムを知りたいのか?

なぜCPU・GPUのフレームタイムをチェックするかというと、かかる時間に格差がある場合fpsの低下につながるからです。

1フレーム描画するためにはCPUの処理が完了してからGPUの処理に移ります。

f:id:esakun:20161207022339p:plain

仮にGPUの処理時間が大幅にCPUを上回っていたら、CPUはGPUの処理が終わるのを待たなければならないため、fpsが下がりカクツいてしまいます。

できるだけCPUとGPUにかかる時間を同じくらいになるように心がけたいところです。

あわせてどうぞ

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info

www.shibuya24.info