GLKView doing Logical Buffer Store?

So I switched over my old EAGLView based code to use a GLKView.

When I run the profiler with OpenGL ES Analysis, I get a warning about 'Logical Buffer Store.'


0 libglInterpose.dylib 0x100e88190

1 GLKit -[GLKView _resolveAndDiscard]

2 GLKit -[GLKView _display:]

3 GLKit -[GLKViewController _updateAndDraw]

4 libglInterpose.dylib 0x100f587fc

5 QuartzCore CA::Display::DisplayLinkItem::dispatch()

6 QuartzCore CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long)

7 IOKit IODispatchCalloutFromCFMessage

8 CoreFoundation __CFMachPortPerform

9 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__

10 CoreFoundation __CFRunLoopDoSource1

11 CoreFoundation __CFRunLoopRun

12 CoreFoundation CFRunLoopRunSpecific

13 GraphicsServices GSEventRunModal

14 UIKit UIApplicationMain

15 dig main /Users/bram/apps/Proto/Dig/iOS/main.m:14

16 libdyld.dylib start


OpenGL ES performed a logical buffer store operation. This is typically caused by switching framebuffer or not discarding buffers at the end of the rendering loop. For best performance keep logical buffer store operations to a minimum amd discard the depth buffer at the end of each frame. See the EXT_discard_framebuffer extension for more details..


I used to have a EXT_discard_frame buffer in my EAGLView, but now I use GLKView, I am surprised GLKView does not do the discard operation?

So I have investigated this issue some more.

I can reproduce it by creating a new project from the 'Game / OpenGL ES' template.


I just need to add a single line to GameViewController.m - (void)viewDidLoad


view.drawableMultisample = GLKViewDrawableMultisample4X;


With MSAA enabled, the default template code will generate a 'Logical Buffer Store' warning each and every frame.

Without MSAA enabled, there will only be one such warning, at program start up.


I suspect that GLKit and GLKView are implemented suboptimally, and do not discard the supersample buffer after resolving.

If this were fixed, all GLKView based apps would gain performance.


bram

GLKView doing Logical Buffer Store?
 
 
Q