I’ve managed to “fix” this (i.e to the standards that I need), but just for posterity, the issue was with the display modes changing when the monitor is being woken up from sleep during a reboot. In the apple tv fork of cinder i’m using, the crash would happen when
- (void)screenModeDidChange:(NSNotification *)notification was called in
AppImplCocoaTouch.mm. I suppose when the display is lost, the associated context fails and then no more drawing or updating will happen.
My “solution”, given my specific circumstances, was just to call
exit(-1) when the display mode is changed. Because i’m in a managed environment, this will cause the app to immediately restart but with a more stable display state. Not a great solution, but works for my use case and may prove helpful somewhere down the road for someone dropped into the nightmare that is apple tv development.