wlroots/backend/drm
Simon Ser acc6d94db0 backend/drm: make commits without a buffer blocking
The wlr_output API requires compositors to wait for wlr_output.frame
before submitting a new buffer. However, compositors can perform a
commit which doesn't involve a buffer anytime.

If the commit is a modeset, we set DRM_MODE_ATOMIC_ALLOW_MODESET and
block until the commit is done. If it isn't, we currently always
perform a non-blocking commit. This is an issue because a previous
page-flip might still be in flight kernel-side, returning EBUSY.

Fix this by using blocking commits when a buffer isn't submitted by
the compositor.

Closes: https://github.com/swaywm/sway/issues/6962
References: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/2239
2022-06-01 21:16:02 +02:00
..
atomic.c backend/drm: make commits without a buffer blocking 2022-06-01 21:16:02 +02:00
backend.c backend/drm: allow non-linear modifiers for multi-GPU 2022-05-24 20:45:55 +00:00
cvt.c backend/drm: add support for custom modes 2019-10-27 10:46:47 -04:00
drm.c output: pass wlr_output_state to backend 2022-05-30 11:34:57 +02:00
legacy.c backend/drm: use drmCloseBufferHandle 2021-12-14 14:33:00 +01:00
meson.build backend/drm: add wlr_drm_backend_monitor 2021-12-13 14:55:16 +01:00
monitor.c backend/drm: add wlr_drm_backend_monitor 2021-12-13 14:55:16 +01:00
properties.c backend/drm: add support for panel orientation 2021-09-21 11:40:37 -06:00
renderer.c backend/drm: fix crash in init_drm_surface 2022-05-26 09:38:48 +02:00
util.c backend/drm: fix crash with null serial 2022-05-26 18:16:29 +02:00