Contents
|
几种流行的显卡——特别是 NVIDIA 的——在 KDE 4 出现性能问题。这些性能问题主要涉及 Plasma - KDE 4 的桌面,和KWin- KDE 的窗口管理器。一般来说,不是因为没有优化 KDE 4 而是因为显卡驱动的问题。本页包含可能出现的问题和解决办法。
这两大显卡芯片制造商皆有不同的显卡驱动程序可以使用:
通常最好更新到已有改善措施的驱动程序。 因此,第一步改善您的 KDE 4 体验应该检查你的当前的驱动程序如果它已经过时就需要更新他。请参考您的发行版的文件,了解如何做到。
尽管可能进一步提高性能,但我不建议安装测试版质量的驱动程序,因为有可能影响您系统的稳定。
用nvidia-settings工具设置的参数不会永久保存,除非你 用root 权限。终端下面用 root 登录,
:nvidia-settings&
不然你每次重启X 都得重新设置一次。可以通过添加下列字段到你的 ~/.xinitrc 来轻松做到。
It seems that older NVidia cards run into the problem that newly opened windows just are drawn as black windows or do not refresh properly anymore. This happens if composite is activated and openGL is used with many windows opened. Maybe the cards are running out of video memory? (The problem does occur with the compiz window manager as well.) In KDE4 you can deactivate composite/effects with Shift + Alt + F12 to continue your work with the desktop normally.
The problem is that drawing of the window decorations does become very slow if no composite is activated (tested with KDE4.3). As alternative to using openGL as composite engine it is recommended to use XRender in this case. Because moving effects become very slow with XRender you should turn animation speed to instant.
KDE4的 系统设置 提供您调整KWin设定。你可以在找到设定。根据您的显卡在OpenGL或XRender 运作的较好。使用 OpenGL 可能性能会比较好。请记住,下文提到一些修改可能会改变您的设定。
(Note from user): XRender mode helped A LOT on a 6800 GT (agp) with the proprietary driver, especially while looking at videos (177.80).
例如:
(note from a user)* Not selecting "Use Vsync" helped a lot in a gforce 6800 (and also on a GeForce 8400M GT).
如果由于某种原因点击对话框的应用按钮后你的 Xserver 挂掉,并且回复因为无法确认您的更改,再试一次。通常它随后会很快的再尝试。如果没有你仍然可以修改您的设定在~/.kde4/share/config/kwinrc。
If after installing the NVIDIA's 177.80 versions beta drivers you're still experiencing bad performance (especially on 8xxx-9xxx series) you can install XGL xserver. Please refer to your distribution's documentation on how to do that.
| Note |
|---|
| XGL has *a lot* of issues regarding 3d applications, xvideo and keyboard layout but, with certain video cards, is now the unique way to enjoy KDE4 at full speed. XGL actually 'bypass' the nvidia driver using the mesa library to render the desktop. OpenGL-based desktop effects cannot be run on XGL. |
本文中提到的一些微调是针对在大多数发行版都可找到的文件:
/etc/X11/xorg.conf
有些Fedora 10 用户可能会发现默认的情况下这个文件不存在(依赖于他们的显卡 - anyone with more details on this please feel free to elaborate),所以必须重新创建。请这样做:
Xorg -configure用root运行'Xorg -configure',完成后会产生'xorg.conf'档案或者用
sudo Xorg -configure :1,这样无需切换runlevel
本节简要阐述了一些可能会遇到的症状,并试图解释可能的原因。
$ XLIB_SKIP_ARGB_VISUALS=1 konsole在指令列并尝试调整新开的konsole窗口大小(设定环境变量XLIB_SKIP_ARGB_VISUALS关闭ARGB visuals)。如果重设大小没有问题,那么这就是您遇到的问题。
| Note |
|---|
| I have found that this fixes Dolphin's preview delay too for me. Please confirm. --dpalacio 17:33, 27 July 2008 (CEST) |
If you have an older graphics card, hardware acceleration may be a struggle for it. This may be particularly obvious when watching flash videos such as Youtube videos. This may help:
在 "Device"部分
...
Option "BackingStore" "true"
...
EndSection "Device"这可以作用在一些(例如konsole)程序,但不幸的是并非所有的窗口有效。
$ nvidia-settings -a InitialPixmapPlacement=2这可以作用在一些NVIDIA 显示卡(但不幸的是不是全部)。
在 xorg.conf 的 "Device" 部分
...
Option "AccelMethod" "EXA"
# optional, may improve performance but introduce visible artifacts
# Option "MigrationHeuristic" "greedy"
...
EndSection "Device"
使用此选项的旧 X servers (<=1.4.2)性能会好些,新的 X servers (>=1.4.99.901)会有明显改善 。
注意:如果您使用 kernel 2.6.29,启用 UXA 扩展会有许多 bug 和随机的 xorg 冻结。
Section "Device"
Identifier "Generic Video Card"
Driver "intel"
Option "AccelMethod" "UXA"
EndSection
有了这个设定,我的 i945G 与 PentiumD820,在Glxgears 可以跑 350-500 FPS,和完美运行所有OpenGL渲染效果。
TODO
$ nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1这可以作用在部份的NVIDIA显示卡(但不幸的是不是全部)。据说有些显卡使用
InitialPixmapPlacement=1(甚至
InitialPixmapPlacement=3)运作的更好。
TODO
开源 Radeon 驱动默认使用的是 XAA 硬件加速的方法。所以你需要从 XAA(X Acceleration Architecture)更改 2D 加速方法,以使用较新的 EXA。由于这涉及到编辑您的 xorg.conf 文件,记住,这样的修改可能会损害您的系统。这一点需要您自担风险,如果你做错了,有可能导致 X 无法启动,所以先备份 xorg.conf 文件。
要更换,编辑你的 xorg.conf 文件。定位到设定显卡的 Device 部分。添加这行
Option "AccelMethod" "EXA"
到 "EndSection" 这行之前。如果已经有一行是有 AccelMethod,那直接修改 XAA 成 EXA。保存文件并重启 X server。
Note that using EXA may result in some older applications, such as some KDE3 programs being rendered incorrectly.
When using EXA it is strongly recommended to use a recent X server, at least 1.6.x or even better the new 1.7 release -- perhaps best to wait for 1.7.1.
If you have an AGP-based card then you may also want to add the following line at the same location into the configuration file.
Option "AccelDFS" "true"
This should accelerate the driver even more, but may get you a hardlock when starting X. So be cautious with this option. See this article for more information on this topic.
The first one refers particularly to systems running KDE prior to 4.3.1 -
These hints won't turn an old graphics card into a fast one, but they will make Desktop Effects a feasibility on many older cards.
这似乎是受 Intel 和 ATi 显卡影响。AccelMethod 似乎是罪魁祸首。大部分驱动程序现在预设加速途径是已经过时和缓慢的 XAA(Option "AccelMethod" "XAA")。这是不建议的作法,特别是在组成(compositing)。 不幸的是,私有的 ATI 和 Nvidia 驱动仍然只支持 XAA。
尝试加入以下两行启用 EXA 加速
Section "Device" Option "UseAtomBIOS" "true" Option "AccelMethod" "EXA" # ... EndSection
这个方法可以用在两款驱动 radeon 以及 radeonhd,但显卡有最高只到 X1950 有效。HD2xxx 及以上尚未不支持。
AtomBIOS is automatically used by the radeon driver, so that line will need to be commented out. If you have the radeonhd driver, however, you will need it. EXA is expected to become the default in the near future, but having it specified here is unlikely to cause any problems even then. 3D and EXA support for HD2xxx and above is expected later this year (2009) as they are already in an experimental branch.
检查 Xorg.0.log 中是否有 EXA。如果你没有找到它(或 UXA)试着加入EXA 在 ATi section。UXA是一个实验性的选择,但只支持少数驱动。It's likely that the best bits will be merged into EXA soon.
Phoronix forums is a good place to read more about this.
在NVIDIA显卡上krunner对话框可能会出现好几个(只有最上面的可以使用)。这是由于上述建议设定InitialPixmapPlacement=1 。目前还没有任何已知的方法来解决这个问题。
At some point you may have been told to add KDE_SKIP_ARGB_VISUALS to either ~/.bash_profile, /etc/profile or in ~/.profile. If that rings a bell for you, hunt for it and comment it out. You may find that they magically re-appear. Otherwise, check the Qt4 libraries you are using. In my case I needed Qt 4.4.3 together with KDE 4.2.