大佬教程收集整理的这篇文章主要介绍了c – 哪些用于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(),但我猜.希望我帮了你
以上是大佬教程为你收集整理的c – 哪些用于OpenGL客户端等待:glGetSynciv与glClientWaitSync?全部内容,希望文章能够帮你解决c – 哪些用于OpenGL客户端等待:glGetSynciv与glClientWaitSync?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。