2007年11月3日

ati,gutsy 和 compiz fusion

之前的文章说过,升级到 gutsy 之后原本用的好好的 compiz 突然无法使用了,当时也没有找到解决的办法。但是这次是好消息,compiz fusion 重返我的 16M ATI Radeon M6 LY。

最早是看到了这篇 wiki,因为 R40 用的也是 M6 LY,而且那篇文中提到的 tweak 方法使用的居然是比 radeon 更古老一些的 ati 驱动,心下有些不解,于是不妨试试。结果令人振奋,使用这样的设置之后重启就可以直接打开 compiz fusion。

Section "Device"
  Identifier "ATI Technologies, Inc. Radeon Mobility 9000 (M6 LY)"
  Driver "ati"
  BusID "PCI:1:0:0"
  Option "AGPMode" "4"
  Option "AGPSize" "64" # default: 8
  Option "RingSize" "8"
  Option "BufferSize" "2"
  Option "EnablePageFlip" "True"
  Option "EnableDepthMoves" "True"
  Option "RenderAccel" "true"
EndSection

但是随后检查 /var/log/Xorg.0.log 的时候发现,系统貌似使用的仍旧是 radeon 驱动,用 lsmod 也确认了这一点。于是怀疑原来的 radeon 也可以开启 compiz。这是我现在使用的 xorg.conf,可以正常开启 3d 桌面环境。

Section "Device"
  Identifier "ATI Technologies, Inc. Radeon Mobility 9000 (M6 LY)"
  Driver "radeon"
  BusID "PCI:1:0:0"
  Option "AGPMode" "4"
  Option "AGPSize" "16" # default: 8
  Option "DynamicClocks" "true"
  Option "XAANoOffscreenPixmaps" "true"
  Option "EnablePageFlip" "true"
  Option "EnableDepthMoves" "True"
  Option "RenderAccel" "true"
EndSection

随后又发现一个问题:开启 compiz 的时候,当窗口最大化之后标题栏消失。后来经过试验,发现只要窗口宽度超过某个值(比屏幕宽度小),标题栏就无法渲染,变成白框。

搜了一下,ubuntu 官方类似的 bug 已经重复报告很多遍了:#89741#91850#103300等等。

据信造成上述问题的原因是显存不足,目前已知的解决办法是创建 /etc/drirc 文件,并在该文件中写这么一行(虽然我弄不清楚这种解决方法是怎么得出来的):

<option name="allow_large_textures" value="2" />

现在一切似乎都恢复正常了,终于体会上了久违了的 compiz fusion,很喜欢。美中不足的是,现在 glxinfo 的时候 direct rendering 不再是 YES 了。不过不影响使用,gutsy 下的 compiz fusion 比原来 feisty 下的 compiz 还要更快一些。

name of display: :0.0
display: :0 screen: 0
direct rendering: No (LIBGL_ALWAYS_INDIRECT set)
server glx vendor string: SGI
server glx version string: 1.2
发表评论