mirror of
https://github.com/libretro/RetroArch.git
synced 2026-11-12 18:45:33 -10:00
A repeat the core sends as a NULL frame is left unpresented, so the display receives the content's own frame rate and frame generation or interpolation tools see the real cadence. It stays out of the way where the presents are the effect (Black Frame Insertion, shader sub-frames, Threaded Video Frame Repeat, a headset) and with the menu open, fast-forward or a cached frame shown again. While repeats are being skipped, the runloop holds the loop to the content's period with its timer wherever only VSync or the threaded hold would have, since neither can block on a frame that is never presented, and the driver's release stands aside. Lanes in samples/runloop/pacing and samples/gfx/threaded_video pin both halves. Idea from beetle-psx-libretro#1013 by Razor221.