Skip to content

backends/drm: Notify about failed frames if there are actually pending frames

Vlad Zahorodnii requested to merge work/zzag/drm-backend-failed-present into master

In case a modeset needs to be performed, the drm backend will test all pipelines to ensure that new mode won't cause any bandwidth issues on other outputs, etc.

To do that, it may delay presenting frames. If the new configuration doesn't work, it needs to notify about failed frames.

However, the relevant code that notifies the RenderLoop about failed atomic commits doesn't check if there's actually a pending modeset present.

When switching between VTs, systemd can revoke master permissions from kwin. To make things even more trickier, kwin can try to present a frame in that short time span.

Edited by Vlad Zahorodnii

Merge request reports