View Full Version : gtk-window-decorator: segfault or no borders
JMG
February 13th, 2007, 08:08 AM
I'm running Compiz using AIGLX. Everything runs perfectly and I can get most effects to work nicely. Except I don't have any window borders, even with the decoration plugin loaded :(
If I set 'use_metacity_theme' to true, then gwd segfaults. If I set it to false gwd (as well as kwd) won't crash, but won't display any border.
Here is the ouput:
(gtk-window-decorator:9057): Gdk-WARNING **: Using Cairo rendering requires the drawable argument to
have a specified colormap. All windows have a colormap,
however, pixmaps only have colormap by default if they
were created with a non-NULL window argument. Otherwise
a colormap must be set on them with gdk_drawable_set_colormap
(gtk-window-decorator:9057): Gdk-CRITICAL **: gdk_cairo_create: assertion `GDK_IS_DRAWABLE (drawable)' failed
And here is the gdb output:
(gtk-window-decorator:9059): Gdk-CRITICAL **: gdk_cairo_create: assertion `GDK_IS_DRAWABLE (drawable)' failed
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1085226672 (LWP 9059)]
0x407125b8 in cairo_set_source_rgba () from /usr/lib/libcairo.so.2
Any idea?
* Archlinux (up to date) but with an old custom kernel 2.6.16;
* nVidia FX 5200 + driver 9631;
* Compiz 0.3.6;
RAOF
February 14th, 2007, 01:10 AM
Do you have the add-argb-glx-visuals option enabled (sudo nvidia-xconfig --add-argb-glx-visuals)?
JMG
February 20th, 2007, 02:43 PM
I wanted to reply sooner, but the request timed out each time I wanted to :/ I'll try to make it short:
I added and tried most of the options I could find on this site and elsewhere for enabling AIGLX + Compiz with an nVidia card. Please note I don't need any option in xorg.conf for compiz to work properly : every effect I tried is working as expected. But I still can't get any window decoration, whatever the configuration options I try. gtk-window-decorator just crashes when use_metacity_theme is checked, and just does nothing if unchecked. The same cairo error as above is displayed.
I tried to move and duplicate the options in the Device and Screen sections, but it changed nothing.
Here is the relevant part in my xorg.conf:
Section "Device"
Identifier "nVidia-LCD"
Driver "nvidia"
BusID "PCI:1:0:0"
Screen 0
Option "NoLogo"
Option "RenderAccel" "true"
Option "AllowGLXWithComposite" "true"
EndSection
Section "Screen"
Identifier "Screen0"
Device "nVidia-LCD"
Monitor "AcerAL2216W"
DefaultDepth 24
Option "AddARGBGLXVisuals" "true"
Option "DisableGLXRootClipping" "true"
# Option "TripleBuffer" "true"
# Option "DamageEvents" "true"
SubSection "Display"
Depth 24
Modes "1680x1050" "1400x1050"
EndSubSection
EndSection
And here is an extract from X.org's log :
(II) Setting vga for screen 0.
(**) NVIDIA(0): Depth 24, (--) framebuffer bpp 32
(==) NVIDIA(0): RGB weight 888
(==) NVIDIA(0): Default visual is TrueColor
(==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
(**) NVIDIA(0): Option "NoLogo"
(**) NVIDIA(0): Option "RenderAccel" "true"
(**) NVIDIA(0): Option "AllowGLXWithComposite" "true"
(**) NVIDIA(0): Option "AddARGBGLXVisuals" "true"
(**) NVIDIA(0): Option "DisableGLXRootClipping" "true"
(**) NVIDIA(0): Enabling RENDER acceleration
(II) NVIDIA(0): Support for GLX with the Damage and Composite X extensions is
(II) NVIDIA(0): enabled.
Note : I updated my box with : kernel 2.6.20, nvidia 1.0.9746 and xorg 7.1.1.
I also have a dualhead configuration (separated VGA and TV output) which I disabled (or not) in each test with the same result : compiz works flawlessly (yay), but with no window borders (sob) :(
Any idea ?
JMG
February 20th, 2007, 03:42 PM
Compiz complains about 'No GLXFBConfig for depth 32' too. Does it find a depth 32 instead of the 24 I declared in my conf?
RYX
February 20th, 2007, 04:35 PM
Hi, JMG.
I know these errors very well from playing with transparency in gtk-engines - it looks like it is a problem with the ARGB-windows and I guess the reason is somewhere in your xorg.conf.
I have the same card and driver and I don't enable "AllowGLXWithComposite"-option and have "RenderAccel"-option in the "Screen"-section. Also I don't have any Composite-extension or aiglx enabled in my xorg.conf (in case you have). My "Device"-section only contains Identifier/Driver ...
What is the exact order/list of your plugins? Can you post the output of:gconftool-2 --get /apps/compiz/general/allscreens/options/active_plugins
Decoration-plugin should be loaded right after gconf,dbus,svg,png (the first four) ...
Or do you maybe have mesa-libs installed? They are not needed with nvidia-drivers and could cause problems.
:)
JMG
February 20th, 2007, 05:21 PM
Thanks for your patience :) I corrected the plugin loading order to:
[gconf,dbus,svg,png,decoration,wobbly,minimize,fade ,cube,rotate,move,resize,switcher,zoom,scale]
I tried to comment out the following part in xorg.conf, but then compiz fails with the error: 'no composite extension'. So i reenabled it.
Section "Extensions"
Option "Composite" "Enable"
EndSection
Now my xorg.conf looks like this:
Section "Device"
Identifier "nVidia-LCD"
Driver "nvidia"
# BusID "PCI:1:0:0"
# Screen 0
# Option "NoLogo"
# Option "RenderAccel" "true"
# Option "AllowGLXWithComposite" "true"
EndSection
Section "Screen"
Identifier "Screen0"
Device "nVidia-LCD"
Monitor "AcerAL2216W"
DefaultDepth 24
Option "RenderAccel" "true"
Option "AddARGBGLXVisuals" "true"
# Option "DisableGLXRootClipping" "true"
# Option "TripleBuffer" "true"
# Option "DamageEvents" "true"
SubSection "Display"
Depth 24
Modes "1680x1050"
EndSubSection
EndSection
I do not enable AIGLX nor anything like that. There is no DRI section and I don't even bother to load the glcore and dri modules.
Didn't get rid of the bug, thought :(
I do have the mesa package (http://archlinux.org/packages/files/10230/) installed, since it is a requirement for some librairies (eg: QT) on archlinux -- but it only provides libglu and libglw. I don't have the libgl-dri package (http://archlinux.org/packages/files/10201/) installed, which contains libglcore, libglx and libgl. So I don't think there's a conflict here, is there?
JMG
February 23rd, 2007, 08:08 PM
Oups... nothing was wrong with my system or configuration.
I just discovered I had XLIB_SKIP_ARGB_VISUALS set from the days I switched to X.org (Flash used to crash Firefox if I didn't set this). I did unset it, and... I now have borders :)
So : if gtk-window-borders crashes on start on borders just refuses to be appear, just check for this shell variable and remove it.
vBulletin® v3.7.3, Copyright ©2000-2008, Jelsoft Enterprises Ltd.