Bug 478309 - Pipewire format negotiation fails on Wayland with NVIDIA GPU and 545 drivers
Summary: Pipewire format negotiation fails on Wayland with NVIDIA GPU and 545 drivers
Status: REOPENED
Alias: None
Product: KPipeWire
Classification: Frameworks and Libraries
Component: general (show other bugs)
Version: unspecified
Platform: Other Other
: NOR major
Target Milestone: ---
Assignee: Plasma Bugs List
URL:
Keywords: qt6
: 475493 478286 478587 479915 (view as bug list)
Depends on:
Blocks:
 
Reported: 2023-12-09 15:37 UTC by Stefan Hoffmeister
Modified: 2024-01-16 21:44 UTC (History)
12 users (show)

See Also:
Latest Commit:
Version Fixed In: 6.0


Attachments
Screenshot showing empty preview (148.75 KB, image/png)
2023-12-09 15:39 UTC, Stefan Hoffmeister
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Stefan Hoffmeister 2023-12-09 15:37:19 UTC
SUMMARY

Running Fedora Rawhide (40) and KDE Plasma 6 (git master, past beta 1) on Wayland, the content preview windows are empty.

STEPS TO REPRODUCE
1. log into desktop
2. start some application (Firefox, konsole)
3. hover mouse cursor over task manager entry in bottom panel over running application

OBSERVED RESULT

Preview window comes up without content.

EXPECTED RESULT

Preview window comes up with content.

Note that this is inside a guest on a VMware Workstation host, i.e. the rendering is going through the kernel's vmwgfx driver; everything on Fedora Rwahide is on the bleeding edge.
Comment 1 Stefan Hoffmeister 2023-12-09 15:38:31 UTC
At the same time that "no content" pops up up, journalctl shows pipewire errors. I suspect that this unrelated, as pipewire is (largely) about audio, but I am pasting this still:

```
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: params Spa:Enum:ParamId:EnumFormat: 0:0 Invalid argument (input format (no more input formats))
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: Object: size 160, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 7        (Spa:Enum:VideoFormat:RGBx)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle 1x1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle 1x1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle -1x-1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:modifier (131074), flags 00000008
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Long 72057594037927935
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: Object: size 136, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 7        (Spa:Enum:VideoFormat:RGBx)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle 1x1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle 1x1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Rectangle -1x-1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: params Spa:Enum:ParamId:EnumFormat: 1:0 Invalid argument (output format (no more input formats))
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: Object: size 272, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Rectangle 1174x638
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:framerate (131076), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Fraction 0/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:maxFramerate (131077), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 60/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 1/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 60/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 28 4
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 8        (Spa:Enum:VideoFormat:BGRx)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:modifier (131074), flags 00000018
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 48 8
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Long 72057594037927935
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Long 72057594037927935
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Long 0
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Long 72057594037927935
Dec 09 16:36:36 fedora pipewire[1654]: pw.context: Object: size 208, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Rectangle 1174x638
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:framerate (131076), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Fraction 0/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:maxFramerate (131077), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 60/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 1/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Fraction 60/1
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 28 4
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Dec 09 16:36:36 fedora pipewire[1654]: pw.context:       Id 8        (Spa:Enum:VideoFormat:BGRx)
Dec 09 16:36:36 fedora pipewire[1654]: pw.link: (57.0.0 -> 59.0.0) negotiating -> error (no more input formats) (configure-configure)
Dec 09 16:36:36 fedora kwin_wayland[1656]: kwin_screencast: state changed paused  ->  error no more input formats
Dec 09 16:36:36 fedora kwin_wayland[1656]: kwin_screencast: Stream error:  no more input formats
Dec 09 16:36:36 fedora kwin_wayland[1656]: kwin_screencast: PipeWire remote error:  no more input formats
Dec 09 16:36:36 fedora kwin_wayland[1656]: kwin_scene_opengl: 0x1: generating temporary index buffer for drawing MESA_PRIM_TRIANGLE_FAN
Dec 09 16:36:36 fedora kwin_wayland[1656]: kwin_scene_opengl: 0x1: generating temporary index buffer for drawing MESA_PRIM_TRIANGLE_FAN
Dec 09 16:36:36 fedora plasmashell[1769]: kpipewire_logging: Stream error:  no more input formats
Dec 09 16:36:36 fedora plasmashell[1769]: kpipewire_logging: PipeWire remote error:  -32 no more input formats
```
Comment 2 Stefan Hoffmeister 2023-12-09 15:39:48 UTC
Created attachment 164042 [details]
Screenshot showing empty preview

Attached screenshot showing the empty preview (and parts of the pipewire challenges in the background)
Comment 3 Stefan Hoffmeister 2023-12-09 15:41:48 UTC
Note that Fedora Rawhide 40, as I am writing this, does not have the H.264 codec available (yet), so openh264 is not installed (in case that matters)
Comment 4 David Redondo 2023-12-11 14:36:58 UTC
Does it happen on real hardware?
Comment 5 michaelsoftbinbows 2023-12-11 17:20:24 UTC
Am able to reproduce on real hardware with the proprietary Nvidia 545.29.06 driver.

System info:
Operating System: EndeavourOS 
KDE Plasma Version: 5.90.0
KDE Frameworks Version: 5.246.0
Qt Version: 6.6.1
Kernel Version: 6.6.6-zen1-1-zen (64-bit)
Graphics Platform: Wayland
Processors: 12 × AMD Ryzen 5 5600X 6-Core Processor
Memory: 15.5 GiB of RAM
Graphics Processor: NVIDIA GeForce GTX 1070/PCIe/SSE2
Comment 6 Nate Graham 2023-12-12 18:25:36 UTC
*** Bug 478286 has been marked as a duplicate of this bug. ***
Comment 7 David Edmundson 2023-12-14 15:33:08 UTC
*** Bug 475493 has been marked as a duplicate of this bug. ***
Comment 8 Nate Graham 2023-12-20 20:10:22 UTC
*** Bug 478587 has been marked as a duplicate of this bug. ***
Comment 9 kodatarule 2023-12-22 08:53:07 UTC
There seems to be another bug after some plasma packages updated on 5.27.10 which do show proper previews, just when you select it it's either black screen with the cursor, or white screen with no cursor at all, the update came on arch repo a few days ago.

Operating System: EndeavourOS 
KDE Plasma Version: 5.27.10
KDE Frameworks Version: 5.113.0
Qt Version: 5.15.11
Kernel Version: 6.6.8-x64v3-xanmod1 (64-bit)
Graphics Platform: Wayland
Processors: 16 × AMD Ryzen 7 5800X3D 8-Core Processor
Memory: 31,3 GiB of RAM
Graphics Processor: NVIDIA GeForce RTX 3090/PCIe/SSE2
Comment 10 Nate Graham 2024-01-05 00:13:53 UTC
Should be fixed by Ilya Bizyaev with https://invent.kde.org/plasma/kpipewire/-/commit/5fdfeb18c00ab619d234142d60e922a1f36ae588 in Plasma 6.0!

Backporting is unlikely as there are no further Plasma 5 releases planned. But it's a small change, so any distros that are planning to stay with Plasma 5 for a while and want to backport it manually shouldn't have too hard of a time of it.
Comment 11 Stefan Hoffmeister 2024-01-05 07:47:06 UTC
Alas, on my vmwgfx driver (see my initial report), the problem persists.

I just ran a fresh kdesrc-build plasma-desktop, the linked commit 5fdfeb18c00ab619d234142d60e922a1f36ae588 is present locally, and I still get the same behaviour as before, where
* the preview is empty
* there is plenty of log output

It might or might not be fixed for NVIDIA - I cannot tell right now.

So, the recap, on the exact same (virtual) hardware,
* this is faulty for me on Fedora Rawhide (40) with KDE Plasma git master
* this works for me on Arch Linux with KDE Plasma 5.27.10
Comment 12 Stefan Hoffmeister 2024-01-05 08:03:07 UTC
To reconfirm my challenge on vmwgfx, this is the log output with KDE Plasma 6 from git master (kdesrc-build plasma-desktop) with the commit included
---
```
Jan 05 08:59:58 fedora kwin_wayland[1829]: kwin_core: authorized "/home/stefan/kde/usr/bin/plasmashell" "zkde_screencast_unstable_v1"
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: params Spa:Enum:ParamId:EnumFormat: 0:0 Invalid argument (input format (no more input formats))
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: Object: size 160, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 7        (Spa:Enum:VideoFormat:RGBx)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle 1x1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle 1x1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle -1x-1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:modifier (131074), flags 00000008
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Long 72057594037927935
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: Object: size 136, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 7        (Spa:Enum:VideoFormat:RGBx)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle 1x1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle 1x1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Rectangle -1x-1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: params Spa:Enum:ParamId:EnumFormat: 1:0 Invalid argument (output format (no more input formats))
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: Object: size 272, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Rectangle 1280x728
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:framerate (131076), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Fraction 0/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:maxFramerate (131077), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 60/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 1/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 60/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 28 4
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 8        (Spa:Enum:VideoFormat:BGRx)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:modifier (131074), flags 00000018
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 48 8
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Long 72057594037927935
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Long 72057594037927935
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Long 0
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Long 72057594037927935
Jan 05 08:59:58 fedora pipewire[1826]: pw.context: Object: size 208, type Spa:Pod:Object:Param:Format (262147), id Spa:Enum:ParamId:EnumFormat (3)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaType (1), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 2        (Spa:Enum:MediaType:video)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:mediaSubtype (2), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Id 1        (Spa:Enum:MediaSubtype:raw)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:size (131075), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Rectangle 1280x728
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:framerate (131076), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Fraction 0/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:maxFramerate (131077), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Range, flags 00000000 40 8
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 60/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 1/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Fraction 60/1
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:   Prop: key Spa:Pod:Object:Param:Format:Video:format (131073), flags 00000000
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:     Choice: type Spa:Enum:Choice:Enum, flags 00000000 28 4
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 12       (Spa:Enum:VideoFormat:BGRA)
Jan 05 08:59:58 fedora pipewire[1826]: pw.context:       Id 8        (Spa:Enum:VideoFormat:BGRx)
Jan 05 08:59:58 fedora pipewire[1826]: pw.link: (43.0.0 -> 45.0.0) negotiating -> error (no more input formats) (configure-configure)
Jan 05 08:59:58 fedora kwin_wayland[1829]: kwin_screencast: Stream error:  no more input formats
Jan 05 08:59:58 fedora kwin_wayland[1829]: kwin_screencast: PipeWire remote error:  no more input formats
Jan 05 08:59:58 fedora plasmashell[1957]: kpipewire_logging: Stream error:  no more input formats
Jan 05 08:59:58 fedora plasmashell[1957]: kpipewire_logging: PipeWire remote error:  -32 no more input formats
```
Comment 13 Stefan Hoffmeister 2024-01-14 19:55:41 UTC
The Pipewire output suggests the following:

* the preview source data (i.e. "the window" == output) offers only format DRM_FORMAT_ARGB8888 (VideoFormat:BGRA, VideoFormat:BGRx)
* the preview sink data (i.e. "the preview" == input) accepts only format VideoFormat:RGBx

That is not compatible. That causes the failure with "Invalid argument (input format (no more input formats))".

Now, the _output_ offers DRM_FORMAT_ARGB8888 because of special-case code.

And on the input side (in KPipewire) the implementation of queryDmaBufModifiers may have a logic defect which incorrectly short-circuits processing of _all_ spa_video_formats ("break" vs "continue")

With a bit of hackery in queryDmaBufModifiers, the input will now successfully accept DRM_FORMAT_ARGB8888, will use the "memfd" path ...

... and will silently _not work_, without any errors / diagnostics, and without a preview.

TL;DR: whenever kwin forces DRM_FORMAT_ARGB8888 in the screencast plugin, kpipewire is not prepared to handle that.
Comment 14 Nate Graham 2024-01-16 21:44:17 UTC
*** Bug 479915 has been marked as a duplicate of this bug. ***