https://bugs.kde.org/show_bug.cgi?id=481290

            Bug ID: 481290
           Summary: Steam in home streaming/Steam link shows a black
                    screen on wayland session
    Classification: Plasma
           Product: xdg-desktop-portal-kde
           Version: 5.93.0
          Platform: Arch Linux
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: plasma-b...@kde.org
          Reporter: mmboss...@gmail.com
                CC: aleix...@kde.org, jgrul...@redhat.com, n...@kde.org
  Target Milestone: ---

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

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to