我可以在一个线程中创建glFenceSync,然后在另一个线程中等待它吗?
或
我可以在一个上下文中创建glFenceSync并在另一个上下文中等待它吗?
我可以在一个线程中创建一个
glFenceSync
,然后在另一个线程中等待它吗?
您可以调用的每个GL函数都要求您为正在调用此线程的线程提供当前的GL上下文,并且GL上下文在任何时间点最多可以为一个线程。
从技术上讲,您的问题的答案仍然是“是”,因为您可以在一个线程上发出glFenceSync
,将上下文移到另一个线程上并在其中调用gl[Client]WaitSync
-但这可能不是您所拥有的介意,我也没有看到这种模式的明显用例。
我可以在一个上下文中创建
glFenceSync
,然后在另一个上下文中等待它吗?同步对象在GL中是可共享的,因此,如果创建共享对象的上下文,它们也将共享同步对象,并且该规范明确允许等待其他上下文的同步对象。实际上,甚至指定了在单个同步对象上可以同时进行多个等待,并且在发送同步对象信号时,所有等待都将被解除阻塞(但以实现相关的顺序)。