從 7.10 開始,我和我周圍的一些安裝 nvidia 顯卡的機器都被一個問題所困擾。
當用 firefox 2/3 瀏覽一些有固定背景的網頁時會變得超乎尋常的慢,倒不是載入慢,而是卷動慢。
如果你沒有明白我在說什麽,請到這裏
http://testlonggi.yo2.cn/
拖動頁面邊上的滾動條,感覺是否流暢,如果答案是否定的,請您接著看後面。
這個問題在 mozilla 的 bug 列表裏已經有了匯報,不過一直沒有解決。
最近因為更換 firefox3 問題仍沒解決,遂再次上網搜索,終于發現了暫時的解決辦法。
mozilla 的 bug 報告:
https://bugzilla.mozilla.org/show_bug.cgi?id=201307
https://bugzilla.mozilla.org/show_bug.cgi?id=90198
解決方法對 n7xxx n8xxx 確認有效,對 n6xxx 也應有效。
1、使用 nvidia 官方驅動的情況
首先升級到最新的版本
在終端(圖形界面下就可以),執行
代码: 全选
nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
代码: 全选
Attribute 'InitialPixmapPlacement' (longinus-desktop:0.0) assigned value 2.
Attribute 'GlyphCache' (longinus-desktop:0.0) assigned value 1.
對于 n8xxx 顯卡而言
代码: 全选
nvidia-settings -a InitialPixmapPlacement=2 -a GlyphCache=1
代码: 全选
nvidia-settings -a InitialPixmapPlacement=0 -a GlyphCache=1
2、使用受限驅動對話框安裝的受限驅動
就是 glx-new,這種情況下 nvidia-settings 沒有默認安裝,您需要自己安裝一下。
而且這個驅動目前還沒有提供 GlyphCache 的修改,所以您得把 -a GlyphCache=1 去掉。
就變成:
代码: 全选
nvidia-settings -a InitialPixmapPlacement=2
另外,這個調整在重啟後會自動回復默認,就是 1,0 的組合,所以請您將上面的命令加入到會話啟動項裏。
給出驅動源碼中對 InitialPixmapPlacement 的定義,看的懂得人看看就行了,看不懂也沒必要弄明白。
代码: 全选
/*
* NV_CTRL_INITIAL_PIXMAP_PLACEMENT - Controls where X pixmaps are initially
* created.
*
* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM causes to pixmaps to stay in
* system memory.
* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM creates pixmaps in system memory
* initially, but allows them to migrate to video memory.
* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM creates pixmaps in video memory
* when enough resources are available.
* NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM creates pixmaps in GPU accessible
* system memory when enough resources are available.
*/ #define NV_CTRL_INITIAL_PIXMAP_PLACEMENT 238 /* RW- */
#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_FORCE_SYSMEM 0
#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_SYSMEM 1
#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_VIDMEM 2
#define NV_CTRL_INITIAL_PIXMAP_PLACEMENT_GPU_SYSMEM 4