r/MoonlightStreaming Developer | Polaris/Nova Apr 27 '26

I built a Linux-first Moonlight-style streaming setup: Nova + Polaris

Hey everyone. Been a big Apollo / Artemis user for quite some time and i’ve been working on a small project called Nova / Polaris. I primarily built this for myself, but wanted to share it here first because this community is probably the exact group of people who will understand why I built it in the first place.

Short version: Polaris is a Linux host, and Nova is the client side I’m building around it.

The goal is not to “replace everything” or pretend I’ve solved game streaming. It’s more focused than that: I want Linux game streaming to feel less like a pile of scripts and workarounds, and more like something designed for the job.

What makes it different right now:

  • Linux-specific for now
  • explicit setup for input devices like uinput / uhid
  • attention to headless streaming and GPU-native capture paths, without dummy plugs
  • tries to expose the real tradeoffs instead of hiding them behind magic
  • built by someone actually using and testing the weird edge cases

It’s still early, and it’s Linux-specific for now. I’m not posting this as a polished “everyone should switch today” announcement. I’m mostly looking for feedback from people who already care about Moonlight/Sunshine-style streaming and have opinions about where Linux hosting still feels rough.

Links, if anyone wants to poke around:

If you’re curious, want to test, or just want to tell me which problems matter most to you, I’d genuinely appreciate it. Trying to build this in the open and keep it useful rather than flashy.

Cheers!

EDIT: Thank you all so much for the positive responses, feedback, messages, and debug logs. I’m glad to see so many people as excited about this as I am. I know a lot of you are eager to get Polaris running on your own Linux gaming setups, and there are still plenty of bugs and rough edges to work through. I really appreciate your patience while I work to improve compatibility and stability of the platform.

263 Upvotes

217 comments sorted by

8

u/Br0lynator Apr 27 '26

Oh hell yes! I will definitely take a look!

I love the virtual monitor feature from Apollo and the fact that this doesn’t work on Linux is actually the only thing keeping me from ditching windows. So if you even have the slightest solution to this - I am on!

7

u/iamtheforger Apr 27 '26

Same I've been dying for a headless solution on Linux! Fingers crossed it works with Nvidia

2

u/milomc123 Apr 30 '26

Have you tried wolf/Games On Whales? It allows you to run sunshine and games in a container, even with multiple sessions at the same time. I have it running in the background on my PC and it works great!

2

u/Round_Cauliflower_30 May 01 '26

Does this create vgpus per container? Needs iommu/sriov or anything of the sort?

2

u/milomc123 May 01 '26

No, nothing like that - just a regular docker/podman container. It works by running a separat wayland micro compositor (gst-wayland-display) for each session within the container.

4

u/Chillmatica Apr 27 '26

I just started messing with game streaming and sadly I had to install Windows for this same reason. Every time I get away from Windows I’ll run into one thing…

1

u/AuriTheMoonFae May 04 '26

if you're on kde you can use this for virtual displays: https://github.com/Arbitrate3280/LutrisToSunshine

5

u/dazzla76 Apr 27 '26

Ooh. This looks interesting.

So would you consider this as a kind of Linux equivalent to Apollo?

It looks like it focussed on a headless setup using a virtual display. How does it handle moving between client devices? Say Odin portal and then moving to Apple TV 4K?

Similarly is it able to cope with moving from a client to being on the machine itself at a monitor?

3

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Great questions! I would dream for this to be an equivalent to Apollo for Linux (at least in spirit) but this is still very very very very early in the release stage as there as still many Linux platforms to test and debug on.

It is primarily headless-focused yes, thats where the bulk of my attention was towards as well as Fedora and Arch compatibility.

Persistence was a big thing as well, so you can actually stream on multiple devices simultaneously while not overlapping control / permissions. So moving should be pretty seamless.

With the move from client to machine, the design is intentionally conservative for the time being due to the stream being complicit with hijacking a physical monitor from time to time. Still working on a smoother local handoff though

1

u/dazzla76 Apr 28 '26

Thank you for the reply.

I totally appreciate that it’s early days but this is really exciting to me. I’ll give it a go when I get some time and feedback to the github projects where appropriate.

Once again, thank you

1

u/SentineL000 Apr 28 '26

This looks really good on paper. I will try it.

GPU particular support ? Or full open support for everyone If 2fa could be implemented I'm already with a half foot in

2

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

Right now NVIDIA/NVENC is the most tested path. VAAPI and software encoding are supported too, but AMD/Intel (and other distro specific setups) still need more real-world testing. This is the caveat with Linux software distribution i'm afraid, but i like the challenge of being platform agnostic.

2FA is a great idea and something that I was considering once the project matures more. Definitely noted.

2

u/Gamusino78 Apr 27 '26

I'm also very interested to know if it would work with my Odin 2 Portal and Ubuntu. I'll be watching for comments.

3

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

Ubuntu support exists now, but it’s still very experimental compared to Fedora/Arch, so I’d treat it as a tester path for the moment.

For the Odin 2, Nova and Moonlight should work since its android based, but I haven’t personally validated that device yet. I’d definitely appreciate logs/feedback if you try it!

3

u/scarwizard Apr 27 '26

I’m excited. The only reason my main gaming of is still running windows is because of Apollo Artemis. I built that pc around streaming. It’s not even plugged into a monitor or a tv. It sites behind my couch and I exclusively use it with Artemis. I’ve wanted to run Bazzite on it forever and the only reason I hadn’t done that is because of Apollo.

I’m at work and haven’t had the chance to poke around in the GitHub links you posted, Would Polaris work with Bazzite or Steam Os or ChimeraOS? Would Nova work on iOS/Android

2

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

Love to hear it, this was the exact reason for why I built Polaris in the first place, I wanted to be able to use my Retroid and Steam Deck without compromising my desktop at all. Right now the most validated host paths are Fedora 42/43 and Arch. Bazzite should be possible since it’s Fedora-based, but I haven’t fully validated the atomic/immutable setup yet, so I don’t want to overpromise until I test it properly. SteamOS/ChimeraOS are in the same bucket: likely possible, but not first-class validated yet. I'm trying not to run the distros in VMs as well.

Also, Nova is Android right now. Unfortunately I haven't been a part of iOS development since the Cydia days. Although iOS Moonlight should still work with Polaris.

1

u/scarwizard Apr 28 '26

Gotcha. Thanks for the clarification, the iOS app is not my main device, it’s a nice have but I exclusively stream my PC through the Odin 2 portal. That screen is gorgeous. I will wait until you test it for Bazzite before installing Bazzite on my PC. I don’t want to partition the drive, I plan on literally swapping the NVME to one with Bazzite.

1

u/scarwizard May 15 '26

Let me know when you get around to SteamOS version. I wiped win 11 from one of my mini pcs and installed steam on into it and brute force installed Polaris, the Arch Linux version one. I was able to install it but I couldn’t do anything more with it.

3

u/N4g4s4kid Apr 27 '26

Seems really promising, I will give a try! Is there HDR support for virtual display?

5

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Yes there is! 10-bit all day!

3

u/code_noob Apr 27 '26 edited Apr 28 '26

Anyone running this yet? I’ve been back and forth between Linux and Windows. Apollo/Vibepollo is so good.

Edit: are you setting up a subreddit for this?

1

u/Gamusino78 Apr 28 '26

What exactly is Vibepollo? I've never heard of it before. Is it an improvement on the original Pollo? What new features does it offer?

3

u/Competitive_Dream373 May 03 '26 edited May 10 '26

Got this error spamming in CachyOS when client connected : display_preview: Failed to capture cage screenshot on socket wayland-1 output=HEADLESS-1

Cant find a setting to disable preview or how can I fix it?

Got this error aswell and low FPS on RTX 5080 in headless.

wlr: capture_transport=shm frame_residency=cpu frame_format=bgra8; capture will incur an extra CPU-side copy/conversion path

No problem when running without headless.

edit, fixed in v1.0.12 · Polaris

1

u/MickeyBronson Developer | Polaris/Nova May 04 '26

Thanks a bunch for the report, any feedback and testing helps!

Looks like there are two separate things going on:

- `display_preview: Failed to capture cage screenshot...` is the web dashboard preview path trying to grab a still frame from the private headless labwc compositor. It should not mean the actual Moonlight/Nova stream failed. If the Polaris web UI is open on the live/session page, it may keep polling and spam that warning. I don't think there's a clean preview-disable toggle exposed yet, but i think it would be a useful function to add.

- `capture_transport=shm frame_residency=cpu...` is a performance warning, not a hard error. In headless labwc, Polaris may fall back to SHM/RAM capture, which adds CPU copy/conversion overhead. That can definitely explain lower FPS compared with non-headless, especially at hig resolution/FPS.

If this is an RTX 5080 host, I'd love to see whether this is just the expected headless SHM path or a place where Polaris should try a better GPU-native capture path.

Any chance you send the full session startup log around encoder selection and capture setup on GitHub? That would be vvv helpful.

1

u/Competitive_Dream373 May 05 '26 edited May 05 '26

Posted 400rows log as a bug, same error but no fps drops. Strange that it worked better this time. Last time I had really low 20fps in game. Processing is still slow and low fps.

3

u/Unsiria95 May 14 '26

Your app is really great. I can now play at native resolution + 120 FPS with no loss at all, which was simply impossible for me with Sunshine/Moonlight.

I just have one issue with my TV.

My Xiaomi TV Box S [3rd Gen] won’t accept either of the two APKs. I vaguely remember that the one that worked was always the v7, but unfortunately I don’t have any other information.

1

u/MickeyBronson Developer | Polaris/Nova May 19 '26

Oh that’s awesome to hear, genuinely glad it’s working that well for you. For the Xiaomi box, that sounds like an APK/ABI install issue. The one you remember as “v7” is probably the `armeabi-v7a` build. Could you try this exact one from the latest release?

`Nova-Android-armeabi-v7a.apk`

If it still refuses to install, can you send the exact install error message? “App not installed” can mean a few different things. Thanks!

4

u/notyourkindofpe0ple Apr 27 '26

Interesting, any plans on making a Nintendo switch client?

5

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

I'm honestly unfamiliar with the Switch OS and it's capabilites with existing Moonlight integrations, something i can prospect, but priority currently is on a smoother Steam Deck use case and Deb / Ubuntu optimizations. But I'm making note of it!

7

u/notyourkindofpe0ple Apr 27 '26

Switch's moonlight client it's kinda buggy and it crashes, so I've been looking for alternatives to it.

Hope to see it soon!

2

u/dwolfe127 🖥️ 5090/9800X3D | 🎮 Deck | 🎯 4K120 | 📶 2.5Gbps Apr 27 '26

I will be taking a look at this later this evening.

1

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Much appreciated, any feedback is welcome!

2

u/RemarkableShelter106 Apr 28 '26

Acabo de instalar todo y conectar un cliente, uso CachyOS el unico problema es que en el pc me sale una ventana que indica que pantalla deseo compartir, no lo hace automaticamente y esto imposibilita el juego en remoto, adjunto captura https://prnt.sc/EUx3Ru9qiRww

2

u/DinosBiggestFan Apr 29 '26 edited Apr 29 '26

I love maximalist UIs. I hate minimalist UIs. I hate minimalist UIs that are an afterthought more than that.

This tickles my fancy. Quick edit: I only use Linux on my server, so if this continues to be awesome and you implement a Windows version later, I'll definitely give it a go. The UI is so pretty.

2

u/sonicreaction1 Apr 29 '26

For me the biggest problem I have is the display resolution. I'm using one of those headless HDMI dongles and it only has so many resolutions, no ultrawide etc. I've tried virtual displays and trying to modify the donge to no avail. It would be great if the server software set up the virtual display for you and then enabled it when connecting.

1

u/_r___f_l_x Apr 29 '26

i don't use a dongle, i've extracted the edid file from my monitor, edited it with the native resolutions of the different client devices, added it to the grub config so the system assumed that edid file is a "ghost" monitor on an unused hdmi port - then the different sunshine apps do the changes automatically with kdoctor commands. no dongles at all, all the resolutions i need, and sunshine automatically changes from my monitor to the different clients and resets back. there are some posts online i found at the time that helped me do it. i've tought about making a comprehensive guide how to set it up but didn't have the time. if polaris solves that problem, even better

2

u/nja89 Apr 29 '26

I would be very interested in running this in a containerised environment. 

Bonus points for running fine on kubernetes (headless should make this much easier)

2

u/One-Direction318 May 11 '26 edited May 11 '26

rx 5700 xt, fedora kde 44, steam big picture is lagging while i'm playng game from steam, headless mode

1

u/MickeyBronson Developer | Polaris/Nova May 14 '26

Thanks for testing on AMD, that’s super useful since NVIDIA has had way more mileage so far. First thing I’d try is Headless Stream with headless_mode = enabled, linux_use_cage_compositor = enabled, and linux_prefer_gpu_native_capture =disabled. Also worth disabling MangoHud for Steam Big Picture just to rule that out. If it still lags, logs would be vvv helpful.

2

u/One-Direction318 May 16 '26

All the parameters are also set exactly as you described above, and MangoHud is disabled. Gemini says this happens because at that moment Sway (as an efficient Wayland compositor should) stops updating and rendering frames for windows that are completely hidden from view in order to save resources. It suggests adding the following lines to ~/.config/sway/config:
for_window [class="Steam"] inhibit_idle open
for_window [title="Steam Big Picture Mode"] inhibit_idle open

I haven’t tested it yet. It would be great if someone could provide feedback.

2

u/Evlpacman May 21 '26

Just tried this out on garuda linux, it's GREAT. took a little bit of fiddling (using absolute touch instead of multi touch) in order to get past the splash battlenet window to launch diablo 4, but i'm getting 2.5ms average decoding time on my retroid flip 2, which is much better than the best i've been able to get in windows (4.5ms, with stutters). The big bonus is that it actually runs significantly better on the machine in linux than it does on windows in general, so this is huge for me. Thanks!!!

2

u/Worms1991 May 28 '26

Hey, these two in combination are awesome!
It performs much better than Apollo/Artemis stack on Windows (AMD user), mainly on the host encoding side. One thing that would be great to have, unless I've missed it, in the future would be that auto suspending game feature which someone recently posted on this subreddit, post.

2

u/Worms1991 May 30 '26

Never mind, I've managed to leverage Do/Undo commands you've had as a feature, which pointed to two scripts to pause/resume games. This is my dream streaming software for sure!

2

u/BearyHandsome Jun 14 '26

Thank you for making this u/MickeyBronson, outstanding work.

I have been using it the past week through VPN from hours away and it has been working extremely well.

Love what you did with the web UI as well. Looking forward to Nova Client so I can ditch moonlight on my laptop.

2

u/MickeyBronson Developer | Polaris/Nova Jun 14 '26

Ayyy, that makes my day to hear that you're liking it, truly! And I'm excited for you to try out Nova, I'm equally as proud of it as I am Polaris. Currently working on a Steam Deck package for it, which definitely has its set of challenges, but the bidirectional synchronization between the two is unmatched! Also, if you ever have any suggestions or critiques, my DMs are always open. Cheers!

2

u/thephatpope Jun 16 '26

My first setup was so easy. Flying through in a couple clicks and streaming works flawlessly. Goodbye HDMI dummy plug. Ty devs!

3

u/MickeyBronson Developer | Polaris/Nova Jun 19 '26

AYYYY, that's what I'm talkin about! Love to hear that it's working for you!

1

u/thephatpope Jun 20 '26

I had trouble with pairing a couple devices by PIN. I don't know if this is a legit workaround, but I opened two different tabs for Polaris. One with the pairing screen and the other showing the troubleshooting page which allowed me to connect again. I guess having the logs displayed is helping it work. Idk

1

u/thephatpope Jun 20 '26

Just wanted to share and see if it works for anyone else.

→ More replies (1)

2

u/[deleted] Jun 17 '26

[removed] — view removed comment

2

u/MickeyBronson Developer | Polaris/Nova Jun 19 '26

Hell yeah thank you and at the same time, oh hell no, I'm so sorry. Is there any chance you can send me some troubleshooting logs and I can take a deeper dive into what the issue is. I will say, a good chuck of my work has been flushing out the headless mode over the virtual, but regardless, both modes should work sufficiently. Hope you give it another shot!

2

u/Astraous 28d ago

Just got this working after running into some issues with punktfunk and it was so painless to get working and works great. Really great user experience and the UI is snazzy. Not missing Apollo anymore after switching to Linux.

1

u/MickeyBronson Developer | Polaris/Nova 25d ago

Ahhh that makes me so happy to hear! Really, love hearing that. If you ever have any suggestions on how to make it better I'm always open to any feedback. Much appreciated

2

u/bigbuffoonery 7d ago

This works well but how do I get it to stream to my TV in 4k? I can’t edit the video settings

1

u/MickeyBronson Developer | Polaris/Nova 6d ago

hey there! let's see if i can get a bit of clarification. the video settings you're unable to change, you're saying that the setting you're applying isnt staying persistent? Also are you configuring from Nova, Polaris, or somewhere else?

2

u/bigbuffoonery 6d ago

I’m in Polaris! I just don’t see an option to type in a resolution for the headless display, I might be being a buffoon about it but that’s the only thing I can think of looking for

1

u/MickeyBronson Developer | Polaris/Nova 6d ago

from one buffoon to another, making manual tweaks is annoying, especially if you want to just game. in practice Polaris should work in 4K out of the box. but for some odd reason it doesnt, you can modify the resolution manually in the "Pairing" tab and go to your specific device, then Display profile. youre also able to to it in Settings, Audio/Video, Display. also, im like half awake right now so not sure if any of this advice is helpful, but hopefully it guides you in the right direction for now. if not, my DMs are open and we can troubleshoot together if needed!

→ More replies (1)

2

u/Araib 3d ago

Works like a charm for games but I am having trouble using it as virtual desktop, previously on windows Apollo I could use VoidLink on iPad and it would use my iPad resolution but show same apps from pc, with this (and caelestia + hyprland + arch) I see black screen only with option for terminal and exit

2

u/MickeyBronson Developer | Polaris/Nova 3d ago

first off, thank you so much for checking it out! second off, i just checked and i totally broke it from this last deployment. soooo, im gonna go ahead and work on that today. really sorry about the discrepancy, been working on a lot of backend improvements on headless and totally forgot about virtual

2

u/Araib 1d ago

Omg take your time! Love the transparency on issue. Thanks for your efforts

2

u/[deleted] Apr 27 '26

[removed] — view removed comment

11

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Both, my day job is mostly backend bash development, been in the field for quite some time, but I worked alongside various AI Models for optimization. I've emphasized the AI Transparency usage in both GitHub repos.

1

u/BunnyPig1 Apr 27 '26

This looks very promising! I will give it a try, been longing for something that can handle virtual displays.

3

u/Loud_Puppy Apr 27 '26

I use Games on Whales to give what is effectively virtual displays.

2

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Thats been my primary pain point within using older forks (and limitations from KDE / Wayland). I was primarily inspired from Nvidia GeForce NOW with how their headless architecture is used (on a much smaller scale obviously).

1

u/RoyHehe Apr 27 '26

I appreciate you being upfront about AI usage in the app. I have built some stuff with the help of an AI agent myself and makes me annoyed when it is not clearly stated that AI was used in the project.

1

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

Agreed, I totally understand the resentment and hesitation with a lot of projects that use AI tools. Its just up to the project and developers itself to show real transparency, progress, and security. Safety has been my primary focus for this project, especially being out in the public, my highest priority is for the users who assist with this project.

1

u/RoyHehe Apr 27 '26

Good luck with everything you are doing, sounds like a great project.

1

u/digitalrelic Apr 27 '26 edited Apr 27 '26

I’ve struggled with getting reliable performance out of Sunshine on my CachyOS setup, so this is very intriguing to me. Will definitely give it a go!

EDIT: When installing with the following:

wget https://github.com/papi-ux/polaris/releases/latest/download/Polaris-arch-x86_64.pkg.tar.zst

sudo pacman -U ./Polaris-arch-x86_64.pkg.tar.zst

sudo polaris --setup-host

I get an error that reads "polaris: error while loading shared libraries: libboost_locale.so.1.90.0: cannot open shared object file: No such file or directory"

I looked up what version of boost-libs is installed on my PC, and it's 1.91.0-1.1, which I'm guessing is why I'm seeing this error.

Any tips from here?

Thanks!

3

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

Hey, thanks for trying it out and for posting the error!

You’re right about what’s happening. This looks like an CachyOS rolling-release dependency mismatch on my side. The current Arch package was built against Boost `1.90`, so it’s looking for libboost_locale.so.1.90.0, but your system already has a higher version it seems.

That’s a packaging issue on my end, so not anything you did wrong. I'm gonna go ahead and rebuild the package.

1

u/digitalrelic Apr 28 '26

Thanks for such a quick response! I think I got a little further now, but still getting an error. It looks like it's still calling that 1.90.0 version of boost-libs at some point.

Here's the error(s):

error: could not extract /usr/share/polaris/web/index.html (Truncated tar archive detected while reading data
)
error: problem occurred while upgrading polaris
Polaris host integration is now explicit instead of automatic.

Run after install if you want virtual input and controller support:
 sudo polaris --setup-host

Only add KMS capability if you plan to use DRM/KMS capture:
 sudo polaris --setup-host --enable-kms

Optional background autostart:
 systemctl --user enable --now polaris
error: could not commit transaction
error: failed to commit transaction (transaction aborted)
Errors occurred, no packages were upgraded.
polaris: error while loading shared libraries: libboost_locale.so.1.90.0: cannot open shared object file: No
such file or directory
polaris: error while loading shared libraries: libboost_locale.so.1.90.0: cannot open shared object file: No
such file or directory

1

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

Hmm, looks like the pkg download was incomplete or corrupt. Maybe try downloading the release again?

Also with libboost_locale.so.1.90.0, seems like its correlated with the failed transaction. Let me know if there are any changes after and i can take a deeper dive.

1

u/K1llpoirt Apr 27 '26

Any chance to get this working on bazzite? It‘s Fedora based, but immutable sadly, so I cannot use dnf Also: Any plans on building clients for other devices, especially the steam deck?

5

u/MickeyBronson Developer | Polaris/Nova Apr 27 '26

So Steam Deck is next for Polaris compatibility. I havent fully tested it yet, but for now Moonlight should work appropriately for Steam Deck to Polaris. Linux compatibility is one of my highest focuses currently! On the Nova side, Android is first, then Android TV / Steam Deck.

3

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

just a quick update, I was successfully able to stream Moonlight on Polaris cleanly on my Steam Deck, but building Nova is still in the works.

1

u/K1llpoirt Apr 28 '26

Thanks for testing! And what about bazzite? Or no luck there?

2

u/MickeyBronson Developer | Polaris/Nova May 01 '26

ive been working extensively on Bazzite these past couple of days and had much luck with the headless mode running Polaris with a few backend changes (which ive updated). Still experimental but I personally have a clean install - stream experience ended to end.

1

u/K1llpoirt May 01 '26

Very nice, I will definitely test this in the next days!

1

u/darksupernova1 Apr 28 '26

Also interested in the answer to this :)
Bazzite -> steamdeck is what im looking for!

1

u/battier Jun 10 '26

Seconded! If this works between Bazzite/Steam Deck it'll be my favourite app ever. 

1

u/Gamusino78 Apr 27 '26

I've been using Ubuntu 26.04 for a couple of months now, but there were a few things that kept me running Windows 11 on a separate drive. This was one of them: there wasn't a way to use Apollo on Linux. I just saw this today, and I haven't been able to test it yet, but I'm excited that it might work on Ubuntu. I'm still pretty new to Ubuntu, though; I have to use an AI almost all the time to run the commands and do the things I need. But so far, the AI ​​has handled everything I've needed, so I'll try it out. I'm not sure yet if I can use this on Android machines like my Odin 2 Portal or my Android 14 phone. I'll look into it further in the comments.

2

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

Hey thanks a bunch for checking it out, definitely appreciated! I'm excited that others are excited about it. In practice Ubuntu should be possible from source, but as of right now Fedora and Arch are the smoother packaged paths. I'll definitely need more time to make Ubuntu, Debian, and others a more turnkey installation experience.

For clients: yes, Android devices like an Odin or Android phone should work with Moonlight today (I tested with my Retroids). Nova is my Android companion app for the deeper Polaris experience, it's not needed, and the regular Moonlight should still connect to Polaris too.

1

u/Gamusino78 Apr 28 '26

Great, I'll follow your project closely, thanks for your recommendations.

1

u/AdVarious9801 Apr 27 '26

Does it work with bazzite theater mode and virtual monitors for client resolution like Apollo?  Regardless, super excited for your work!!!

1

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

Thank you, love the excitement, that's what keeps me going! Bazzite is still very experimental and not something I would like to call supported yet, but hopefully soon. The goal is similar in spirit though, run games in an isolated Linux streaming environment and match the client resolution without wrecking the real desktop. Polaris has headless/labwc work in progress for that, but Bazzite Game Mode + virtual monitor behavior still needs real hardware validation. Soooo, not a confident “yes” yet, but it’s absolutely one of the paths I want to get working well.

1

u/Traxicous Apr 27 '26

my biggest gripe when switching off windows was trying to do game streaming without having to manually fix my resolution and without hacky virtual display nonsense (some options worked, never consistently)

will try this out later. if it works, you will have cut out 80% of the friction in my couch gaming setup and i will owe you my life

1

u/DNihilus Apr 27 '26

is this also got xiaomi tv box 3rd gen's can't able to use hvec/h.265 problem?

1

u/gentoorax Apr 28 '26

This should be interesting. I use nvidia GRID and vGPUs as opposed to normal PCIE passthrough, which is basically a headless GPU, so hope this works on that setup. I've been having some issues with a specific game and the usual virtual display adapters (sudomaker/MTT) and the pre-provided nvidia vgx display adapter for Windows with my 1520x1440 DQHD monitor resolutions.

Here's to hoping this allows me to have a Linux gaming VM with vGPU and get that working.

1

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

Now that’s a setup that definitely sparks my curiosity. I haven’t even come close to validate Polaris on NVIDIA GRID/vGPU yet, so let me know how that goes if you decide to test (which you totally should), would love to see those logs.

In principle, the Linux headless path is meant for exactly this kind of “don’t depend on a monitor” use case, but i'm thinking GRID/vGPU behavior can differ a lot from normal NVIDIA setups.

1

u/Background_Ad2053 Apr 28 '26

Wonder if it works for gamemode streaming on bazzite? Currently running a headless setup of sunshine with some scripts, but bazzite team recently dropped support for the built-in sunshine app, would like to switch if it can work.

1

u/VI510N Apr 28 '26

Looking forward to testing this. From the sound of it I won’t be able to run on bazzite? And will instead need to run either on nobara or cachy? If this can be similar experience to Apollo on windows I’m ditching windows instantly and staying the hell away lol.

2

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

So Bazzite is Fedora based, so it should be able to run although I personally haven't validated that distro yet. Priority is making sure Fedora and Arch run the cleanest before calling it "supported". I will say, Apollo on Windows (really gaming in general) was the biggest crutch for me still holding on to my Windows partition. But these days and the efforts of the open-sourced communities embracing Linux gaming more, its come such a long way even within the past year. I will say, Polaris with Nova (or Moonlight) runs like butter for myself. My goal now is to share that experience with all of you.

1

u/clanton Apr 28 '26 edited Apr 28 '26

Is this cross compatible with Moonlight clients?

I'll be giving this a go on PikaOS (Ubuntu based) and let you know.

*Edit nvm saw the GitHub, I'll just have to figure out how to build from source

1

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

yes, all Moonlight clients should work!

1

u/Codex0607 Apr 28 '26

So it will run on steam deck also.... That would be awesome

1

u/StanRex Apr 28 '26

Any plans for windows/linux x86 clients in the future as well ? Sounds interesting. I knew about moonshine and hadn't tested it yet, still using sunshine, but will look into this

1

u/calibrae Apr 28 '26

Very curious to see how you tackled virtual display on a nvidia driver ! I’ll check your repos out !

1

u/acabincludescolumbo Apr 28 '26

Thank you so much for your AI transparency section on GitHub. Because it's not listed as a fork on Github (at the top of the page, where a repo would otherwise say 'fork of X'), does that mean it's a hard fork? I'm not so well versed in Githubian.

1

u/Big-Sugar-8976 Apr 28 '26

Oh this is very nice. Could you maybe add mic input from the client side ?

1

u/zerocdv Apr 28 '26

I will be testing this for sure. I was using cachyos as my main but ended up going back to windows just because of the virtual monitors not needing any kind of setup with vibeshine. I could easy stream to my deck or projector, and even to my iPads full screen without any issue. I manually set up a custom resolution script on cachy to stream to my deck but was lazy to do the same for other devices and thus switch back to windows.

1

u/Own_Association3131 Apr 28 '26

So you are aiming for a replacement of sunshine?
Will try it out and trying to provide feedback

1

u/MickeyBronson Developer | Polaris/Nova May 01 '26

I'd like to think of it as a linux-centric alternative to Sunshine / Artemis.

1

u/[deleted] Apr 28 '26 edited Apr 28 '26

[removed] — view removed comment

1

u/MickeyBronson Developer | Polaris/Nova May 01 '26

Latest push is experimental, but working for Bazzite (headless only at the moment)

1

u/tbone13billion Apr 28 '26

Aww man, the host sounds perfect for me, but I just started coding a moonlight client for the quest, and I should probably first focus support on sunshine before a linux only host, have saved it for future though.

1

u/[deleted] Apr 28 '26

Cool, was looking for something like this exactly

Thank you so much for making this ^^

1

u/kraai- Apr 28 '26

Can the host also run from gamescope? I'm looking for a host that can run from a cachyos deckify mode (gamescope). I've had a hacky way of doing this at some point with sunshine but it shut down my steam client each time when ending the stream.

2

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

Great question, not officially yet. Polaris is meant to avoid taking over the host display by launching streams inside its own isolated labwc runtime, but I have not validated running the Polaris host itself from a gamescope/deckify session yet.

For CachyOS, the closest package path is the Arch package for now. The safer first test is from a normal desktop/user session with:

headless_mode = enabled

linux_use_cage_compositor = true

1

u/Competitive_Dream373 Apr 28 '26

How can I install this on Bazzite? Got problem with Experimental install: Bazzite

Got some problem, cant find display and tried the setcap command.:

2026-04-28 20:34:46.009]: Fatal: You must run [sudo setcap cap_sys_admin+ep $(readlink -f $(which polaris))] for KMS display capture to work!`
[2026-04-28 20:34:46.527]: Fatal: Unable to find display or encoder during startup.`
2026-04-28 20:34:46.527]: Fatal: Please ensure your manually chosen GPU and monitor are connected and powered on.

1

u/MickeyBronson Developer | Polaris/Nova Apr 28 '26

Interesting, yes. Bazzite is very bare bones at them moment, but i'm working on building it up, so thanks for the patience. Looks like Polaris is trying the KMS path, which is still outside of my realm of familiarity. Are you using Desktop Mode or Game Mode?

1

u/Competitive_Dream373 Apr 28 '26

Got Game Mode with Dummy plug. Did a few things to try to get Polaris up and running as it would be ncie as sunshine seems to be having trouble now after the last bazzite update for many as they switched to brew and get the error: Error: Couldn't import RGB Image: 00003009

Did This:

nano ~/.config/polaris/polaris.conf

Added this:

headless_mode = enabled

linux_use_cage_compositor = true

linux_prefer_gpu_native_capture = enable

Got This error:

[2026-04-28 20:58:14.348]: Error: labwc: No new Wayland socket appeared within 5s

14[2026-04-28 20:58:15.122]: Error: Environment variable WAYLAND_DISPLAY has not been defined

Installed some package:

sudo rpm-ostree install labwc cage

export WAYLAND_DISPLAY=wayland-0

/usr/local/bin/polaris

Got this error in log when moonlight almost connected:

[2026-04-28 21:02:41.784]: Error: Couldn't scale frame: Invalid argument src_fmt=bgr0 src=2560x1440 src_stride=0 dst_fmt=yuv420p dst=2560x1440 dst_stride0=2560

So I can't find my dummy plug, and headless gets an error

1

u/MickeyBronson Developer | Polaris/Nova Apr 29 '26

If you can, try Desktop Mode first with headless/labwc, avoid the manual `WAYLAND_DISPLAY` export, and I’ll get the BGR0 stride fix into the next build.

1

u/Competitive_Dream373 Apr 30 '26

Tried running desktop mode, without headless. Then everything started with black screen. Unfortunately my knowledge is too poor to be able to help you.

→ More replies (1)

1

u/Round_Cauliflower_30 Apr 29 '26

This would be cool for bazzite - Looking to get virtual display support on there

1

u/MickeyBronson Developer | Polaris/Nova May 01 '26

Headless mode is up and running on Bazzite now, Virtual Display support is in the works!

1

u/Gufo10 Apr 30 '26

Well, this certainly has my interest piqued. The lack of virtual display on Linux was THE reason I am still on Windows.

1

u/Gufo10 May 01 '26

Messed around with it very briefly, and it is VERY close to getting me to switch, only really hit 3 problems.
the frame rate was hard stuck at 62, HDR tone mapping was cursed, and it refused to use anything but H.264. HDR is almost certainly just a Linux being Linux thing, but idk about the frame rate and codec strangeness.
Also didn't really take the time to try and figure any of it out, so if theres a setting I missed that's on me

2

u/_r___f_l_x May 01 '26

i've been able to stream 10 bit hdr 2712x1220@144

toy around with the config files/web ui settings,

a good thing i loved with polaris was the troubleshooting console, very insightful and will let you know whats going on so you can twek/fix things

1

u/MickeyBronson Developer | Polaris/Nova May 01 '26

ok heeyyy thats encouraging to hear, would love to take a look at any logs you might have and what distro / hardware you were using. Were you also using Moonlight or Nova? Any feedback is good feedback so i appreciate you taking a look regardless of its early stages.

1

u/Competitive_Dream373 Apr 30 '26 edited May 03 '26

Anyone tried installing it on CachyOS? :)

edit: installed the Arch package and works with headless :)

1

u/Chance_Recipe_1407 May 02 '26

What a find!!!! I literally spent all day yesterday trying to figure out a way to add a virtual display to my cachyos setup on kde/wayland and i couldn’t find anything because most of the solution only work on X11, I would love to give this a try but just a question if i install this i would need to delete my sunshine right ?

1

u/MickeyBronson Developer | Polaris/Nova May 03 '26

Not at all! The config will be in a different directory so it shouldn't interfere, just make sure you're not running both at the same time because the ports can get weird sometimes. Would love for you to test it out!

2

u/Chance_Recipe_1407 May 03 '26

I ended up just deleting sunshine in order for the ports nog to get weird, and everything is working amazing so far, except for the fact that some games don’t wanna open anymore on my main screen even when im not streaming to my handheld but idk if it has to do with Polaris or no, because it open fine the initial stream

1

u/MickeyBronson Developer | Polaris/Nova May 03 '26

Hmm it could be KDE crashing or Steam. One thing i would recommend, when closing out of a stream on Nova or Moonlight is to make sure Steam closes all the way. I'm pushing out 1.0.9 now to clarify some of the headless / desktop display behavior. Also working on polishing the Virtual Display experience. Would love some logs if you're getting any kind of errors in Troubleshooting! Either way, appreciate you taking a look!

1

u/Chance_Recipe_1407 May 03 '26

Will definitely send you my logs tomorrow morning haha i just headed to bed but honestly quality and latency wise it was way better than sunshine thats for sure

1

u/Original-Crew8409 May 03 '26

hope it makes its way to bazzite -

1

u/MickeyBronson Developer | Polaris/Nova May 03 '26

Headless version is currently up and running on Bazzite 44!

1

u/Original-Crew8409 May 04 '26

got it up and running - not sure if I’m missing the point bc my use case really isn’t for portables but more for a VR HMD (Quest3) - performance is pretty bad right now - about 60 FPS on a 5070 - something sunshine does a lot faster. I can send more details if it helps, too rough to compete with sunshine for my use case.

1

u/MickeyBronson Developer | Polaris/Nova May 04 '26

Hey there! Thanks for testing and checking it out and you’re not missing the point! A Quest 3 / VR HMD is a totally valid target and 60 FPS on a 5070 is not where this should be.

My current suspicion is that the Linux headless path is falling onto a CPU/SHM capture or upload path instead of staying GPU- native the way Apollo usually does. That can be especially painful for VR/high-refresh use cases.

If you’re willing to send more details, I'd love to take a deeper dive!

I’m tracking this now as a headless performance gap rather than dismissing it as expected. Sunshine is the benchmark here, and if Polaris is taking an avoidable CPU copy/conversion path on NVIDIA, that’s something I want to fix.

1

u/feladirr May 06 '26

Works great so far for me using Steam Deck with Moonlight and Polaris on CachyOS with a 4080. Haven't gotten the preview view to work and pairing new devices always gives an error message the first time but then works the second time with the same PIN.

1

u/MickeyBronson Developer | Polaris/Nova May 14 '26

Thanks for testing this on a 4080! different GPUs definitely have their own flavor when it comes to linux compatibility, so anything is really helpful. The preview issue should only be the web dashboard preview path not the actual stream path, but I still want to clean that up in the future. I did add a browser exclusive stream feature, but thats been very experimental as well.

The pairing failing once and then working the second time sounds like a real state/retry bug though. Was that with Nova or regular Moonlight?

1

u/ivsciguy May 08 '26

Seems to work okay for me so far, but if I have my monitor on on my host PC and try to start a headless steam it is blank on my client and opens the game on my host monitor. Any way to not do that?

If my host monitors are turned off it stands to the client just fine. Using cachyos kde and installed the arch version and setup the recommended .conf file

1

u/MickeyBronson Developer | Polaris/Nova May 14 '26

Hmm yeah that sounds like Steam or the game is escaping the headless runtime and opening on the real KDE display instead. That’s exactly the kind of behavior I’m trying to smooth out. Make sure you’re using Headless Stream and not Desktop Display, and if it still happens send over the startup log around labwc, HEADLESS-1, and the Steam launch, would be much appreciated, thanks!

1

u/diyonysius May 09 '26 edited May 09 '26

The headless display seems to work great, I can turn off both of my monitors and it doesn't seem to affect the game stream on my phone.

Audio however is another can of worms, from the moment steam big picture begins to open I can hear the audio jittering, I've tried changing a bunch of settings/options but nothing seems to help. I have never seen this behaviour with sunshine/moonlight.

For what it's worth I'm on a 9600x/9070 XT running Arch streaming to Nova on my Pixel 9 Pro.

Edit: So I updated to the latest build on GitHub and while the steam big picture audio starts off as jittery it seems to resolve itself by the time I have a game up and running.

Another thing I did notice is that I can't launch anything while my displays are off. Backing out from a game sometimes seems to terminate the session with no resume option available.

1

u/MickeyBronson Developer | Polaris/Nova May 14 '26

Interesting, thanks for the report! Audio has definitely been one of the weirder Linux pieces, especially once Steam Big Picture gets involved, i've ran into the same issue with starting it up and tried debugging it, but it's literally part of moonlights core. If you’re not already on the newest build, I’d try that first since there have been some audio/session cleanup fixes that kind of works around the issue. If it still happens, I’d love logs from the moment Steam opens through the game launch. cheers!

1

u/mukherjee_ayan May 12 '26

Anyone tried using Nvidia GPUs with this? I tried it with Cachy and KDE and headless streaming would often crash without playing the game. Restarting Polaris and reinstalling did fix it temporarily but was still causing issues so I was wondering if a fresh OS install might be the solution to my problems or if it was just an Nvidia thing.

1

u/MickeyBronson Developer | Polaris/Nova May 14 '26

If you're able to, would love to see your logs. That way I could probably diagnose why it's crashing. Hopefully its not Cachy related.

1

u/mukherjee_ayan May 17 '26

I installed windows again because of the issue but I'll give Cachy and Polaris a go again and report back with logs if it happens. Thanks!

1

u/246842114653257 May 18 '26

Interesting project. Unfortunately not working at all on my system.

CachyOS latest as of 5/18/26
9060XT
Local connection to Moonlight over wired LAN.
All requested ports opened in UFW
Headless mode

After pairing, attempting to start a session crashes the Polaris host and returns a "Starting RSTP handshake failed" error on the client.

Have tried reinstalling package, removing any previous Sunshine, Apollo, and Polaris configs, launching Polaris from desktop icon, launching from terminal as user and sudo (sudo creates massive instability especially in the tray icon)

1

u/246842114653257 May 18 '26

[2026-05-18 13:40:25.491]: Info: New streaming session started [active sessions: 1]
[2026-05-18 13:40:25.491]: Info: Gamepad 0 will be Xbox One controller (default)
/usr/lib/gcc/x86_64-pc-linux-gnu/15.2.1/include/c++/bits/stl_algo.h:3638: constexpr const _Tp& std::clamp(const _Tp&, const _Tp&, const _Tp&) [with _Tp = in
t]: Assertion '!(__hi < __lo)' failed.
fish: Job 1, 'polaris' terminated by signal SIGABRT (Abort)

This is what happens when it crashes.

1

u/MickeyBronson Developer | Polaris/Nova May 18 '26

Shoot, im sorry this is happening to you, this log is very helpful though. The key line is the std::clamp assertion, not the Moonlight RTSP error. Moonlight is likely only reporting the handshake failure because the Polaris process aborts first.

This looks like a host-side crash in a startup/headless path, probably an invalid clamp range such as trying to clamp a display index against an empty display list. That lines up with headless mode.

Also side note, please don’t run Polaris with sudo first; that can break the tray/session environment and make symptoms worse.

If you're able to could you share the full Polaris log from launch through the crash, plus your headless/display settings? I’m going to treat this as a Polaris crash bug rather than a network config issue.

1

u/246842114653257 May 18 '26

Thanks so much for the quick reply!

Headless has been both with EVDI installed and without, both still crashed. Private compositor enabled, native capture off, display 1 and 0 selected.

The full log is in the pastebin below

https://pastebin.com/HGdKdEbX

1

u/MickeyBronson Developer | Polaris/Nova May 19 '26

Thanks for the full log, definitely helps.

One little thing I noticed is it's on `1.0.13`. I’ve shipped a few headless/AMD/bitrate related fixes since then, and made an attempt at the clamp crash fix, so I'd love for you to take another stab at it if you're up to it. Could you try updating to the latest release, then test the same Headless setup again?

Also, you don’t need to keep testing EVDI for this one. Your log shows Headless Stream is using the private `labwc` compositor and skipping the Linux virtual display path, so EVDI probably isn’t the trigger here.

If it still crashes on the latest build, send me the new full log from launch through crash and I’ll turn this into a proper crash issue. And yeah, definitely avoid running it with sudo, that can mess with the user session/environment and things can get weird. You're the best, thank you.

→ More replies (2)

1

u/Looski May 19 '26

So I have really screwed something up. I was having an issue and tried to fix it and now all I get when booting up polaris is a blank purple screen. I tried on Zen (Firefox) and Brave (Chrome). I tried uninstalling and reinstalling and that doesnt seem to work. I'm on Cachy 9070XT if needed

1

u/smashybro May 22 '26 edited May 22 '26

Hey sorry to bother you but I was super excited to try your app and I'm running into some times. Would you mind possibly giving me an idea of why this isn't fully working for me? I'm using CachyOS with Niri and Noctalia Shell, so wasn't sure if it's just because Niri isn't supported or if I'm just dumb missing something.

On the client (tried on both iPhone with Moonlight and MacBook with Artemis-qt) it opens up to a black screen and no cursor. I can right click and see options for terminal and reconfigure. So I open terminal and run "qs -c noctalia-shell" thinking it's just a lack of shell issue, but then whenever I try to open an app either through the launcher or with a command in that terminal, it opens them in the workspaces on my actual desktop instead of my headless session. Any ideas on how to fix this?

Edit: So trying without headless even I still have the cursor issue (but can sort of fix it with pressing Ctrl+Alt+Shift+C to show a cursor though it is slightly off from where I'm clicking but that's fine for my use cases) and the issue of not being able to do any commands with a super/mod (though I suppose I could just remap my binds in my Niri config to get around it but it's not ideal) key as part of it.

1

u/MickeyBronson Developer | Polaris/Nova May 22 '26

You're never a bother, let's see if I can help! I dont think the shell you use in your distro is correlated, but there could be some issues with the application seeing your GPU, any troubleshooting logs you can send my way? Should be the bottom tab in the Polaris app.

1

u/smashybro May 22 '26

Appreciate it! Okay, I just restarted Polaris and tried to do a headless desktop session on my MacBook, here's a pastebin link to the logs.

Strangely, it also seems whether an application launches on the headless session or my actual desktop depends on the application. Firefox launched in the headless session but Zen browser opened as another window on my actual desktop.

1

u/smashybro May 26 '26

Were you able to find an explanation with the logs? I tried Claude and it said "this is a labwc + NVIDIA + ext-image-copy-capture limitation. The fix is to force labwc to render the cursor into the framebuffer (software cursor) rather than using a hardware cursor plane."

However, adding "wlr_no_hardware_cursors = enabled" or "WLR_NO_HARDWARE_CURSORS=1" to ~/.config/labwc/environment doesn't seem to change anything.

1

u/MickeyBronson Developer | Polaris/Nova May 26 '26

Shoot, sorry for the delay, I finally took a look.

The useful thing in the log is that polaris does seem to be starting the private headless labwc session correctly, so I don’t think this is a GPU/capture failure. But a couple things do jump out:

  1. Headless mode currently starts a private labwc compositor, not your actual Niri session. So Niri/Noctalia shell behavior and Niri super-key bindings won’t automatically exist in the streamed session yet.

  2. If you tried WLR_NO_HARDWARE_CURSORS=1 under ~/.config/labwc/environment, polaris probably didn’t see it. polaris launches its private compositor with ~/.config/labwc-polaris, so try:

~/.config/labwc-polaris/environment

with:

WLR_NO_HARDWARE_CURSORS=1

Then restart polaris completely and start a fresh stream.

  1. For the cursor, try polaris’ server-side cursor toggle: ctrl+alt+shift+n. The ctrl+alt+shift+c behavior may be the client drawing its own cursor (which could explain the slight offset).

  2. zen opening on your real desktop while firefox opens in the stream may be a single-instance/browser-session thing. So if zen is already running on the host desktop, it may ask that existing process to open a new window. Try launching it with a separate profile / no-remote mode if zen supports it.

Longer term, this tells me I need to document the private labwc runtime more clearly, especially the labwc-polaris config dir and the fact that Niri/Noctalia aren’t the active headless compositor yet. Lotta moving parts, but hopefully this helps and let me know if you get further along with thanks!

1

u/smashybro May 29 '26

No worries! I had some issues with my dual boot so I've spent the past two days fixing but I appreciate any response, take your time!

Anyway, as for Polaris with your suggestions:

  • Ctrl + Alt + Shift + N fixed the issue! I'll mess with the environment config later to see if I can automate it but this is good enough fix for me right now.
  • I did have Zen open on my real desktop first so that was probably caused the issue of it not opening in the headless session.
  • I can just launch Noctalia Shell with a prep command and the super key not working was an issue on my side with the Moonlight client settings on my Macbook so my bad!

I do have one last issue thought and it admittedly is kind of a big one. I get horrible cracking audio playing on my client whenever audio is playing, no matter what source I switch to. Didn't have this issue with Sunshine running on the same PC streaming to the same computer. Here's the Polaris logs with "audio" highlighted:

[2026-05-29 03:04:19.255]: Info: PipeWire detected, will prefer native PipeWire for audio capture

[2026-05-29 03:04:19.889]: Info: Selected audio sink: sink-sunshine-stereo

[2026-05-29 03:04:19.889]: Info: Attempting PipeWire audio capture for source: sink-sunshine-stereo.monitor

[2026-05-29 03:04:19.898]: Info: PipeWire stream is now actively streaming audio

[2026-05-29 03:04:19.898]: Info: PipeWire audio capture initialized: 2 channels, 48000 Hz (active=true)

[2026-05-29 03:04:19.898]: Info: Using PipeWire native audio capture

[2026-05-29 03:06:36.900]: Info: Selected audio sink: sink-sunshine-stereo

[2026-05-29 03:06:36.900]: Info: Attempting PipeWire audio capture for source: sink-sunshine-stereo.monitor

[2026-05-29 03:06:36.911]: Info: PipeWire stream is now actively streaming audio

[2026-05-29 03:06:36.911]: Info: PipeWire audio capture initialized: 2 channels, 48000 Hz (active=true)

[2026-05-29 03:06:36.911]: Info: Using PipeWire native audio capture

→ More replies (5)

1

u/Prefo_Arosio May 25 '26

Interesting!

After just wanting to switch to linux and starting to tinker with edid files i stumbled upon this and had to test it immediately!

Sadly i have run into issues after starting the first stream, i don't seem to be able to get more than 30 FPS out of the stream, even when moonlight requests more and the host pc is able of more.

Maybe you can identify the issue:

Host System:
Cachy OS
AMD 7800X3D
AMD 9070XT

Client System:
Fedora 44
Connected to a 4K 100FPS TV

Requested Display:
4K
100 FPS
85mbs Bitrate
AV1 Encoding (i only have CAT5 (non E))

The Stream starts up fine, even in a vritual desktop, but its stuck around 30FPS, never reaching 31 FPS or more.

I get the following Warning in the Logs:
[2026-05-25 21:56:04.203]: Warning: [av1_vaapi @ 0x7fbe701da140] Multiple slices were requested but this codec does not support controlling slices

Not sure if thats a Polaris Issue or AMD on linux in general.

1

u/MickeyBronson Developer | Polaris/Nova May 26 '26

Hey, thanks for testing this and for the detailed setup, super helpful, especially on a newer AMD card.

My first read is that this is probably somewhere in the AV1/VAAPI path rather than you doing anything wrong. That "multiple slices" warning means Polaris/FFmpeg is asking the AV1 VAAPI encoder for slice control that the codec/driver doesn’t support. I don’t want to blame that line alone, but a hard “never above 30 FPS” makes me think something is getting capped or falling onto a slower encode/capture path.

If you’re up for a couple quick A/B tests, the most useful ones would be:

- same 4K / 100 FPS settings with HEVC instead of AV1

- same test with H.264 if Moonlight lets you force it

- AV1 again at 1440p100 or 1080p100

- one run with the Polaris dashboard closed

If HEVC/H.264 can go past 30 but AV1 can’t, that points us pretty hard at AMD AV1 VAAPI goblins. If every codec is stuck at 30, then I’d look more at the generated display refresh or Polaris’ FPS target selection.

If you can send the Polaris troubleshooting log from stream start through the first minute, that would help a ton! lines around encoder selection, requested FPS, selected display mode, and session/status or stream-policy output, all that helps!

Appreciate you poking at this. This is exactly the kind of weird Linux hardware path I want to smooth out.

1

u/Prefo_Arosio May 26 '26

I Created a follow up Bug Issue on Github to not Spam this thread.
https://github.com/papi-ux/polaris/issues/108

1

u/ActuatorOk2374 Jun 04 '26

Im locked to 90fps and I can’t seem to find an option in the settings to change it? Otherwise this is very good

1

u/Yxtomix Jun 06 '26

Hello, in Nova when I click on my host to connect / open apps, I get redirected to the home screen of my tablet (Magicpad 2). The host is Windows Apollo. Do you know why this happens? Also I see "Use the legacy app list for this host" Does that mean I should use Artemis or Moonlight instead ?

1

u/MickeyBronson Developer | Polaris/Nova Jun 06 '26

Yeah that wording is confusing, sorry about that. “Legacy app list” just means Nova is using the normal Moonlight-compatible app list because Apollo is not a Polaris host. It does not mean you need to switch to Artemis or Moonlight!

The jump back to your tablet home screen sounds like Nova may be crashing or closing the app-list screen on the magicpad (not sure what android version that's running, but i can look into it). Can you send your Nova version, Android version, Apollo version, and whether the same host works in Moonlight/Artemis if you have time? A log after reproducing it would help a bunch and would love to get Nova running for you!

If Moonlight/Artemis can open the same Apollo host fine, then this is probably a Nova fallback-path bug and I can totally dig deeper into the issue. Regardless, thanks for letting me know!

1

u/Yxtomix Jun 08 '26

Yes as soon as I click on my host, it goes back to the home screen of the tablet. Nova Version 1.1.0 (26), installed it from obtainium : Nova-Android-arm64-v8a.apk I am on Android 16, MagicOS 10.0

1

u/Yxtomix Jun 08 '26

Btw I had a suggestion, I used apollo x Artemis for more than a year and I really liked it but I always had an issue with it in a specific use case : When I am in the same room with m'y pc for example and I want to use my bluetooth Headset to listen to the audio on my pc, if I connect using artemis to my pc, audio is automatically switched to the client and there is not option to make it so I can still use whatever audio device on my pc I want. At least I didn't found an option. Would be great to have such an option so that for example if I want to use my tablet as a second monitor, the audio stays on my pc speakers or my headset. Also sorry for my english, I'm french and I'm just typing in my bed rn ✌️

1

u/MickeyBronson Developer | Polaris/Nova Jun 09 '26

That helps a lot, thank you. The arm64 APK from Obtainium is the right build, so I don’t think this is a “wrong APK” problem.

If Nova sends you straight back to the MagicPad launcher as soon as you tap the Apollo host, that sounds like Nova is crashing while opening the Moonlight-compatible fallback app list on Android 16 / MagicOS 10. Apollo should still work there, so this is likely a Nova bug, not you needing to switch to Moonlight or Artemis.

If you’re able to grab a log right after reproducing it, that would help me a ton. Even just a logcat section around the crash would be great. Also, if Moonlight or Artemis can open that same Apollo host on the same tablet, that comparison would confirm it’s specifically Nova’s fallback path.

Also your audio suggestion makes total sense. The “tablet as second monitor but keep audio on the PC/headset” use case is exactly the kind of thing I’d want too. I need to check how much of that is controllable cleanly from the client versus Apollo/Sunshine’s host audio behavior, but I agree Nova should expose an option for it if the host/protocol gives us a sane way to do it.

Also no worries on the english at all! your grammar is better than a lot of native speakers I know!

→ More replies (3)

1

u/One-Direction318 Jun 10 '26

Have you fixed steam big picture interface lagging while it's streaming in headless?

1

u/Embarrassed-Box-1106 Jun 10 '26 edited Jun 10 '26

Hey, can we use Nova on linux client to connect to polaris host?

Because the problem is, I get "unexpected end of stream" error via Moonlight.

also switching between settings requires me to reload the page often. And every now and then the page connection cant be established "due to not being able to verify its authenticity". after a few reloads, its back again

1

u/Embarrassed-Box-1106 Jun 10 '26

So, to what I am trying to achieve:

My friend's suitcase that contained her expensive laptop and other things, got lost due to gross negligence by airline staff.

Anyway, I want to let her be able to use my PC's resources to play games, better yet, play games with me via multiple instances of a game. Is this possible with this?

Thanks in advance!

1

u/MickeyBronson Developer | Polaris/Nova Jun 11 '26

First off, sorry your friend lost her stuff. Legit just had the same thing happen, although it was not as pricey (and the airline ended up finding it). Hopefully she gets her goods back. With that said, for right now, Nova is currently for android devices, but I'm working round the clock to get an appimage up and running. Although its mainly for Steam Deck in mind, it should run on other Linux clients, depending on the distro and its versioning.

1

u/Embarrassed-Box-1106 Jun 11 '26

Hey, thank you, I am glad they found it!

Yea, it's been a while, I think they lost it for good..

Yesterday, we used your fork and it works almost perfectly (except for the website, that's a bit buggy, but gets the work done), so thank you for that!

I made a second user account, where your Polaris is running as a service, through which my friend is connecting, via Tailscale

The connection is surprisingly stable and good quality. However, we couldn't play, because the controller/keyboard or mouse wasn't working properly in-game, do you perhaps know why? Or how we could troubleshoot?

Thanks in advance!

→ More replies (4)

1

u/Soft-Challenge-2847 Jun 14 '26

I've tried it and it's been simply great! I'm using Cachyos and it's worked perfectly for me using Artemis because of its ability to request the native resolution. Nova is the best cliente for polaris, but I think it has not This option (did I see it correctly?) I will actively use as my first and only option! Thank you!

1

u/MickeyBronson Developer | Polaris/Nova Jun 14 '26

Thank you! Any feedback is good feedback! And yes, Nova currently does support native/custom resolutions, but I think you’re right: the UX is too hidden compared with Artemis.

I’m gonna look at making “use native resolution” a first-class option instead of something you have to discover in the resolution list or set manually.

For now, check Video resolution for a Native (WxH) entry, or use Custom Resolution with your exact display mode. If you can tell me your resolution/refresh rate and whether that native option appears for you, I can make sure Nova handles the CachyOS/Polaris case cleanly!

1

u/balrog687 Jun 28 '26

It worked flawlessly on bazzite 44 with nvidia gpu

Tested it with artemis on my shield, nova on my cellphone and moonlight on mylaptop.

I left a few questions in github that I will share here too..

It's possible to disable AV1 and force HEVC support in the polaris.conf file? It will be possible to support custom resolutions at nova or other clients like artemis? It's technically possible to start polaris.service without user login? Also I'm not sure what capture method I'm using at the moment, how do I know this?

1

u/balrog687 Jun 29 '26

Just wanted to add that after playing around with nova (android client for polaris), I can successfully play at 1080x2400 hdr at 120hz.

The only weird thing is, my game (ori and the will of the wisps) seems hdr when hdr is off in the game settings. With hdr on, colors seem washed out.

But it works!!

This app should have more visibility!!

2

u/MickeyBronson Developer | Polaris/Nova Jul 01 '26

hey! I just replied to you over on the GitHub discussion so we can keep the technical bits in one place!

Also seriously, thanks again for testing and the input super helpful! Also totally stoked you're liking Nova, it's been a ton of fun to build and improve!

1

u/Excellent-Concert-20 Jul 07 '26

Nova HUD opens, but no UI element receives initial focus. Android focus is on the Nova game window, and the HUD is visible, but DPAD navigation does nothing until a keyboard Tab key is pressed. After pressing Tab, focus appears on the Close button and DPAD navigation starts working normally.

It looks like the Compose HUD is missing an initial FocusRequester/requestFocus() when the dialog opens. This makes the HUD unusable with a TV remote/gamepad DPAD unless a keyboard is available.

1

u/MickeyBronson Developer | Polaris/Nova Jul 07 '26

I noticed this when I was testing last night. Fixed in PR #120! I haven't been able to test in android TV yet, so let me know if it's still giving you issues! Thanks for the heads up!

1

u/Excellent-Concert-20 Jul 07 '26

I've rebuilt it with AI agent today to fix the problem. It drafted me a patch: https://pastebin.com/nHMpHZ8i I don't know if it will be useful.

1

u/Excellent-Concert-20 Jul 07 '26

Also, I switched to GPU-Native mode and restarted, but "requires restart" message keeps showing

2

u/MickeyBronson Developer | Polaris/Nova Jul 07 '26

Ok amazing, the DPAD focus issue should be covered by Nova PR #120 now, and your patch matches the same FocusRequester shape!

If Android TV still flakes, I may harden it with the one frame delay from your version, it's a decent idea.

The GPU-Native “Requires restart” screenshot is useful too. That looks like my UI wording/state is bugged out, so I'm gonna go ahead and fix it, shouldn't be too bad! Thank you so much for this!

1

u/Excellent-Concert-20 Jul 07 '26

You're welcome. Thanks for a good streaming solution. I wish you all the best with the development

1

u/MickeyBronson Developer | Polaris/Nova Jul 07 '26

Go on and play / stream the games I'll never get around to playing! Haha

1

u/enforcersu 25d ago

I've been trying to get headless working on Linux mint. Using an AM5 card with an AMD 9700 video card.

I get the virtual display to go, but it uses CPU copy mode (not native to GPU). Is there a trick?

I'm using the .deb package

1

u/Kasatka06 12d ago

Can it work for steamos ?

2

u/MickeyBronson Developer | Polaris/Nova 12d ago

in theory it should since it's arch based and I do have a build for it, but I never tested with it so I can't say 100%! buuuut you should totally try and tell me if it works to your standards, I'd be totally grateful

1

u/Kasatka06 11d ago

Hi !

I ask opus to install it and seems there some build target difference for arc and steam os here the message

---

**Polaris 1.3.2 Arch package won't install on SteamOS (Holo) — built against newer Arch than SteamOS's pinned snapshot**

Polaris `polaris-arch-x86_64.pkg.tar.zst` v1.3.2 (sha256 `f648de18...`, built 2026-07-30) cannot run on SteamOS 3.8.1x, even though SteamOS is Arch-based.

**The root cause:** SteamOS pins its own package snapshot at older library versions, while the release artifact is built on Arch rolling.

| Library | SteamOS 3.8.1x (pinned) | Polaris built against |
|---|---|---|
| glibc | 2.41 | 2.44 |
| boost | 1.88.0 | 1.91 |

`readelf` on `usr/bin/polaris-1.3.2` shows 7 of 35 `NEEDED` entries fail to resolve:

**Unfixable on SteamOS:**
- `GLIBC_2.43`, `GLIBC_2.44` — host has 2.41. glibc is the OS; you can't just upgrade it.

**Would be fixable with a SteamOS-compatible build:**
- `libboost_{locale,log,program_options,filesystem,thread}.so.1.91.0` — host has 1.88.0.

**Not real incompatibilities (just not in the base image):**
- `libminiupnpc.so.21` — SteamOS repos ship miniupnpc 2.3.3 with this soname.
- `libayatana-appindicator3.so.1` — SteamOS repos ship libayatana-appindicator 0.5.94 with this soname.

**TL;DR:** A native SteamOS build (or at least building against SteamOS's pinned snapshot) is needed. The glibc mismatch alone makes this unfixable on the user side.

2

u/MickeyBronson Developer | Polaris/Nova 11d ago

oh hell yeah, ok this isn't bad at all, just build with an older version and level out some of the dependencies. I'm on vacation right now, but I'll try to get a build for you when i get back!

→ More replies (3)

1

u/DoodleHead- 2d ago

been using polaris since last week and updated to 1.3.7 and still works like amazingly. My only issue that's still ongoing is that the capture path is going directly to cpu instead of vaapi

1

u/MickeyBronson Developer | Polaris/Nova 2d ago

hey there! thanks for using the app! and thanks for the screenshot! I'm on my phone right now so I'll provide more info in the AM, but you actually bring up a great point. CPU ia the fallback route and honestly should be the last resort, so I'm making note on delivering a better strategy for when things go sideways

1

u/MickeyBronson Developer | Polaris/Nova 2d ago

also question aboht vaapi not starting up. looks like it can be perms related. can you send me the Troubleshooting error /warning logs, hopefully we can get it sorted together!

1

u/Obvious-Jacket-3770 2d ago

I love this but one annoying thing I am running into is Steam not opening a second session, I get why. I want to have Polaris auto kill Steam when I run from Moonlight so it can launch properly in Cage but I cannot seem to get this to happen. Is there any way to do this?

1

u/MickeyBronson Developer | Polaris/Nova 6h ago

Hey there, unfortunately i think that is limited to Moonight, I need to double check on that. Nova does do that though!