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

Re: [Xen-devel] [PATCH v1 0/2] libxl: add PV display device driver interface



Oleksandr Grytsov writes ("Re: [Xen-devel] [PATCH v1 0/2] libxl: add PV display 
device driver interface"):
> Backend and frontend operate with connectors (virtual displays). They
> are identified by connector index.
> The virtual display layouts, orders, on which physical display they
> are located, resolustions etc. are configured
> on backend side through backend configuration file. The matching
> between frontend connector index and
> backend virtual dispaly is done with the same configuration file.
> Configuration example:

Oh!

>     doms = (
>         { name = "Dom1"; devId = 0; connectors = ["display0", "display1"]; },
>         { name = "Dom1"; devId = 1; connectors = ["display2"]; },
>         { name = "Dom2"; devId = 0; connectors = ["display3"]; }
>     );
>     connectors = (
>         { name = "display0"; screen = 0; x = 0; y = 0; w = 320; h =
> 240; z = 10; },
>         { name = "display1"; screen = 1; x = 320; y = 0; w = 320; h =
> 240; z = 100; },
>         { name = "display2"; x = 320; y = 0; w = 320; h = 240; }
>         { name = "display3"; x = 320; y = 0; w = 320; h = 240; }
>     );
> 
> Backend understands that for frontend "Dom1" devId = 0 it should
> provide virtual display "display0"
> which located on physical screen 0, at coordinates (0,0) and size
> 320x240 (z - is z-order).
> Once frontend from "Dom1" is connected backend sets corresponding
> connector resolution in xen store:

Right.  I understand.  Thanks for the explanation.

The normal approach, for any kind of backend, with xl/libxl would be
that the xl domain configuration file (and the libxl domain
configuration struct) would specify the backend configuration
information.

I think at the very least the section "doms" there ought to be defined
in the libxl configuration file.

Is there any way (in the backend) of updating this backend
configuration dynamically ?  If so then your libxl patch could take
the per-domain configuration and update the backend config
appropriately.

I guess the z order is useful because either (i) the vdisplay protocol
supports transparency, so a "front" vdisplay can decide which bits of
a "rear" vdisplay show through or (ii) "front" vdisplays occlude
"rear" vdisplays when the appropriate connection (backend/frontend) is
in use, but the "rear" one shows through the rest of the time ?

Am I right ?  If so, is it (i) or (ii) ?

> 1. DRM mode:
> 
> In this mode the backend exclusively opens DRM device. It can be done
> only without any windowing system.
> We can't do match in this mode. We can't share the screen between
> different domains. The backend can only
> map virtual connector to physical one and provide it for frontend. For
> example on the host we have a video adapter
> with HDMI0, HDM1, VGA output. In this case the backend can provide
> HDMI0 to "Dom1", HDMI1 to "Dom2" etc.

That makes sense.  But your example configuration above doesn't seem
to specify HDMI ports, just locations on the screen.  How is this
configured, then ?

Ideally, in this use case, one would write in the xl domain config
file something like this:
  vdisplays = ["output=HDMI1"]

> 2. Wayland with Weston compositor:
> 
> Weston can be launched with X11 or without. With X11 it is not so
> usable case because Weston looks like a X11 application:
> windowing system inside windowing system but it works.

Right.  So in that case what is the function of the x/y locations
specified in the backend configuration ?  If you have windowing-system
within windowing-system then the location on the real screen is
determined by the outer (host) windowing system, surely.

> So we use Weston without X11. Unfortunately Weston itself doesn't
> allow us to configure
> windows position layouts etc. For this purpose we use
> wayland-ivi-extension and its layer management [1].
> It allows to put windows at any position, order, screen etc.

So this is for what is sometimes called "seamless" integration, where
the individual guest applications each have their own window on the
host display ?  Again, I don't see how this relates to the example
backend configuration file you showed above.

I would expect that in this configuration one would write in the xl
domain config file something like
  vdisplays=["output=wayland0,seamless"]

Please forgive me if none of this seems to make sense...

Thanks,
Ian.

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.