我在区分调用glFlush()
和之间的实际区别方面遇到困难glFinish()
。
该文档说glFlush()
,并glFinish()
将推所有缓存操作的OpenGL,这样一个可以放心,他们都将被执行,不同之处在于glFlush()
将立即返回,在那里为glFinish()
块,直到所有操作完成。
阅读了定义后,我发现如果使用该定义,glFlush()
可能会遇到向OpenGL提交比其可执行的操作更多的问题。因此,尝试一下,我换了glFinish()
一个glFlush()
和一个,然后看,我的程序运行了(据我所知),完全一样。帧速率,资源使用情况,一切都一样。
所以我想知道这两个调用之间是否有很大区别,或者我的代码是否使它们运行没有区别。还是应该使用一个与另一个。我还认为OpenGL会调用一些命令glIsDone()
来检查a的所有缓冲命令glFlush()
是否完整(因此,向OpenGL发送操作的速度不会比执行它们快),但是我找不到这种功能。
我的代码是典型的游戏循环:
while (running) {
process_stuff();
render_stuff();
}