github RamazanKara/nightjar v5.7.0
Nightjar 5.7.0

one hour ago

What's new

  • Fractional V-Sync. A new setting, off by default, for a screen at 2 to 4 times the stream's frame rate, such as 60 fps on 120 Hz, with V-Sync on and VRR off: every frame stays for the same number of refreshes, so motion no longer judders. It costs a little delay: measured on the Windows desktop client, 1 to 2 ms on most frames and 2.5 to 4 ms on the slowest ones. On Android it works with Lowest latency frame pacing (Balanced already keeps that cadence); on desktop it holds frames on Windows, and on Linux with Wayland or KMS. Where it holds nothing the row says why, for example at a refresh that isn't 2 to 4 times the frame rate, with Render through Vulkan or Frame Warp on Android, on X11 and macOS, or in Windows Fullscreen when the mode it switches to runs at the stream's own frame rate.
  • ANR frame generation on the PC. With a Rubylight PC that offers it and Host control for this device, a game's Frame generation entry in its menu (Android) or on its page (desktop) turns the PC's ANR (Apex Neural Rendering) frame generation for that game on and off. It says whether it is on, and before any try why a game can't have it, such as an anti-cheat, no DLSS frame generation or the Visual C++ runtime to install on the PC; once on, which release is in the game's folder; and, when the PC streams with other graphics, that it runs when the game renders on the graphics it names. The PC's notice starts on Cancel.
  • Frames waiting for the decoder. A new setting on both apps: how many complete frames may wait for a decoder that falls behind before they are dropped. 15 frames stays the default.
  • Tidier settings. Lower bitrate, Back button, Send system keys and network roaming are one choice each instead of two switches, Virtual display is a choice of Display arrangement, diagnostics moved to Debug, and a setting that does nothing with your other settings says why. Your saved choices keep their meaning. Keyboard follows text fields is a setting on the desktop too, on by default. Reset all settings now also resets Frame pacing, Variable refresh rate, Lower refresh rate, Touch mode and Video size completely.
  • Chipset tuning works again. It reaches MediaTek and Samsung Exynos decoders once more. It stays off by default.
  • Reconnects keep their bitrate. A reconnect keeps the bitrate the stream had settled on and turns automatic bitrate back on only after the last stream's off has reached the PC; one that gives up says why. A stream the PC refuses as it starts, for a codec it can't encode or encryption it requires, shows the PC's reason.
  • Play over the internet connects more reliably, and a problem on this device's side no longer shows the PC as unreachable. Turning it off ends its open connections at once. A PC that is off reads as Offline at once, and an offline PC says why it did not answer.
  • Clearer words. The connection test ends with a verdict and one next step, and weighs the measured speed against that PC's bitrate. A failed quit, a failed pairing and a stale shortcut say what happened and what to try. Quit questions say Quit game and start on Cancel, and a launch names its stages in plain words. Waking a PC shows the wait until it ends.
  • Files and guests. Leaving the Files page keeps its transfers going, and a second shared-folder transfer waits its turn. A join request stays answerable from the Guests menu, and on desktop appears on screen with Let in and Deny.
  • Android fixes. Rumble and the motion sensors stop while the stream is not in front and come back with it. A short audio stall no longer restarts the sound output. Finger moves reach the PC with every sample the screen measured. With New streaming engine off, the stream returns at once after a switch from Wi-Fi to mobile data, IPv6-only mobile data included, a VPN coming up or going away no longer restarts it, and the menu no longer freezes when the PC ends the stream. A USB device forwarded to the PC is detached there before the stream ends. The stream menu offers PC commands only when the PC names one. Home looks for an app update and runs the first-start decoder check however the app was opened, Back while Add PC is connecting stops the attempt and keeps the address you typed, the D-pad's selection stays on its PC when the list re-sorts, and touch controls on the PC cards and the settings chips are easier to hit.
  • Desktop fixes. An HDR stream plays on in SDR when the display stops showing HDR, and a picture the window cannot show moves the stream to the next decoder instead of ending it. With Upscaling set to AI enhancement, a stream it can't enhance costs no more than bilinear scaling. A controller alone can type in Add PC, Rename and the library search. The update notice offers Skip this version. PCs are not polled while the window is minimised, and nothing is redrawn while nobody sees it. Add PC stays open and says why when an address or pairing link cannot be read, and an error from the background (a failed wake, a controller that could not connect) waits for the dialog you are answering instead of replacing the PIN or a prompt. A cover that failed to download is asked for again after 30 seconds, pairing help shows its steps in the chosen language, a PyroWave GPU decoding failure is named in the app's language followed by the driver's own words, and an empty library offers a way to games. Layout fixes: long PC names and cover titles, menus in a short window, Help's section chips, settings sections and presets.

Tested. Fractional V-Sync was measured with the Windows desktop client on a Radeon 780M laptop (120 Hz panel) streaming from a Rubylight PC over Wi-Fi, V-Sync on, VRR off, phase lock on, in 230 to 270 s runs: frames not shown for exactly their refreshes fell from 8.4% to 3.4% at 60 fps and from 17.9% to 1.7% at 40 fps, while receive-to-display latency rose from 11.9 to 13.6 ms and from 12.8 to 14.0 ms at the median and from 16.2 to 18.8 ms and from 17.9 to 21.9 ms at the 95th percentile, which is why it stays off by default. On Linux it was built and its desktop tests passed in an Arch container, and Android's frame timing has unit tests; neither has been measured on a screen yet. Desktop Nightjar turned a game's frame generation on (notice, then Host control) and off against an isolated Rubylight host on the 780M, and the test game's folder was byte-identical afterwards. On a Retroid Pocket 6 the 5.7.0 build turned a test game's frame generation on and off against an isolated Rubylight 4.6.0 host: the notice started on Cancel with the D-pad, a device without Host control saw On or Off with the reason, a game without DLSS frame generation said why before any try, and the game's folder was byte-identical afterwards. The same build then streamed 60 s on the Retroid with sound and no frame dropped, receive to release 2.6 ms at the median and 4.3 ms at the 95th percentile, in line with earlier runs. Reset all settings, the reconnect's kept bitrate, the PC's refusal reason and the paired setting choices read from older saved values have unit tests. Nightjar's builds and test suites pass in CI on Android, Windows, Linux and macOS.

Don't miss a new nightjar release

NewReleases is sending notifications on new releases.