Skip to main content

LuminalShine 26.10.0-beta.1

LuminalShine 26.10.0-beta.1

[!IMPORTANT]
Bundled virtual display driver: LuminalVGD v0.1.0-alpha.9
Signed driver 0.1.0.27 · protocol 0.10 · Build 27 — unchanged from 26.09.1.

LuminalShine 26.10.0-beta.1 introduces experimental PyroWave SDR and HDR streaming in the official Windows build, improves pairing and reconnect reliability, and fixes compatibility with Borealis, an Android client based on Moonlight and tuned for LuminalShine. This prerelease also adds exact virtual-display window routing, trusted application-library imports, clearer Mission Control status, and refreshed documentation. WebRTC remains enabled and its runtime is included in the Windows packages.

PyroWave joins the official Windows build

  • Experimental SDR and HDR10 streaming (#187, #192, #193). PyroWave supports SDR BT.709 and HDR10 BT.2020/PQ with 4:2:0 and 4:4:4 profiles. The Windows release now compiles the codec and its shaders, with a default compressed-video target of 700 Mbps.
  • Built in, but opt-in. Enable experimental PyroWave in Advanced settings and use a compatible client. The host advertises only profiles that pass its bounded availability probe; H.264, HEVC and AV1 retain their existing negotiation paths. Stock Moonlight clients continue to select a regular codec.
  • GPU capture integration. PyroWave imports host-owned D3D11 textures on the matching Vulkan adapter without uncompressed CPU readback. HDR capture is converted to BT.2020/PQ; an HDR request with an SDR source fails setup instead of mislabelling the pixels. Static desktops refresh from retained encoder data without holding driver ring slots.
  • Step 2 capability negotiation. SDR/HDR and chroma profiles are negotiated independently. DXGI/Vulkan probing runs in a bounded disposable child process, and negotiated quality, refresh, bitrate, loss telemetry and pacing settings reach the video worker. Compatible clients can negotiate session-local adaptive FEC and adaptive bitrate.
  • Quality and refresh controls. Advanced settings expose bitrate, quality bias and refresh interval. The default refresh interval of 0 sends complete intra frames; conditional replenishment is an experimental opt-in for the exact client revisions documented in the testing guide. Frame budgets that exceed the current GameStream transport limits are rejected before capture.
  • Visible encoder status (#190, #192). Mission Control reports PyroWave after AV1 in the host status strip, with metadata that distinguishes compiled support from enabled, available advertisement.

PyroWave requires Vulkan 1.3 and the required Windows external-memory/keyed-mutex support on the capture adapter. No Vulkan SDK or LuminalVGD driver update is needed on the installed host. Start with the pinned Aurora client and the SDR/HDR acceptance steps in the PyroWave testing guide. The 700 Mbps target excludes transport overhead; higher settings need sufficient network headroom. Full 10 Gbps transport and broad client/GPU validation remain outside this milestone.

Borealis compatibility and GameStream responsiveness

  • Paired clients can identify the LuminalShine release (#199). HTTPS /serverinfo appends LuminalShineVersion while preserving the GameStream appversion and GfeVersion values. The unauthenticated HTTP response is unchanged.
  • Unknown paths return one correctly framed response (#200, fixes #194). The default handler no longer appends a second malformed response after the declared body. Clients still receive HTTP 200 with XML status_code="404", followed by connection closure.
  • Long launches no longer occupy the HTTPS I/O thread (#203, fixes #202). Launch, resume and cancel run in arrival order on one dedicated worker, allowing other clients' TLS handshakes and requests to proceed while display preparation and application startup run.
  • Shared state follows the new concurrency model. Paired-client settings are protected and copied before use, codec capability reads use atomic values, and /serverinfo can report the starting application without waiting for its lifecycle lock. Shutdown finishes the active worker task and discards queued work. Regression tests cover response framing, version serialization, FIFO scheduling, responsiveness and pending-task shutdown.

Contributor recognition

Special thanks to @magalz for contributing #199, #200, and #203 to fix compatibility with Borealis — an Android client based on Moonlight and tuned for LuminalShine. These contributions improve host identification, protocol response correctness and connection responsiveness for the wider Moonlight client ecosystem as well.

Pairing, teardown and reconnect reliability

  • Pairing requests have distinct identities and bounded lifetimes (#188). Client-specific request selection, exact four-digit PIN validation, retry-safe phase ownership and accurate final status in Mission Control prevent stale or repeated submissions from being confused with a completed pairing. Protocol secrets are redacted from request logging.
  • Launch preparation and last-session teardown are coordinated. Generation checks keep an older session's cleanup from destroying a successor's display state. Launch failure, explicit cancellation and unclaimed-session expiry have deterministic rollback paths.
  • Cleanup restores session-wide state. HDR, frame-limiter, RTSS, platform and runtime-override cleanup participate in the coordinated lifecycle. Independent watchdogs bound teardown phases, choosing the appropriate recovery path when cleanup cannot finish.
  • Regression coverage follows the lifecycle. Pairing policy and UI tests cover retries and final outcomes; session tests cover admission, expiry, cancellation, cleanup transfer and watchdog behavior.

Windows go to the correct virtual display

  • Exact-device window routing (#189). In anchored-exclusive mode, the display helper receives the authoritative per-session LuminalVGD device identity and routes eligible application windows to that device instead of guessing from coordinates or the primary monitor. Shell, helper, tool and minimized windows are excluded, and placement is bounded to the target work area.
  • Event-driven placement with stale-work rejection. Window events are coalesced, and topology/configuration generations prevent outdated work from moving windows after apply, revert, disconnect or delayed reapply.
  • Streaming startup does not wait for the router. It arms after display topology, HDR and refresh preparation complete. Transitional or failed activation leaves routing inactive; it does not substitute another virtual or primary display. Placement remains asynchronous and teardown is bounded.

Mission Control and application-library imports

  • Import a trusted apps.json from Library (4b4514e1). Select a file up to 5 MiB and confirm Replace and import to replace configured applications and their environment variables. Separately auto-synced catalogues are unaffected.
  • Validated, authenticated configuration writes. Imports validate document structure and environment expansion, assign missing UUIDs, preserve supported extension fields, and save through the signed configuration writer. Protection of the configuration directory remains enabled. Only import trusted files: application and preparation commands can execute on the host. Programs and cover images are not transferred, so their paths must exist on this machine.
  • Clearer stream controls (#193). HEVC and AV1 menus display their complete descriptions, and a zero maximum bitrate appears as 0 (Automatic) without changing the saved numeric value.

LuminalVGD driver

This prerelease keeps LuminalVGD v0.1.0-alpha.9, the signed package shipped with 26.09.1:

Driver version0.1.0.27 (DriverVer 08/07/2026, 0.1.0.27)
Protocol0.10 (handshake build 27, capabilities 0xfe5)
Watchdog10-second lease watchdog
SigningNortheBridge Foundation OV certificate, RFC 3161 timestamped

Build 27 retains the D3D12 timeline-fence transport and teardown/drain protections described in 26.09.1. PyroWave and exact-device routing are host-side additions; neither requires a new driver package. Upgrading from 26.09.1 does not normally require replacing the bundled driver.

Project, tests and release engineering

  • WebRTC and PyroWave are explicitly enabled in Windows release CI. WebRTC's runtime is packaged alongside the application. Vulkan/glslang build dependencies support PyroWave shader generation, and Windows coverage builds compile PyroWave too.
  • Deterministic CI gates. Release CI includes a PyroWave/connection-path gate, configuration consistency checks and a GameStream server-info readiness self-test. The general test suite retains its existing reporting behavior; a successful build is not a claim that every historical baseline test is green.
  • Stable Windows packaging (#206). Install the optional libatomic runtime explicitly so upgrades retain the shipped DLL. MSI compatibility checks recognize truncated Vue content hashes while continuing to reject real component changes.
  • Reliable Windows linking (#188). Clang/UCRT builds explicitly select lld, avoiding GNU ld COMDAT failures.
  • Deployment readiness checks (#191). The reusable GameStream checker accepts string and byte-array HTTP bodies, validates server-info XML, accepts FREE or BUSY state, and uses a bounded 180-second default startup window.
  • Documentation refresh. Read the Docs uses a charcoal-and-yellow design with slide-out navigation and a revised landing page. EPUB builds use the standard EPUB template, and configuration/PyroWave documentation covers imports, experimental controls, prerequisites and acceptance testing.
  • Release CI results (run): MSI upgrade compatibility, installer invariants, signature verification, GameStream health-check self-tests, PyroWave/connection-path tests and configuration consistency all passed. The advisory suite recorded 790 passed, 12 failed and 10 skipped (812 total); failures concern an authentication error-text expectation, eight Playnite tests and three locale-consistency tests. This is not an all-tests-green release.
  • Local validation before the packaging-only fix: the Windows application and production web UI built successfully, and 114 selected connection/session regressions passed. Live Moonlight/Borealis streaming was not exercised in that local run; PyroWave hardware acceptance remains as documented in its testing guide.

Upgrading

  • This is 26.10.0-beta.1, a prerelease for testing. Install over 26.09.1 with the installer; settings, pairings and the existing LuminalVGD driver are retained.
  • An active stream ends during the upgrade and can be restarted after the service returns.
  • Hard-refresh Mission Control once (Ctrl+F5) if cached assets from 26.09.1 remain visible.
  • WebRTC remains available from the Play page. PyroWave stays disabled until explicitly enabled and requires a compatible client; ordinary Moonlight sessions continue to use H.264, HEVC or AV1.

Checksums

SHA-256:

9059118bbd7a17aae602635bd4e55b07b34071700a4a46a5b268c859925775cf  LuminalShine_x64-debuginfo.7z6cfc3e5d5e6a8c7531d4697d04cf9de5644537894c84c80b5cca15605846b010  LuminalShine_x64-installer.exe8e32e3887788f1641c1f0b131ac36d6c1976a7d0c25a90b551e2f0958ecefaff  LuminalShine_x64-portable.zip

The same hashes are attached as SHA256SUMS.

Full changes: 6c377335…e2662a44


Original GitHub release