1

我们的软件中有一个非常奇怪的错误。glXSwapBuffers 的调用将不时阻塞,直到发送一些 X 事件(鼠标悬停在窗口/键盘事件上)。似乎该错误与从未正确解决的从 swapBuffers() 上的线程块渲染的 Qt QGLWidget OpenGL相同。我们有同样的情况。

在我们的应用程序中,我们创建了多个窗口,因为我们的应用程序需要使用多个屏幕。我们的每个窗口基本上都是 QWidget,它有一个从 QGLWidget 派生的类作为它的唯一子级。每个窗口都有自己的渲染线程,它执行 OpenGL 命令。

在这种情况下,应用程序只是不时停止。如果我们向它提供 X 事件(将鼠标移到窗口上/按下键盘按钮),它会正常继续。基于调试器信息 glXSwapBuffers() 块在封闭的驱动程序代码中的某处。

我们尚未在 NVidia 卡上确认此行为,仅在 AMD 卡上出现,并且在使用多个 AMD 卡时更有可能出现。这表明该错误可能来自 GPU 驱动程序。

我想知道有没有其他人遇到过这个问题,甚至有人设法解决了这个问题。

4

0 回答 0