[compiz] Problems with _NET_WM_FULLSCREEN_MONITORS and screen refreshing

Jason 'vanRijn' Kasper vr at movingparts.net
Tue May 26 12:28:13 PDT 2009


On Tue, May 26, 2009 at 3:49 AM, Danny Baumann <dannybaumann at web.de> wrote:

> Hi,


Hey Danny! =:) Thanks for the reply!!


>  >         1) When an application requests a topology change via
> >            _NET_WM_FULLSCREEN_MONITORS, Compiz does honor the topology
> >         change, but it
> >            does not refresh any monitor that has changed since the
> >         last
> >            _NET_WM_FULLSCREEN_MONITORS topology. If the application
> >         requests to
> >            change from fullscreening monitor 1 to cover both monitors
> >         1 and 2, the
> >            window is resized and can still be interacted with, but the
> >         display still
> >            shows a frozen image of what was previously on the second
> >         monitor, for
> >            example.
>
> I can not reproduce that using your test program. I have seen a similar
> problem on rare occasion, though: Window contents, especially of larger
> windows, were stuck at that time and could be recovered only by
> unmapping and re-mapping (minimize, shade) them.
> Unfortunately I didn't find a good reproduction scenario so far, and I
> really don't know what should cause that.
> Are you using Nvidia's drivers, by any chance?
>

Yes, actually, I am.

01:00.0 VGA compatible controller: nVidia Corporation NV44 [Quadro NVS 285]
(rev a1)
05:04.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200]
(rev a1)

(II) NVIDIA GLX Module  173.14.18  Mon Mar  2 12:43:12 PST 2009


> Another shot in the dark: You can try playing around with the "Force
> synchronization between X and GLX" option in the workarounds plugin.
> Perhaps it's just the sort-of-well-known redraw issue caused by race
> conditions in the X damage protocol.


Hm. Okay, I tried that and it didn't help.

If I do an explicit gtk_widget_hide() and then gtk_widget_show() after I do
the XSendEvent in the sample program (as attached), then compiz correctly
draws the window, but that's not desirable since it causes the window to
(obviously) disappear/reappear.


> >         2) When a window has fullscreened and used
> >         _NET_WM_FULLSCREEN_MONITORS, if
> >            any tooltips are used in that window (as this simple
> >         application does),
> >            Compiz will cause the screen to flash repeatedly until the
> >         user stops
> >            hovering over the originating widget and the tooltip goes
> >         away. This can
> >            be demonstrated in this simple application by hovering over
> >         the button in
> >            the window. As an interesting aside, when Compiz causes the
> >         screen to
> >            flash, it will refresh the monitors that were previously
> >         stale from #1
> >            above.
>
>
> You want to disable "Unredirect fullscreen windows" (in ccsm it's under
> General options). Ubuntu enables it by default (both settings have
> problems: enabling it causes the problem you're seeing, disabling it
> causes speed loss in fullscreen OpenGL apps, e.g. games).
>

OOH! *ding ding ding* AWESOME, thanks Danny! Okay, so disabling that fixed
not only the tooltip over a fullscreen problem, but it also fixed the first
problem I was describing! If I disable "Unredirect fullscreen windows",
switching topologies with _NET_WM_FULLSCREEN_MONITORS looks like it works
perfectly with Compiz 0.8.2.

Is there anything an application can do to detect whether this setting is in
effect and warn its users about it? This is going to cause a large amount of
community forum posts/bug reports for VMware Workstation/Player, I think. If
there's something we can do to be proactive about it, I'd like to do that,
but it feels like it may just need to be documented for our Compiz users?

Thanks again for your help Danny! You rock! =:)

-- 
-[ Jason 'vanRijn' Kasper    //  http://movingparts.net ]-
-[ KDE PIM Developer         //  http://www.kde.org  ]-
-[ bash fun -> :(){ :|:&};:  //  Numbers 6:22-26 ]-
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freedesktop.org/archives/compiz/attachments/20090526/7d55dc4b/attachment.htm 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test_NET_WM_FULLSCREEN_MONITORS-button-clicking.c
Type: text/x-c++src
Size: 3871 bytes
Desc: not available
Url : http://lists.freedesktop.org/archives/compiz/attachments/20090526/7d55dc4b/attachment.cc 


More information about the compiz mailing list