iphone - gpus_ReturnGuiltyForHardwareRestart 崩溃

标签 iphone ios ipad opengl-es crash

应用程序在 presentFrameBuffer 中崩溃(在前台运行时,没有发生中断)。

不是第一帧就闪退,画了一会儿突然闪退

我没有确切的重现步骤,但似乎与绘制某些特定内容有关,但我仍然没有通过应用程序报告 openGL 错误,包括在 presentFrameBuffer 之前进行的一次错误检查。如果我在 presentFrameBuffer 之前添加 glFinish 将在 glFinish 中崩溃。

应用程序因 EXC_BAD_ACCESS(代码=1,地址=0x1)和上述调用堆栈而崩溃,没有任何其他错误/日志/调试信息。

这是崩溃时报告的调用堆栈:

线程 1,队列:com.apple.main-thread

>     #0    0x36871e46 in gpus_ReturnGuiltyForHardwareRestart ()
>     #1    0x36872764 in gpusSubmitDataBuffers ()
>     #2    0x31eae624 in SubmitPacketsIfAny ()
>     #3    0x378a337a in gliPresentViewES ()
>     #4    0x325b6df2 in -[EAGLContext presentRenderbuffer:] ()
>     #5    0x0052986e in EAGLContext_presentRenderbuffer(EAGLContext*, objc_selector*, unsigned int) ()
>     #6    0x000e2a48 in -[EAGLView presentFramebuffer] at /svn/src_svn/GG/iphone/Classes/EAGLView.mm:228
>     #7    0x000e4066 in -[GGViewController drawFrame] at /svn/src_svn/GG/iphone/Classes/GGViewController.mm:504
>     #8    0x3809ab0a in __NSFireTimer ()
>     #9    0x39d36856 in __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ ()
>     #10   0x39d36502 in __CFRunLoopDoTimer ()
>     #11   0x39d35176 in __CFRunLoopRun ()
>     #12   0x39ca823c in CFRunLoopRunSpecific ()
>     #13   0x39ca80c8 in CFRunLoopRunInMode ()
>     #14   0x39b9333a in GSEventRunModal ()
>     #15   0x3551b288 in UIApplicationMain ()
>     #16   0x000e1bae in main at /svn/src_svn/GG/iphone/main.m:14

有人知道这个吗?

最佳答案

如果您使用的是 VAO,这可能是由于索引缓冲区(元素数组缓冲区)引用的顶点超出了顶点缓冲区限制 (VBO)。

请记住,元素数组缓冲区存储在 VAO 中,因此只要绑定(bind)了 VAO,每次调用 glBindBuffer( GL_ELEMENT_ARRAY_BUFFER ) 都会替换索引缓冲区。如果您在移动到场景的下一个对象时忘记取消绑定(bind) VAO,您将更改上一个调用的 VAO。

更多信息在这里:http://www.opengl.org/wiki/Vertex_Specification#Index_buffers

还有一个调试提示:过大你的顶点缓冲区,它可能会把这个崩溃变成一个小故障,然后你可以用 XCode 的 OpenGL ES 帧捕获工具检查(这需要 XCode 4.5 和 iOS 6)。

关于iphone - gpus_ReturnGuiltyForHardwareRestart 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196977/

相关文章:

ios - 快速更改 titleTextAttribute

ios - GCD 串行队列和竞争条件

iOS NSDictionary 值确定 bool 值是否来自 JSON bool 值

ios - 当我 Handlebars 机放平时,UIDevice 方向不断在 UIDeviceOrientationPortrait 和 UIDeviceOrientationLandscapeRight 之间翻转

objective-c - 如何在iPad上播放系统按键点击音效?

ipad - 如何从UITableView删除页眉和页脚空间?

iphone - 如何同时执行两个 UI 更新?

iphone - 依次显示两个模态视图 Controller

objective-c - 以编程方式在导航 Controller 中添加按钮以支持 5.0 之前的版本

ios - 使用 AVAudioSession 设置麦克风增益时出现不稳定行为