mav*_*888 8 opengl synchronization opengl-3
我试图寻找可以在OpenGL中使用Sync Objects的场景.我的理解是,一旦放入GL命令流(使用glFenceSync())的同步对象将在执行并实现所有GL命令后发出信号.如果同步对象是同步原语,为什么我们不能手动发信号呢?这个功能究竟在哪里可以帮助GL程序员?
以下方案是否正确?
Thread 1 :
Load model
Draw()
glFenceSync()
Thread 2 :
glWaitSync();
ReadPixels
Use data for subsequent operation.
Run Code Online (Sandbox Code Playgroud)
这是否意味着除非在线程1中调用glFenceSync(),否则我无法启动线程2?
Fences并不是要同步线程,而是要知道,当异步操作完成时.例如,如果您glReadPixels进入像素缓冲区对象(PBO),您可能想要知道,在您尝试从PBO读取或将PBO映射到客户端地址空间之前,已完成读取.
如果您glReadPixels使用PBO作为目标,则呼叫将立即返回,但数据传输可能确实需要一些时间.这就是围栏派上用场的地方.
| 归档时间: |
|
| 查看次数: |
4613 次 |
| 最近记录: |