|
最近回归arch,在一台老本Thinkpad X31上安装arch 最新版本。
一切都很顺利,安装Xorg也一样,而且现在都不需要xorg.conf配置了,很方便.
X31 的显卡
VGA compatible controller: ATI Technologies Inc Radeon Mobility M6 LY
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
所以安装了xf86-video-ati 这个driver.
然后安装了xfce,不需要任何配置 startxce4 一切顺利。
但是,用着用着会发现,屏幕上会渲染不正常,如图, 如果开启了XFCE的阴影,透明等效果,渲染的垃圾就更多了,惨不忍睹。
这时glxgears 大概稳定在 900 frames。
既然显示不正常,就打算手动建立xorg.conf,看是不是配置的问题。
尝试了很多,什么AGPMode AGPFastWrite EnablePageFlip ColorTiling RenderAccel AccelMethod,
结果发现这些参数的配置丝毫不影响它继续显示垃圾,对glxgears速度影响也不大。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
没有办法, 怎么配置都显示不正常,于是打算使用最基本的vesa驱动,试试看。
pacman -R xf86-video-ati 删除了ATI 开源驱动。
然后,直接启动xfce,查看Xorg.o.log已经使用的是vesa驱动了(xorg自动识别的,发现找不到ati驱动,就使用vesa驱动了)
然后发现显示没有垃圾了,渲染正常,更让我惊讶的是可以打开XFCE的阴影,透明效果,而且一点问题都没有。
再看glxinfo | grep direct
发现 direct rendering: Yes
再试glxgears, 但这时只有500多frames。
记得以前vesa的驱动只有基本的2D显示的。
满心欢喜,以为只是性能差点,可以用了, 结果发现退出X,回到终端后,发现屏幕完全乱了,终端下又显示不正常
(没有截图,看起来就像是分辨率变得很低,屏幕错位)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
然后,查wiki,发现一个KMS的东东,全称叫kernel mode-setting,这东西具体是干什么用的先不管它。
新装的ARCH系统会发现下面的现象:
1, 启动时,分辨率很低,但在load mode后,系统会自己把分辨率调整到最佳,而以前,都是靠在menu.lst中
加 vga=791这样的参数来设置控制台的分辨率的,现在不设也可以。
2, lsmod | grep radon 会发现系统加载了一个radon模块
根据WIKI里ATI 条目的说法, 这就是KMS搞的事情,ARCH KMS默认是开启的,而WIKI又说:
For now, only Radeons up to R5xx (X1xxx) support KMS.
那自然X31这个机器是不能支持KMS了(ATI M6还是R1XX)
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
于是,关掉KMS,这里有两种情况,我实验带来了不同的效果:
1,在rc.conf里MODULES里加入 "!radeon", 禁止加载这个模块,会发现:
a,启动时和以前一样了,分辨率变低,可以通过vga=791这样的参数设置。
b,用xf86-video-vesa启动XFCE,和之前一样,使用正常,glxgears性能差不多,450frames,而且,从X退出后,终端显示也正常。
c,用xf86-video-ati驱动启动XFCE,发现不开XFCE的阴影,透明效果,使用完全正常,glxgears性能和vesa的差不多,500frames
但如果开启XFCE的阴影,透明效果,马上花屏, 退出X后,终端显示正常。
2,按照WIKI的方法
在menu.lst中,kernel行添加 "radeon.modeset=0" 或 "nomodeset"
或者,在/etc/modprobe.d/modprobe.conf中加一行 "options radeon modeset=0"
会发现:
a,启动时,和上面的情况一样,需要vga=791这样的参数调整分辨率。
b, 用xf86-video-vesa启动XFCE, 和上面的情况差不多,glxgears性能略有提升。
c, 用xf86-video-ati驱动启动XFCE,情况和上面一样,但是,这时glxgears性能猛增,有1100frames
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
从上面可以看出,没试出完美的组合,而之前有在这台机器上用过xubuntu, 那时是完全正常的,用xf86-video-ati
驱动,XFCE的阴影,透明效果,使用完全正常,glxgears性能也有1100frames,Compiz Fusion也没有问题,但ubuntu
在老爷机上太慢了。
现在也还没试Compiz Fusion,不知那种情况效果最好。
总结一下,在最新的ARCH上,用xf86-video-ati驱动的比较老的ATI显卡估计都适用:
a,默认的xf86-video-vesa驱动,效果还可以,3D性能差点(没试Compiz能不能开起来),但要关闭KMS或者不加载radeon模块,否则,退出X后,终端就不正常了
b,用xf86-video-ati驱动+KMS,X里显示会不正常,渲染出很多垃圾。
c, xf86-video-ati驱动 + 不加载radeon模块, X里不开启XFCE的混合显示等效果就正常,开启就花屏,而且3D性能和xf86-video-vesa差不多。
d, xf86-video-ati驱动 + 加载radeon模块 +关闭KMS, X里不开启XFCE的混合显示等效果就正常,开启就花屏,3D性能最好。
或者大家谁有其他办法,有更好的效果?
 |
|