Comment 9 for bug 445100

Revision history for this message
Alessandro Arrichiello (alezzandro) wrote :

OK seems that I can give you more informations on this bug.

If I disable compiz's effects using "Apperance" from Menu, I can make some test without having freeze using VGA:

NOTE: all the tests are not done in display cloning mode.

this is a normal output obtained from command "compiz --replace" without external monitor connected and/or enabled:

Checking for Xgl: not present.
xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log
Detected PCI ID for VGA:
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Checking screen 1Comparing resolution (1024x600) to maximum 3D texture size (2048): Passed.
Checking for Software Rasterizer: Not present.
Checking for nVidia: not present.
Checking for FBConfig: present.
running under gnome seesion, checking for gnomecompat
Checking for Xgl: not present.
Starting gtk-window-decorator

All gone ok, compiz works great without vga enabled.

This is the output of "compiz --replace" (disabling first Effects from Apperance's Menu) enabling VGA with "1280x1024" resolution:
Checking for Xgl: not present.
xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log
Detected PCI ID for VGA:
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Checking screen 1Comparing resolution (2304x1024) to maximum 3D texture size (2048): Failed.
aborting and using fallback: /usr/bin/metacity

As you can see there's a problem with resolution, the maximum 3D texture size appear to be: 2048 but I'm using 2304x1024 = 1024x600 (LVDS1) + 1280x1024 (VGA1)

Now it's ok no freeze because "compiz --replace" checks the maximum 3D texture size and reverts back to metacity.
That's another test, because I read from compiz output that the max 3D texture size is: 2048, before try to enable compiz effects I've manual set VGA1 resolution to "1024x768", this is the output of "compiz --replace":

Checking for Xgl: not present.
xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log
Detected PCI ID for VGA:
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Checking screen 1Comparing resolution (2048x768) to maximum 3D texture size (2048): Passed.
Checking for Software Rasterizer: Not present.
Checking for nVidia: not present.
Checking for FBConfig: present.
running under gnome seesion, checking for gnomecompat
Checking for Xgl: not present.
Starting gtk-window-decorator

As you can see all appear to be good but it's not true, screen freezes and I've to disconnect VGA and manually restart gdm.

This is my last test using "800x600" resolution for VGA1 before enabling Compiz's Effects:
Checking for Xgl: not present.
xset q doesn't reveal the location of the log file. Using fallback /var/log/Xorg.0.log
Detected PCI ID for VGA:
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Checking screen 1Comparing resolution (1024x600) to maximum 3D texture size (2048): Passed.
Checking for Software Rasterizer: Not present.
Checking for nVidia: not present.
Checking for FBConfig: present.
running under gnome seesion, checking for gnomecompat
Checking for Xgl: not present.
Starting gtk-window-decorator

As you can see no errors here.
With resolution "800x600" for VGA1 I can use compiz effects without problems, I can watching video with "xv" driver on mplayer and using transparency on gnome-terminal.

I don't know if this can be considered a bug or a limitation caused by my graphics driver and/or video card (intel gma950) but surely gnome-display-properties or xrand maybe have to check if compiz is running an limit down the maximum resolution allowed.

this is a shell script that I'm using right now to enable/disable VGA using "800x600" resolution:

#!/bin/bash
if [ -e ~/.vgaconnected ]
then
xrandr --output VGA1 --off --output LVDS1 --mode 1024x600 && rm ~/.vgaconnected
else
xrandr --output LVDS1 --mode 1024x600 --output VGA1 --mode 800x600 --rate 60 --right-of LVDS1 &> ~/.xrand.log && touch ~/.vgaconnected
fi

Hope that some one can fix/explain something more.

Thanks