Changes

Jump to navigation Jump to search

Input lag

4,773 bytes added, 13 March
Input
'''Input lag''' is the delay between pressing a button and seeing the game react.<ref>http://www.anandtech.com/show/2803</ref> The potential causes for "input lag" are described below (steps which have negligible contributions to the input lag have been omitted). Each step in the process increases "input lag", however, the net result may be unnoticeable if the overall "input lag" is low enough.
 
;Before diving in, let's distinguish between four key terms. Display lag, input lag, system latency, and [https://old.reddit.com/r/apexlegends/comments/f02vxz/apex_netcode_still_worst_of_all_brs/ netcode/network lag]. They might sound similar, but they affect your experience in different ways. While display and system lag can subtly influence input lag, it's crucial not to mix them up.
:''See GamersNexus: [https://www.youtube.com/watch?v=Fj-wZ_KGcsg Framerate Isn't Good Enough: Latency Pipeline, "Input Lag," Reflex, & Engineering Interview] and [https://youtu.be/C_RO8bJop8o Fixing GPU & CPU Benchmarks: Introducing Animation Error] videos for more information about some of these''.
==Causes==
===Display lag=== This is the lag caused by the modern displays/televisions/monitors (due to the nature of the digital technology). [[Wikipedia:Digital_image_processing|<abbr title="Shouldn't be confused with analog image processing.">Digital image processing</abbr>]] (such as upscaling, motion smoothing and edge smoothing etc.) takes time and therefore [https://www.rtings.com/monitor/tests/inputs/input-lag#why-there-s-input-lag adds some degree of input lag as well]. Once the frame has been processed, the final step is the [https://www.rtings.com/monitor/tests/motion/motion-blur-and-response-time pixel response time] for the pixel to display the correct color for the new frame. Analog [[Display FAQDisplays#CRT TVsCRT_TVs|CRT TVsHD CRTs]] and [[Display_FAQ#CRT_monitors|VGA CRT monitors]] have nearly zero display lag, due to the nature of the technologyLCDs, the exception being later model CRT TVs (HD CRTs) that OLEDs and other digital displays do have digital image processing such as High-Definition/HD, 100Hz/doubling the scanrate or 480p inputs, which use scalingand cause noticable input lag.
Having said that most modern "gaming" LCD monitors have "low enough" <abbr title="Shouldn't be confused with Display Lag though.">'':;Response time:Once the digital processing done, the pixels need time to switch to the new frame'input''' lag</abbr>s colors, and many newer TVs also have negligible '''input''' lag so long as '''Game Mode which is turned on''called '[https://www.rtings. [[Input_lag#External_Links|These websitescom/monitor/tests/motion/motion-blur-and-response-time pixel response time]] makes it ' (cause a point to test the displays blur on screen, so it reviews for display and 's different from input lag), so if remember, pixel response affects how fast you're in see the market for a monitor or TV and display lag including image update, while input lag is a concern, check there firstimpacts how quickly the display reacts to your commands.
===Windows Aero===If you:Analog [[Display FAQ#CRT TVs|CRT TVs]] and [[Display_FAQ#CRT_monitors|VGA CRT monitors]] and even [[Displays#CRT_TVs|HD CRTs]] have very fast response times but it're using Windows Vista/7 and are playing in windowed mode, having s limited by [https://enold.wikipediareddit.orgcom/r/crtgaming/comments/qyx4r3/wikiis_this_normal_for_a_crt_monitor_if_not_is_there/Windows_Aero Aerophosphor decay time] enabled will add a noticeable amount due to the nature of input lag because it forces vertical synchronization at the OS-leveltechnology. The same thing applies [[Displays#OLED_Monitors|OLED]] displays have almost no blur on screen due to other OSes if compositing is enabled with VSync. Aero can be disabled in both Vista their very fast response time and 7also capable of displaying true black levels, thus disabling compositing which means that they do not require a backlight to produce an image and lowering input lag when playing in windowed mode, but this can no longer be done from Windows 8 onward due allows OLEDs to turn individual pixels on and off much faster than [[Wikipedia:Windows_Display_Driver_ModelDisplays#WDDM_1.2LCD_monitors|WDDM 1.2+LCDs]]. That said, exclusive fullscreen should automatically disable compositing on all Windows OSes, making it the preferred way which require a backlight to emulate in most casesproduce an image.
:While <abbr title===GPU driver latency==="Flicker/PWM/BFI/strobe-based motion blur reduction such as LightBoost, ELMB, ULMB, VRB, DyAc, PureXP etc.">BFI (Black Frame Insertion)</abbr> technology can significantly improve motion clarity for LCDs, it still falls short of both OLED and CRT in terms of both perceived clarity and motion resolution, though it's a great alternative/bridge the gap between these display technologies, offering a compromise between OLED's brightness and CRT's legendary motion, although at the cost of some flicker, potential extra input lag and reduced overall brightness. Although strobing (BFI) can eventually become obsolete in the future (including DyAc, ULMB, ELMB, VRB, etc) for modern content supporting 1000fps+ 1000Hz+ reprojection. This is a fully ergonomic PWM-free and flicker-free method of display motion blur reduction. No PWM or flicker.[https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-and-reprojection#dev]
There is video latency caused by the GL drivers If you're in Windows/Linux. Both the GLX X11 market for a monitor or TV; check [[Input_lag#External_Links|these websites]] for input lag and Windows GL/D3D drivers are full display lag performance of hacks, code paths, and buffer schemes that cater to benchmarking applications and gamesvarious display products. This is counterproductive when Some of the aim is low-latency audio modern digital displays only have negligible amount of input lag and video synchronization for emulators. You don't want all this stuff going on in the backgrounddisplay lag and even some of them are near identical performance compared to Analog CRTs.
Hard GPU sync options in some emulator frontends can reduce or remove latency from buffering at ===Input===[[File:Keyboard Switches demonstration.gif|thumb|298px|[https://thegamingsetup.com/gaming-keyboard/buying-guides/keyboard-switch-chart-table actuation force] demonstration, see [https://www.x360ce.com/Keyboards this page]]]When it comes to delay of input devices most important thing usually is [[Wikipedia:Keyboard_controller_(computing)|input controllers]] (ASICS/MCU/[[Wikipedia:Embedded_controller|ECs]]), [[#External_Links|sensors]] and [[Wikipedia:Miniature_snap-action_switch|switches]] including [https://deskthority.net/wiki/Category:Keyboard_switches_by_design switch designs]. Wired/wireless usually doesn't matter ([https://kanuan.github.io/DS4WSite/troubleshooting/input-delay-bt/ unless its Bluetooth with power saving mode]); the possible expense thing that really matter is "[https://forums.blurbusters.com/viewtopic.php?t=6162&start=10#p55425 consistency about polling rate]"; polling rate fluctuations cause stutters and unstable input device feedback to users. When it comes to wireless technology "consistency" may be affected by lots of performanceenvironmental factors.
This can be avoided by using See [[Wikipedia:Mode_settingInput_lag#External_Links|KMSthese websites]] for various controllers and [[Wikipedia:Direct_Rendering_Manager|DRM]]keyboard/[[Wikipedia:EGL_(API)|EGL]], specifically on Linux. By using these modes, the user is in control of front and back buffers and don't have to rely on APIs, so that they can find where and when a frame was dropped and how to act accordingly with that in mind. It is advisable to get the latest driver to improve mouse devices for input lag performance, as notable graphics chip manufacturers (e.g. Nvidia) do not find KMS a priority.<ref>[https://developer.nvidia.com/blog/understanding-and-measuring-pc-latency/ nvidia: Understanding and Measuring PC Latency]</ref> Intel and most AMD graphics chips, however, should be fine regardless, but it is still advisable to update driversbenchmarks.
Low* Back in the days some people claim that [[Wikipedia:DIN_connector|DIN/mini-level APIs such as Vulkan DIN connection]] keyboards and mice give better results compared to cheap [[Wikipedia:USB|USB connection]] peripherals due to the user control over buffering and may lower latency without resource-heavy solutions like hard GPU syncnature of the technology. However, there Although this is evidence that OpenGL has lower latency than Vulkan in some instances.<ref>far from the truth [https://forums.libretroblurbusters.com/viewtopic.php?t=8411#p65756 it has better handling of the data], whereas the USB busses can be more easily interrupted etc (kinda similar to wired/wireless polling consistency situation mentioned above).:: [https:/an-input-lag-investigation/4407www.youtube.com/291<watch?v=eEswl6kZq5k Battle(non)sense: Keyboard Input Lag 125, 250, 500, 1000Hz USB vs. PS/ref>2]
* Make sure to use reasonable CPI/DPI and Polling rate values for USB devices because optimizing [https://www.youtube.com/watch?v===Controllerlc7JVjcPzL0 input and matrix resolution] may affect input delay little bit.:: [https://www.youtube.com/Input==watch?v=6AoRfv9W110 Battle(non)sense: Low DPI vs. High DPI and Polling Rate Analysis]
When ===System (BIOS settings, bad drivers, OS misconfiguration) and placebo effect===Some people claims that default BIOS settings, Windows settings, registry settings, bloated services etc. causes little bit input delay and if you tweak these settings it comes will improve your system responsiveness. These kind of tweaks on internet considerably popular due to placebo effect but actually some of them really improves input delay of input devices most important thing usually is a tiny bit. If you're obsessed with hacking your operating system and improving your system responsiveness even for a little bit you can check out [[Wikipediahttps:Keyboard_controller_(computing)|input controllers]] (ASICS/MCU/[[Wikipedia:Embedded_controller|ECs]]), [https:docs.google.com/spreadsheets/sensor.fyid/mice19rFOoJtx8OTF7GumSxwhB_3oCQ5bmY4bSpth7ef69Iw/ sensorsedit#gid=0 FR33THY's latency analysis] and [[Wikipedia:Miniature_snap-action_switch|switches]] including also [https://deskthoritywww.netyoutube.com/wiki/Category:Keyboard_switches_by_design switch designswatch?v=89R9KlJ3ocM optimization pack]which includes useful scripts. Wired Most importantly make sure to use always proper and wireless technologies usually doesn't official drivers for your computer otherwise it may affect much your system responsivess negatively (unless its Bluetooth); some noticed extra lag when using a wireless controllere.g. High DPC Latency, while others didn't. Some people even claim most [[Wikipedia:DIN_connector|devices that use a DIN connection (PS/2spikes, AT IRQ issues etc.)]] are much faster than cheap [[Wikipedia:USB|USB connection]] devices. See [[Input_lag#External_Links|these websites]] for various controllers and keyboard/mouse devices for input lag performance benchmarks.
For input devices make sure using reasonable DPI/CPI values and polling rate values for USB devices because optimizing See [[https://www.youtube.com/watch?v=lc7JVjcPzL0 #Ways_to_reduce_input_lag|ways to reduce input resolutionlag section]/[https://www.silverfast.com/show/knowledge_12/es.html matrix] may affect for reducing input delay little bit.<ref>[https://www.youtube.com/watch?v=6AoRfv9W110 Battle(non)sense: Low DPI vs. High DPI and Polling Rate Analysis]</ref>
===BIOS, Bad driver, OS misconfiguration and placebo effect=[[Wikipedia:Compositing_window_manager|Compositor]]====Some people claims that BIOS settings (most motherboard vendors If you're using Windows Vista/7 and models usually) and Windows operating systems by default comes with registry settingsplaying in windowed mode, bloated services etc. that causes little bit extra having [[Wikipedia:Desktop_Window_Manager|DWM]] enabled will add a noticeable amount of input lag and if you tweak these settings because it will affect input delay positivelyforces vertical synchronization at the OS-level. These kind of tweaks on internet considerably popular due The same thing applies to placebo effect but actually some of them really improves input delay a tiny bitother OSes if their compositor uses V-Sync. If you're obsessed with hacking OS [[Wikipedia:Windows_Aero|Windows Aero]] and improving your system responsiveness you can check out [[Input_lag#External_LinksWikipedia:Desktop_Window_Manager|FR33THY's latency analysisDWM]] which is includes useful scripts can be disabled in both Vista and tweaks. Also see 7, thus disabling compositing and lowering input lag when playing in windowed mode, but this can no longer be done from Windows 8 onward due to [[Wikipedia:Windows_Display_Driver_Model#Ways_to_reduce_input_lagWDDM_1.2|ways to reduce input lag sectionWDDM 1.2+]] for more proper ways . That said, exclusive fullscreen should automatically disable compositing on all Windows OSes, making it the preferred way to reducing input delayemulate in most cases.
Make sure using proper ====GPU driver====There is video latency caused by the GL drivers in Windows/Linux. Both the GLX X11 and Windows GL/D3D drivers are full of hacks, code paths, and buffer schemes that cater to benchmarking applications and games. This is counterproductive when the aim is low-latency audio and video synchronization for your devices otherwise it will affect your system responsivess negatively emulators. You don't want all this stuff going on in the background. This can be avoided by using [[Wikipedia:Mode_setting|KMS]] and [[Wikipedia:Direct_Rendering_Manager|DRM]]/[[Wikipedia:EGL_(API)|EGL]], specifically on Linux. By using these modes, the user is in control of front and back buffers and don't have to rely on APIs, so that they can find where and when a frame was dropped and how to act accordingly with that in mind. It is advisable to get the latest driver to improve performance, as notable graphics chip manufacturers (High DPC Latency/spikes etce.g.Nvidia), see do not find KMS a priority.<ref>[https://olddeveloper.redditnvidia.com/rblog/Windows11understanding-and-measuring-pc-latency/commentsnvidia: Understanding and Measuring PC Latency]</12yghi6/eliminating_high_dpc_latency_and_getting_kernel/ this thread] for more informationref> Intel and most AMD graphics chips, however, should be fine regardless, but it is still advisable to update drivers.
==Ways to reduce input lag==
;Display
:;Option 1
*[[Display FAQ#CRT TVs|CRT TV]] OR [[Display_FAQ#CRT_monitors|VGA CRT]] (not [[Display FAQ#CRT TVs|HD CRTs]]) with analog input/output. If your GPU only support digital output then use [https://old.reddit.com/user/ahayriSG/comments/16q18h6/highend_dacs_for_crts/ high-end DAC/Digital-to-Analog converters] for higher resolutions and refresh rates (Keep in mind that HDMI ones generally [https://youtu.be/WIDeNItt69s?t=1885 pretty bad]). But what about digital-to-analog conversion input lag? See Aperture Grille's video about [https://youtu.be/puu-iyTsZtg?t=840 testing GPU-Passthrough and cheap DAC input lag results]. Also see [https://hardforum.com/threads/24-widescreen-crt-fw900-from-ebay-arrived-comments.952788/page-435#post-1044652495 this thread] for more information about high-end DACs.
::Use Custom resolution/CRTSwitchRes solutions for displaying it on a CRT display in the correct resolutions. You could use built-in Custom resolution/CRTSwitchRes solutions like RetroArch's [https://docs.libretro.com/guides/crtswitchres/ CRTSwitchRes] or [[GroovyMAME]] using with [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT emudriver] which is much more practical compared to using EDID editor tools such as [[Displays#240p.2F480i|Custom Resolution Utility (CRU)]] or using Linux in KMS mode<ref>https://wiki.archlinux.org/index.php/kernel_mode_setting</ref><ref>https://docs.libretro.com/guides/kms-mode/</ref>. See [https://emulation.gametechwiki.com/index.php?search=%22%23Enhancements|Enhancements%22&title=Special%3ASearch&limit=500&profile=default&fulltext=1 #Enhancements sections] in each page for "built-in custom resolution/CRTSwitchRes" support for emulators.
:;Option 2
*[[#External_Links|Fast-TN or IPS panel LCD or fast-OLED display]], also make sure that you mitigate input lag on [[Displays#LCD_monitors|LCDs]] and [[Displays#OLED_TVs_and_Monitors|OLEDs]] by turning on "game mode" from display OSD if available (this will turn off some post-processing options on display). If your LCD display is old set your [https://www.youtube.com/watch?v=Qdp7VfLXnB4&t=279s native resolution to native panel resolution] for preventing possible poor quality hardware display scaler otherwise you can use [https://forums.blurbusters.com/viewtopic.php?t=6155#p46190 GPU scaling] if you have at least mid range GPU.
::If you have a "gaming" monitor you can also turn on "overdrive" option if available for overclocking pixels (applies overvoltage to pixels) making them react faster (better pixel response time) which results in less ghosting. That said, increasing pixel overdrive may cause inverse ghosting as the increased voltage can cause the pixels to [https://www.rtings.com/monitor/tests/motion/motion-blur-and-response-time#test_4246 overshoot] the colors. See [[#External_Links|these websites and reviews]] to learn information about your display devices capabilities and performance.
::Also you could use latest [[MAME]] with "[https://shmups.system11.org/viewtopic.php?t=65615 -lowlatency]" flag for your variable refresh rate supported monitor.
*----;Input'''1.''' Wired controller/input device (just for minimizing possible negative factors, just like using wired connection for router and client device)*Linux OS in KMS mode<ref>https://wiki.archlinux.org/index.php/kernel_mode_setting</ref><ref>https://github.com/libretro/RetroArch/wiki/KMS-mode</ref> OR Windows OS with [http://geedorah.com/eiusdemmodi/forum/viewtopic.php?pid=1009#p1009 CRT Emudriver] (You need compatible GPU for this) using apps has exclusive fullscreen support (Not borderless windowed, or windowed fullscreen)*Use [[Display FAQ#CRT TVs|CRT TV]] OR [[Display_FAQ#CRT_monitors|VGA CRT]] with analog input/output. If your GPU only support digital only output then use [https://old.reddit.com/user/ahayriSG/comments/16q18h6/highend_dacs_for_crts/ high-end DAC/Digital-to-Analog converters]. [https://youtu.be/WIDeNItt69s?t=1885 HDMI ones generally pretty bad]. See [https://hardforum.com/threads/24-widescreen-crt-fw900-from-ebay-arrived-comments.952788/ this thread] for more information about high-end DACs.**If you don't have a CRT, turn on Game Mode for Modern TV set and also set receiving image at native panel resolution (for preventing possible bad hardware display scaler performance)**If you have a "Gaming" monitor you can also turn on "Overdrive" for overclocking/applies overvoltage to pixels making them react faster (Pixel response time) which results in less ghosting. That said, increasing pixel overdrive may cause inverse ghosting as the increased voltage can cause the pixels to overshoot the colors.*Vulkan driver set to 2 max swapchain images OR OpenGL driver with GPU Hard Sync set to 0*Run-Ahead set to 1 frame or [https://www.youtube.com/watch?v=NDYqRoyOKI4 turn on Preemptive Frames]*Frame Delay set as high as your system will allow;System*Turn off digital image processing options from nvidia control panel etc. including post-processing effects such as [[Shader_Presets|shader chain/preset]] from applications if you're using heavy/intensive one. *Always [https://youtu.be/7DPqtPFX4xo?t=72 make sure your GPU underutilized] for preventing [https://images.nvidia.com/content/images/article/system-latency-optimization-guide/nvidia-latency-optimization-guide-pc-latency.png render queue bottleneck] which causes considerable amount of input lag. Also never use in-game [https://youtu.be/L07t_mY2LEU?t=530 vertical sync] because sometimes it includes Triple buffering which is negatively affect input lag. Use alternatives for capping your framerate such as in-game frame capping or "Nvidia Max Frame Rate". However you could use [https://youtu.be/7DPqtPFX4xo?t=650 NVIDIA Reflex feature ''1.'instead of capping your framerate and underutilizing your GPU'''], but not all [https://www.nvidia.com/en-gb/geforce/technologies/reflex/supported-products/ games supports this feature].**But if you have a G-SYNC monitor another option Use exclusive fullscreen for you is using V-SYNC option from Nvidia Control Panel with Low Latency Mode: ULTRA setting. According to Nvidia; "If you have a variable refresh rate display, like an NVIDIA G-SYNC monitor, you can get the best of both worlds: no tearing (if your FPS is below your refresh rate), and no VSYNC latency." "For G-SYNC gamers who don’t want to tear, keeping VSYNC ON while using NVIDIA Reflex or NVIDIA Ultra Low Latency Mode, will automatically cap the framerate below the refresh rate, preventing VSYNC backpressure, eliminating tearing, Windows 8 and keeping latency low onwards if you become GPU bound below the refresh rate of your display. Do note, however, that this method will result in slightly higher latency than just letting your FPS run uncapped available because with NVIDIA Reflex enabled." "As a side note, VSYNC ON in the NVIDIA Control Panel will only work for Fullscreen applications. In addition, MS Hybrid-based laptops do not support VSYNC ON. If you are gaming in borderless windowed and windowed mode or on one of these laptopsfullscreen, and want due to utilize G-SYNC + VSYNC + Reflex mode, use in-game VSYNC."<ref>[https[Wikipedia://wwwWindows_Display_Driver_Model#WDDM_1.nvidia2|WDDM 1.com/en-us/geforce/guides/gfecnt/202010/system-latency-optimization-guide/ Nvidia: System latency optimization guide2]]</ref> :If you don't have a CRT or can't be bothered with one, you can mitigate input lag on LCDs by setting the display to game mode if available and also only pass them their native resolution. This turns off some post-processing effects and reduces scaling delay, which both introduce lag.:To disable Windows Aero under Windows Vista/7, select the Basic or Classic theme under Control Center > Personalization, or disable desktop composition under .exe properties > Compatibility. Some emulators and frontends allow you to disable desktop composition without having to switch themes. The desktop composition will also be disabled by playing under the non-windowed full-screen mode. In Windows 8 and later, the desktop composition cannot be disabled manuallyanymore, so your only hope to avoid the compositing lag penalty is to play in exclusive fullscreen. :Triple buffering will inherently add a few frames of latency, so disable that wherever possible, either through emulator settings or driver settings. :Some graphics drivers enforce excessive frame buffering, which may be eliminated with GPU commands<ref>https://www.twentymilliseconds.com/post/latency-mitigation-strategies/#toc_7</ref>. [[RetroArch]]'s Hard Sync does this. If using Vulkan, be sure to set the max swapchain images parameter to 2, though weaker GPUs, especially Intel iGPUs, can struggle with this, particularly if using shaders or increasing rendering resolutionmode.
'''2.''' Turn off digital image processing and [https://youtu.be/NzYvudM9BmI?t=723 frame generation] options from [https://www.pcgamingwiki.com/wiki/Category:A relatively new lag-mitigating technique known as Run-Ahead has recently been implemented in several emulators and frontendsGraphics_Adaptor GPU driver control panel] if it cause additional/noticeable input delay, which leverages spare performance overhead to run one or more instances of the emulator ahead some of the regular instance, then uses save state rollback to lay that instance over what you see, effectively cutting a whole frame or more of generation technologies can noticeably affect input lag. Most gamesdelay, even on real hardware on a CRTeither positively or negatively, have at least one hard-coded frame between executing an action depending on the controller and said action being reflected on screen, so setting Runspecific technique used[https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-Ahead to 1 frame cuts out that superfluous frame and thus is usually considered safe, but setting it to 2 or more can result in dropped frames and perceived video stutter (though some games can benefit from 2 or more frames, particularly a lot of 5th-gen games)reprojection]. This is also quite processorAlso if you're using intensive one turn off post-heavy, as every extra Run-Ahead frame requires a whole extra instance of the emulator, easily doubling or tripling CPU load, processing effects from applications/emulators and some emulators are currently not able to use Run-Ahead at all[https://www.pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel].:'''2.1. That said, combined with all the other lag reduction techniques ''' Turn on a sufficiently powerful system, RunDLSS/FSR upscaling technologies [https://youtu.be/-Ahead in theory can actually result in less input lag than even real hardwareajK3netvv4?t=173 if it increases your framerate which will likely decrease your latency].
'''3.''' Use [https://emulation.gametechwiki.com/index.php?search=%22%23Enhancements|Enhancements%22&title=Special%3ASearch&limit=500&profile=default&fulltext=1 input lag-mitigating techniques] if application supports it.:'''3.1.''' A relatively new lag-mitigating technique known as [Filehttps:Vsync //github.com/higan-emu/emulation-articles/tree/master/input/run-ahead Run-Ahead] has recently been implemented in several emulators and Predictive Waitingfrontends, which leverages spare performance overhead to run one or more instances of the emulator ahead of the regular instance, then uses save state rollback to lay that instance over what you see, effectively cutting a whole frame or more of input lag.png]Most games, even on real hardware on a CRT, have at least one hard-coded frame between executing an action on the controller and said action being reflected on screen, so setting Run-Ahead to 1 frame cuts out that superfluous frame and thus is usually considered safe, but setting it to 2 or more can result in dropped frames and perceived video stutter (though some games can benefit from 2 or more frames, particularly a lot of 5th-gen games). This is also quite processor-heavy, as every extra Run-Ahead frame requires a whole extra instance of the emulator, easily doubling or tripling CPU load, and some emulators are currently not able to use Run-Ahead at all. That said, combined with all the other lag reduction techniques on a sufficiently powerful system, Run-Ahead in theory can actually result in less input lag than even real hardware.:'''3.2.''' Another option for lag-mitigating technique known as Preemptive Frames. See [https://www.youtube.com/watch?v=NDYqRoyOKI4 this video]for information.
'''4.''' Always make sure that your [https:Some emulator frontends like //youtu.be/7DPqtPFX4xo?t=72 GPU is underutilized] for preventing [[RetroArch]https://youtu.be/K_k1mjDeVEo?t=83 render queue bottleneck] which causes considerable amount of input lag. If that is the case use framerate capping such as "in-game frame capping" or equivalent option from [https://www.pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel].:'''4.1.''' [GroovyMAMEhttps://youtu.be/7DPqtPFX4xo?t=650 NVIDIA Reflex feature]from in-game option will prevent this, but unfortunately not all GPUs and [https://www.nvidia.com/en-gb/geforce/technologies/reflex/supported-products/ games supports this feature] .:'''4.2.''' If you have the a VRR capable display another option to delay the processing of emulation for a few milliseconds until right before a vsync occurs, which causes inputs you to be polled quickly before your display refreshes instead at the beginning of the 16prevent this is simply using both [[Vsync|V-SYNC]] and "Low Latency Mode: ULTRA" or "AMD Anti-Lag+" options '''from [https://www.7ms (for 60 fps) vsync periodpcgamingwiki. The amount of time you can use Frame Delay without dropping frames is dependent on the performance of the emulator on your machinecom/wiki/Category:Graphics_Adaptor GPU driver control panel]'''; this will automatically prevent "render queue bottleneck". Predictive waiting may also be forced with any DirectX based program through GeDoSaTo<refname=renderqueueandvsyncbackpressure>http[https://www.nvidia.com/en-us/geforce/guides/gfecnt/202010/system-latency-optimization-guide/ Nvidia: System latency optimization guide], [https://blogforums.metaclassofnilblurbusters.com/viewtopic.php?pt=7158645 BlurBusters thread: Nvidia Reflex and low latency mode]</ref>::'''4.2.1.''' Keep in mind that if you are using [[Vsync|V-SYNC]] on non-VRR capable display, it will result "V-SYNC backpressure" which will cause additional input lag [https://youtu.be/L07t_mY2LEU?t=530 (especially if it includes triple buffering)].::'''4.2.2.''' If you have a VRR capable display and using "AMD Anti-Lag+" and also want to eliminate tearing completely with all of these: [https://youtu.be/K_k1mjDeVEo?t=727 you need to use framerate limiter again, because it does not keep the framerate inside the variable refresh rate range of the display] unlike Nvidia's "Low Latency Mode: ULTRA" solution.
:Realistically'''5.''' Some graphics drivers enforce excessive frame buffering, Frame Delay is the last thing to configure, after all other sync and buffer settings and Run-Ahead frames have been configured which may be eliminated with GPU commands. RetroArch's [[Vsync#Hard_GPU_Sync|Synchronization Fences/Hard Sync]] for your systemOpenGL does this. If you's performancere using Vulkan backend, as it gives be sure to set the least lag reduction bang for your CPU load buck[https://arm-software.github. It is possible on systems with io/vulkan_best_practice_for_mobile_developers/samples/performance much higher than is required /swapchain_images/swapchain_images_tutorial.html max swapchain images] parameter to run at full speed2, though weaker GPUs (especially Intel iGPUs), can struggle with this, particularly if using intensive [[Shader_Presets|shader presets]] or increasing [[Resolution|internal or rendering resolution]].
'''6.''' Some emulator frontends like [[RetroArch]] or [[GroovyMAME]] have the option named "[https://www.libretro.com/index.php/retroarch-1-9-13-automatic-frame-delay/ Frame Delay]" to delay the processing of emulation for a few milliseconds until right before the given V-SYNC frame period is over, which causes inputs to be polled quickly before your display refreshes instead at the beginning of the newer V-SYNC frame period. The amount of time you can use Frame Delay without dropping frames is dependent on the performance of the emulator on your machine. Use [https://www.libretro.com/index.php/retroarch-1-9-13-automatic-frame-delay/ Automatic Frame Delay] if you don't want to manually give a value for Frame Delay. Keep in mind that realistically, Frame Delay is the last thing to configure, after all other "sync and buffer settings" and "Input lag mitigation techniques" have been configured for your system's performance, as it gives the least lag reduction bang for your CPU load buck. ''Also "Predictive waiting" may also be forced with any DirectX based program through'' [https://community.pcgamingwiki.com/files/file/897-gedosato/ GeDoSaTo].----;SummaryIt cannot be understated how much system requirements increase the more lag reduction measures are employed. A computer or device that would normally be able to run an emulator or core at full speed with ease can suddenly find itself chugging with said measures implemented, especially once Run-Ahead and Frame Delay come into play, which may necessitate foregoing some of them. Some ways to alleviate the load and unlock more lag mitigation potential include making sure performance options are enabled, turning on speed hacks or dynarecs if applicable (to the extent that they don't hamper the game significantly, that is), or switching to faster, less [[Emulation_accuracy|accurate ]] emulator/cores altogether, as the less CPU intensive an emulator is, the more performance overhead is left over for lag reduction. An example would be switching from bsnes to SNES9X, which trades [[Emulation_accuracy|cycle accuracy ]] and compatibility with a handful of games for far greater performance and thus more room to reduce input lag. Also, as implied before, if you have to choose between Run-Ahead and Frame Delay, you should almost always choose Run-Ahead. Of course, if your system is powerful enough to run the most [[Emulation_accuracy|accurate ]] emulators along with all the input lag reduction techniques all at once, go ahead and do so.
==References==
==External Links==
*[https://inputlag.science/ inputlag.science] - repository of knowledge about input lag in gaming*[https://docs.google.com/spreadsheets/d/1XvuDUHluuqDJ0DmF_PrWIjsLBgeg8CKVlL0w_Cyguxk/edit#gid=1101422075 Run-Ahead Wiki]<br/>*[https://sensor.fyi/mice/ Mouse devices sensor list]<br/>[https://old.reddit.com/r/emulation/comments/13bg7tw/tiny_investigation_about_input_lag_in_playstation/ Tiny investigation about input lag in PS1 emulators - Part 1]<br/>[https://old.reddit.com/r/emulation/comments/140kkmp/tiny_investigation_about_input_lag_in_ps1/ Tiny investigation about input lag in PS1 emulators - Part 2]<br/>*[https://old.reddit.com/ruser/emulationDestinyXZ9/commentssubmitted/153agkx/tiny_investigation_about_input_lag_in_playstation/ Tiny investigation DestinyXZ9's investigations about input lag in PS1 various emulators - Part 3]<br/>[https://old.reddit.com/r/emulation/comments/11xpzfa/tiny_investigation_about_input_lag_in_gba/ Tiny investigation about input lag in GBA emulators - Part 1]<br/>[https://old.reddit.com/r/emulation/comments/12tryi7/tiny_investigation_about_input_lag_in_gba/ Tiny investigation about input lag in GBA emulators - Part 2]<br/>[https://old.reddit.com/r/emulation/comments/13tpfn8/tiny_investigation_about_input_lag_in_psp/ Tiny investigation about input lag in PSP emulators]<br/>*[https://www.rtings.com/monitor/tests/inputs/input-lag RTINGS: Input Lag of Monitors]<br/>*[https://www.rtings.com/tv/tests/inputs/input-lag RTINGS: Input Lag of TVs]<br/>*[https://www.rtings.com/monitor/tests/motion/motion-blur-and-response-time RTINGS: Pixel Response Time of Monitors]</br>*[https://www.rtings.com/tv/tests/motion/motion-blur-and-response-time RTINGS: Pixel Response Time of TVs]</br>*[https://tftcentral.co.uk/reviews_index TFTCentral: Reviews and Input Lag analysis of Monitors]<br*[https://www.aperturegrille.com/>reviews/ ApertureGrille: Reviews and Input Lag analysis of Monitors]*[https://docs.google.com/spreadsheets/d/1KlRObr3Be4zLch7Zyqg6qCJzGuhyGmXaOIUrpfncXIM/edit#gid=0 Controller latency on MiSTer] (*[https://oldwww.reddityoutube.com/rwatch?v=ahsO5bhBUtk Rocket Science: Controller Input Lag comparison video]*[https:/allbenchmarks/commentswww.rtings.com/gz1bhxmouse/controller_latency_testing_spreadsheet_bytests/ftdkptrcontrol/ might find this interesting as welllatency RTINGS: Mouse Click Latencies])<br*[https://www.rtings.com/mouse/tests/control/cpi RTINGS: Mouse CPI and Speed-Related Accuracy Variation/>SRAV results]*[https://www.rtings.com/mouse/tests/control/sensor-latency RTINGS: Mouse Click Latenciessensor latencies]<br/>*[https://www.rtings.com/keyboard/tests/latency RTINGS: Keyboard Latencies]<br/>*[https://mousespecs.org/mouse-click-latencies/ mousespecs: Mouse Click Latencies]<br/>*[https://www.anandtech.com/show/2803 Derek Wilson/AnandTech: Exploring Input Lag Inside and Out]<br/>*[https://blurbusters.com/gsync/preview2/ BlurBusters: Preview of NVIDIA G-SYNC, Part #2 Input Lag]<br/>*[https://www.retrorgb.com/bsnes-runahead-mode-lag-tested.html RetroRGB: BSNES Runahead Mode Lag Tested]<br*[https://www.youtube.com/@RocketJumpNinja/>videos Rocket Jump Ninja] - YouTube channel dedicated to mouse reviews*[https://www.youtube.com/@BattleNonSense/videos Battle(non)sense (Usually analysis ] - YouTube channel dedicated to analysing netcode performance of games and testing input lag , system responsiveness etc.)]<br/>*[https://www.youtube.com/@FR33THY/videos FR33THY (Usually reviews ] - YouTube channel dedicated to computer hardware and peripherals, for testing for input lag and system responsiveness etc.)]<br/>*[https://docs.googlegithub.com/spreadsheetshrydgard/dppsspp/19rFOoJtx8OTF7GumSxwhB_3oCQ5bmY4bSpth7ef69Iwissues/edit#gid=0 FR33THY latency analysis17685 PPSSPP: Input lag too high, ideas for improvement]<br/>*[https://githubforums.libretro.com/hrydgardt/ppsspp/issuesan-input-lag-investigation/17685 PPSSPP4407 Brunnis: Input An input lag too high investigation]*[https://sites.google.com/view/noodallsinputlagtestingresults/video-interrupt-method- ideas for improvementresults noodalls Input Lag Testing Results]
[[Category:FAQs]]
10,951
edits

Navigation menu