glFenceSync可以用于跨线程或上下文边界吗?

问题描述 投票:0回答:1

我可以在一个线程中创建glFenceSync,然后在另一个线程中等待它吗?

我可以在一个上下文中创建glFenceSync并在另一个上下文中等待它吗?

opengl opengl-es
1个回答
1
投票

我可以在一个线程中创建一个glFenceSync,然后在另一个线程中等待它吗?

您可以调用的每个GL函数都要求您为正在调用此线程的线程提供当前的GL上下文,并且GL上下文在任何时间点最多可以为一个线程。

从技术上讲,您的问题的答案仍然是“是”,因为您可以在一个线程上发出glFenceSync,将上下文移到另一个线程上并在其中调用gl[Client]WaitSync-但这可能不是您所拥有的介意,我也没有看到这种模式的明显用例。

我可以在一个上下文中创建glFenceSync,然后在另一个上下文中等待它吗?

同步对象在GL中是可共享的,因此,如果创建共享对象的上下文,它们也将共享同步对象,并且该规范明确允许等待其他上下文的同步对象。实际上,甚至指定了在单个同步对象上可以同时进行多个等待,并且在发送同步对象信号时,所有等待都将被解除阻塞(但以实现相关的顺序)。

© www.soinside.com 2019 - 2024. All rights reserved.