关于高性能显卡使用低刷新率显示器情况下的输入延迟

我们发现一种输入延迟异常的情况。当游戏fps平均值在140,垂直同步开启,显示器刷新率60hz的情况下。输入延迟可以达到140ms,关闭垂直同步后输入延迟为40-60ms。

进一步研究发现,在垂直同步开启时,t.MaxFPS参数为999。当我们在垂直同步开启时,手动将t.MaxFPS修改为与刷新率相同的60数值时,输入延迟会从140降低至50左右。

想咨询下

1\.是否在开启垂直同步时,需要将t.MaxFPS与屏幕刷新率保持一致?

2\.游戏中如何获得当前显示器的刷新率数值?如果是多显示器,是否有区别?

Hi,

你好,我看了一下代码,我觉得这里的GInputTime的计算有点迷惑性,导致看到的GInputLatencyTime不一致,实际应该还是按不设置t.MaxFPS的延迟来参考。因为开启VSync后,实际游戏的帧数应该是60fps,设置t.MaxFPS 60,游戏的帧数并没有变,引擎实际响应输入的延迟应该是140ms,因为游戏线程跟渲染线程差2帧(如下图)。

设置t.MaxFPS看起来输入延迟变低了,是因为GInputTime的时间是忽略了引擎自己Wait的时间,实际上这段时间内也是应该算在延迟上的。如果想降低延迟,应该可以考虑设置r.GTSyncType 1,减少一帧等待(也许可能会造成一定的卡顿,或者帧率下降)。

[Image Removed]

收到,感谢。 目前主要是想了解,开启垂直同步时,针对输入延迟问题,应该如何调整相关的参数。目前发现 似乎和显示器的刷新率有关系。

嗯嗯,我理解开启vsync后,帧率应该是屏幕刷新率的整数分之1,比如刷新率是60,帧率应该是60,或者30,20等等。帧率低了应该会影响用户输入响应。