github RamazanKara/nightjar v4.12.5
Nightjar 4.12.5

one hour ago

What's new

Nightjar 4.12.5 does less work for every frame it shows. Desktop builds draw pictures straight to the window, the connection wakes only when it needs to, and Home on the desktop now shows the games of every paired Moonlight host. Nightjar for macOS is now a release download.

Highlights

  • Windows draws PyroWave and full-colour pictures straight to the window. PyroWave and full-colour (4:4:4) pictures no longer go through an extra full-size image. On a Radeon 780M laptop at 2880x1800 and 120 fps, presenting a picture took 0.07 ms of CPU instead of 0.19 ms. Decode to present fell from 0.44-0.46 to 0.39 ms at the median and from 0.55-0.72 to 0.50 ms at p95.
  • Linux shows VA-API pictures from the decoder's own memory. Pictures are no longer copied first. On an Intel NUC (Iris 655) at 3840x2160, 60 fps, HEVC 10-bit: decode to present fell from 1.95-1.98 to 1.60-1.63 ms at the median, and present to screen from 1.66 to 1.08 ms.
  • Fewer wake-ups and copies. The connection thread wakes only when the connection needs it instead of 200 times a second, which saves battery during a stream. Video arrives in fewer, larger reads where the system can combine packets (Android and Linux).
  • Home shows every paired PC's games on the desktop. Home on Windows, Linux and macOS shows the games of paired PCs running Sunshine, Apollo, Vibepollo and other Moonlight hosts, with box art, Play, Resume and Quit, favourites and hidden games. The last app list is kept, so Home works while the PC sleeps. With only such PCs, the app still opens on the list of PCs.
  • macOS download. Nightjar for macOS is now a release download for macOS 13 or later: nightjar-desktop-<version>-macos-arm64.zip for Apple Silicon and …-macos-x86_64.zip for Intel Macs. The app is not notarized by Apple, so macOS asks once on first start. The macOS guide shows how to allow it.

Android

  • PyroWave pictures that arrive early reach the decoder without two extra copies through Java.
  • Gamepad input, the latency log and the on-screen sticks allocate less while streaming.
  • Phone gyro aiming no longer asks the system for the screen rotation on every sample.
  • The GPU upscaler and full-colour mode wait for the GPU directly instead of checking every millisecond.
  • HDR streams on the Vulkan renderer no longer come back from the home screen with washed-out colours. On some screens the colours stayed that way until the stream menu opened.
  • Dialogs and sheets blur the page behind them also on phones whose Android has no system window blur, such as some Vivo and iQOO models. Battery saver, high contrast and the "Allow window-level blurs" developer option still turn it off.
  • In Settings, rows fade out under the title as you scroll instead of being cut off, as they already did at the bottom.

Everywhere

  • The PC list shows a Rubylight update from the PC's own answer where the host offers one. Builds installed from Google Play no longer ask GitHub for Rubylight releases.
  • Dual screen mode's settings are translated into every app language.

Desktop

  • The stats overlay is laid out only when its text changes, instead of on every picture.
  • An HDR desktop on Linux no longer asks the GPU driver about its HDR support several times per picture.
  • Reduce motion's description now says that Follow system uses the Windows animation setting or macOS's Reduce motion setting.

Tested. Windows numbers are from a Radeon 780M laptop streaming from an RX 7900 XT PC, with the timing log after the first 5 seconds and the old and new drawing alternated. Linux numbers are from an Intel NUC (Iris 655) under Wayland, also alternated. Android streamed HEVC in the emulator for about 3,200 frames with no errors. The unit tests for Android, desktop (Windows and Linux) and the shared protocol code pass.

Don't miss a new nightjar release

NewReleases is sending notifications on new releases.