
Debugging VBO Vertex buffers crashes我正在使用VBO扩展来存储顶点,普通和颜色缓冲区(glBindBufferARB) 可能发生的是我给某些缓冲区调用了错误的缓冲区或大小错误的缓冲区。所以我的问题是,我该如何调试这种情况?崩溃似乎发生在实际调用之后的某个时间,并且在另一个线程中。 假设这是关于Windows的,NVIDIA具有GLExpert工具。它可以打印各种OpenGL警告/错误。 在某些其他情况下,使用启用了错误检查的GLIntercept OpenGL调用拦截器可能会很有用。 如果这些工具没有帮助,那么这是很好的旧调试方法。尝试缩小问题范围,找到导致崩溃的确切原因。如果是NVIDIA特定的问题,请尝试安装其他驱动程序和/或在NVIDIA开发者论坛上提问。 我认为您可能只需要暴力破解那个。 也可以尝试在程序周围大量散布glError()调用。通常,如果您传递假参数glError会在崩溃之前告诉您一些错误。 nVidia的NvPerfHUD是最好的OpenGl / D3D调试工具之一。它不会帮助您找到确切的问题,但是它确实提供了另一种视图,您可以看到正在发送到渲染管道中的内容。 但是,我会说我只在D3D应用程序中使用过它,所以我不知道它对OpenGL程序是否有太大帮助。 编辑: 我不确定为什么这被否决了。我之前用NvPerfHUD调试了VB和IB问题。诸如错误的原始计数之类的简单事情,可以通过查看每个单独的绘制调用来诊断。 |