我在很多地方都看到过这样的说法,即用glClientWaitSync
调用GL_SYNC_FLUSH_COMMANDS_BIT
等同于生成围栏后调用glFlush
。我用我的代码尝试了一下,但它似乎没有按预期工作。
我的代码生成了一个PBO /栅栏对的向量,并将其传递。稍后,循环将在围栏上等待,然后使用关联的PBO。在我的系统上,glClientWaitSync
(fence,0、0)工作正常。在同事那里,并且在使用双屏幕设置时,它会永远阻塞。通过创建围栏后进行glFlush
解决了该问题。
由于我在某些地方读到GL_SYNC_FLUSH_COMMANDS_BIT
可能会更快,所以我尝试用它代替刷新。结果是阻止行为返回。
造成差异的原因可能是什么?任何想法如何识别它? 谢谢。