将计算机从 Centos3 升级到 Centos5 后,执行大量滚动操作的应用程序的性能受到了极大的影响。top
告诉我 X 占用了大量 CPU,而以前从未发生过这种情况。该机器配有 8MB 的 ATI Rage XL,X 使用 ati 驱动程序,因为 Linux 上没有适用于此主板的专有 ATI 驱动程序。
xorg.conf:
Section "Device"
Identifier "Videocard0"
Driver "ati"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection
Section "DRI"
Group 0
Mode 0666
EndSection
类似的、仍安装有 Centos3 的机器能够在 X 服务器上启动 DRI,而这台机器却不能,这是 Centos5 机器的 Xorg.0.log:
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: Open failed
drmOpenDevice: node name is /dev/dri/card0
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: open result is -1, (No such device or address)
drmOpenDevice: Open failed
[drm] failed to load kernel module "mach64"
(II) ATI(0): [drm] drmOpen failed
(EE) ATI(0): [dri] DRIScreenInit Failed
(II) ATI(0): Largest offscreen areas (with overlaps):
(II) ATI(0): 1024 x 1279 rectangle at 0,768
(II) ATI(0): 768 x 1280 rectangle at 0,768
(II) ATI(0): Using XFree86 Acceleration Architecture (XAA)
Screen to screen bit blits
Solid filled rectangles
8x8 mono pattern filled rectangles
Indirect CPU to Screen color expansion
Solid Lines
Offscreen Pixmaps
Setting up tile and stipple cache:
32 128x128 slots
10 256x256 slots
(==) ATI(0): Backing store disabled
(==) ATI(0): Silken mouse enabled
(II) ATI(0): Direct rendering disabled
(==) RandR enabled
我还尝试使用 EXA 代替 XAA 并设置:
Option "AccelMethod" "XAA"
Option "XAANoOffscreenPixmaps" "true"
uname -a
Linux sir5.erg.inpe.br 2.6.18-128.7.1.el5 #1 SMP Mon Aug 24 08:20:55 EDT 2009 i686 i686 i386 GNU/Linux
rpm -qa | grep xorg-x11-server
xorg-x11-server-utils-7.1-4.fc6
xorg-x11-server-sdk-1.1.1-48.52.el5
xorg-x11-server-Xvfb-1.1.1-48.52.el5
xorg-x11-server-Xnest-1.1.1-48.52.el5
xorg-x11-server-Xorg-1.1.1-48.52.el5
使用建议时,drmOpenDevice 错误继续存在Option "AIGLX" "true"
。
答案1
在 CentOS 5 中,我没有看到任何比 ATI Rage 128 更早的 DRI 驱动程序,因此 ATI 驱动程序可能在很大程度上没有加速。您可以尝试使用 VESA 驱动程序,看看这样是否能更好地支持该卡。
答案2
尝试将以下内容添加到您的 xorg.conf:
Section "ServerFlags"
Option "AIGLX" "true"
EndSection
答案3
有些 ATI 卡需要专有驱动程序,你可以从AMD 网站。很多时候这意味着在安装驱动程序之前,X 的性能会非常慢。
每次更新内核时,您还需要升级驱动程序。