[Spice-devel] [RFC PATCH spice 1/2] QXL interface: add functions to identify monitors in the guest
Lukáš Hrázký
lhrazky at redhat.com
Thu Oct 11 12:55:39 UTC 2018
Hi Gerd,
On Wed, 2018-10-10 at 12:37 +0200, Gerd Hoffmann wrote:
> Hi,
>
> > > + * Sets the hardware (e.g. PCI) path of the graphics device
> > > represented by this QXL interface instance.
> >
> > So, this comment suggests that the caller might be able to provide a
> > path that is not a PCI path. But the implementation below (mostly the
> > debug output, I suppose...) assumes a PCI path. Do we need to support
> > non-PCI paths?
>
> Certainly not for the initial revision, maybe never.
>
> But thanks to the "pci/" prefix we should be able to add support for
> other paths later in case it turns out we need it.
>
> > > + * Returns: The actual SPICE server monitor_id associated with the
> > > display
> >
> > So, if I remember correctly, Gerd recommended returning this value from
> > the function. But I think it needs more explanation here. What exactly
> > is a "monitor_id" supposed to represent? It is not used in your follow-
> > up qemu patch so it's hard to tell.
>
> IIRC the plan was to ditch the global monior_id idea and use the
> (channel_id, display_id) tuple everywhere ...
Not sure what exactly you mean here by "global monitor_id". Not sure
about "use the (channel_id, display_id)" either, it doesn't seem quite
correct.
The plan was (and still is) to limit the use cases to the following
two:
* Legacy QXL on linux with multiple monitors per display channel, but
only this single display channel. Multiple display channels are not
supported in this case, so no streaming etc.
* Limit the number of monitors per display channel to one for all other
cases.
With these limitations, the display_id = channel_id + monitor_id
formula that is used on the client remains unique. With one more
condition, that I think I should add, and that is that monitor_id is
always 0 for the multiple display channel case. It seems it may come up
that the monitor_id could be non-zero, e.g. for the virtio-gpu case...
So the IDs used are:
monitors_config server -> client:
(channel_id, monitor_id)
monitors_config client -> server and possibly server -> vd_agent:
display_id
I hope it's clear like this :)
Cheers,
Lukas
> cheers,
> Gerd
>
More information about the Spice-devel
mailing list