← Back to team overview

compiz team mailing list archive

[Bug 428769] Re: compiz starts with a blank screen on a 2048x1152 monitor due to hw limit with textures > 2048

 

I took another look at this as part of handling bug #556631.

In Karmic, /usr/bin/compiz was a shell script, which included a check
for max texture size:

check_texture_size()
{
        # Check how many screens we've got and iterate over them                                                                  
        N=$(xdpyinfo | grep -i "number of screens" | sed 's/.*[^0-9]//g')
        for i in $(seq 1 $N); do
            verbose "Checking screen $i"
            TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed -n "$i s/^.*=[^0-9]//g p")
            RESOLUTION=$(xdpyinfo | grep -i dimensions: | sed -n -e "$i s/^ *dimensions: *\([0-9]*x[0-9]*\) pixels.*/\1/ p")
            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
                verbose "Failed.\n"
        	return 1;
            fi
            verbose "Passed.\n"
        done
        return 0
}


It appears that as of 1:0.8.4-0ubuntu4 in lucid, the checks that the compiz wrapper had been doing have moved to the compiz binary itself:

bryce@blumonc:~$ cat /etc/lsb-release ; file /usr/bin/compiz
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.04
DISTRIB_CODENAME=lucid
DISTRIB_DESCRIPTION="Ubuntu lucid (development branch)"
/usr/bin/compiz: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.15, stripped

compiz (1:0.8.4-0ubuntu4) lucid; urgency=low
...
  [ Travis Watkins ]
  * debian/patches/060_move_checks_to_compiz.patch:
    - add all relevant checks from compiz-manager to compiz itself
      Compiz already checks for almost everything it needs so there is no
      need to check twice.

So the texture size check appears to be occurring in this chunk of the
patch:

@@ -244,13 +246,21 @@
     CompFBConfig *config = &screen->glxPixmapFBConfigs[depth];
     int          attribs[7], i = 0;
 
+    if (width > screen->maxTextureSize || height > screen->maxTextureSize)
+    {
+	compLogMessage ("core", CompLogLevelWarn,
+			"Exceeded max texture size");
+
+	launchFallbackWM ();
+    }
+
     if (!config->fbConfig)
     {
 	compLogMessage ("core", CompLogLevelWarn,
 			"No GLXFBConfig for depth %d",
 			depth);
 
-	return FALSE;
+	launchFallbackWM ();
     }
 
     attribs[i++] = GLX_TEXTURE_FORMAT_EXT;

So that all looks like it should work...  You should get an error
message "Exceeded max texture size" in your compiz log

-- 
compiz starts with a blank screen on a 2048x1152 monitor due to hw limit with textures > 2048
https://bugs.launchpad.net/bugs/428769
You received this bug notification because you are a member of compiz
packagers, which is subscribed to compiz in ubuntu.