iO6 / iPad3で大きなモデル(約130K verts)をレンダリングすると、驚くべき結果が得られます。
背景情報は次のとおりです。
- glDrawElementsで描画された5つのバッチで、インターリーブされていない(私が知っている悪い)130kの頂点
- 頂点は、GL_STATIC_DRAW VBOの位置(3フロート)、通常(3バイト)、色(4バイト)です。
- 頂点の状態は、フレームの開始時にVAOで設定されます。
- glClearは、フレームの先頭で呼び出されます。
- アプリはGLKViewControllerを使用してGLフレームワークを処理しています。
結果、Xcodeプロファイルビューレポート:
- 約3fps。
- GPU使用率は約7%です。タイラーは2%、レンダラーは5%です。
- CPU時間はフレームあたり360ミリ秒、GPUは25です。
機器を使用してさらにプロファイリングすると、glRunVertexSubmitARM(glDrawElementsから呼び出される)と呼ばれる内部GL関数が最も時間がかかっていることが報告されます。何が起きてる?私の入力データは非常に悪いので、GLはすべてのフレームでそれを素敵な形式に変更するのに時間を費やしていますか?