finish相当于flush加一个wait
glFinish()相当于这个
GLsync sync=glFencesync();
glFlush();
glClientWaitSync(sync, GL_SYNC_FLUSH_COMMANDS_BIT, ~0)
flush是保证命令提交
finish是保证命令完成
finish会阻塞cpu
那如果我想知道命令每一步执行的具体时间,可以靠直接加定时器吗?
不可能,cpu和gpu之间是异步的,你看看有没有profile的api或者工具吧.nv卡可以考虑上nsight。
网友评论