Hi On Mon, Jun 22, 2015 at 3:15 PM, Christophe Fergeau <cfergeau@xxxxxxxxxx> wrote: > On Mon, Jun 22, 2015 at 03:03:24PM +0200, Christophe Fergeau wrote: >> On Thu, Jun 18, 2015 at 07:14:13PM -0400, sstutsma@xxxxxxxxxx wrote: >> > From: Sandy Stutsman <sstutsma@xxxxxxxxxx> >> > >> > Each monitor on a Windows guest is represented as a separate, single-headed >> > device with its own framebuffer. When there are multiple monitors, all >> > monitors but one will have a non-zero xy config position. But even in >> > these cases the whole area (frame-buffer) of each monitor should be >> > updated. >> > >> > Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=1202419 >> > --- >> > src/spice-widget.c | 7 ++++++- >> > 1 file changed, 6 insertions(+), 1 deletion(-) >> > >> > diff --git a/src/spice-widget.c b/src/spice-widget.c >> > index 260fda5..f1e1508 100644 >> > --- a/src/spice-widget.c >> > +++ b/src/spice-widget.c >> > @@ -293,7 +293,12 @@ static void update_monitor_area(SpiceDisplay *display) >> > goto whole; >> > } >> > >> > - update_area(display, c->x, c->y, c->width, c->height); >> > + /* If only one head on this monitor, update the whole area */ >> > + if(monitors->len == 1) { >> > + update_area(display, 0, 0, c->width, c->height); >> > + } else { >> > + update_area(display, c->x, c->y, c->width, c->height); >> > + } >> >> What happens if c->x != 0 and c->y != 0 in the single monitor case and >> we don't force these to 0? > > Ah, just looked at update_area which expects the primary to start at (0, > 0) > That's not compatible with virgl, which may use a monitor scanout different than +0+0 (in multimonitor for ex, but one monitor per display channel). I could probably workaround the issue with an extra test such as if (monitors->len == 1 && !d->egl.enabled)... But that condition looks wrong to me anyway. My understanding is that there is some confusing between monitor configuration position (the monitor config on main channel), and the scanout/primary position (the monitor config on display channel). Imho, the fix should be on server or guest/driver side, it shouldn't use a display monitor config with a scanout offset if there is none to be applied by the client. What do you think? -- Marc-André Lureau _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel