13

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];
4

1 に答える 1