gpt4 book ai didi

iphone - gpus_ReturnGuiltyForHardwareRestart 崩溃

转载 作者:技术小花猫 更新时间:2023-10-29 10:35:20 25 4
gpt4 key购买 nike

应用程序在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com