virtio-gpu: split virtio-gpu, introduce virtio-gpu-base
commit50d8e25ea66db01f4214234803506dc1b28cb8d2
authorMarc-André Lureau <marcandre.lureau@redhat.com>
Fri, 24 May 2019 13:09:44 +0000 (24 15:09 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Wed, 29 May 2019 04:30:45 +0000 (29 06:30 +0200)
tree13630c1f78523b9bb9ccde4673c6c25884a38798
parentcb0efb7125fade8faa9a1fed4d46e63d35b31863
virtio-gpu: split virtio-gpu, introduce virtio-gpu-base

Add a base class that is common to virtio-gpu and vhost-user-gpu
devices.

The VirtIOGPUBase base class provides common functionalities necessary
for both virtio-gpu and vhost-user-gpu:
- common configuration (max-outputs, initial resolution, flags)
- virtio device initialization, including queue setup
- device pre-conditions checks (iommu)
- migration blocker
- virtio device callbacks
- hooking up to qemu display subsystem
- a few common helper functions to reset the device, retrieve display
informations
- a class callback to unblock the rendering (for GL updates)

What is left to the virtio-gpu subdevice to take care of, in short,
are all the virtio queues handling, command processing and migration.

Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-id: 20190524130946.31736-8-marcandre.lureau@redhat.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
hw/display/Makefile.objs
hw/display/virtio-gpu-3d.c
hw/display/virtio-gpu-base.c [new file with mode: 0644]
hw/display/virtio-gpu-pci.c
hw/display/virtio-gpu.c
hw/display/virtio-vga.c
include/hw/virtio/virtio-gpu.h