我在iOS 11上EAGLContext presentRenderbuffer
遇到了很多崩溃,但仅限iPhone 6/6 +和旧版。
根据this post,我认为我们已经通过重写所有不使用VBO / VAO来排除与VBO相关的问题,但崩溃并没有解决。
还有一些关于此问题的其他问题,但没有解决方案 - 还有其他人看到过这次崩溃的上升并且能够解决它吗?
TL; DR:
目前我们所知道的是:
到目前为止我们尝试了什么:
一些线索(可能相关但不一定):
这是堆栈跟踪:
libGPUSupportMercury.dylib gpus_ReturnGuiltyForHardwareRestart
1 AGXGLDriver gldUpdateDispatch
2 libGPUSupportMercury.dylib gpusSubmitDataBuffers
3 AGXGLDriver gldUpdateDispatch
4 GLEngine gliPresentViewES_Exec
5 OpenGLES -[EAGLContext presentRenderbuffer:]
答案 0 :(得分:1)
根据我的经验,在这些情况下我会遇到这种崩溃:
UIApplicationStateBackground
状态时调用OpenGL API。希望这在某种程度上有所帮助。
P.S。也许您会告诉您有关您的申请的更多信息?我编写的应用程序在iOS上渲染矢量地图,此时不会遇到iOS 11的任何问题。渲染管道非常简单CADisplayLink
在我们可以渲染下一帧时调用主线程上的回调。使用OpenGL场景的每个视图都可以有几个背景上下文来加载后台资源(ofc它与主上下文具有相同的shareGroup)。