How to Reduce Input Latency in RetroArch on Linux
This article provides a step-by-step guide to configuring input latency reduction settings in RetroArch on Linux. You will learn how to adjust video synchronization, enable run-ahead features, and select the optimal input drivers. Following these instructions will help minimize lag for a more responsive gaming experience.
Update Video Driver Settings
The video driver you select plays a crucial role in input latency.
Navigate to Settings > Drivers > Video. On Linux, the
gl or vulkan drivers are generally recommended
for modern hardware. Avoid the xvideo driver as it often
introduces significant lag. After changing the driver, restart RetroArch
for the changes to take effect.
Configure VSync and Hard GPU Sync
Vertical synchronization can introduce input lag if not configured correctly. Go to Settings > Video and ensure “VSync” is enabled to prevent screen tearing, but pair it with “Hard GPU Sync”. Set “Hard GPU Sync” to 1 or 2 frames. This forces the GPU to wait for the CPU, reducing the buffer between input and display. If you experience stuttering, try disabling VSync and using a compositor that supports tear-free rendering instead.
Enable Run-Ahead Frames
Run-ahead is the most effective tool for reducing latency in RetroArch. It simulates future frames to mask processing delay. Navigate to Settings > Latency. Enable “Run-Ahead” and set the number of frames to 1 or 2. You may need to enable “Second Instance” if the core requires it. Be aware that higher frame counts increase CPU usage significantly. Test each game individually, as some cores handle this better than others.
Adjust Audio Latency
Audio buffering can also contribute to perceived input lag. In the
Settings > Latency menu, look for “Audio Latency”. Lowering this
value reduces delay but may cause audio crackling if set too low. Start
with 64ms and decrease incrementally until you find the lowest stable
value. Additionally, ensure the “Audio Driver” in Settings > Drivers
is set to pulse or alsa for optimal Linux
compatibility.
Select the Correct Input Driver
For the lowest possible latency on Linux, the input driver must
bypass unnecessary layers. Go to Settings > Drivers > Input.
Select udev if you are using a controller directly
connected to the system. This bypasses the X11 or Wayland input stack,
reducing processing time. If you are playing keyboard-based games within
a windowed manager, x or wayland might be
necessary, but udev is preferred for full-screen
gameplay.
Save Configuration Per Core
Different emulated systems require different latency settings. Once you have optimized settings for a specific console, save them as a core override. Navigate to the Quick Menu while content is running and select “Save Core Overrides”. This ensures that your latency reductions apply only to the relevant system without affecting other games that might not tolerate aggressive run-ahead settings.