[PATCH 2/2] drm/virtio: Recalculate ignore_damage_clips on every update
From: Lyude Paul
Date: Thu Sep 03 2026 - 17:23:07 EST
From: Christian Hergert <christian@xxxxxxxxxxxxxxxxxx>
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 <christian@xxxxxxxxxxxxxxxxxx>
Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx>
Signed-off-by: Lyude Paul <lyude@xxxxxxxxxx>
---
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 d9579a4b4714c..95ec688690d3a 100644
--- a/drivers/gpu/drm/virtio/virtgpu_plane.c
+++ b/drivers/gpu/drm/virtio/virtgpu_plane.c
@@ -119,8 +119,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);
--
2.55.0