名称
glFenceSync — 创建一个新的同步对象并将其插入GL命令流
C 规范
GLsync glFenceSync( GLenum condition,
GLbitfield flags);
参数
condition
指定将同步对象的状态设置为已发出信号必须满足的条件。条件必须为GL_SYNC_GPU_COMMANDS_COMPLETE。
flags
指定控制同步对象行为的标志的按位组合。当前没有为此操作定义标志,并且标志必须为零。[1]
描述
glFenceSync创建一个新的fence同步对象,将fence命令插入GL命令流并将其与该同步对象相关联,并返回与该同步对象相对应的非零名称。
当fence命令满足了同步对象的指定条件时,GL将用信号通知同步对象,从而使所有在同步中阻塞的glWaitSync和glClientWaitSync命令解除阻塞。 glFenceSync或关联的fence命令的执行不会影响其他任何状态。
条件必须为GL_SYNC_GPU_COMMANDS_COMPLETE。通过完成与同步对象相对应的fence命令以及同一命令流中的所有先前命令,可以满足此条件。在完全实现这些命令对GL客户端和服务器状态以及帧缓冲区的所有影响之前,不会发信号通知同步对象。请注意,一旦更改了相应同步对象的状态,篱笆命令就会完成,但是直到fence命令完成后,等待该同步对象的命令才可能被解除阻止。
错误
如果条件不是GL_SYNC_GPU_COMMANDS_COMPLETE,则生成GL_INVALID_ENUM。
如果标志不为零,则生成GL_INVALID_VALUE。
此外,如果glFenceSync失败,它将返回零。
API支持版本
函数名 | 2.0 | 3.0 | 3.1 | 3.2 |
---|---|---|---|---|
glFenceSync | - | ✔ | ✔ | ✔ |
另见
glDeleteSync, glGetSynciv, glWaitSync, glClientWaitSync
版权
https://www.khronos.org/registry/OpenGL-Refpages/es3/html/glFenceSync.xhtml
Copyright © 2010-2015 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.
[1]标志是篱笆同步对象功能的预期未来扩展的占位符。