weston/libweston/backend-drm
Leandro Ribeiro 6d8e3c569c drm: drop disable_planes being false as a condition to support writeback
In 2d70bdfdcd "drm-backend: add support to
output capture writeback source" we've ensured that disable_planes
should be false in order to support writeback capture tasks.

But this was wrong; disable_planes is transient (it is true when
there's some sort of content recording happening), and we enable/disable
that during compositor's lifetime.

This is dangerous and may result in a crash. Imagine the following
sequence:

        1. screen recording starts, disable_planes is set to true.

        2. for whatever reason the output size changes, and we end up
        not updating capture info because we think that writeback is not
        supported by the device.

        3. screen recording stops, disable_planes is set to false.

        4. user tries to take a writeback screenshot, and the
        DRM-backend will pull a writeback capture task with
        weston_output_pull_capture_task().

        5. this function has an assert to ensure that the DRM-backend
        did not forget to update the capture info, and we hit that
        assert.

With this patch we drop disable_planes being false as a condition to
support writeback. So now we keep the capture info up-to-date even when
screen recording is happening, and we gracefully fail writeback tasks.

Signed-off-by: Leandro Ribeiro <leandro.ribeiro@collabora.com>
2023-06-05 07:51:27 +00:00
..
drm-gbm.c backend-drm: import cursors on non gbm outputs 2023-03-03 08:08:46 +00:00
drm-internal.h backend-drm: move struct drm_edid definition 2023-04-28 13:58:53 +03:00
drm-virtual.c backend-drm/drm-virtual: Hang off the drm_backend 2023-02-20 12:41:03 +02:00
drm.c drm: drop disable_planes being false as a condition to support writeback 2023-06-05 07:51:27 +00:00
fb.c backend-drm: Pass view alpha to plane state and commit 2023-03-30 17:29:57 +01:00
kms-color.c Revert "backend-drm: add HDR_OUTPUT_METADATA definitions" 2022-06-07 09:35:14 +01:00
kms.c backend-drm: schedule connector disable for detached head 2023-04-18 11:11:21 +02: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 backend-drm: use libdisplay-info 2023-04-28 16:18:22 +03:00
modes.c backend-drm: drop HDR without libdisplay-info 2023-04-28 16:18:22 +03:00
state-helpers.c backend-drm: Pass view alpha to plane state and commit 2023-03-30 17:29:57 +01:00
state-propose.c backend-drm: Pass view alpha to plane state and commit 2023-03-30 17:29:57 +01: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