2

I am trying to use a layer-backed NSOpenGLView (wantsLayer = YES) and have noticed a performance issue when running the application on a secondary display.

The issue is easiest reproduced with the GLEssentials example and adding self.wantsLayer=YES in [GLEssentialsGLView awakeFromNib].

https://developer.apple.com/library/mac/samplecode/GLEssentials/Introduction/Intro.html

The best way to see the issue is to set a non-retina display as the primary display in the OS, and move the application to the retina display. There is a significant framerate slowdown. This does not happen when only using a Retina display, so it seems like there's some problem specific to being a secondary display. It also doesn't happen when wantsLayer = NO, so its also related to being layer backed.

We're not sure if this is an actual OS bug, or if there's some optimization that needs to be made when switching displays that is just not present.

Any ideas if there's a good workaround / technique? (FYI - I am aware of the transparent window overlay and would like to avoid that if at all possible.)

1 Answers1

0

FYI this was filed as a radar issue and marked fixed in the next major OS version - 10.12 Sierra. A coworker validated the fix.