From a9cc9905ddb7e7ce98e19b7e508aa3c78661afef Mon Sep 17 00:00:00 2001 From: Christian Hergert Date: Thu, 3 Sep 2026 17:15:52 -0400 Subject: [PATCH] drm/virtio: Recalculate ignore_damage_clips on every update Plane state duplication preserves ignore_damage_clips. Once fbdev sets it for a dumb buffer, later updates using rendered resources continue to ignore damage because the flag is never cleared. Assign ignore_damage_clips on every atomic check so rendered resources can use supplied damage after an earlier dumb-buffer update. Signed-off-by: Christian Hergert Reviewed-by: Lyude Paul Signed-off-by: Lyude Paul Signed-off-by: Dmitry Osipenko Link: https://patch.msgid.link/20260903211914.1109100-3-lyude@redhat.com --- drivers/gpu/drm/virtio/virtgpu_plane.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/gpu/drm/virtio/virtgpu_plane.c b/drivers/gpu/drm/virtio/virtgpu_plane.c index 8225085ce6c0..f07013b2f2ad 100644 --- a/drivers/gpu/drm/virtio/virtgpu_plane.c +++ b/drivers/gpu/drm/virtio/virtgpu_plane.c @@ -121,8 +121,8 @@ static int virtio_gpu_plane_atomic_check(struct drm_plane *plane, * so preserve userspace's accumulated per-buffer damage for those. */ bo = gem_to_virtio_gpu_obj(new_plane_state->fb->obj[0]); - if (old_plane_state->fb != new_plane_state->fb && bo->dumb) - new_plane_state->ignore_damage_clips = true; + new_plane_state->ignore_damage_clips = + old_plane_state->fb != new_plane_state->fb && bo->dumb; crtc_state = drm_atomic_get_crtc_state(state, new_plane_state->crtc);