2011年10月23日 星期日

NVIDIA 顯卡 + compiz 的垂直同步(vsync)設定

Linux 要開垂直同步真不是一件容易的事情,往往某些地方 ok,另一邊就會失敗。好不容易弄出一個自己可以接受的解,趕快筆記一下 XD

原本的採用的設定是:nvidia-settings (OpenGL Vsync ON),compiz (sync to vblank)

這樣的組合的結果是:全部視窗有 vsync,但是 compiz 動畫和全螢幕視窗效能減半,全螢幕視窗效能可以靠 compiz 的 unredirect_fullscreen_windows 來加速,它可以讓全螢幕視窗不要把畫面導到 compiz 以加速顯示,所以它的 vsync 設定是純看 nvidia-settings,而且一旦有任何需要把畫面導到 compiz 的視窗出現,compiz 就會暫時取消 unredirect_fullscreen_windows,這樣才能把兩個視窗做混和,切換的瞬間會有明顯的閃爍。另外就是切換解析度的全螢幕視窗需要開啟這個選項才能解決畫面不更新問題。結論是除非切換解析度的全螢幕視窗很重要,不然不要開它。


新採用的設定是:nvidia-settings (OpenGL Vsync Off),compiz (sync to vblank)

這個設定等於是完全讓 compiz 控制 vsync,全部的視窗都有 vsync,compiz 動畫和全螢幕視窗全速,整個環境一整個順到不可思議,也不用開 unredirect_fullscreen_windows,VLC全螢幕中顯示彈出視窗不再有閃爍問題。

2011年10月22日 星期六

在 Debian 6 Squeeze 上玩 StarCraft II

雖然 AppDB 上面有人用 Squeeze 內建的 wine 成功執行 SC2,但在我機器上它只會回硬體不支援然後離開,所以還是用新的 stable v1.2.3 比較保險。

編譯 wine 需要的套件可以用以下指令:
apt-get build-dep wine
安裝完 wine 以後執行 regedit,wine 需要調整 Direct3D 一些設定才能讓 SC2 正常顯示,最明顯的瑕疵就是 SCV 會多一根長長的天線(應該是 vertex shader 的問題)。

AppDB 網頁

在網頁中搜尋 "Regedit video performance tweaks",照內容把機碼加到登錄檔就可以了。

再來是效能問題,wine 跑 D3D 程式效能大概只有 Windows 原生的一半不到(大概啦),所以必須把特效降低才玩得下去。其實只要有開 bump mapping、中等地形細節和陰影基本上畫面就不會跟全開差到哪裡去,特效全開其實只是用速度換一些微小的改進。

SC2 的選項裡有個叫材質解析度的設定,如果跑某些地圖會 crash 可以把它調到中等試試。

另外 compiz + wine-1.2.3 + SC2 這樣的組合可能會遇到螢幕邊界沒辦法捲動地圖的問題,解決的辦法是關閉 Desktop Wall、旋轉立方體特效,不然就是換掉 Window Manager。

2011年10月13日 星期四

Thunar 卸載可移除裝置時出現 Cannot remove directory 錯誤

雖然不知道這個錯誤出現的條件,不過一旦出現以後,之後每次卸載都會出現這個錯誤,真的是很討厭。把關鍵字餵狗以後,發現只要把 /media 底下的兩個隱藏檔砍掉就正常了。

sudo rm /media/.hal-mtab /media/.hal-mtab-lock

2011年10月4日 星期二

安裝 GDM 產生的問題解

從無 DM 環境切換到 GDM 環境大概會遇到以下的問題(吧?)至少在我機器上是這樣 orz

第一是 FontConfig 設定,在 gdm 登入畫面的時候不知道算哪個 user(也許是 root 吧?),原本是用家目錄的 .fonts.conf 來覆寫本機設定。我們可以改用 /etc/fonts/local.conf 讓全部 user 包含 gdm 套用 FontConfig 設定。

第二是螢幕 DPI 設定,雖然說某些 DE 會提供工具讓你設定,但我還是比較喜歡改 Xserver 的設定。原本是透過修改 xserverrc 來變更預設 DPI,裝了 GDM 以後它不走 xserverrc,為了避免讓情況更複雜,直接修改 xorg.conf 把 EDID 偵測關掉並且強制指定 DPI 值比較快。
Section "Monitor"
	Option "UseEdidDpi" "False"
	Option "DPI" "96 x 96"
EndSection