关于windows的时间函数(timeGetTime,QueryPerformanceCounter)不准确
当游戏中用到大量纹理处理,如Render to texture之类的操作函数的时候,很多机器上会出现获取的时间不正确.
具体表现是,假设一个实际1000毫秒的时间,游戏若有10帧,那么每帧获得的时间差应该是100毫秒左右(实际上真正的耗时也是100毫秒),但是通过timeGetTime或QueryPerformanceCounter得到的时间差,会发生前9帧是90,最后后一帧是200左右.也就是前面获得的时间比实际的时间短,后面一帧的时间比实际长很多(就像是为了弥补前面的时间错误,硬加上一段时间),长期来看时间是正常的,但会导致没帧时间的错乱.请问有没人遇到这个问题.
另外就是,以前很少机器会出现这个问题,最近越来越多机器出现这个问题.
这个情况出现是会在所有图形程序上出现的,比如我们的游戏和<激战>等,开了最佳效果就会出现,跑几帧,跳一帧的情况,有可能是某个微软补丁出的问题吗?