gpt4 book ai didi

opengl - 在 OpenGL 中使用围栏同步对象

转载 作者:行者123 更新时间:2023-12-04 07:24:49 26 4
gpt4 key购买 nike

我正在尝试寻找可以在 OpenGL 中使用同步对象的场景。我的理解是,一旦放入 GL 命令流(使用 glFenceSync() )中的同步对象将在所有 GL 命令执行和实现后发出信号。
如果同步对象是同步原语,为什么我们不能手动向它们发出信号?这个功能究竟可以帮助 GL 程序员在哪里?

以下场景是否正确?

Thread 1 :

Load model
Draw()
glFenceSync()

Thread 2 :

glWaitSync();
ReadPixels
Use data for subsequent operation.

这是否意味着除非在 Thread 1 中调用 glFenceSync() ,否则我无法启动线程 2 ?

最佳答案

Fences 并不是为了同步线程,而是为了知道异步操作何时完成。例如,如果您执行 glReadPixels到像素缓冲区对象 (PBO) 中,您可能想知道读取已完成,甚至在您尝试从 PBO 读取或将其映射到客户端地址空间之前。

如果你做 glReadPixels以 PBO 为目标,调用将立即返回,但数据传输可能确实需要一些时间。这就是围栏派上用场的地方。

关于opengl - 在 OpenGL 中使用围栏同步对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15137020/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com