opengl - glFenceSync 可以跨线程或上下文边界使用吗?
问题描述
我可以在一个线程中创建一个 glFenceSync,然后在另一个线程中等待它吗?
或者
我可以在一个上下文中创建一个 glFenceSync 并在另一个上下文中等待它吗?
解决方案
我可以在一个线程中创建一个
glFenceSync
,然后在另一个线程中等待它吗?
您可以调用的每个 GL 函数都要求您为正在调用的线程设置当前的 GL 上下文,并且 GL 上下文在任何时间点最多可以是一个线程。
从技术上讲,您的问题的答案仍然是“是”,因为您可以glFenceSync
在一个线程上发出 a ,将上下文移动到另一个线程并gl[Client]WaitSync
在那里调用 - 但这可能不是您的想法,我也没有请参阅这种模式的明显用例。
我可以在一个上下文中创建一个
glFenceSync
并在另一个上下文中等待它吗?
同步对象在 GL 中是可共享的,因此如果您创建共享对象的上下文,它们也将共享同步对象,并且规范明确允许等待另一个上下文的同步对象。实际上,甚至可以指定单个同步对象上可以有多个同时等待,并且当同步对象收到信号时,所有等待都将被解除阻塞(但以实现相关的顺序)。
推荐阅读
- android - android屏幕键盘按键坐标
- python - 如何仅聚合python / pandas中列的前后值中的值
- angular - 如何在不停止排队调用的情况下使异步调用并行
- sql - postgreSQL:通过匹配行数据删除
- android - Android kotlin - 添加到数组
/ JSONArray 导致 ArrayIndexOutOfBoundsException - javascript - 根据图像分辨率和用户大小输入计算字体大小
- ruby-on-rails - 活动管理员关联未显示类别下拉列表
- reactjs - 当 props 随 useEffect 变化时,如何安全地设置组件的新状态(对于编辑表单模态组件)?
- c - 在字符数组中向右移动字符的最佳方法
- visual-studio - 为侧载的 UWP 构建创建/更新签名证书?