gamescope icon indicating copy to clipboard operation
gamescope copied to clipboard

Black screen when streaming with Steam Remote Play

Open lavadrop opened this issue 1 year ago • 10 comments

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

lavadrop avatar Oct 26 '24 04:10 lavadrop

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.

mmleroux avatar Dec 17 '24 22:12 mmleroux

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.

ccampbell9 avatar Jan 08 '25 02:01 ccampbell9

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 avatar Jan 25 '25 06:01 buckley310

@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.

mprasil avatar Jan 26 '25 16:01 mprasil

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 avatar Jan 26 '25 17:01 buckley310

@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 avatar Jan 26 '25 20:01 mprasil

@mprasil yep, 24.05 gamescope on unstable nixos.

buckley310 avatar Jan 26 '25 22:01 buckley310

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.

Uklosk avatar Feb 15 '25 17:02 Uklosk

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.

ChaosWeaver-GH avatar Feb 15 '25 23:02 ChaosWeaver-GH

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.

Uklosk avatar Feb 16 '25 08:02 Uklosk

Issue persists

systox avatar Nov 10 '25 09:11 systox

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.

adueppen avatar Nov 16 '25 21:11 adueppen

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.

internatt avatar Dec 02 '25 01:12 internatt