Commit 0062795e authored by Gerd Hoffmann's avatar Gerd Hoffmann

virtio-gpu: use src not crtc

Pick up the correct source rectangle from framebuffer.
Without this multihead setups are not working correctly.
Signed-off-by: default avatarGerd Hoffmann <kraxel@redhat.com>
parent 86f752d2
...@@ -85,27 +85,32 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane, ...@@ -85,27 +85,32 @@ static void virtio_gpu_primary_plane_update(struct drm_plane *plane,
if (bo->dumb) { if (bo->dumb) {
virtio_gpu_cmd_transfer_to_host_2d virtio_gpu_cmd_transfer_to_host_2d
(vgdev, handle, 0, (vgdev, handle, 0,
cpu_to_le32(plane->state->crtc_w), cpu_to_le32(plane->state->src_w >> 16),
cpu_to_le32(plane->state->crtc_h), cpu_to_le32(plane->state->src_h >> 16),
plane->state->crtc_x, plane->state->crtc_y, NULL); plane->state->src_x >> 16,
plane->state->src_y >> 16, NULL);
} }
} else { } else {
handle = 0; handle = 0;
} }
DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d\n", handle, DRM_DEBUG("handle 0x%x, crtc %dx%d+%d+%d, src %dx%d+%d+%d\n", handle,
plane->state->crtc_w, plane->state->crtc_h, plane->state->crtc_w, plane->state->crtc_h,
plane->state->crtc_x, plane->state->crtc_y); plane->state->crtc_x, plane->state->crtc_y,
plane->state->src_w >> 16,
plane->state->src_h >> 16,
plane->state->src_x >> 16,
plane->state->src_y >> 16);
virtio_gpu_cmd_set_scanout(vgdev, output->index, handle, virtio_gpu_cmd_set_scanout(vgdev, output->index, handle,
plane->state->crtc_w, plane->state->src_w >> 16,
plane->state->crtc_h, plane->state->src_h >> 16,
plane->state->crtc_x, plane->state->src_x >> 16,
plane->state->crtc_y); plane->state->src_y >> 16);
virtio_gpu_cmd_resource_flush(vgdev, handle, virtio_gpu_cmd_resource_flush(vgdev, handle,
plane->state->crtc_x, plane->state->src_x >> 16,
plane->state->crtc_y, plane->state->src_y >> 16,
plane->state->crtc_w, plane->state->src_w >> 16,
plane->state->crtc_h); plane->state->src_h >> 16);
} }
static void virtio_gpu_cursor_plane_update(struct drm_plane *plane, static void virtio_gpu_cursor_plane_update(struct drm_plane *plane,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment