显卡间显示同步阶段性预研小结
1. 问题:
计划通过该预研,解决显卡间显示同步的问题(同步精度1ms以内)。
2. 现状
未解决。
3. 尝试过的思路
3.1 思路:交换显示缓冲区之后,立即获取时间,获取前后两次时间的差,从理论上讲,这个时间就是显卡均匀的垂直同步时间
结果:未解决问题。获取到的时间是非常不均匀的,误差从几MS到十几MS。
参考代码:
{ TimeUse(“垂直同步时间:”); glutSwapBuffers(); }
3.2 思路:等待显卡视频显示同步信号,通过获取前后两次信号的时间差,从理论上讲,这个差值就是均匀的垂直同步时间。
结果:未解决问题。获取到的时间是非常不均匀的,误差从几MS到十几MS。
参考代码:
while(iLoop<20) { iRet = glXGetVideoSyncSGI(&retraceCount); #if 0 printf("retraceCount = %d,iRet=%d/n", retraceCount,iRet); glXWaitVideoSyncSGI(2, (retraceCount+1)%2, &retraceCount); #else if(retraceCount<=s_retraceCount) { continue; } #endif s_retraceCount = retraceCount; gettimeofday(&tTime2, NULL); ulDiff = (u