mirror of https://gitee.com/openkylin/linux.git
drm/virtio: implement blob resources: blob display integration
SCANOUT_BLOB forwards the DRM framebuffer metadata to the host. The modifier is intentionally left out -- it may be possible to query the host for that. We also assume one blob resource per DRM framebuffer. That too is an intentional simplification. Signed-off-by: Gurchetan Singh <gurchetansingh@chromium.org> Acked-by: Tomeu Vizoso <tomeu.vizoso@collabora.com> Link: http://patchwork.freedesktop.org/patch/msgid/20200924003214.662-14-gurchetansingh@chromium.org Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
c7a6ac4f60
commit
0b0f1afe6c
|
@ -174,12 +174,23 @@ 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_set_scanout(vgdev, output->index,
|
||||
bo->hw_res_handle,
|
||||
plane->state->src_w >> 16,
|
||||
plane->state->src_h >> 16,
|
||||
plane->state->src_x >> 16,
|
||||
plane->state->src_y >> 16);
|
||||
|
||||
if (bo->host3d_blob || bo->guest_blob) {
|
||||
virtio_gpu_cmd_set_scanout_blob
|
||||
(vgdev, output->index, bo,
|
||||
plane->state->fb,
|
||||
plane->state->src_w >> 16,
|
||||
plane->state->src_h >> 16,
|
||||
plane->state->src_x >> 16,
|
||||
plane->state->src_y >> 16);
|
||||
} else {
|
||||
virtio_gpu_cmd_set_scanout(vgdev, output->index,
|
||||
bo->hw_res_handle,
|
||||
plane->state->src_w >> 16,
|
||||
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,
|
||||
|
|
Loading…
Reference in New Issue