c – 哪些用于OpenGL客户端等待:glGetSynciv与glClientWaitSync
我从
Sync objects的OpenGL规范不清楚,是否使用glGetSynciv或glClientWaitSync,以防我在不等待的情况下检查同步对象的信令.以下两个命令如何在行为和性能方面进行比较:
GLint syncStatus; glGetSynciv(*sync,GL_SYNC_STATUS,sizeof(GLint),NULL,&syncStatus); bool finished = syncStatus == GL_SIGNALED; VS bool finished = glClientWaitSync(*sync,0 /*flags*/,0 /*timeout*/) == ALREADY_SIGNALED; 一些细节问题: > glGetSynciv是否执行GL服务器的往返? 一些上下文: >这是一个视频播放器,它将图像从物理源传输到GPU进行渲染. 这两种方法都有使用这些方法的人的例子,不是为了不等待,而是没有人会讨论使用一个或另一个的优点. 解决方法
引用红皮书,
而对于glClientWaitSync:
因此,基本上glGetSynciv()用于知道fence对象是否已经被发出信号,并且glClientWaitSync()被用于等待fence对象已经发出信号. 如果你只想知道一个栅栏对象是否已经发出信号,我建议使用glGetSynciv().显然,glClientWaitSync()需要更长的时间来执行glGetSynciv(),但我猜.希望我帮了你 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- ruby-on-rails – Ruby on Rails主动记录查询(.each,.colle
- 在VSO或VS2015中创建Git分支标记
- ruby – RSpec自定义diffable匹配器
- c 11 – 无法删除shared_ptr泄漏的递归解析代码
- c# – 区分XElement中的null和string.Empty值
- xml与bean的转换实例
- c# – 使用MVVM在WPF Toolkit DataGrid中显示/编辑复杂对象
- cocos2dx LUA 读取本地JSON文件
- ruby-on-rails – 用于nil的未定义方法`map’:NilClass,是
- 【Flutter 实战】简约而不简单的计算器