Bug 477130

Summary: Screen recording via Pipewire and GPU Screen recorder broken on NVIDIA Wayland
Product: [Plasma] kwin Reporter: kodatarule
Component: wayland-genericAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal CC: ahiemstra, dec05eba, nate, noahadvs, xaver.hugl
Priority: NOR Keywords: qt6
Version: 5.27.80   
Target Milestone: ---   
Platform: Arch Linux   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description kodatarule 2023-11-17 09:33:32 UTC
SUMMARY
Firstly, the default theme has to be selected for pipewire to even let you choose monitor(or window in obs studio for window capture), but it gives only black screen.
GPU Screen recorder on the other hand - let's you record but the footage is some green canvas on top of it(it looks really weird).
In general however both pipewire and gpu screen recorder exhibit issues.

STEPS TO REPRODUCE
1. Try to screenshare/record/remote play steam with pipewire
2. Try to do a test recording with GPU Screen recorder


OBSERVED RESULT
Pipewire - black screen
GPU Screen recorder - will record, but have some very weird green/purple canvas on top which makes the footage look horrible.

EXPECTED RESULT
To be able to record/screenshare/remote play just fine like in plasma 5

Operating System: EndeavourOS 
KDE Plasma Version: 5.27.80
KDE Frameworks Version: 5.245.0
Qt Version: 6.6.0
Kernel Version: 6.6.1-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

| NVIDIA-SMI 545.29.02              Driver Version: 545.29.02    CUDA Version: 12.3     |
Comment 1 dec05eba 2023-11-18 13:55:15 UTC
The issue in gpu screen recorder is unrelated to kde. A recent(?) version of KDE makes the monitor default to 10-bit color depth is supported by the monitor and gpu screen recorder didn't support that on nvidia until today. The latest version of gpu screen recorder in aur should work on such systems now.
I dont know about the issue in pipewire, but that is probably related to nvidia not supporting certain egl functionality (even when the driver advertises that it does).
Comment 2 Zamundaaa 2023-11-18 16:37:20 UTC
Pipewire recording being broken on NVidia is a NVidia driver bug, see bug 476602.

For GPU screen recorder, the way it currently does screen capture is a bad hack that we don't (and can't) support in any way. It will break more in the future as we improve how KWin makes use of fixed function hardware on the GPU.

*** This bug has been marked as a duplicate of bug 476602 ***
Comment 3 kodatarule 2023-11-19 07:48:23 UTC
Hello,

Thanks for the quick updates - yes updating to latest aur package of gpu-screen-recorder does indeed fix the issue, but pipewire still gives black screen(it was working fine in plasma 5).
The bug Zamundaaa linked to seems to be related, thanks for notifying and quick update!