捕获GPU帧时EXC_BAD_ACCESS

时间:2014-11-24 19:31:11

标签: ios xcode opengl-es crash vbo

我试图调试为什么我没有看到正在渲染的新对象(四边形),所以我使用了#34; Capture GPU框架" Xcode的功能。它通常可以正常工作,但现在它在EXC_BAD_ACCESS期间在另一个渲染调用中给我glDrawElements

请注意,似乎类似于我见过的错误,与VBO的混合使用有关,而不是。但是,我确实在使用后解除了VBO的绑定,并禁用了顶点属性数组:

glBindBuffer(GL_ARRAY_BUFFER, 0);
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0);

glDisableVertexAttribArray(posAttr);
glDisableVertexAttribArray(texCoordAttr);

(另外,请记住,在使用"捕捉GPU帧"时,我只会遇到崩溃,而不是所有时间)

我可能做错了什么?或者这可能是Xcode中的一个错误......?

1 个答案:

答案 0 :(得分:0)

这确实是由于某些GL状态遗留下来,特别是glVertexAttribPointer。我没有抓住它的原因是因为它直接在3d引擎本身内是一个操作顺序问题:在一些状态被清除之前,子对象被迭代(和渲染)。

(道歉,这是一个繁琐的项目特定问题)