OpenGL应用程序中的线程

时间:2013-09-03 14:03:05

标签: opengl

在Windows中运行一个简单的OpenGL应用程序时,有两个未知的线程。我想知道应用程序中的这些线程是什么?有关于它们的文档吗?我们的应用程序崩溃在第一步中的一个线程我想知道这些线程是什么? 。 enter image description here

这是 nvoglv64 的转储: enter image description here

1 个答案:

答案 0 :(得分:4)

这些线程不是特定于OpenGL的东西; OpenGL对线程一无所知,因为从技术上讲,它只是一段文本,即规范。

但是在您的情况下,这些线程很可能是由OpenGL 实现(也就是您的图形驱动程序)创建的。正如您所看到的那样,这些线程的任务似乎是复制一些数据。这表明他们崩溃了,因为你要么给OpenGL

  • 一些无效指针
  • 或指针的无效指标(缓冲区大小,步幅等)
  • 或者您正在释放/释放不同线程中的内存,而OpenGL仍然可以从OpenGL上下文线程访问它。

在任何一种情况下,程序崩溃都不是线程故障,但你的缺乏为OpenGL提供有效数据,或者没有正确锁定/与OpenGL同步,这样你就不会使在运营中期缓冲。

更新

应用程序验证程序发生这种崩溃表明,Application Verifier的某些内容会混淆OpenGL以某种方式使用的内存。这很可能是Application Verifier中的一个错误,但我认为最好的做法是告知NVidia这个问题,以便他们可以通过驱动程序中的解决方法解决问题。