github NortheBridge/luminalshine 26.05.0-beta.2

latest releases: 26.08.2, 26.08.1, 26.08.0...
pre-release3 months ago

LuminalShine 26.05 Update Beta 2

General

  • Update checks now succeed on Windows hosts that have a busy root certificate store. The Windows trust store loader used to dump every cert from LOCAL_MACHINE\ROOT and CURRENT_USER\ROOT (commonly ~1,260 entries with heavy duplication) into a CA bundle that exceeded curl's 1 MiB schannel limit, breaking GitHub release queries with schannel: CA file exceeds max size of 1048576 bytes. The bundle is now deduplicated by SHA-256 fingerprint, filtered to actual trust anchors (BasicConstraints CA: TRUE + KeyUsage keyCertSign), and size-capped — and CURLSSLOPT_NATIVE_CA is preferred up front so most builds skip materializing a bundle entirely. Boot-time log now reports trust-anchor count plus how many certs were filtered out for visibility into future regressions. (commit 0fadd32)

  • Cleaner support logs at startup. The NVENC encoder probe deliberately tries AV1 + YUV444 first, expects it to fail on consumer GeForce hardware, and falls back to YUV420. That benign path used to produce six Error-level log lines per cold boot — papered over with a literal // Ignore any errors mentioned above // comment in the log itself. The two specific messages from this path (gpu doesn't support YUV444 encode and NvEncUnregisterAsyncEvent failed: NV_ENC_ERR_DEVICE_NOT_EXIST during cleanup-after-aborted-init) have been demoted to warning and debug respectively. Real session-time encoder failures still surface at error. (commit 2cb7987)

  • System-tray context-menu entry now reads "Open LuminalShine". Right-clicking the taskbar icon previously surfaced "Open Sunshine" — leftover from the upstream fork. The auto-comment that tells users how to export logs from a GitHub issue was updated to match. (commit 8783f15)

Windows GA

  • D3D11 device creation now survives a transient post-TDR window. When the GPU recovers from a Timeout Detection and Recovery event, D3D11CreateDevice returns DXGI_ERROR_UNSUPPORTED (0x887A0004) or DXGI_ERROR_DEVICE_REMOVED (0x887A0005) for several seconds while the kernel rebuilds the driver state. The previous one-shot calls in both the encoder bringup path and the Desktop Duplication test path treated this as a hard failure, which under sustained encode load reliably ended streaming sessions in a recovery loop. A new D3D11CreateDeviceWithRecovery helper retries those two transient HRESULTs with exponential backoff (1s → 2s → 4s → 8s, ~15s total budget) before giving up. Non-transient failures still return immediately. A successful retry logs an info-level "recovered after N attempts" line for triage. (commit d529912)

  • Slow-start streaming sessions take seconds, not 14 seconds. The WGC capture helper handshake used a fixed 3-second budget per attempt, and a slow process spawn (antivirus inspection of the helper exe, slow user-token resolution) was being treated as a deadlock — the parent process would terminate the helper and relaunch in a loop until something stuck. Fix: per-process consecutive-timeout tracker. The first attempt of each session keeps the tight 3-second budget so a real deadlock still fails fast; once a timeout has been observed in this process, subsequent attempts use a 6-second budget that catches the slow-start case in one retry instead of four. Counter resets on a successful handshake. (commit ac5dfeb)

  • Encode-wait timeout log lines now carry diagnostic context. When NVENC stops returning packets, the previous one-line error gave no signal about whether the timeout was a transient bubble or the leading edge of a TDR. A new info-level line emitted just before the error reports session age, frame index vs last successfully-encoded frame index, time since the previous successful encode, the configured frame shape (resolution + buffer format), and the force-IDR flag — paired with the new D3D11 retry log it makes "GPU hung mid-stream and recovered" a single visible trace in support bundles. (commit 63d4702)

Windows Insider Preview

  • The OS display config API stall after a NVENC TDR is now self-healing. On Insider Preview channels, QueryDisplayConfig returns ERROR_NOT_SUPPORTED (Win32 50) for several seconds after a GPU TDR — long enough that the libdisplaydevice submodule's internal 9-attempt retry loop runs out and reports failure to LuminalShine, which then can't resolve the active virtual display on resume. Previously this caused the resume loop to spin until the user killed the process. Fix: when the device-enumeration call returns nullopt three times in a row, LuminalShine now closes and reopens the SudoVDA / MTT VDD handle (which on Windows triggers a device-stack rebuild that frees QDC from its post-TDR stuck state) and retries enumeration once. The reset is rate-limited to once per 30 seconds so a permanently-broken driver can't be bounced in a tight loop. (commit ad1b8e5)

  • Stream sessions now survive the Blackwell + Insider Preview NVENC TDR cascade end-to-end. This release ships the full recovery chain: when NVENC hangs on a long-running 4K@120 AV1 HDR session (the failure observed in the 2026-05-08 support logs), the timeout-context telemetry (B6) records what state the encoder was in, the D3D11 retry helper (B1) waits out the kernel's TDR window instead of failing on the first re-create, the virtual-display reset path (B2) rescues the OS display API from its ERROR_NOT_SUPPORTED stuck state, and the helper-handshake backoff (B4) keeps the subsequent reconnect from cold-starting into a deadlock loop. (commits 63d4702, d529912, ad1b8e5, ac5dfeb)

Automated release for 26.05.0-beta.2.

Full Changelog: 26.05.0-beta.1...26.05.0-beta.2

Don't miss a new luminalshine release

NewReleases is sending notifications on new releases.