_NET_WM_FULLSCREEN_MONITORS not handled correctly

Bug #1353675 reported by Michael Thayer on 2014-08-06
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Michael Thayer
compiz (Ubuntu)
Michael Thayer

Bug Description

PrivateWindow::setFullscreenMonitors() contains the following:

        CompRect fsRect (screen->outputDevs ()[monitors->left].x1 (),
                         screen->outputDevs ()[monitors->top].y1 (),
                         screen->outputDevs ()[monitors->right].x2 (),
                         screen->outputDevs ()[monitors->bottom].y2 ());

However, the prototype is:

CompRect::CompRect (int x, int y, int width, int height)

This causes Compiz to miscalculate the dimensions of a full-screen window when the EWMH protocol _NET_WM_FULLSCREEN_MONITORS is used.

ProblemType: Bug
DistroRelease: Ubuntu 14.04
Package: compiz-core 1:
Uname: Linux 3.15.8-031508-generic x86_64

ApportVersion: 2.14.1-0ubuntu3.3
Architecture: amd64
CompizPlugins: No value set for `/apps/compiz-1/general/screen0/options/active_plugins'
CompositorRunning: compiz
CompositorUnredirectDriverBlacklist: '(nouveau|Intel).*Mesa 8.0'
CompositorUnredirectFSW: true
CurrentDesktop: Unity
Date: Wed Aug 6 22:18:39 2014
DistUpgraded: Fresh install
DistroCodename: trusty
DistroVariant: ubuntu
 Intel Corporation Haswell-ULT Integrated Graphics Controller [8086:0a16] (rev 0b) (prog-if 00 [VGA controller])
   Subsystem: Dell Device [1028:05cb]
InstallationDate: Installed on 2014-08-01 (5 days ago)
InstallationMedia: Ubuntu 14.04 LTS "Trusty Tahr" - Release amd64 (20140417)
MachineType: Dell Inc. Latitude E7440
ProcKernelCmdLine: BOOT_IMAGE=/vmlinuz-3.15.8-031508-generic root=/dev/mapper/ubuntu--vg-root ro quiet splash vt.handoff=7 drm.debug=0xe
SourcePackage: compiz
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 06/26/2014
dmi.bios.vendor: Dell Inc.
dmi.bios.version: A10
dmi.board.name: 0RYCC9
dmi.board.vendor: Dell Inc.
dmi.board.version: A00
dmi.chassis.type: 9
dmi.chassis.vendor: Dell Inc.
dmi.modalias: dmi:bvnDellInc.:bvrA10:bd06/26/2014:svnDellInc.:pnLatitudeE7440:pvr01:rvnDellInc.:rn0RYCC9:rvrA00:cvnDellInc.:ct9:cvr:
dmi.product.name: Latitude E7440
dmi.product.version: 01
dmi.sys.vendor: Dell Inc.
version.compiz: compiz 1:
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.52-1
version.libgl1-mesa-dri: libgl1-mesa-dri 10.1.3-0ubuntu0.1
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 10.1.3-0ubuntu0.1
version.xserver-xorg-core: xserver-xorg-core 2:1.15.1-0ubuntu2
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.8.2-1ubuntu2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:7.3.0-1ubuntu3.1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.910-0ubuntu1
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.10-1ubuntu2
xserver.bootTime: Wed Aug 6 15:17:04 2014
xserver.configfile: default

xserver.logfile: /var/log/Xorg.0.log
 product id 4413
 vendor AUO
xserver.version: 2:1.15.1-0ubuntu2

Michael Thayer (michael-thayer) wrote :
Michael Thayer (michael-thayer) wrote :

We are re-working multi-monitor full-screen support in VirtualBox, and the new code, which should be part of the next fails in Compiz because of this bug. Specifically the top left-hand corners of guest screens is offset from that of the host screen by an amount related to the position of the host screen in the virtual desktop area. I would be happy to provide a pre-release VirtualBox build you could use for testing, or alternatively to test any fix you produce.

Changed in compiz (Ubuntu):
status: New → In Progress
importance: Undecided → Medium
assignee: nobody → Michael Thayer (michael-thayer)
Changed in compiz:
status: New → In Progress
importance: Undecided → Medium
milestone: none →
assignee: nobody → Michael Thayer (michael-thayer)
Michael Thayer (michael-thayer) wrote :

Any estimate as to how long this will take to get into Ubuntu, and which versions it will get into? We have to know whether to provide a work-around in our software.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:0.9.12+14.10.20140918-0ubuntu1

compiz (1:0.9.12+14.10.20140918-0ubuntu1) utopic; urgency=low

  [ Michael Thayer ]
  * Fix for LP #1353675: _NET_WM_FULLSCREEN_MONITORS not handled
    correctly. An (x, y, w, h) (LP: #1353675)

  [ Alberts Muktupāvels ]
  * Port gtk-window-decorator to GTK+ 3.
  * Re-enable metacity theme support (LP: #1356981)
  * Remove/replace deprecated functions. (LP: #1356981)
 -- Ubuntu daily release <email address hidden> Thu, 18 Sep 2014 11:01:08 +0000

Changed in compiz (Ubuntu):
status: In Progress → Fix Released
Wiktor: Nizio (zap-4) wrote :

Although the original bug has been fixed, the screen blinks terribly if the window is not active. The path is:

Open Windows 7 guest system in VirtualBox, full screen, on the right monitor.
It displays correctly in full screen mode.
Click anywhere on the LEFT screen, e.g. in Firefox.
Each time you move your mouse, or press a keyboard button, areas of the screen in the right monitor flicker.

Wiktor: Nizio (zap-4) wrote :

Even after you close the VM, blinking artifacts remain on the right screen. Turning off 3d acceleration in the VM does not affect the issue.

Michael Thayer (michael-thayer) wrote :

You might want to try a recent test build of VirtualBox<1>. We are reworking full-screen mode to use the official freedesktop/EWMH APIs and having a hard time writing code which all the different window managers like. The specifications leave quite a bit open to interpretation...

<1> https://www.virtualbox.org/wiki/Testbuilds

By the way, I am not (of course!) saying that it is a bug in VirtualBox. Realistically there are probably equal chances of it being a problem with VirtualBox, a problem with Unity or a misunderstanding between the two.

Wiktor: Nizio (zap-4) wrote :

I have tried VirtualBox-4.3.17-96212-Linux_amd64.run (both with Oracle and extension pack and Guest Additions installed) with no luck. The screen is still flickering. It is not 100% reproducible, but happens very often.

I have seen a corresponding ticket in Oracle (#13410), but for conveniecne I am reporting it here.

Stephen M. Webb (bregma) on 2014-09-26
Changed in compiz:
status: In Progress → Fix Committed
Wiktor: Nizio (zap-4) wrote :

I had restarted the host machine again, and tested the test version of VirtualBox 4.3.17 for the following two hours on a number of different VMs, and havn't experienced the nasty flicker. (Ubuntu 14.10). It's been apparently fixed. For reference, I use Intel HD 4000 as my graphic card.

Btw, VirtualboX 4.3.17 doesn't integrate its menu into Ubuntu Unity.

The mini toolbar in VirtualBox 4.3.17 (full screen) looks beautiful. It used to have an ugly shadow right after I installed 4.3.16 in Ubuntu 14.04.

Thank you. I wonder whether your flickering issue will stay fixed, as I can't think why a reboot would make a difference for VirtualBox (perhaps for Unity...) I suspect that the menu bar issue is because this is a generic Linux and not a specific Ubuntu build, but I suggest that that discussion move to our various communication channels<1> if you wish to continue it so as not to disturb the Unity developers.

<1> https://www.virtualbox.org/wiki/Community

Stephen M. Webb (bregma) on 2014-11-06
Changed in compiz:
status: Fix Committed → Fix Released
Stephen M. Webb (bregma) on 2015-01-26
Changed in compiz (Ubuntu Trusty):
status: New → In Progress
Timo Aaltonen (tjaalton) wrote :

Michael: could you fill the SRU template as pointed out here https://wiki.ubuntu.com/StableReleaseUpdates#SRU_Bug_Template


 * VirtualBox and other multi-monitor full-screen applications using the freedesktop.org standard are not displayed in a usable way when running multi-monitor full-screen in Unity without this fix.

 * The bug makes the above set-up unusable. Low regression potential as this is an obvious fix for something which works correctly in other major window managers which were tested, so applications are unlikely to depend on the bug.

 * The proposed fix corrects an obviously incorrect use of an internal programming interface.

[Test Case]

 * detailed instructions how to reproduce the bug

 * these should allow someone who is not familiar with the affected
   package to reproduce the bug and verify that the updated package fixes
   the problem.

[Regression Potential]

 * I do not see a likelihood of regressions, as the fix makes Unity correctly implement a standard which other window managers already correctly implement. Please feel free to discuss.

 * I believe that any theoretical regressions would involve applications running in full-screen mode.

[Other Info]

 * I think this process is very heavyweight for a simple bug fix which addresses what should be a very obvious programming mistake to any of your developers who cares to review it. This does not increase my interest in contributing to Ubuntu in future.

Hello Michael, or anyone else affected,

Accepted compiz into trusty-proposed. The package will build now and be available at http://launchpad.net/ubuntu/+source/compiz/1: in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in compiz (Ubuntu Trusty):
status: In Progress → Fix Committed
tags: added: verification-needed

I no longer run a Trusty system myself - I run Utopic, which already contains the fix (which I can and have confirmed). I have however added a note onto the VirtualBox bug tickets, in which this was reported as a bug in VirtualBox, asking the users to test the fixed Ubuntu package.

Got a colleague to test 1: and confirm that the fix works. Once again, I am unpleasantly surprised at how much work you offload onto someone who points out an obvious typing mistake in a line of source code.

tags: added: verification-done
removed: verification-needed
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package compiz - 1:

compiz (1: trusty; urgency=medium

  [ James Jones ]
  * Added support for GL_EXT_x11_sync_object OpenGL extension for Nvidia
    based GPUs to avoid screen refresh issues. (LP: #269904)

  [ Kyle Brenneman ]
  * Added support for GL_EXT_x11_sync_object OpenGL extension for Nvidia
    based GPUs to avoid screen refresh issues. (LP: #269904)

  [ Viktor A. Danilov ]
  * Added support for GL_EXT_x11_sync_object OpenGL extension for Nvidia
    based GPUs to avoid screen refresh issues. (LP: #269904)

  [ Chris Townsend ]
  * Added support for GL_EXT_x11_sync_object OpenGL extension for Nvidia
    based GPUs to avoid screen refresh issues. (LP: #269904)

  [ Stephen M. Webb ]
  * Added support for GL_EXT_x11_sync_object OpenGL extension for Nvidia
    based GPUs to avoid screen refresh issues. (LP: #269904)

  [ Michael Thayer ]
  * use correct screen extents for multi-monitor positioning of
    fullscreen windows (lp: #1353675) (LP: #1353675)
 -- Ubuntu daily release <email address hidden> Thu, 22 Jan 2015 14:51:56 +0000

Changed in compiz (Ubuntu Trusty):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for compiz has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers