Jonas Ådahl
02b1cfe08f
onscreen/native: Handle unexpected scanout failures async
...
We test direct client buffer scanout using a TEST_ONLY commit on atomic,
and with various conditions in non-atomic, but if we end up failing to
actually commit despite this, handle the fallout asynchronously. What
this means is that we'll reschedule a new frame immediately.
For this to work, the same scanout buffer needs to be avoided for the
same CRTC. This is done by using the newly added signal on the
CoglScanout object to let the MetaWaylandBuffer object mark the current
buffer as non-working for the onsrceen that it failed on. This allows to
re-try buffers on the same onscreen when new ones are attached.
This queues a full damage, since we consumed the qeued redraw rect. The
redraw rect wasn't lost - it was accumulated to make sure the whole
primary plane was redrawed according to the damage region, whenever we
would end up no longer doing direct scanout, but this accumulation only
works when we're not intentionally stopping to scanout. For now, lets
just damage the whole view, it's just an graceful fallback in response
to an unexpected error anyway.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2854 >
2023-03-01 23:57:32 +00:00
..
2023-02-13 15:34:24 +00:00
2021-12-22 16:22:08 +00:00
2021-12-22 16:22:08 +00:00
2022-12-17 15:13:48 +01:00
2020-11-27 15:14:33 +00:00
2022-12-18 13:17:49 +01:00
2020-11-27 15:14:33 +00:00
2020-04-17 00:46:23 +02:00
2019-10-11 23:04:01 +02:00
2023-01-30 10:56:29 +00:00
2022-07-25 14:55:59 +00:00
2023-02-28 12:01:17 +01:00
2022-06-13 18:38:50 +00:00
2023-03-01 23:57:32 +00:00
2023-03-01 23:57:32 +00:00
2023-02-13 15:34:24 +00:00
2023-02-13 15:34:24 +00:00
2023-01-03 20:45:04 +00:00
2018-11-06 17:17:36 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2020-05-13 18:27:46 +02:00
2020-05-13 18:27:46 +02:00
2022-12-17 15:13:48 +01:00
2022-12-17 15:13:48 +01:00
2023-01-31 11:08:26 +00:00
2022-12-01 09:40:38 +01:00
2022-12-17 15:13:48 +01:00
2019-01-22 18:32:28 +01:00
2022-12-17 15:13:48 +01:00
2020-01-10 16:01:21 +00:00
2023-02-13 15:34:24 +00:00
2023-02-13 15:34:24 +00:00
2023-01-30 10:56:29 +00:00
2018-11-27 15:34:13 +01:00
2019-11-21 15:02:27 +00:00
2018-11-06 17:17:36 +01:00
2019-11-21 15:02:27 +00:00
2018-11-06 17:17:36 +01:00
2016-10-11 22:51:50 +08:00
2016-10-11 22:51:50 +08:00
2023-02-09 16:23:36 +01:00
2023-01-30 10:56:29 +00:00
2023-02-10 18:38:39 +00:00
2022-12-17 20:38:23 +00:00
2023-02-06 21:37:04 +08:00
2022-07-25 14:55:59 +00:00
2023-01-03 20:45:04 +00:00
2022-12-17 15:13:48 +01:00
2022-11-25 15:40:12 +00:00
2022-09-29 12:36:43 +00:00
2022-11-25 15:40:12 +00:00
2022-09-29 12:36:43 +00:00
2022-11-25 15:40:12 +00:00
2022-09-29 12:36:43 +00:00
2021-12-02 20:48:24 +00:00
2018-11-06 17:17:36 +01:00
2023-02-25 19:18:43 +01:00
2023-01-30 10:56:29 +00:00
2023-01-30 10:56:29 +00:00
2018-11-06 17:17:36 +01:00
2022-07-25 14:55:59 +00:00
2023-01-23 15:57:50 +01:00
2023-01-03 20:45:04 +00:00
2021-02-22 13:52:27 +01:00
2018-11-06 17:17:36 +01:00
2023-01-30 10:56:29 +00:00
2023-01-30 10:56:29 +00:00
2022-12-17 13:52:51 +00:00
2019-12-09 10:09:40 +01:00
2022-12-17 15:13:48 +01:00
2022-08-02 12:19:42 +00:00
2022-12-09 20:48:55 +00:00
2022-12-01 12:41:32 +01:00
2023-02-14 10:29:00 -05:00
2023-02-13 15:34:24 +00:00
2018-11-06 17:17:36 +01:00
2018-11-06 17:17:36 +01:00
2022-07-25 14:55:59 +00:00
2022-07-25 14:55:59 +00:00
2021-02-22 13:52:27 +01:00
2018-11-06 17:17:36 +01:00
2021-02-22 13:52:27 +01:00
2018-11-06 17:17:36 +01:00
2021-02-22 13:52:27 +01:00
2018-11-06 17:17:36 +01:00
2022-12-17 15:13:48 +01:00
2018-11-06 17:17:36 +01:00
2022-08-13 00:39:54 +02:00
2020-01-30 18:02:34 +01:00
2023-01-30 10:56:29 +00:00
2021-12-07 20:04:08 +00:00
2021-02-22 13:52:27 +01:00
2018-11-06 17:17:36 +01:00
2022-12-01 12:41:32 +01:00
2018-11-06 17:17:36 +01:00
2022-12-01 12:41:32 +01:00
2020-10-23 18:48:18 +00:00
2023-01-25 13:53:11 +00:00
2022-12-01 12:41:32 +01:00
2023-02-13 15:34:24 +00:00
2023-02-13 15:34:24 +00:00
2022-12-01 12:41:32 +01:00
2019-02-06 12:24:03 +00:00
2022-10-10 18:16:51 +00:00
2022-10-10 18:16:51 +00:00
2023-02-13 15:34:24 +00:00
2023-02-13 15:34:24 +00:00
2022-12-17 20:38:23 +00:00
2023-02-10 18:38:39 +00:00
2016-08-22 21:03:41 +08:00
2023-01-30 10:56:29 +00:00
2018-02-23 18:57:53 +08:00
2023-02-13 15:34:24 +00:00
2023-02-13 15:34:24 +00:00
2023-03-01 09:48:14 +00:00
2023-03-01 09:48:14 +00:00
2023-02-20 16:55:36 +00:00
2022-11-17 11:30:56 +00:00
2019-05-02 16:31:45 +02:00
2023-02-10 20:43:11 +00:00
2023-02-13 15:34:24 +00:00
2018-11-06 17:17:36 +01:00
2023-01-03 20:45:04 +00:00
2022-12-01 17:23:34 +01:00
2020-02-19 22:34:28 +00:00
2023-02-13 15:34:24 +00:00
2022-05-31 12:00:55 +00:00