当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 1 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : [讨论]"compiz --replace"失败的解决
帖子发表于 : 2007-11-02 17:40 

注册: 2007-09-12 10:30
帖子: 240
送出感谢: 0 次
接收感谢: 0 次
自从升级到7.10正式版后,桌面效果就不支持了,"compiz --replace"的结果如下:
代码:
Checking for Xgl: not present.
Detected PCI ID for VGA: 01:00.0 0300: 1002:4c59 (prog-if 00 [VGA])
Checking for texture_from_pixmap: not present.
Trying again with indirect rendering:
Checking for texture_from_pixmap: present.
Checking for non power of two support: present.
Checking for Composite extension: present.
Comparing resolution (1024x768) to maximum 3D texture size (512): Failed.
aborting and using fallback: /usr/bin/metacity


失败的原因是检测textture size失败……
在7.10以前都是好好的,怎么现在就不行了呢?让我们来看看check textture size哪出问题了。
代码:
 sudo gedit /usr/bin/compiz


找到check_texture_size函数
代码:
check_texture_size()
{
   TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')     /**获得最大的textture大小**/
   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.*//')    /**竖屏分辨率(正常旋转90度)**/
   verbose "Comparing resolution ($RESOLUTION) to maximum 3D texture size ($TEXTURE_LIMIT): ";
   if [ $VRES -gt $TEXTURE_LIMIT ] || [ $HRES -gt $TEXTURE_LIMIT ]; then     /**纵横比较textture**/
      verbose "Failed.\n"    /**如果分辨率比textture大,就失败**/
      return 1;
   fi
   verbose "Passed.\n"    /**如果分辨率比textture小,恭喜!**/
   return 0
}

$RESOLUTION就是当前的分辨率,$TEXTURE_LIMIT就是texture的大小。textture size是什么?textture size就OpenGL能够渲染纹理的尺寸。我的显卡得到的GL_MAX_TEXTURE_SIZE值是512,在当前1024×768的分辨率下当然不能渲染整个屏幕了,所以就失败了,除非我把分辨率设置到512×384以下……
好了,问题找到了,解决问题的办法就有两个:1、把GL_MAX_TEXTURE_SIZE变大;2、修改check_texture_size函数。
第一个办法怎么变,我就不知道了;第二个办法,只要将判断的结果黑白颠倒就行了,也就是将返回值”reture 1“改成”reture 0“,或者在“TEXTURE_LIMIT=$(glxinfo -l | grep GL_MAX_TEXTURE_SIZE | sed 's/.*=[^0-9]//g')”中,将“sed 's/.*=[^0-9]//g'”改成“sed 's/.*=[^0-9]/1/g'”,至于后果,应该就是计算机好累哦!


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 1 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译