Blank frame insanity under Mojave Screen Saver

Hi y'all,


Long time GL and developer os OS X (I still have problems calling it macOS). We're an indie music visualizer and screen saver software company of many years. Sadly, our GL screen savers have been broken under Mojave, and after weeks of hoping I'd find a lead, I'm reaching out for help or forward progress. Any help would be appreciated, and we happy to issue complimentary licenses to anyone that can help. That also lets you install the screen saver and repro the black screen easily. Our customers (and us) are out in the wind on this and really need support.


Regression check:

- *same* binary works fine on High Sierra and earlier OS X versions
- Preview mode in SS System Prefs panel works fine (all OS versions)

- "Black screen" reproduced in debugging (on Mojave) with `/Users/me/ScreenSaverEngine.app -debug -window -background`

- all attempts fail -- always the back screen. glClear() in different colors have no effect.

- No errors reported anywhere or in OS logs

- Our "standalone" OS X app that uses the above approach works fine under Mojave (i.e. only ScreenSaverEngine results in a black screen no matter what we try). Same binary test fine when loaded from this OS X.


Our OpenGL screen saver products do the following for getting the GL context going:


@interface OurSSView : ScreenSaverView  {
   ...
}
...
...
nsglContext = [[NSOpenGLContext alloc] initWithFormat:format shareContext:nil];
...
[nsglContext setView:ourSSView];
...
[nsglContext makeCurrentContext];
...
glScissor(  ... );  // Rect checked and good
glViewport( ... );  // Rect checked and good
...
glClear(0, 0, 1.0, 1.0) // Sanity check: has no visible effect, grr!
...
// All GL calls seems to work (no errs, GL vers good, draw calls look good)
...


Thanks

Andy O'Meara

Replies

What version of Xcode are you using? I'm having an OpenGL blank frame problem on Mojave if I build with Xcode 10.1, but not if I build with Xcode 9.4.1. I found that if I transplant the MacOS 10.13 SDK from Xcode 9 to Xcode 10 and build with that, all is well.