Re: New xrandr multi-mon / arbitrary resolution support issues

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

 



On Sun, Aug 26, 2012 at 03:48:44PM +0200, Hans de Goede wrote:
> Hi,
> 
> As part of integrating the spice-vdagent xrandr patches
> (done, as there were many other patches pending, so fixes
> can just be applied on top), I've been testing the new
> xrandr multi-mon / arbitrary resolution support.
> 
> With single monitor setups, things work fine, but with
> multiple monitor setups things don't work as advertised.
> 
> 1) There is no way to enable extra monitors from
> remote-viewer, with the new xrandr code I would expect
> there to be 4 displays under the view->displays menu, but
> there is only 1.
> 
> 2) Starting remote viewer with --full-screen=auto-conf,
> does result in the 2nd qxl head being enabled, but
> remote-viewer viewer does not see it as a separate
> display, instead the 2 monitors are rendered next to
> each other in a single window. And since windows full
> screen to a single monitor, this means that after
> --full-screen=auto-conf, the user gets 2 small views
> into the guest next to each other in a single full-screen
> window, with large black areas above and below, see the
> attached screenshot (which shows both my monitors)

This sounds like an old remote-viewer which ignores the
SpiceDisplayMonitorsConfig message. But otoh it can't be since in that
case remote-viewer would see only one display channel and not try to use
two monitors.

> 
> 3) Exiting fullscreen mode after using --full-screen=auto-conf
> results in remote-viewer resizing its window to fit both
> monitors next to each other, so in my case to 3840x1080, and
> then telling the agent to resize monitor 1 inside the guest
> to 3840x1080, and not touching monitor 2. So the guest now
> thinks it has 2 monitors 1 of 3840x1080, and  a second one
> mapped of 1920x1080+1920+0, so it thinks the second monitor
> is a clone of the right halve of the screen... And remote-viewer
> does not show this clone at all

There are all kinds of wrong here:
 * if spice-server thinks it is working with an old client, it should
  not allow multiple monitors to be set. Maybe send a warning (main
  channel message) to the client "need client version >= X for multiple
  monitors on a single display channel".

> 
> 4) Resizing the window after step 3. (since 3840x1080 won't fit
> when adding window decorations, etc. results in the per x-session
> agent process in the guest crashing with:
> 
> spice-vdagent[1483]: 0xc07010 received monitors config, arg1: 0, arg2: 0, size 48
> spice-vdagent[1483]: from guest: 2, 1
> spice-vdagent[1483]: received monitor 0 config 3840x1080+0+0
> spice-vdagent[1483]: received monitor 1 config 1920x1080+1920+0

So remote-viewer is passing a configuration that contains overlap -
that's wrong. It's also wrong for the agent to try to use it, it should
ignore requests with overlap.

> spice-vdagent[1483]: after zeroing: 2, 1
> spice-vdagent[1483]: received monitor 0 config 3840x1080+0+0
> spice-vdagent[1483]: received monitor 1 config 1920x1080+1920+0
> spice-vdagent[1483]: delete_mode of in use mode, setting crtc to NULL mode
> X Error of failed request:  BadMatch (invalid parameter attributes)
>   Major opcode of failed request:  148 (RANDR)
>   Minor opcode of failed request:  21 (RRSetCrtcConfig)
>   Serial number of failed request:  100
>   Current serial number in output stream:  100
> [hans@localhost ~]$

:(

Using the error handler will work around this.

> 
> Regards,
> 
> Hans


_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
http://lists.freedesktop.org/mailman/listinfo/spice-devel


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]