qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [PATCH v5 03/13] virtio-gpu: Add udmabuf helpers


From: Kasireddy, Vivek
Subject: RE: [PATCH v5 03/13] virtio-gpu: Add udmabuf helpers
Date: Thu, 20 May 2021 06:23:58 +0000

Hi Gerd,
 
> > +#ifdef CONFIG_LINUX
> 
> > +void virtio_gpu_init_udmabuf(struct virtio_gpu_simple_resource *res)
> 
> > +#else
> 
> > +void *virtio_gpu_init_udmabuf(struct virtio_gpu_simple_resource *res)
> > +{
> > +    /* nothing (stub) */
> > +    return NULL
> > +}
> 
> Fails to build for !linux ...
> 
> You can place the stubs in a file in the stubs/ directory instead.
> They'll be used via weak symbol references instead of #ifdefs then.
[Kasireddy, Vivek] Will do; should I send the whole series (v6) again with this 
and the
other error in patch #10 fixed or just the fixed versions of these specific 
patches?

Sorry for the tangential discussion...
On a completely different topic, I wanted to ask a question on behalf of a 
colleague who
is trying to enable passthrough with virtio-gpu but for a Windows guest. It 
appears the
guest boots only if we specify the option -vga virtio (not sure what happens 
with virtio=std)
as Windows launches a "Microsoft Basic Display Adapter" driver for this VGA 
device 
and Qemu displays the Desktop for this device (via the calls in virtio-vga.c). 
However,
since we only care about virtio-gpu-pci device for which we created a guest 
driver, we 
want to have Qemu display the content/fb from virtio-gpu instead of the vga 
device. 
I see that in set_scanout:

g->parent_obj.enable = 1;
and, then this in virtio-vga.c:

static void virtio_vga_base_update_display(void *opaque)                        
                                                                                
                                                  VirtIOVGABase *vvga = opaque; 
                                                                                
                                                                                
                     VirtIOGPUBase *g = vvga->vgpu;                             
                                                                                
                                                                                
                                                                                
                                                                                
                                           if (g->enable) {
    g->hw_ops->gfx_update(g);
} else {
    vvga->vga.hw_ops->gfx_update(&vvga->vga);
}

Since the parent_obj is different the above code is always going into the else 
part. 
Is the goal here to show the content from virtio-gpu if there is a set_scanout?

The only way we are able to get everything to work as expected is to enable our 
virtio-gpu
guest driver for the VGA device instead of the virtio-gpu PCI device. But we 
are not sure
if this would be OK or not. We don't run into these issues for Linux guests as 
we only 
enable virtio-gpu-pci as we have -vga none. We'd like to the do the same for 
Windows
guests but it looks like it needs the VGA device to be available to boot. So, 
our other
option (as we cannot disable the vga device) is to have Qemu accept content 
only from 
virtio-gpu-pci instead of virtio-vga. Would it make sense to do this? Do you 
think there
is a better way to do what we are trying to do?

Thanks,
Vivek




reply via email to

[Prev in Thread] Current Thread [Next in Thread]