2013-02-07 37 views
1

我得到了一些令人驚訝的結果,在iO6/iPad3上渲染大型模型(大約130K垂直)。CPU綁定在iPad 3上渲染

這裏是背景信息:

  1. 130K綠黨,非交錯(壞我知道),在5個批次繪製glDrawElements
  2. 綠黨是位置(3浮動),正常(3字節),顏色(4字節),位於GL_STATIC_DRAW VBO中。
  3. 頂點狀態在幀開始時用VAO設置。
  4. glClear在幀開始時被調用。
  5. 應用程序正在使用GLKViewController來處理GL框架。

結果,Xcode的個人資料查看報告:

  1. 約3幀。
  2. GPU利用率約爲7%。泰勒在2%,渲染者在5%。
  3. CPU時間是每幀360毫秒,GPU是25.哎!

使用儀器的進一步分析報告稱爲glRunVertexSubmitARM(從glDrawElements調用)的內部GL函數佔用大部分時間。這裏發生了什麼?我的輸入數據如此糟糕以至於GL花費時間將每一幀都轉換爲一種很好的格式?

回答

3

這正是發生的情況。確保所有頂點屬性都以4個字節邊界開始(向法線添加填充字節)。

+0

謝謝!這是猜測還是你之前看過類似的效果?改變正常格式對我來說是不平凡的。 – Justicle

+0

是的,這只是正常的 - 幀頻上升到30fps,並且CPU利用率正在下降。 – Justicle