weston/libweston/backend-drm
Michael Olbrich 3b3fdc52c3 backend-drm: improve atomic commit failure handling
When an atomic commit fails then the output will be stuck in
REPAINT_AWAITING_COMPLETION state. It is waiting for a vblank event that was
never scheduled.
If the error is EBUSY then it can be expected to be a transient error. So
propagate the error and schedule a new repaint in the core compositor.

This is necessary because there are some circumstances when the commit can fail
unexpectedly:
- With 'state_invalid == true' one commit will disable all planes. If another
  commit for a different output is triggered immediately afterwards, then this
  commit can temporarily fail with EBUSY because it tries to use the same
  planes.
- At least with i915, if one commit enables an output then a second commit for a
  different output immediately afterwards can temporarily fail with EBUSY. This
  is probably caused by some hardware interdependency.

Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
2022-08-03 17:35:26 +02:00
..
drm-gbm.c libweston: Remove runtime render switching 2022-07-26 13:40:43 +00:00
drm-internal.h libweston: Remove runtime render switching 2022-07-26 13:40:43 +00:00
drm-virtual.c backend-drm: check that outputs and heads are in fact ours 2022-06-10 09:27:43 +00:00
drm.c backend-drm: improve atomic commit failure handling 2022-08-03 17:35:26 +02:00
fb.c backend-drm: get the drm device from the output 2022-06-03 09:17:49 +02:00
kms-color.c Revert "backend-drm: add HDR_OUTPUT_METADATA definitions" 2022-06-07 09:35:14 +01:00
kms.c backend-drm: check that outputs are in fact ours 2022-06-23 14:00:04 +00:00
libbacklight.c libbacklight: Fix backlight never gets initialized 2022-04-11 08:38:00 +03:00
libbacklight.h backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00
meson.build Revert "backend-drm: add HDR_OUTPUT_METADATA definitions" 2022-06-07 09:35:14 +01:00
modes.c backend-drm: get the drm device from the output 2022-06-03 09:17:49 +02:00
state-helpers.c backend-drm: move drm objects from backend to drm device 2022-06-03 09:17:15 +02:00
state-propose.c libweston: Remove runtime render switching 2022-07-26 13:40:43 +00:00
vaapi-recorder.c drm/vaapi: Fix pointer-size confusion 2021-08-03 11:13:23 +00:00
vaapi-recorder.h backend-drm: move into new subdir 2019-05-16 13:32:34 +01:00