Commit 3954ff10 authored by Gerd Hoffmann's avatar Gerd Hoffmann
Browse files

drm/virtio: skip set_scanout if framebuffer didn't change

parent 4ad7056a
Loading
Loading
Loading
Loading
+21 −14
Original line number Diff line number Diff line
@@ -151,6 +151,11 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
	if (bo->dumb)
		virtio_gpu_update_dumb_bo(vgdev, bo, plane->state);

	if (plane->state->fb != old_state->fb ||
	    plane->state->src_w != old_state->src_w ||
	    plane->state->src_h != old_state->src_h ||
	    plane->state->src_x != old_state->src_x ||
	    plane->state->src_y != old_state->src_y) {
		DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n",
			  bo->hw_res_handle,
			  plane->state->crtc_w, plane->state->crtc_h,
@@ -165,6 +170,8 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
					   plane->state->src_h >> 16,
					   plane->state->src_x >> 16,
					   plane->state->src_y >> 16);
	}

	virtio_gpu_cmd_resource_flush(vgdev, bo->hw_res_handle,
				      plane->state->src_x >> 16,
				      plane->state->src_y >> 16,