I’d like to share some input latency tests I did recently, with the focus on which video renderer shows better results: D3D11 vs GL. Unfortunately I can’t test Vulkan…
I used a 120FPS smartphone camera (8,3ms/frame… yeah the results are not super accurate) and took the average value of 5-10 tries (jumps) per test. The test game was Little Samson with the Nestopia core and Run-Ahead enabled. V-Sync is ON for all tests but the last one (#5) resulting in constant frame-pacing and perfectly smooth scrolling.
#1 GL = 117ms
#2 GL + Hard GPU Sync = 67ms
#3 D3D11 - mode A = 67ms
- This mode means: Windows 7 - Aero is disabled
- there is a permanent tear-line in a fixed position at the top of the screen, slightly wobbling
#4 D3D11 - mode B = 100ms
- this mode is enabled by pressing ALT+ENTER after the game runs. Pressing ALT+ENTER again switches back to mode A
- this mode is always active if you have Aero enabled (with Enable Desktop Composition = ON)
#5 D3D11 + RTSS Sync = 67ms
- for this test I disabled RetroArch’s V-Sync Option and used the Scanline Sync function of RTSS
- like in test #3 there is a permanent tear-line, but it can be moved and hidden via RTSS
- downside: fast-forward can’t be used while Scanline Sync is ON, and you will have to start RTSS manually each time you start Retroarch
Conclusion
#2, #3 and #5 have the same latency of 67ms. #4 is 2 frames behind and #1 is the worst with 3 frames behind.
Performance Test
I was also interested to see how performance intensive the “low latency modes” #2, #3 and #5 are. For that, I limited my max CPU clock speed to 80% (via windows energy options) which lead to 2.1Ghz. I used Beetle PSX HW for this test and “fast forward” shows that it can run at 79FPS with this setup. Now the results:
#2 and #3 drop to 40FPS while #5 can keep the 60FPS. This shows that #2 and #3 need quite some CPU overhead to properly run at the 60 FPS target. On the other hand, RTSS can keep the 60FPS even with a small “fast forward” overhead of 63FPS and it doesn’t drop to 40/30/20FPS when the CPU can’t maintain fullspeed. So this would be the best solution for weaker systems that can barely run a core/game at fullspeed and don’t want to miss out on some lower input lag.
Specs
- RetroArch 1.8.5
- Laptop: Lenovo N581
- OS: Windows 7 - 64-bit
- Screen Resolution: 1366x768
- CPU: Intel Core i5-3230M
- IGP: Intel HD Graphics 4000
- RAM: 4GB, DDR3-1600