LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1900|回复: 5

放弃 aiglx + radeon + beryl ,决定采用 xgl + fglrx + beryl

[复制链接]
发表于 2006-10-15 19:03:35 | 显示全部楼层 |阅读模式
我的 9550 ,aiglx 只能配合开源驱动 radeon ,而 xgl 只能用 fglrx ,但是这两种情况下,我都不能用 compiz (官方 portage 里的),还好 beryl + emerald 非常好用,好看。
所以我的 3D 桌面只能用
aiglx + r300/radeon + beryl
或者
xgl + fglrx + beryl

但 aiglx + r300/radeon + beryl 性能上有很大问题。
无论开不开 aiglx ,都不能 direct rendering ,但我以前确实用 r300 开过 direct rendering 的,不知道那里出错了。
但奇怪的就是 3D 桌面倒是能转起来,没有迟钝的感觉。
而其他的 opengl 程序没一个能跑,慢,还可能花屏,glxgears 不行,supertux 的 opengl 平面绘图也不行。

看过 hqgyq 在 http://www.linuxsir.cn/bbs/showthread.php?t=275337 里的 aiglx + r200/radeon + beryl ,他的 opengl 程序是 direct rendering 的,没有画在 cube 上,不知如何实现的。

现在我用 xgl + fglrx + beryl ,非常流畅,虽然 opengl 是 indirect rendering 画在 cube 上的,但几乎没有性能损失。
发表于 2006-10-15 19:38:42 | 显示全部楼层
呵呵,可能是装了fglrx的后遗症,我现在用的也是radeon驱动。
本来也不能开direct rendering,用命令LIBGL_DEBUG=verbose glxinfo
看下出错信息,原来是fglrx在/etc/profile里面放了些目录配置项目,在那个目录里找不到驱动,删了那些配置信息就可以了。
我用的是arch。

还有fglrx驱动和libdri包是冲突的,要先卸载了fglrx,再安装libdir包才行。
回复 支持 反对

使用道具 举报

发表于 2006-10-15 20:28:04 | 显示全部楼层
与楼主相反,我反而使用开源的R300+aiglx+beryl+emerald流畅。打不开direcet rendering请楼主试试看 链接一个驱动到xorg的模块目录
  1. ln -s /usr/lib/dri/r300_dri.so /usr/lib/xorg/modules/dri/r300_dri.so
复制代码
,也许可以解决问题。
因为我也遇到过用glxinfo查看,显示direct rendering为:NO这个问题,于是我查看了相关的log,发现提示在/usr/lib/xorg/modules/dri/路径中无法找到r300_dri.ko。ln或复制一个过去以后重新启动X就显示direct rendering为YES了。
回复 支持 反对

使用道具 举报

发表于 2006-10-16 08:01:38 | 显示全部楼层
cd /usr/lib/modules.
unlink dri
ln -s ../dri .
估计是这个drm很久没有更新的缘故,dri的link错了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-16 20:59:19 | 显示全部楼层
谢谢 sheep ,搞定 aiglx 了,可以 direct rendering 了
现在
aiglx direct rendering , glxgears 不在 cube 上, 1800fps ,其他 3D 程序有点花。
xgl indirect rendering , glxgears 在 cube 上, 2800fps ,其他 3D 程序也很好。

下面是我的修改的和新写的脚本,方便 radeon 显卡随时切换 xgl 和 aiglx 。
我用的是 xfce4 ,要把 ~/beryl-start 加到自启动项里(开始-》设置-》自启动程序)。
用别的 WM ,要稍微改一下 ~/xgl 和 ~/aiglx 脚本,也要把 ~/beryl-start 加到 WM 的自启动程序里。

启动 X 之前,用 ~/xgl 和 ~/aiglx 启动。

~/startxgl
  1. #!/bin/bash
  2. # xgl startup script by RiPz @ www.binary-pulse.co.uk
  3. # GNU Public Licence

  4. echo "###### STARTXGL SCRIPT ######"

  5. if [ "$1" = "" ]; then
  6.     echo "Usage: startxgl <display_number> <window_manager> <gfx> [-ng]"
  7.     echo "<gfx> is optional, values 'ati' or 'nvidia/other', default is nvidia/other"
  8.     echo "Window Managers currently supported: xfce, xfce-svn, gnome, kde."
  9. elif [ "$2" = "" ]; then
  10.     echo "Usage: startxgl <display number> <window manager> <gfx> [-ng]"
  11.     echo "<gfx> is optional, values 'ati' or 'nvidia/other', default is nvidia/other"
  12.     echo "Window Managers currently supported: xfce, xfce-svn, gnome, kde."
  13. else
  14.     echo "Starting X Server with XGL"
  15.     echo "   Using Display $1"
  16.     echo "   Using WM: $2"

  17.     if [ "$3" = "ati" ]; then
  18.             echo "   Using Card: ati"
  19.             Xgl :$1 -ac -accel xv:pbuffer -accel glx:pbuffer &
  20.     else
  21.         echo "   Using Card: nvidia/other"
  22.         Xgl :$1 -ac -accel xv:fbo -accel glx:pbuffer &
  23.     fi
  24.     sleep 2

  25.     echo "   Starting XIM"
  26.     export XIM=fcitx
  27.     export XIM_PROGRAM=fcitx
  28.     export XMODIFIERS="@im=fcitx"
  29.     export GTK_IM_MODULE=xim
  30.     export QT_IM_MODULE=xim
  31.     DISPLAY=:$1 fcitx &

  32. #    echo "   Starting Compiz"
  33. #    if [ "$4" = "-ng" ] || [ "$4" = "--no-gconf" ]; then
  34. #        DISPLAY=:$1 /usr/bin/compiz --replace decoration wobbly fade switcher resize place minimize cube rotate move zoom scale &
  35. #    else
  36. #        DISPLAY=:$1 /usr/bin/compiz --replace gconf &
  37. #    fi
  38. #    sleep 2

  39.     echo "   Starting Beryl"
  40.     DISPLAY=:$1 /usr/bin/beryl-xgl --replace dbus settings &
  41.     sleep 2
  42.     DISPLAY=:$1 /usr/bin/emerald --replace &
  43.     sleep 2
  44.     DISPLAY=:$1 /usr/bin/beryl-manager &

  45.     echo "   Starting Window Manager"

  46.     if [ "$2" = "gnome" ]; then
  47. #        DISPLAY=:$1 gnome-window-decorator &
  48.         DISPLAY=:$1 /usr/libexec/gnome-settings-daemon &
  49.         DISPLAY=:$1 nautilus -n --sync &
  50.         DISPLAY=:$1 gnome-panel
  51.     elif [ "$2" = "xfce" ]; then
  52.         DISPLAY=:$1 xfce-mcs-manager &
  53. #        DISPLAY=:$1 gnome-window-decorator &
  54.         DISPLAY=:$1 xftaskbar4 &
  55.         DISPLAY=:$1 xfdesktop &
  56.         DISPLAY=:$1 exec xfce4-panel
  57.     elif [ "$2" = "xfce-svn" ]; then
  58. #        DISPLAY=:$1 exec xfce4-session
  59.         DISPLAY=:$1 xfce-mcs-manager &
  60. #        DISPLAY=:$1 gnome-window-decorator &
  61.         DISPLAY=:$1 xfdesktop &
  62.         DISPLAY=:$1 orage &
  63.         DISPLAY=:$1 exec xfce4-panel
  64.     elif [ "$2" = "kde" ]; then
  65. #        DISPLAY=:$1 gnome-window-decorator &
  66.         DISPLAY=:$1 startkde &
  67.     fi

  68.     echo "   DONE!"
  69. fi

复制代码



~/beryl-start
  1. #!/bin/bash

  2. ps -A | grep " beryl " && exit
  3. ps -A | grep " beryl-xgl " && exit

  4. echo "Killing exiting WM"

  5. beryl-manager > ~/.beryl-manager.log 2>&1 &
  6. disown %1

  7. sleep 2

  8. echo "Starting emerald"
  9. if which emerald > /dev/null
  10. then
  11.     emerald --replace > ~/.emerald.log 2>&1 &
  12.     disown %1
  13. else
  14.     yawd --replace > ~/.yawd.log 2>&1 &
  15.     disown %1
  16. fi

  17. echo "Starting beryl"
  18. beryl > ~/.beryl.log 2>&1 &
  19. disown %1

  20. sleep 2
  21. beryl-manager >> ~/.beryl-manager.log 2>&1 &
  22. disown %1

复制代码


~/aiglx
  1. #!/bin/sh

  2. eselect opengl set xorg-x11

  3. rmmod fglrx
  4. modprobe drm
  5. modprobe radeon

  6. cp /etc/X11/xorg.conf.radeon /etc/X11/xorg.conf

  7. export LANG=zh_CN
  8. export LC_ALL=zh_CN
  9. startxfce4

复制代码


~/xgl
  1. #!/bin/sh
  2. eselect opengl set ati

  3. rmmod radeon
  4. rmmod drm
  5. modprobe fglrx

  6. cp /etc/X11/xorg.conf.fglrx /etc/X11/xorg.conf

  7. export LANG=zh_CN
  8. export LC_ALL=zh_CN
  9. ~/startxgl 1 xfce-svn ati

复制代码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-10-17 21:01:14 | 显示全部楼层
aiglx + radeon + beryl 若出现花屏,可以试试
xorg.conf

Option "EnablePageFlip" "off"
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表