-
Notifications
You must be signed in to change notification settings - Fork 174
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
In-home Streaming + Wayland #6148
Comments
I am affected as well. Steam Remote play doesn't work, neither does remote play together. Input and audio works perfectly. The computers used for testing were:
Clients tested:
Servers tested:
I am thus reasonably certain that the issue is with Wayland or XWayland (I would need to test plasma without HW encoding to be sure there are not two separate symptoms here). Screen sharing from applications like Firefox do not work on Wayland either. I haven't seen anything on the client besides corruption (like uninitialized memory, with a few textures from former apps), even after a game starts. I used simple games for my tests (FTL: Faster than light, Crypt of the necrodancer), and only tried 3D games like Portal 2 on X11 to confirm it still worked. Do 3D games use a different capture method? (Vulkan layer, OpenGL lib injection). Which ones should I try? |
Same issue on Plasma Wayland (tested on Arch Linux). I assume Steam would have to ask pipewire to stream the desktop. |
Same issue on Sway |
Same on Fedora 32, with RPMFusion steam, and Sway. |
Same issue on Fedora 32 + Gnome wayland |
anyone tried the flatpak version? |
same issue on Arch Linux swaywm/wayland + iPad setup |
@PMaynard: Re-read my comment, I am using the flatpak version. This is pretty much a known issue for every wayland environment at that point, so I don't think there's much point in adding pages of comments that everyone has the same issue, and it would be more productive for everyone to upvote the issue. Valve seems to be working on a wayland compositor, I believe the capture functionality could be integrated into it, and then have the compositor act as a client to also display stuff on the screen (if needed). Not sure if that's the way they want to go forward with, but that's what I would do. Pipewire and waypipe are other, more general options. |
Playing around with this a bit more - in a sway session at least it seems that only the big picture interface has trouble being streamed. Starting a game while looking at the normal monitor with the keyboard launches the game, and the game will then appear over the steam link (android app or standalone device) properly. This is only a partial work around, but it does mean xwayland has what it needs to capture and stream the game. |
@yokem55, that's interesting, it never worked for me. Neither steam nor browsers are able to capture other Xwayland windows, only displaying a black background. @emersion hinted that it should work already, so I am not sure what's going on, I will re-test soon. Some of it could be due to multi-monitor specificities. |
I think you misunderstood. For me as well, steam link/remote play works on wayland for a game but the big picture mode window is just black with a few artifacts. That's exactly what I'm seeing. So streaming demonstrably works. Just unusable if you can't select a game. |
@maweki True, I should have been more specific. The Problem is not streaming the games on Wayland via Steam Remote Play, but anything desktop related. |
I finally found a workaround! First we start a Xwayland server with a seperate display You can fiddle with the Xwayland settings until you are satisfied |
So what you're basically saying is, while Steam or Linux (who is responsible for that?) seems to run most games in XWayland already, the steam client proper does not and is therefore not capturable? This would imply that games that work with and use wayland would not be streamable either, yeah? |
That's correct. In fact that's how I stumbled upon this "solution". I tried adding non-steam applications to see which could be captured and which not. And even some steam games couldn't be captured (Wasteland 2 for example). Edit: Edit2: Also for all wlroots based wayland compositors (sway, cage, gamescope, ... ) this is a bigger Problem as it is hardcoded in https://github.com/swaywm/wlroots/blob/6c08fe979615ac88648eb91c87ea4c41fa1d7bdf/xwayland/server.c#L65.
make it executable and pass it to the compositor via |
Any progress on this? Wayland is finding its way into more and more systems with Fedora, Ubuntu and others enabling it by default. Some players (me included) switch to wayland for gamer-oriented features such as a better multi-munitor support, better high refresh rate support natively and native HiDPI options, as of now I cannot stream any game to my Steam Link nor to any of my friends through Remote Play Together without switching first to X11 (which is really not an option in my case). Now that multiple Wayland streaming alternatives exists (most browsers support screen sharing on wayland, OBS works fine too) I hope Valve can do something about it before too many of us are stuck without a very cool and useful feature |
So here's what I think is happening, plus 2/3 of a workaround (maybe someone else can figure out the rest of this): Most games run in an Xwayland window, and Remote Play is able to stream the contents of that window just fine. Anything that's running in a native Wayland window doesn't work (DOOM Eternal, for example), because Remote Play isn't using any capture methods that work on Wayland. Even though Steam itself runs in Xwayland (it's definitely not Wayland native), it doesn't try and stream the contents of that window. Instead it tries to capture the entire desktop, which won't work if you're using Wayland. It's probably a sensible choice since a lot of games will try and show little launchers or popups or whatever and you'd want to be able to click on them or do whatever you need to do to get the game to launch. But regardless; it breaks streaming for Steam itself. If you do something like this: However... Remote Play doesn't switch to streaming the contents of that Xwayland window. It just sits there streaming the Big Picture interface. So if there's a way to convince Steam to stream that window I think we'd be in business. Obviously the real solution would be for Steam to be able to capture the desktop on Wayland, probably with xdg-desktop-portal. OBS did this recently. There's a plugin here that was merged into OBS proper. So it's definitely doable now. |
Is this being actively worked on by Valve? |
I imagine it must. At least the odd guy. The plan for SteamOS and the new hardware can not be to stay on X for the rest of eternity. It would be unusual for Valve to drop the ball on this long-term architecture stuff. |
Has anyone come up with any other solutions for this problem? Neither the |
Gamescope now has a PipeWire stream, which was just implemented less than a month ago. The issue is linked above. |
@kode54 What exactly do you mean? What issue is linked above? And what exactly does Gamescope have to do with in-home streaming not working properly under Wayland? |
I'm running stock Fedora 39 (Gnome) with Steam installed from DNF. Everything works great on X11, but when I switch to a Wayland session, All I get streaming to my Steamlink hardware is a black screen with the default mouse cursor in the center of it. I know Steam BPM is running because while the mouse cursor doesn't move, I'm able to blindly move through Steam BPM UI with my controller. I can even launch a game, and I will hear the game audio as though it is running and sitting on the title screen. Oddly enough, the default mouse cursor will even switch to the mouse cursor used by the game, but it remains fixed in the center of a black screen. I tried installing Xwaylandvideobridge, but this doesn't work... To my knowledge, pipewire and pipewire-dmabuf are default with Steam, so I haven't tried those... |
Have you tested Steam Beta? |
@mwpow3ll You should. It fixed everything for me plus it added a Please Stand By message that pops up when the Big Picture window is out of focus. |
My only problem was switching back to the Steam UI from the game. Holding the Steam button and Tab did nothing, and I had to intervene myself on the computer. |
It sorta works on my End. However if i "minimize" steam which i do regulary to stream movies for example i'll get "live broadcast please stand by" on my TV. And i can't seem to do anything. Which makes it pretty much unusable for me. Any clue why is that? I also can't press a "steam button" since i'm using a small keyboard for my TV. |
It's because an xwayland application such as steam is not allowed to just capture the wayland desktop. It has to go through pipewire, and then the user will be prompted to select if and what to share. There is some experimental support for this which can be enabled by launching steam with the |
Ty that's really sad. So i'm pretty much stuck to x11. Is there actually anything that can be done when seeing the "stand by" message? It seems like everytime i see it i have to go to the computer to get rid of it? Maybe i should try to add firefox as a non-steam game and see if that works lol. |
@YoinkerBoinker For your usecase a look at Sunshine/Moonlight might be worth a try as it offers to select streaming the desktop in addition to e.g. individual applications like Steam (Big Picture) and also works on wayland (utilizing dmabuf/kmsgrab as far as I understand): |
Also confirmed fixed for me, Fedora 39 plasma Wayland, 6700xt. Steam link is working flawlessly on the most recent beta client. |
Same as the above, Fedora 39 with Plasma 5.27 has Steam Link working on Steam Client Beta (Flatpak) on an RX 5700 XT. The only thing I've noticed is that launching big picture takes a considerable amount of time when launching from the button in the client for the first time of a session, but it is fully functional if you wait a minute or so. Launching "flatpak run com.valvesoftware.Steam -bigpicture" or selecting stream in the Steam Link app allows big picture to launch almost immediately, not sure what the difference is. |
Plasma, Wayland. Before I was able to get games going using gamescope, now I can only get portal streaming.. SteamUI streams also. Switching to X is not an option! |
My setup is that I normally use Steam Link on Wayland, however if something happens, then I use Moonlight to fix any problems then I go back to Steam Link |
Pipewire should have an option where you can permanently give screen access to a specific program. |
Capture apps request access to a opaque capture device, pipewire facilitates the communication and routing of video and audio streams, but like with sound, it doesn't actually produce or consume a video stream, that's for pipewire clients, It's up to your Wayland window manager via a common portals: |
The reason I still use Xorg is because when I'm running Minecraft: Java Edition from Steam Wayland, Steam Link will stay at "Please Stand By" until I select a game from the Minecraft Launcher. |
It's definitely supported in GNOME. Works with OBS for me. |
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
This comment was marked as off-topic.
That’s your xdg-desktop-portal’s job. Open an issue (or even better: pull request) to the portal you use requesting this feature. Depending on your portal you might also be able to make a script for that. For instance, wlroots’ xdg-desktop-portal-wlr let’s you change the selection menu from dmenu to literally anything else - such as your own script that makes some checks before asking or automatically allowing and automatically choosing a monitor. I was initially planning to do that, but wlroots sucks and works like shit so I just stopped using it and migrated back to x11 and compiz before getting to it (at least until I can do something with smithay myself or something). Still, if you can get the program that’s requesting your screen then the script would be pretty straightforward. Not sure how this works on other portals, but you could always open an issue to yours if one doesn’t exist already. |
Back on topic: Current stable release works fine using Wayland on Plasma 6. I was able to stream Hades just fine. There's no need to use Beta version. Using Fedora 40, Plasma 6, Wayland, AMDGPU.
|
That said, are we sure that the original problem in this issue even still exists? Admittedly I haven’t used wayland in a while, but when I did I never had a problem that was caused by Steam. Everything worked fine for me from the Steam side, as long as it was launched with -pipewire. What I mean is that this issue miiiiiight be ready to be closed imo, if no one is having a problem actually caused by Steam. |
With this setup:
running steam without pipewire, i can stream the big picture UI fine, but as soon as focus shifts to a started game or i alt tab to anything else, i just get the "please stand by" screen until i refocus the steam window interestingly, with pipewire i still always get the screen capture select popup, but the permission seems to be remembered, because streaming works fine without interacting with the popup |
In last year and early this year, I played Elden Ring about 200 hours without problems by streaming it with Steam Link, by using Wayland + sway and pipewire. Now, with new UI and this "broadcast" window, it just stopped working. It just wants to stream the content of this "broadcast" window, which has just the abort game button. BigUI seems to still work, but it no more wants to stream anything else. |
Does anyone happen to know how I can make KDE automatically accept steam's request for screen sharing? I can't really accept it if I'm not at home, and if i wasn'þ at home I wouldn't be using steam link lmao In KDE's popup there's an option that says like "allow this to be restored in next sessions" or something, but that changes nothing. |
Uh, but actually now (at least on NixOS) if I launch steam with steam-pipewire-coredump-wayland.txt |
I'm running Steam on NixOS (unstable) and I don't have this problem. Wayland without |
Your system information
Please describe your issue in as much detail as possible:
Whenever I run my desktop with Wayland, and connect my steamlink to my Desktop, the screen on the TV will be rubbish with every color of the rainbow all over the screen. The screencapture of the desktop is clearly not going as planned. Actions still work fine, and I can navigate via the controller connected to the steamlink by simply watching what I am doing on my computer screen. Once I launch a game, the corrupted mess disappears and I can properly see the game being streamed to the steamlink.
Steps for reproducing this issue:
What happens:
I see a corrupted mess on my TV
What should happen:
I should be seeing steam big-picture mode, as my computer display is showing.
Workaround:
Use gnome on Xorg.
The text was updated successfully, but these errors were encountered: