OpenGL ES アナライザーを使用しています。glResolveMultisampleFramebufferAPPLE() の呼び出しに実行時間の約 90% がかかっていることがわかります。これは典型的なものですか、それともコードに非効率性がありますか? ここに私の描画コードがあります:
glBindFramebuffer(GL_FRAMEBUFFER, sampleFramebuffer);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
// Draw Stuff . . .
glBindFramebuffer(GL_DRAW_FRAMEBUFFER_APPLE, defaultFramebuffer);
glBindFramebuffer(GL_READ_FRAMEBUFFER_APPLE, sampleFramebuffer);
glResolveMultisampleFramebufferAPPLE();
const GLenum discard1[] = {GL_COLOR_ATTACHMENT0, GL_DEPTH_ATTACHMENT};
glDiscardFramebufferEXT(GL_READ_FRAMEBUFFER_APPLE, 2, discard1);
const GLenum discard2[] = {GL_DEPTH_ATTACHMENT};
glDiscardFramebufferEXT(GL_DRAW_FRAMEBUFFER_APPLE, 1, discard2);
glBindRenderbuffer(GL_RENDERBUFFER, colorRenderbuffer);
[[EAGLContext currentContext] presentRenderbuffer:GL_RENDERBUFFER];
シーンは複雑で、各フレームに 100 万を超える三角形がレンダリングされています。私の遅いフレーム レート (10 fps) は、マルチサンプリングではなく、ドロー コールによるものだと思いました。何かご意見は?