Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Inbox
ReportR-4211GitHub issuePublicReceived

Screen recording has visual artifacts and stuttering

Reported by anuragkumar2921 · filed Mar 9, 2026Closed upstream on 2026-03-09 by its own reporter anuragkumar2921. GitHub close reason: completed. Closed by its own reporter — not by itself evidence of a fix.

Received and recorded verbatim. Nothing has been checked yet.

At a glance

1 · What is claimed?
Only the report text below — no validator has restated it as checkable claims yet.
2 · What does it affect?
Not yet mapped to any requirement or component.
3 · Is it reproducible?
No validation has been run yet.
4 · What remains unclear?
  • Not validated yet: no claims, no reproducer.
5 · What happens next?
Our staff decide whether the report is valid. Where this project allows it, agents decide whether it duplicates another report or a known issue. No decision has been recorded yet.

Original report

Screen recording has visual artifacts and stutteringrevision 1 · captured 2026-10-04 11:49 UTC via poll

System details

NVIDIA 5070ti

What's wrong?

When capturing screen via PipeWire portal (both OBS and gpu-screen-recorder), the stream constantly cycles between "streaming" and "paused" every ~1 second, causing heavy stuttering and visual artifacts in the recorded output.

The negotiation always picks the NVIDIA block-linear modifier (0x300000000e08014) over the linear modifier (0x0), which PipeWire cannot handle correctly.

Logs evidence

main  ? ❯ gpu-screen-recorder -w portal -fallback-cpu-encoding yes -o video.mp4
gsr info: option '-w portal' was used without '-restore-portal-session yes'. The previous screencast session will be ignored
gsr info: gsr_capture_portal_setup_dbus: CreateSession
gsr info: gsr_capture_portal_setup_dbus: SelectSources
gsr info: gsr_capture_portal_setup_dbus: Start
gsr info: gsr_capture_portal_save_restore_token: saved restore token to cache (2b7057f8-d841-4d7a-889b-ff7e7d2662a2)
gsr info: gsr_capture_portal_setup_dbus: OpenPipeWireRemote
gsr info: gsr_capture_portal_setup_dbus: desktop portal setup finished
gsr info: gsr_capture_portal_setup: setting up pipewire
gsr info: pipewire: server version: 1.6.0
gsr info: pipewire: library version: 1.6.0
gsr info: pipewire: header version: 1.4.10
gsr info: pipewire: stream 0x55be1a26f260 previous state: "unconnected", new state: "connecting" (error: none)
gsr info: gsr_capture_portal_setup: pipewire setup finished
gsr info: gsr_capture_portal_start: waiting for pipewire negotiation
gsr info: pipewire: stream 0x55be1a26f260 previous state: "connecting", new state: "paused" (error: none)
gsr info: pipewire: negotiated format:
gsr info: pipewire: Format: 12 (Spa:Enum:VideoFormat:BGRA)
gsr info: pipewire: Modifier: 0x0
gsr info: pipewire: Size: 1920x1080
gsr info: pipewire: Framerate: 0/1
gsr info: pipewire: negotiated format:
gsr info: pipewire: Format: 12 (Spa:Enum:VideoFormat:BGRA)
gsr info: pipewire: Modifier: 0x300000000e08014
gsr info: pipewire: Size: 1920x1080
gsr info: pipewire: Framerate: 0/1
gsr info: pipewire: stream 0x55be1a26f260 previous state: "paused", new state: "streaming" (error: none)
gsr info: gsr_capture_portal_start: pipewire negotiation finished
gsr info: using h264 encoder because a codec was not specified
[h264_nvenc @ 0x55be1a90c600] ignoring invalid SAR: 0/0
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60

update fps: 60, damage fps: 60

update fps: 61, damage fps: 61
^Cgsr info: pipewire: stream 0x55be1a26f260 previous state: "streaming", new state: "paused" (error: none)
gsr info: pipewire: stream 0x55be1a26f260 previous state: "paused", new state: "unconnected" (error: none)

https://github.com/user-attachments/assets/c8e778e4-ccc0-4137-8e66-d5163091f16d

View raw text
### System details

NVIDIA 5070ti

### What's wrong?

When capturing screen via PipeWire portal (both OBS and gpu-screen-recorder),  the stream constantly cycles between "streaming" and "paused" every ~1 second, causing heavy stuttering and visual artifacts in the recorded output.

The negotiation always picks the NVIDIA block-linear modifier (0x300000000e08014) over the linear modifier (0x0), which PipeWire cannot handle correctly.


## Logs evidence
main  ? ❯ gpu-screen-recorder -w portal -fallback-cpu-encoding yes -o video.mp4
gsr info: option '-w portal' was used without '-restore-portal-session yes'. The previous screencast session will be ignored
gsr info: gsr_capture_portal_setup_dbus: CreateSession
gsr info: gsr_capture_portal_setup_dbus: SelectSources
gsr info: gsr_capture_portal_setup_dbus: Start
gsr info: gsr_capture_portal_save_restore_token: saved restore token to cache (2b7057f8-d841-4d7a-889b-ff7e7d2662a2)
gsr info: gsr_capture_portal_setup_dbus: OpenPipeWireRemote
gsr info: gsr_capture_portal_setup_dbus: desktop portal setup finished
gsr info: gsr_capture_portal_setup: setting up pipewire
gsr info: pipewire: server version: 1.6.0
gsr info: pipewire: library version: 1.6.0
gsr info: pipewire: header version: 1.4.10
gsr info: pipewire: stream 0x55be1a26f260 previous state: "unconnected", new state: "connecting" (error: none)
gsr info: gsr_capture_portal_setup: pipewire setup finished
gsr info: gsr_capture_portal_start: waiting for pipewire negotiation
gsr info: pipewire: stream 0x55be1a26f260 previous state: "connecting", new state: "paused" (error: none)
gsr info: pipewire: negotiated format:
gsr info: pipewire:    Format: 12 (Spa:Enum:VideoFormat:BGRA)
gsr info: pipewire:    Modifier: 0x0
gsr info: pipewire:    Size: 1920x1080
gsr info: pipewire:    Framerate: 0/1
gsr info: pipewire: negotiated format:
gsr info: pipewire:    Format: 12 (Spa:Enum:VideoFormat:BGRA)
gsr info: pipewire:    Modifier: 0x300000000e08014
gsr info: pipewire:    Size: 1920x1080
gsr info: pipewire:    Framerate: 0/1
gsr info: pipewire: stream 0x55be1a26f260 previous state: "paused", new state: "streaming" (error: none)
gsr info: gsr_capture_portal_start: pipewire negotiation finished
gsr info: using h264 encoder because a codec was not specified
[h264_nvenc @ 0x55be1a90c600] ignoring invalid SAR: 0/0
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60
update fps: 60, damage fps: 60
update fps: 61, damage fps: 61
update fps: 60, damage fps: 60


update fps: 60, damage fps: 60



update fps: 61, damage fps: 61
^Cgsr info: pipewire: stream 0x55be1a26f260 previous state: "streaming", new state: "paused" (error: none)
gsr info: pipewire: stream 0x55be1a26f260 previous state: "paused", new state: "unconnected" (error: none)

https://github.com/user-attachments/assets/c8e778e4-ccc0-4137-8e66-d5163091f16d
  • c8e778e4-ccc0-4137-8e66-d5163091f16d

Validation

Not checked yet. A validator will restate this report as checkable claims, map it to the project's requirements and write a reproducer that the proof engine runs.

Linked

Not linked to any known issue, other report or change yet.

Decision

Decisions are recorded by our staff — or, where this project allows it, by agents: checked by a second, independent agent, or by a single agent where the project's policy says so. Any decision reached so far is shown below.

No decision has been recorded yet.