What's new
- Switch profiles from a game's menu (#61). A game's menu has a Profile row (Active profile on desktop) when you have settings profiles: pick one, or the main settings, before you play, and it becomes the profile in use, as on the Profiles page. When Choose by network has a rule for the network you are on, the row shows the profile that rule picks and opens the Profiles page.
- Tear-free VRR on Windows waits out the whole scan again (#111). With Variable refresh rate On, a frame that arrives while the screen is still drawing the one before waits until the screen has finished, as in 5.4.0. Nightjar 5.4.1 stopped waiting after 2 ms, and a 120 Hz screen takes 8 ms to draw a frame, so such frames could tear. The wait now reads the screen's position again after each pause instead of trusting one reading, ends when the screen has finished or begun its next refresh, and lasts at most one refresh plus 1 ms. The VRR lines at the end of a stream's log count the frames that went out before the screen had finished.
- Gyroscope mapping. Settings → Controls → Gyroscope mapping fixes motion aiming that turns the wrong way and sets its speed, per controller: a Flydigi Apex 4 and Vader 4 Pro preset for Switch mode, or your own profiles with axis choice, inversion and left-right and up-down sensitivity. On desktop, each controller's Controller buttons page sets the same under Motion.
- Show motion readings. Under Diagnostics, shows the motion each controller sends during a stream and records it to a CSV file.
- Variable refresh rate on screens without adaptive refresh. It can be turned on again there: the stream runs at the screen's highest refresh rate, or a lower multiple of the game's frame rate where that would judder, and each frame still waits for the next refresh. A Variable refresh rate choice saved before, in the main, PC, game or profile settings, applies again on such screens and replaces frame pacing there.
- USB devices from controller makers. Plugging in a keyboard, mouse, webcam or headset from Logitech, Microsoft, Razer, SteelSeries and other controller makers no longer offers to open Nightjar on Android. "Always allow" for USB permission is offered for the controllers Nightjar drives itself: Xbox controllers and Xbox Wireless Adapters, DualSense and the Switch Pro Controller.
- Windows: no crash when the graphics driver resets while connecting (#115). The decoder keeps the Direct3D 11 device it decodes on alive, and a stream whose device changed while connecting ends with the driver-reset message instead of crashing before the first picture.
- Android layout fixes from 5.4.1. On handhelds the last row of a settings page no longer ends under the navigation bar, and the phone's Home grid no longer scrolls back to the top header when a card in the first row takes focus; both changes were meant for TVs only.
Tested. The tear-free wait's cause was found in the problem report from #111 (Nightjar 5.4.1 on a Radeon 890M handheld, 1080p at 120 fps on a 120 Hz FreeSync panel): its waits averaged 1.59 and 1.62 ms against the 2 ms limit. On a 240 Hz VRR monitor that kept refreshing back to back, streaming HEVC at 1080p and 120 fps over Wi-Fi in 35-second runs, a build one step before the release held 3403 of 4201 frames for the scan under way, 1.90 ms each on average; 2 went out before the scan ended. The released wait, which watches the screen continuously for its last millisecond, has not had a streaming run yet, and neither has a screen that rests between frames, as the handheld's does. On the handheld itself, the next problem report from #111 settles it. Unit tests run the wait on a simulated beam, including a display that scans back to back and a scan line that stops answering. The profile switch has tests on both apps and was checked in desktop screenshots. The narrowed USB filter was not tried with a controller plugged in. Nightjar's builds and test suites pass on Android, Windows, Linux and macOS.