Hi Kristian
Attached are some patches that are in openSUSE's compiz-manager,
please check if they can be upstreamed.
Below is the discussion about "GLXFBConfig for depth" test:
Ciao
-J
------- Comment #8 From Jigish Gohil 2009-03-01 01:43:23 MST
(-) [reply] -------
Is there a shell way to find if GLXFBConfig for depth 32 is available? If not
there is nothing compiz-manager can do.
------- Comment #9 From Stefan Dirsch novellonly 2009-03-01 01:52:38
MST (-) [reply] -------
Matthias?
------- Comment #10 From Matthias Hopf novellonly 2009-03-03 10:35:58
MST (-) [reply] -------
I assume that you need depth 24, not necessarily 32 (or does compiz explicitly
need an alpha buffer? Somehow I doubt that).
glxinfo | grep -e '^0x.. .. .c .. .. .. r y . 8 8 8 . .'
should return all 8/8/8 bit double buffered visuals with depth. Which AFAICS is
what compiz needs.
OTOH a 16 bit display never exports an 8/8/8 bit visual. so
xdpyinfo | grep -e 'depth: *24 planes'
should return no results on a 16bit and on 8bit displays.
Index: compiz-manager
===================================================================
--- compiz-manager.orig
+++ compiz-manager
@@ -259,13 +259,15 @@ check_texture_size()
{
TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')
RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed 's/[^0-9]*pixels.*(.*).*//' | sed 's/[^0-9x]*//')
- VRES=$(echo $RESOLUTION | sed 's/.*x//')
- HRES=$(echo $RESOLUTION | sed 's/x.*//')
- verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
- if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
+ for res in $RESOLUTION; do
+ VRES=$(echo $res | sed 's/.*x//')
+ HRES=$(echo $res | sed 's/x.*//')
+ verbose "Comparing resolution ($res) to maximum 3D texture size ($TEXTURE_LIMIT): ";
+ if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then
verbose "Failed.\n"
return 1;
- fi
+ fi
+ done
verbose "Passed.\n"
return 0
}
diff -ur a/compiz-manager b/compiz-manager
--- a/compiz-manager 2008-03-13 18:46:12.000000000 +0530
+++ b/compiz-manager 2008-10-04 21:51:17.000000000 +0530
@@ -43,6 +43,7 @@
GLXINFO="/usr/bin/glxinfo"
KWIN=`which kwin`
METACITY="/usr/bin/metacity"
+XFWM="/usr/bin/xfwm"
COMPIZ_NAME="compiz" # Final name for compiz (compiz.real)
FUSION_ICON=`which fusion-icon`
@@ -58,11 +59,9 @@
# For detecting what driver is in use, the + is for one or more /'s
XORG_DRIVER_PATH="/usr/$LIB/xorg/modules/drivers/+"
-
-if [ $DESKTOP_SESSION == "kde" ]; then
- FALLBACKWM="${KWIN}"
-else
- FALLBACKWM="${METACITY}"
+if [ x"$KDE_FULL_SESSION" = x"true" ]; then FALLBACKWM="${KWIN}";
+ elif [ x"$GNOME_DESKTOP_SESSION_ID" != x"" ]; then FALLBACKWM="${METACITY}";
+ elif xprop -root _DT_SAVE_MODE | grep ' = \"xfce4\"$' >/dev/null 2>&1; then FALLBACKWM="${XFWM}";
fi
FALLBACKWM_OPTIONS="--replace $@"
Index: compiz-manager
===================================================================
--- compiz-manager.orig
+++ compiz-manager
@@ -104,23 +104,23 @@ verbose()
# abort script and run fallback windowmanager
abort_with_fallback_wm()
{
- if [ "x$SKIP_CHECKS" = "xyes" ]; then
- verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
- return 0;
- fi
-
- if [ "x$CM_DRY" = "xyes" ]; then
- verbose "Dry run failed: Problems detected with 3D support.'n"
- exit 1;
- fi
+ if [ "x$CM_DRY" = "xyes" ]; then
+ verbose "Dry run failed: Problems detected with 3D support.'n"
+ exit 1
+ else
+ if [ "x$SKIP_CHECKS" = "xyes" ]; then
+ verbose "SKIP_CHECKS is yes, so continuing despite problems.\n"
+ return 0
+ fi
- verbose "aborting and using fallback: $FALLBACKWM \n"
+ verbose "aborting and using fallback: $FALLBACKWM \n"
- if [ -x $FALLBACKWM ]; then
- exec $FALLBACKWM $FALLBACKWM_OPTIONS
- else
- printf "no $FALLBACKWM found, exiting\n"
- exit 1
+ if [ -x $FALLBACKWM ]; then
+ exec $FALLBACKWM $FALLBACKWM_OPTIONS
+ else
+ printf "no $FALLBACKWM found, exiting\n"
+ exit 1
+ fi
fi
}
_______________________________________________
Dev mailing list
[email protected]
http://lists.compiz-fusion.org/mailman/listinfo/dev