From: Christian Hergert <[email protected]>

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 <[email protected]>
Reviewed-by: Lyude Paul <[email protected]>
Signed-off-by: Lyude Paul <[email protected]>
---
 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


Reply via email to