Black screen when streaming with Steam Remote Play
Is there an existing issue for this?
- [X] I have searched the existing issues
Are you using any gamescope patches or a forked version of gamescope?
- [X] The issue occurs on upstream gamescope without any modifications
Current Behavior
Streaming a game running under gamescope through the AppleTV Steam Link app results in a black video feed with normal sound and responsive to controller input.
Steps To Reproduce
Configure launch options in host’s Steam to run through gamescope. Launch any game from Steam Remote Play from the Steam Link app.
Hardware information
- Distro: openSUSE Tumbleweed
- CPU: 8-core Ryzen 7 5800X3D
- GPU: [AMD/ATI] Navi 32 [Radeon RX 7700 XT / 7800 XT]
- Driver Version: Mesa 24.1.7
Software information
- Desktop environment: Plasma 6.2.2
- Session type: Wayland
- Gamescope version: 3.15.9-1.1
- Gamescope launch command(s): gamescope -W 2560 -H 1440 -r 144 --force-grab-cursor --hdr-enabled -- %command%
Which gamescope backends have the issue you are reporting?
- [X] Wayland (default for nested gamescope)
- [ ] DRM (default for embedded gamescope, i.e. gamescope-session)
- [ ] SDL
- [ ] OpenVR
Logging, screenshots, or anything else
Capture in 1920x1080 at 59.76 Encoder: Desktop Black Frame + libx264 (4 threads) Decoder: tvOS Metal hardware decoding Stream latency: <1 ms input, 13.87 display Ping: <1 ms (direct) Incoming bitrate: 7226 kbit/s video: 75 kbit/s Outgoing bitrate: 121 kbit/s Packet loss: 0.00 % Press F8 or BACK + X to save a snapshot in the remote computer
Exactly the same issue as described.
As soon as I stream a game launched within gamescope, I get a black screen. To not get the black screen, simply remove gamescope from the launch options and the game can stream anew.
Note that the sound works great and so does the controller input while having the black screen bug.
I am experiencing the same problem as described as well. Trying to stream to a steam deck results in a black screen on the steam deck. Audio is present and the controller inputs are working, but there is no video display. Removing gamescope from a game's launch options fixes it.
I am running into a black screen trying to stream gameplay as well. Launching steam itself under gamescope and trying to stream it results in black screen on the client device, but controls seem to work, as others mentioned above. In my case I first discovered this while trying to stream between two computers, but ended up mostly testing from my PC to my android phone.
Gamescope versions 3.14.17 through 3.16.1 (current latest) all have the issue (checked many, but not every single version). Also tested current master branch (ef1e8dbe49da7ee87120c243f7d1d6935590cc76) and still has the issue. Version 3.14.16 works for me.
After some bisecting: revision b02d87f3efa950a3e093ec962cfb002bbbc7f7f3 is broken. revision 64a34763cdd2b49b8c3ccd3751afd4ece1223564 is working.
In case it's relevant:
- Distro: NixOS unstable
- CPU: Intel i9-12900H
- GPU: Nvidia RTX 3080 mobile
- Driver Version: Nvidia 550.142
- Desktop environment: GNOME 47
- Session type: X11
- Gamescope version: see above
- Gamescope launch command(s): gamescope -e steam
@buckley310 how did you override the gamescope version? I had to drop one nix patch:
gamescope = pkgs.gamescope.overrideAttrs (finalAttrs: previousAttrs: {
version = "3.14.16";
src = pkgs.fetchFromGitHub {
owner = "ValveSoftware";
repo = "gamescope";
tag = finalAttrs.version;
fetchSubmodules = true;
hash = "sha256-tijFVOIMW+nkot/uRP0PNZBYZkZMMt1PcAN5+3SWzW4=";
};
# Drop patch that does not work with 3.14.X
patches = lib.filter (patch: ! lib.hasSuffix "reaper.patch" patch) previousAttrs.patches;
postPatch =
''
mkdir -p src/Utils
touch src/Utils/Process.cpp
''
+ previousAttrs.postPatch;
});
But even this version does not work for me. In some games I get screen stuck on some initial frame, in most black screen. What's interesting is the Steam overlay seems to be working fine I just can't see game itself.
Makes me wonder if @misyltoad commit you linked is relevant in my case - I can't see any difference in behavior, but the issues are pretty much the same as in issue description.
While testing, I actually just checked out older versions of the nixpkgs repo until I got to the point where the package started working again, and then started editing the nix file in the repo itself for more fine-grained version testing.
How I'm actually using gamescope on my machine today is simply nix run -- 'nixpkgs/nixos-24.05#gamescope' -e steam
@buckley310 are you using unstable NixOS for your system? The 24.05 gamescope on top of 24.11 NixOS does not seem to work for me. I wonder if it might be some combination of dependencies and gamescope version that is problematic.
@mprasil yep, 24.05 gamescope on unstable nixos.
Replying to https://github.com/ValveSoftware/gamescope/issues/1596#issuecomment-2613806866
I can confirm commit b02d87f3efa950a3e093ec962cfb002bbbc7f7f3 breaks remote play inside a nested gamescope session on NVIDIA.
Replying to #1596 (comment)
I can confirm commit b02d87f breaks remote play inside a nested gamescope session on NVIDIA.
I have traced back my own challenge as being in relation to this.
Using gamescope, with Nvidia, on top of Wayland, via Remote Play from the Linux Host to Steam Deck results in a black screen on the client device (steam deck). If using the flag --expose-wayland, the result is a bad Vulkan interfacing 'CreateSwapchainKHR' error popup.
A collateral issue by this is that Steam does not hook properly (i.e. no Steam overlay, no remote play) to some non-steam games/apps (e.g. Yuzu emu), so the only way to use them with Remote Play is inside a wayland session, which is broken right now, so no absolute way to remote play them on Linux using Steam.
Issue persists
I'm experiencing a similar issue to this where sometimes I get a black screen but other times I get a fast slideshow of single frames, some of which are minutes or even hours old. This happens with other things too so I suspect the issue is ultimately in Remote Play (or Pipewire/Mutter) but it happens every time I use gamescope (on Fedora 42 with GNOME Wayland)
https://github.com/user-attachments/assets/52316826-fb8b-4e53-b16b-8e473c286225
Note the time at the top, I had been experimenting with different gamescope options in the hope one would fix it hence the WSI layer error.
Replying to #1596 (comment)
I can confirm commit b02d87f breaks remote play inside a nested gamescope session on NVIDIA.
Also here to confirm this. I'm running Bazzite in -deck mode. From within -deck / -tenfoot which is using gamescope as the session microcompositor, I experience the black screen. Audio does appear to work, but no input pass-through. Streaming from the same machine on KDE-Plasma desktop, streaming works as expected.