What's new
Nightjar 5.1.0 turns Frame Warp's picture the way the game's camera turns, comes as a native Windows ARM64 build, takes moonlight-qt's command line so MoonDeck works with it, and forwards chosen USB devices on its own.
Highlights
- Frame Warp follows a turn all over the picture. It now turns the picture the way the game's camera does, so in 3D games the edges keep up with a turn as well as the middle does. Needs Rubylight 4.1.0. The overlay's Frame Warp line shows the game's field of view once the host has learned it.
- Windows on ARM. Nightjar comes as a native ARM64 build for Snapdragon X laptops and other ARM64 PCs (
nightjar-desktop-<version>-windows-arm64-setup.exeand.zip), so it no longer runs the x86_64 build under emulation (nightjar#102). An installed x86_64 Nightjar on an ARM64 PC switches to it with its next update and keeps its settings and paired PCs. - moonlight-qt's command line on Windows and Linux.
nightjar stream <PC> <app>takes moonlight-qt's stream options such as--resolution,--fps,--bitrate,--hdr,--video-codec,--vsync,--frame-pacing,--performance-overlay,--audio-configand--quit-after, andnightjar list <PC>prints the PC's apps one name a line, so tools written for moonlight-qt, such as MoonDeck, can add a PC's apps to Steam and start and set up a stream (nightjar#105). The options change only that run's streams, never the saved settings. - USB devices go to the PC automatically. Tick a device under USB devices, Automatic, in the stream menu, and it is forwarded at every stream start and whenever it is plugged in during a stream.
- Steam Controller controls in the Modern on-screen controls. Both trackpads, L4, R4, L5, R5 and grip touch now work there too, and the layout editor moves, resizes, fades and hides them like any other control (nightjar#106).
Streaming
- Windows: fixed blocky and then black video at some bitrates with network adapters that merge incoming packets without reporting their size, such as some USB and dock Ethernet adapters (nightjar#103). Nightjar now notices this and stops merging packets for the rest of the stream.
- New setting Group incoming video packets (Settings → Streaming → Connection, on by default): turn it off if the picture turns blocky or black at some bitrates.
- With Render through Vulkan on, HDR and 10-bit streams on the NVIDIA Shield TV show their real colours again instead of red as blue.
- The overlay's Render no longer counts the present call, where Nightjar waits for the graphics driver, the display and the compositor (gamescope, for one). That wait has its own line, Present wait.
- Take back display queue delay is hidden while Show frames at the PC's frame times is on, where it does nothing.
Linux
- Under gamescope (Steam Deck Game Mode and gamescope sessions) an HDR stream now presents as HDR10 where gamescope offers it, as on a desktop, instead of scRGB.
- When VA-API pictures cannot be shared with the GPU renderer, the stream is decoded with Vulkan video where the graphics driver supports it, instead of copying every picture through memory, which at 4K took longer than a frame.
- HDR: a stream with the statistics overlay, a message or the stream menu on screen no longer takes two extra full-screen passes for each picture, which at 4K could leave a small GPU unable to show every picture while the overlay was on. On an Intel Iris Plus 655 at 4K the overlay took about 2.5 ms of GPU time for each picture and now takes about 0.2 ms.
- Built from source against FFmpeg 9 (as Arch Linux ships it): VA-API pictures are shared with the GPU renderer and Vulkan video decodes, as with FFmpeg 7.1 and 8. Before, such a build copied every picture through memory.
- The Windows and Linux packages ship FFmpeg 9.0.2 instead of 8.1.3.
TV and on-screen controls
- TV: the top bar highlights only the focused tab, the first PC shows its focus ring as soon as the PCs page opens, a settings section's first row is no longer cut off at the top, and the Continue here prompt no longer overlaps the page behind it.
- The update download window shows its progress in readable text, and on a TV it stands on its own background instead of over Settings.
- Classic on-screen controls: the Opacity slider on the resize screen works straight away and sets every control; touch a control first to set only that one (nightjar#107).
Fixes
- Pen button presses are no longer lost when the pen moves at the same moment.
- Desktop: closing the PIN pad while the PIN is saved no longer leaves the lock off.
Tested. The Android unit suite (5306 tests) and lint pass, and the desktop and protocol tests pass on Windows (3016) and Linux (2625), with new tests for the lens, automatic USB forwarding, the moonlight-qt command line, the Steam Controller controls in the Modern layout, the Opacity slider, the TV focus fixes, the update window and the Vulkan colour order. Frame Warp was measured in loopback on a Radeon RX 7900 XT with a test game drawn through a camera of 70, 90 and 110 degrees: it removes 96.0% of a turn's displacement at the centre of the picture and 90.8% at its edge at 90 degrees, where Nightjar 5.0 with Rubylight 4.0.0 removed 84.2% and 65.4%. The lens shaders for Android, macOS and Linux, the TV fixes, the Steam Controller controls and MoonDeck's use of the command line were checked by build and unit test, not on a device; the Windows ARM64 build was built, packaged and started on an ARM64 Windows runner.