@Ari_Epic Does the Lantern of Insights show anything for this Hitch? (^:
The āInputā stat is for āInput Latencyā. Itās not showing an actual hitch, itās showing the time from when the user gave input (like pressing a button) to it showing on the screen.
This number is usually quite low on 60fps+ titles, maybe around 30-60ms. But that input latency can double when running lower framerates like 30fps.
Since a frame is rendered later than it was simulated with other frames in between (Unreal generally renders at least 1 frame later), this number can grow to 130ms as a āworst caseā according to the Low Latency Frame Syncing docs:
In a 30 Hz title with rhi.SyncInterval set to 2, this can lead to a worst case input latency of up to 130 ms.
So it depends on the gameās framerate and what the r.GTSyncType
variable has been set to.
If your game doesnāt need to be super reactive, a value around ~100ms might not be a problem. If you need this number to be lower, you might want to check out the Low-latency frame syncing mode documentation page.
Your frame time needs to be more stable when doing that, as you donāt have the luxury of another frame in the buffer in case a short spike happens which the extra frame buffer will smooth out.
From the docs:
By carefully choosing this point, we can trade input latency for performance, or the reverse.
The CVar rhi.SyncSlackMS drives the offset we apply to the next predicted vsync time. Decreasing this value will reduce input latency at the cost of shortening the engine pipeline, making it more likely for hitches to cause dropped frames. Likewise, increasing this value will lengthen the engine pipeline, giving the title more resilience to hitches at the cost of increased input latency.
r.GTSyncType
Determines how the game thread syncs with the render thread, RHI thread and GPU.
Syncing to the GPU swap chain flip allows for lower frame latency.
<= 0 - Sync the game thread with the N-1 render thread frame. Then sync with the N-m RHI thread frame where m is (2 + (-r.GTSyncType)) (i.e. negative values increase the amount of RHI thread overlap) (default = 0).
1 - Sync the game thread with the N-1 RHI thread frame.
2 - Sync the game thread with the GPU swap chain flip (only on supported platforms).
On Fortnite, we prefer SyncType=0
(donāt sync with Vsync or RHIT) in 60hz mode since we care more about consistent framerate than latency. When running at 60hz the latency is relatively low anyway.
We use r.gtSyncType=2
(sync GT with vsync) in 30hz modes.
Iām not sure which platforms support SyncType 2, Iām not well versed in this as I just dug this info up from various sources. I know at least Playstation does.