On 5/10/21 3:20 PM, Gerd Hoffmann wrote:
> Move device init (realize) and properties.
>
> Drop the virgl property, the virtio-gpu-gl-device has virgl enabled no
> matter what. Just use virtio-gpu-device instead if you don't want
> enable virgl and opengl. This simplifies the logic and reduces the test
> matrix.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Message-id: 20210430113547.1816178-1-kraxel@redhat.com
> Message-Id: <20210430113547.1816178-4-kraxel@redhat.com>
> ---
> include/hw/virtio/virtio-gpu.h | 1 +
> hw/display/virtio-gpu-gl.c | 33 +++++++++++++++++++++++++++++++++
> hw/display/virtio-gpu.c | 23 +----------------------
> 3 files changed, 35 insertions(+), 22 deletions(-)
>
> @@ -1251,12 +1236,6 @@ static Property virtio_gpu_properties[] = {
> VIRTIO_GPU_BASE_PROPERTIES(VirtIOGPU, parent_obj.conf),
> DEFINE_PROP_SIZE("max_hostmem", VirtIOGPU, conf_max_hostmem,
> 256 * MiB),
> -#ifdef CONFIG_VIRGL
> - DEFINE_PROP_BIT("virgl", VirtIOGPU, parent_obj.conf.flags,
> - VIRTIO_GPU_FLAG_VIRGL_ENABLED, true),
> - DEFINE_PROP_BIT("stats", VirtIOGPU, parent_obj.conf.flags,
> - VIRTIO_GPU_FLAG_STATS_ENABLED, false),
> -#endif
> DEFINE_PROP_END_OF_LIST(),
> };
>
>
Sorry for catching this a bit late, but libvirt is looking for "virgl"
property when guest XML has 3D acceleration enabled:
<video>
<model type='virtio' heads='1' primary='yes'>
<acceleration accel3d='yes'/>
</model>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02'
function='0x0'/>
</video>
This is the corresponding part of cmd line:
-device virtio-vga,id=video0,virgl=on,max_outputs=1,bus=pci.0,addr=0x2
The commit message suggests that virtio-gpu-gl-device should be used
instead. Fair enough, so IIUC the cmd line should be changed to:
-device virtio-gpu-gl-device,id=video0,max_outputs=1,bus=pci.0,addr=0x2
Should be with virtio-vga-gl instead. And I think virtio-gpu-gl-pci for secondary devices.
(it's not clear to me if virtio-gpu*-device should be user_creatable on x86 at least)