github RamazanKara/nightjar v5.6.0
Nightjar 5.6.0

27 minutes ago

What's new

  • Clearer frame settings (#119). Frame pacing moved to the main Display & image page on both apps. On Android it now holds every way of pacing frames in one list: Lowest latency, Balanced, Balanced, keep every frame, Balanced with FPS limit, Smoothest video (more delay) and PC's frame times. Before, "Keep only the newest frame" and "Show frames at the PC's frame times" were separate switches that overrode it. "Allow lower refresh rate" and "Match the screen to the game's frame rate" are one row, Lower refresh rate: Off, On, or On, matched to the game. "Take back display queue delay" moved to Advanced. A row that does nothing with your other choices (for example with Render through Vulkan) now says why. Your saved choices keep their meaning.
  • Timed to your screen. With a Rubylight PC, Nightjar tells the PC when your screen refreshes, so each frame is captured to arrive just before it. Frame pacing's help, the Debug overlay and the problem report now name this and say when it is off.
  • Fixed timing on adaptive screens. A new setting, off by default, for Android screens with adaptive refresh (Android 16): with Variable refresh rate off, it treats the refresh as fixed, so frames are timed to your screen as on other phones.
  • Desktop: the PC's frame times on a fixed-refresh screen. Frame pacing on desktop offers PC's frame times with V-Sync: each frame shows on the refresh nearest its time on the PC.
  • HDR with Frame Warp on a Dolby Vision screen (Rubylight #104). With Frame Warp on, a Dolby Vision screen now streams HDR10. Frame Warp draws the picture itself, and drawing the Dolby Vision decoder's picture made HDR flicker. To stream in Dolby Vision, turn Frame Warp off.
  • Render through Vulkan keeps its frame delay. In Balanced and Smoothest, a frame that misses its refresh no longer reaches the screen a refresh late and held twice: Nightjar 5.4.1 allowed only one frame of delay there, too little to recover.
  • Problem reports say more about pacing (#119, #7). Each recent stream's row names its frame pacing, whether frames were timed to your screen, whether the screen offers adaptive refresh, and why frames were dropped; with Render through Vulkan it also names the output, the swapchain's image count and how often drawing waited. The screen's refresh rate line stays readable.
  • Windows: no frozen window after a graphics driver reset (#115). When the driver resets while a stream starts or plays, Nightjar makes its window's renderer again, ends a start that was still connecting with the driver-reset message, and Cancel answers again. Before, the window kept showing the connecting screen.
  • Mac: Native is the display's own resolution (#118). On a display in a scaled mode, Native is the panel's resolution (3840x2160 for a 4K monitor set to look like 2560x1440), not the larger picture macOS draws before scaling it down.

Tested. On a Retroid Pocket 6 at 120 fps on its 120 Hz screen with a Rubylight host, Lowest latency and Balanced came out alike in 30-60 s runs: 109-116 frames shown a second and 1.6-3.0 ms from receiving a frame to its present at the median, with the second run of each pair better whichever pacing it used and no frame dropped; Lowest latency stays the default and no other default changed. Desktop's PC's frame times streamed 45 s at 1080p60 and 1080p120 from a host on the same PC: 60.2 and 118.5 frames shown a second, none skipped and 8 and 37 replaced by a newer frame, the PC applying the screen's timing every 10 s; cadence across two machines has not been measured yet. Fixed timing on adaptive screens has not yet run on an adaptive-refresh phone, which is why it is off. Tests check that every stored combination of the old frame keys, and per-PC, game and profile values saved before the change, read back with the same meaning. The Dolby Vision flicker's cause is in the logs from Rubylight #104 (a Lenovo Legion Y700 tablet), and a unit test that fails without the fix pins the HDR format choice. The Windows renderer remake follows the log from #115 and was exercised in the Direct3D 11 window test; a forced driver reset has not been run yet. The Mac resolution choice has unit tests and the macOS build passes; it has not yet run on a scaled external display. The Vulkan frame delay follows Android's swapchain code for releases 11 to 16 and has native tests, plain and with address and undefined-behaviour checks. Nightjar's builds and test suites pass on Android, Windows, Linux and macOS.

Don't miss a new nightjar release

NewReleases is sending notifications on new releases.