SUMMARY When running steam under wayland session (host) steam link only shows a black screen (at least on an android device client) STEPS TO REPRODUCE 1. Start steam with either -pipewire or -pipewire-dmabuf 2. When requested by portal, choose a monitor to share 3. Run steamlink on android device and start streaming OBSERVED RESULT Black screen on client, audio and input works fine EXPECTED RESULT Steam is properly shown on client device SOFTWARE/OS VERSIONS Operating System: Arch Linux KDE Plasma Version: 5.93.0 KDE Frameworks Version: 5.249.0 Qt Version: 6.7.0 Kernel Version: 6.7.4-1-cachyos (64-bit) Graphics Platform: Wayland Processors: 16 × AMD Ryzen 7 5700X 8-Core Processor Memory: 31.3 GiB of RAM Graphics Processor: AMD Radeon RX 6750 XT Manufacturer: Micro-Star International Co., Ltd. Product Name: MS-7A37 System Version: 1.0 ADDITIONAL INFORMATION Notice I've opened this to KDE because I've tested on Gnome (opensuse tumbleweed) and there it works fine Also tested on Fedora and got the same problem with KDE 5.27.10 After streaming starts, terminal get flooded with CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data Steam logs: CDesktopCapturePipeWire: Opening DRM render node /dev/dri/renderD128 CDesktopCapturePipeWire: Start signal received. BuildCompleteAppOverviewChange: 502 apps RegisterForAppOverview 1: 15ms RegisterForAppOverview 2: 16ms tid(5852) burning pthread_key_t == 0 so we never use it 02/13 09:14:06 Init: Installing breakpad exception handler for appid(steam_monitor)/version(20240113005129)/tid(5852) 02/13 09:14:06 Init: Installing breakpad exception handler for appid(steam_monitor)/version(1.0)/tid(5852) Streaming initialized and listening on port 27031 CLIENT: Sending HID device 0000/11fb/-1 Mobile Touch Control at touch://0 Streaming started to Motorola motorola edge 20 pro Android 13 at 192.168.15.2:47022, audio channels = 2, MTU = 1468 Streaming quality: k_EStreamQualityBalanced Streaming bitrate: Automatic Device form factor: phone Maximum capture: 2400x1080 60.00 FPS Video Streaming: enabled Audio Streaming: enabled Input Streaming: enabled ===================================================================== Game: UNKNOWN (0) Setting target bitrate to 15000 Kbit/s, burst bitrate is 75000 Kbit/s GameScope focus changed to appID 0 Window title set to Steam — Modo Big Picture Changing record window: 0x1a00073 >>> Starting desktop stream SynchronizeClientState(): setting capture size 1920x1080 SynchronizeClientState(): setting title to Steam — Modo Big Picture SynchronizeClientState(): setting icon 128x128 SynchronizeClientState(): setting activity to k_EStreamActivityDesktop: Steam Controller Configs - Desktop Recording system audio PulseAudio: Sink alsa_output.pci-0000_2a_00.4.analog-stereo is default PulseAudio: Adding sink[0] alsa_output.pci-0000_28_00.1.hdmi-stereo with priority 1, monitor is alsa_output.pci-0000_28_00.1.hdmi-stereo.monitor PulseAudio: Adding sink[1] alsa_output.pci-0000_2a_00.4.analog-stereo with priority 7, monitor is alsa_output.pci-0000_2a_00.4.analog-stereo.monitor PulseAudio: Recording on device alsa_output.pci-0000_2a_00.4.analog-stereo.monitor CDesktopCapturePipeWire: PipeWire stream state changed to connecting CDesktopCapturePipeWire: PipeWire stream state changed to paused CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 1) CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 1) CDesktopCapturePipeWire: PipeWire stream state changed to streaming PulseAudio: Connected to device alsa_output.pci-0000_2a_00.4.analog-stereo.monitor (1, not suspended). PulseAudio: Using sample spec 's16le 2ch 48000Hz', channel map 'front-left,front-right'. >>> Switching video stream from NONE to Desktop_MovieStream BuildCompleteAppOverviewChange: 502 apps CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 1) CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data CGameStreamVideoStageVAAPI: Reinitializing 1920x1080 at 15000 Kbit/s and 60.00 FPS with quality 0 ffmpeg verbose: libva: VA-API version 1.20.0 ffmpeg verbose: libva: Trying to open /usr/lib32/dri/radeonsi_drv_video.so ffmpeg verbose: libva: Found init function __vaDriverInit_1_20 ffmpeg verbose: libva: va_openDriver() returns 0 ffmpeg verbose: Initialised VAAPI connection: version 1.20 ffmpeg verbose: VAAPI driver: Mesa Gallium driver 23.3.5-arch1.1 for AMD Radeon RX 6750 XT (radeonsi, navi22, LLVM 16.0.6, DRM 3.57, 6.7.4-1-cachyos). ffmpeg verbose: Driver not found in known nonstandard list, using standard behaviour. CLIENT: Got control packet k_EStreamControlSetQoS CLIENT: Got control packet k_EStreamControlSetTargetBitrate CLIENT: Starting audio stream: frequency=48000, channels=2 CLIENT: Opened audio device: format=2, channels=2, frequency=48000 CLIENT: Initialized audio decoder: codec=3, sample rate=48000, channels=2 CLIENT: Got control packet k_EStreamControlStartAudioData CLIENT: Got control packet k_EStreamControlSetSpectatorMode CLIENT: Got control packet k_EStreamControlSetCaptureSize CLIENT: Got control packet k_EStreamControlSetTitle CLIENT: Got control packet k_EStreamControlSetIcon CLIENT: Got control packet k_EStreamControlSetActivity ffmpeg verbose: Input surface format is nv12. ffmpeg verbose: Using VAAPI profile VAProfileH264Main (6). ffmpeg verbose: Using VAAPI entrypoint VAEntrypointEncSlice (6). ffmpeg verbose: Using VAAPI render target format YUV420 (0x1). ffmpeg verbose: RC mode: VBR. ffmpeg verbose: RC target: 83% of 18000000 bps over 1000 ms. ffmpeg verbose: RC buffer: 18000000 bits, initial fullness 13500000 bits. ffmpeg verbose: RC framerate: 60/1 (60.00 fps). ffmpeg verbose: Using intra and P-frames (supported references: 1 / 1). ffmpeg warning: Driver does not support some wanted packed headers (wanted 0xd, found 0x1). ffmpeg verbose: Using level 4. >>> Capture method set to Desktop OpenGL NV12 + VAAPI H264 >>> Capture resolution set to 1920x1080 >>> Capture colorspace set to BT.601 limited range src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 CLIENT: Queued 110 ms, clearing audio stream >>> Client video decoder set to Android texture hardware decoding CLIENT: Android texture hardware decoding CLIENT: Got control packet k_EStreamControlStartVideoData CLIENT: Got control packet k_EStreamControlVideoEncoderInfo CLIENT: Got control packet k_EStreamControlSetCursorScale Caching cursor image for left_ptr, serial 8, cache size = 0 SynchronizeClientState(): setting cursor to 8 assert_20240213091408_40.dmp[6021]: Uploading dump (out-of-process) /tmp/dumps/assert_20240213091408_40.dmp src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 CDesktopCapturePipeWire: PipeWire stream state changed to paused CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 1) CDesktopCapturePipeWire: PipeWire stream state changed to streaming src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 src/steamUI/gamestream/desktopcapturepipewire.cpp (1102) : spaBuffer->n_datas == 1 CGameStreamVideoStageVAAPI: Reinitializing 1920x1080 at 15000 Kbit/s and 60.00 FPS with quality 0 ffmpeg verbose: libva: VA-API version 1.20.0 ffmpeg verbose: libva: Trying to open /usr/lib32/dri/radeonsi_drv_video.so ffmpeg verbose: libva: Found init function __vaDriverInit_1_20 ffmpeg verbose: libva: va_openDriver() returns 0 ffmpeg verbose: Initialised VAAPI connection: version 1.20 ffmpeg verbose: VAAPI driver: Mesa Gallium driver 23.3.5-arch1.1 for AMD Radeon RX 6750 XT (radeonsi, navi22, LLVM 16.0.6, DRM 3.57, 6.7.4-1-cachyos). ffmpeg verbose: Driver not found in known nonstandard list, using standard behaviour. ffmpeg verbose: Input surface format is nv12. ffmpeg verbose: Using VAAPI profile VAProfileH264Main (6). ffmpeg verbose: Using VAAPI entrypoint VAEntrypointEncSlice (6). ffmpeg verbose: Using VAAPI render target format YUV420 (0x1). ffmpeg verbose: RC mode: VBR. ffmpeg verbose: RC target: 83% of 18000000 bps over 1000 ms. ffmpeg verbose: RC buffer: 18000000 bits, initial fullness 13500000 bits. ffmpeg verbose: RC framerate: 60/1 (60.00 fps). ffmpeg verbose: Using intra and P-frames (supported references: 1 / 1). ffmpeg warning: Driver does not support some wanted packed headers (wanted 0xd, found 0x1). ffmpeg verbose: Using level 4. >>> Capture method set to Desktop PipeWire RGB DMABUF + VAAPI H264 CVAAPIConvertRGBToNV12: Create surface failed: resource allocation failed CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data CDesktopCapturePipeWire: PipeWire stream format changed (size: 1920x1080, format 8, stride 7680, size 8294400, dmabuf: 1) >>> Capture method set to Desktop OpenGL NV12 + VAAPI H264 CLIENT: Queued 110 ms, clearing audio stream CLIENT: Queued 110 ms, clearing audio stream CLIENT: Got control packet k_EStreamControlSetCursor CLIENT: Got control packet k_EStreamControlSetCursorImage CLIENT: Got control packet k_EStreamControlVideoEncoderInfo CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data CDesktopCapturePipeWire: Couldn't import dmabuf: Function not implemented CDesktopCapturePipeWire: Failed to mmap memory: Operation not permitted CDesktopCapturePipeWire: Couldn't get image data
I confirm this is still an issue and could be the reason why we still have a black screen.
Apparently it is working with steam beta. Need to double check that on other plasma install
Yeah, works correctly for me too