Dynamic Latency Input is only available on XBOX console. The feature isn’t available on PC, and thus the API is unimplemented on the PC platform. The APIs for DLI are also no longer available beginning with GameInput v.1, but the underlying synchronization system continues to be available on supported devices. A title can still choose to provide these syncs by casting down from a future API version back to v.0 for that particular call.
Overview of Dynamic Latency Input
DLI is a synchronization system between the controller and game platform. It assesses the game’s input calling pattern and adjusts the report rate of the controller to deliver up-to-date input just before the input call. The following are the key components that are necessary to complete an input call.- A controller that’s capable of dynamically adjusting how often it reports and reads its buttons.
- The ability to monitor game input reading patterns to predict when the next input is needed.
- The ability to use these patterns to adjust the controller reports so that they align with the game’s needs.
DLI accuracy
DLI runs when a supported device is in use. It monitors how well it’s predicting when the next input read will occur. It keeps this value as an internal confidence. If the predictions are consistently off, the confidence gets too low and DLI disables itself. The most common reason for a low-confidence value is inconsistent behavior. DLI assumes that input is read at a consistent cadence and synchronizes to it. Some games use simulation threads that outpace DLI or that read input at inconsistent intervals. These cases confuse DLI and lower its confidence because it can’t find a stable rate to synchronize to.DLI is limited to a cadence of 125 Hz. Attempting a cadence higher than that value results in DLI disabling itself.
Use hints to increase accuracy
To mitigate low confidence values and assist DLI, send hints to the platform that give you control of when input synchronizes. When you call SendInputSynchronizationHint, DLI ignores input read timing and synchronizes to the hint call. To ensure inputs don’t come in late, useSendInputSynchronizationHint right before the first input read of each simulation pass as shown in the following code.
