iphone 4 と ipad 1 で FPS が比較的遅い理由を突き止めようとしています。開いている GL 分析で、次のカテゴリの警告が表示されます: 論理バッファーの負荷。まとめは「フレームバッファの読み込みが遅い」です。推奨事項では、レンダリングの前に GPU によってフレーム バッファをロードする必要があるとされています。各フレームの開始時にフルスクリーン クリア操作を実行しないことをお勧めします。ただし、glClear でこれを行っています。
[EAGLContext setCurrentContext:_context];
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFramebuffer);
glClear(GL_COLOR_BUFFER_BIT);
// Our OpenGL Drawing Occurs here
... ... ...
// hint to opengl to not bother with this buffer
const GLenum discards[] = {GL_DEPTH_ATTACHMENT};
glBindFramebuffer(GL_FRAMEBUFFER, _defaultFramebuffer);
glDiscardFramebufferEXT(GL_FRAMEBUFFER, 1, discards);
// present render
[_context presentRenderbuffer:GL_RENDERBUFFER];
実際には、深度またはステンシル バッファーを使用していません。
これは、テクスチャをタイルとしてレンダリングするときに発生し、新しいタイルをロードするたびに発生します。glDrawArrays コマンドを指しています。
この警告を取り除く方法に関する推奨事項はありますか?
それがまったく役立つ場合、これがレイヤーの設定方法です。
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking,
kEAGLColorFormatRGB565, kEAGLDrawablePropertyColorFormat,
nil];