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

Reply via email to