On this page
Getting StartedMigration

GameStream Migration

Seamlessly transition from discontinued NVIDIA GameStream to SolarFlare host for Moonlight.

4 min readUpdated August 2026

Migrating from NVIDIA GameStream#

In February 2023, NVIDIA discontinued GameStream in GeForce Experience. SolarFlare is a modern, actively maintained open-source replacement designed specifically for Moonlight clients.

Key Differences & Advantages#

FeatureNVIDIA GameStreamSolarFlare Host
Operating SystemWindows only (NVIDIA GPU)Linux (Primary), Windows, macOS
GPU Vendor SupportNVIDIA GeForce onlyAMD (AMDGPU/VA-API), NVIDIA (NVENC), Intel (QuickSync)
Capture PipelineNVFBC proprietaryLinux KMS, Wayland DMA-BUF, PipeWire, X11
Audio DSPNone (unfiltered audio)Automatic Gain Control, Voice Activity Ducking, Noise Gate
Per-Client ProfilesNone (global only)Per-client bitrate, codec, and latency tuning
Self-Hosted APINone (cloud dependent)Full REST API, Scoped Tokens, Webhooks

Automated Migration with GSMS#

The upstream GSMS (GameStream Migration Sunshine) utility can automatically import existing box-art, commands, and shortcuts into SolarFlare apps.json.

Migration steps#

Disable GameStream in GeForce Experience first (it binds port 47989 and the two cannot coexist), then uninstall or disable GFE. Back up ~/.config/sunshine/{sunshine.conf, apps.json, credentials}. Install with ./scripts/linux-install.sh, apply setcap for KMS capture, open firewall TCP 47984-47990 plus 48010 and UDP 47998-48000, then re-pair each Moonlight client at https://<host>:47990/pin. Clocks must agree within ~30 s and clients re-pin because the server certificate changed. Moonlight itself needs no reinstall — get clients at moonlight-stream.org.

Sunshine to SolarFlare on the same PC#

In place: the binary name (sunshine), ports, systemd service (app-dev.lizardbyte.app.Sunshine.service), and ~/.config/sunshine/ layout are identical, so install over the existing setup and keep your apps.json, credentials, and pairings. Never run both at once. Windows hosts moving to Linux should export their app list first and rebuild launch commands for Linux paths.

Client reuse notes#

Desktop (Qt, recommended, full codec and HDR set), Android/TV (manual host add when mDNS is blocked), iOS/tvOS (HDR needs both ends capable), embedded/Pi (host must be a separate machine), and browser clients (smaller feature surface) all pair the same way. H.264 works everywhere; HEVC and AV1 need encoder and client support on both ends, with per-client overrides via client_profile_* keys.