Changes

Jump to navigation Jump to search

Input lag

1,832 bytes added, 13 March
Input
;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===
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]. Once the processing done, the pixels need time to switch to the new frame's colors: this '[https://www.rtings.com/monitor/tests/motion/motion-blur-and-response-time pixel response time[Displays#CRT_TVs|HD CRTs]]' might cause a blur on screen, '''but it's different from input lag''', rememberLCDs, pixel response affects how fast you see the OLEDs and other digital displays do have digital image update, while processing and cause noticable input lag impacts how quickly the game reacts to your commands.
Analog [[Display FAQ#CRT TVs|CRT TVs]] and [[Display_FAQ#CRT_monitors|VGA CRT monitors]] have very fast response times but it:;Response time:Once the digital processing done, the pixels need time to switch to the new frame's limited by colors, which is called '[https://oldwww.redditrtings.com/rmonitor/crtgamingtests/commentsmotion/qyx4r3/is_this_normal_for_a_crt_monitor_if_not_is_there/ phosphor decay motion-blur-and-response-time pixel response time] due to the nature of the technology ' (Keep in mind that [[Display FAQ#CRT TVs|HD CRTs]] that do digital image processing and cause noticable a blur on screen, so it's different from input lag). [[Displays#OLED_Monitors|OLEDs]] have almost no display lag due to their very , remember, pixel response affects how fast response time and also capable of displaying true black levels, which means that they do not require a backlight to produce an you see the image and this allows OLEDs to turn individual pixels on and off much faster than [[Displays#LCD_monitors|LCDs]]update, which require a backlight while input lag impacts how quickly the display reacts to produce an imageyour commands.
: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's limited by [https://old.reddit.com/r/crtgaming/comments/qyx4r3/is_this_normal_for_a_crt_monitor_if_not_is_there/ phosphor decay time] due to the nature of the technology. [[Displays#OLED_Monitors|OLED]] displays have almost no blur on screen due to their very fast response time and also capable of displaying true black levels, which means that they do not require a backlight to produce an image and this allows OLEDs to turn individual pixels on and off much faster than [[Displays#LCD_monitors|LCDs]], which require a backlight to produce an image. :While <abbr title="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] If you're in the market for a monitor or TV; check [[Input_lag#External_Links|these websites]] for input lag and display lag performance of various display products. Some of the modern digital displays only have negligible amount of input lag and display lag and even some of them are near identical performance compared to Analog CRTs.
===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 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 environmental factors.
See [[Input_lag#External_Links|these websites]] for various controllers and keyboard/mouse devices for input lag performance benchmarks.
* Back in the days some people claim that [[Wikipedia:DIN_connector|DIN/mini-DIN connection]] keyboards and mice give better results compared to cheap [[Wikipedia:USB|USB connection]] peripherals due to the nature of the technology. Although this is far from the truth [https://forums.blurbusters.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://www.youtube.com/watch?v=eEswl6kZq5k Battle(non)sense: Keyboard Input Lag 125, 250, 500, 1000Hz USB vs. PS/2]
===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 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 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 [https://docs.google.com/spreadsheets/d/19rFOoJtx8OTF7GumSxwhB_3oCQ5bmY4bSpth7ef69Iw/edit#gid=0 FR33THY's latency analysis] and also [https://www.youtube.com/watch?v=89R9KlJ3ocM optimization pack] which includes useful scripts. Most importantly make sure to use always proper and official drivers for your computer otherwise it may affect your system responsivess negatively (e.g. High DPC Latency, spikes , IRQ issues etc.)
See [[#Ways_to_reduce_input_lag|ways to reduce input lag section]] for reducing input delay.
==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 [https://www[Displays#240p.monitortests.com/forum/Thread-Custom-Resolution-Utility-CRU 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.
'''1.''' Use exclusive fullscreen for Windows 8 and onwards if available because with borderless windowed and windowed fullscreen, due to [[Wikipedia:Windows_Display_Driver_Model#WDDM_1.2|WDDM 1.2]] the desktop composition cannot be disabled anymore, so your only hope to avoid the compositing lag penalty is to play in exclusive fullscreen mode.
'''2.''' Turn off digital image processing and [https://youtu.be/NzYvudM9BmI?t=723 frame generation] optionsfrom [https://www. If pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel] if it cause additional/noticeable input delay, some of the frame generation technologies can noticeably affect input delay, either positively or negatively, depending on the specific technique used[https://blurbusters.com/frame-generation-essentials-interpolation-extrapolation-and-reprojection]. Also if you're using intensive one turn off post-processing effects from applications/emulators and [https://www.pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel].
:'''2.1.''' Turn on DLSS/FSR upscaling technologies [https://youtu.be/-ajK3netvv4?t=173 if it increases your framerate which will likely decrease your latency].
'''4.''' Always make sure that your [https://youtu.be/7DPqtPFX4xo?t=72 GPU is underutilized] for preventing [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.''' If you have a VRR capable display another option for you to simply using [https://youtu.be/7DPqtPFX4xo?t=650 NVIDIA Reflex feature] from in-gameoption 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 a VRR capable display another option for you to prevent this is simply using both [[Vsync|V-SYNC]] and "Low Latency Mode: ULTRA" or "AMD Anti-Lag+" options '''from [https://www.pcgamingwiki.com/wiki/Category:Graphics_Adaptor GPU driver control panel]'''; this will automatically prevent "render queue bottleneck".<ref name=renderqueueandvsyncbackpressure>[https://www.nvidia.com/en-us/geforce/guides/gfecnt/202010/system-latency-optimization-guide/ Nvidia: System latency optimization guide], [https://forums.blurbusters.com/viewtopic.php?t=8645 BlurBusters thread: Nvidia Reflex and low latency mode]</ref>
::'''4.2.1.''' Keep in mind that if you are using [[Vsync|V-SYNC]] without "capping framerate limit to below your on non-VRR capable display's refresh rate" OR without using "Low Latency Mode: ULTRA" , 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're have a VRR capable display and using "AMD Anti-Lag+" and have a VRR monitor 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 monitordisplay] unlike Nvidia's "Low Latency Mode: ULTRA" solution.
'''5.''' Some graphics drivers enforce excessive frame buffering, which may be eliminated with GPU commands. RetroArch's [[Vsync#Hard_GPU_Sync|Synchronization Fences/Hard Sync]] for OpenGL does this. If you're using Vulkan backend, be sure to set the [https://arm-software.github.io/vulkan_best_practice_for_mobile_developers/samples/performance/swapchain_images/swapchain_images_tutorial.html max swapchain images] parameter to 2, 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]].
:'''5.16.''' 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].
----
;Summary
==External Links==
*[https://inputlag.science/ inputlag.science] - repository of knowledge about input lag in gaming<br/>*[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/user/DestinyXZ9/submitted/ DestinyXZ9's investigations about input lag in various 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]<br/>*[https://docs.google.com/spreadsheets/d/1KlRObr3Be4zLch7Zyqg6qCJzGuhyGmXaOIUrpfncXIM/edit#gid=0 Controller latency on MiSTer]<br/>*[https://www.youtube.com/watch?v=ahsO5bhBUtk Rocket Science: Controller Input Lag comparison video]<br/>*[https://www.rtings.com/mouse/tests/control/latency RTINGS: Mouse Click Latencies]<br/>*[https://www.rtings.com/mouse/tests/control/cpi RTINGS: Mouse CPI and Speed-Related Accuracy Variation/SRAV results]<br/>*[https://www.rtings.com/mouse/tests/control/sensor-latency RTINGS: Mouse sensor 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</br>*[https://www.youtube.com/@BattleNonSense/videos Battle(non)sense] - YouTube channel dedicated to analysing netcode performance of games and testing input lag, system responsiveness etc.<br/>*[https://www.youtube.com/@FR33THY/videos FR33THY] - YouTube channel dedicated to computer hardware and peripherals for testing input lag and system responsiveness etc.<br/>*[https://github.com/hrydgard/ppsspp/issues/17685 PPSSPP: Input lag too high, ideas for improvement]<br/>*[https://forums.libretro.com/t/an-input-lag-investigation/4407 Brunnis: An input lag investigation]*[https://sites.google.com/view/noodallsinputlagtestingresults/video-interrupt-method-results noodalls Input Lag Testing Results]
[[Category:FAQs]]
10,978
edits

Navigation menu