名称
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失败,它将返回零。

glFenceSync 是 OpenGL ES 3.0 中用于创建同步对象并将其插入GL命令流的函数,用于同步GPU命令。它接受一个条件参数(必须为GL_SYNC_GPU_COMMANDS_COMPLETE)和一个标志参数(目前必须为零)。当满足条件时,GL会发出信号通知,解除阻塞等待该同步对象的命令。错误包括无效的枚举或值。该函数是GPU命令完整性的关键工具。

885

被折叠的 条评论
为什么被折叠?



