Linux 上 Nvidia 顯卡畫面撕裂的解法

不知道從什麼時候開始,我發現我在 Kubuntu 16.04 + GTX 1070 上,放 Youtube 影片或是用 VLC 放影片的時候,會有畫面撕裂的問題。研究了一下之後發現要解決這個問題超簡單的(懶得看我廢話可以直接看最下面的解法)。當然,撕裂的發生原因非常多,不保證這解法有效,但這篇文章講的應該算是最近最容易發生的問題。

什麼是畫面撕裂

畫面撕裂是一個有趣的問題,簡單來說就是顯卡刷新畫面刷到一半就被顯示器輸出了,所以畫面會有一部份是之前的,一部份是新的。在某些特性的影片中,畫面就會看起來就從中間斷掉。有興趣可以 google 看看範例,也可以在 Youtube 上找到可以讓畫面很容易被撕裂的影片。由於我不是在發科普文,而且這個我也不是很熟,相關問題就自己去 google 吧 XD

Linux + Nvidia 顯卡遇到的問題

http://www.thelinuxrain.com/articles/got-tearing-with-proprietary-nvidia-try-this

我一開始想辦法 google 解法的時候看到上面這篇文章,它表示在 Linux 上,有部份 desktop 不會有撕裂的問題,例如 KDE 和 GNOME,但 LXDE 和 MATE 都會有撕裂的問題。我用的 Kubuntu 是屬於 KDE,所以我一般使用上沒問題,只有在播放影片才會遇到這個問題。它提供的解法蠻恐怖的,用 nvidia-settings 下指令去改,或是直接去改 /etc/X11/xorg.conf。主要是要去 enable ForceCompositionPipeline 或是 ForceFullCompositingPipeline 這兩個參數,後者好像是比較新的技術,但我試過兩個方法都可以解決撕裂。

有在用多螢幕的人就知道,改那些東西超容易爆的 XD 而我實際上嘗試一次就把我設定弄壞了,所以我又去 google 了一下這兩個東西,發現根本圖形界面裡面就可以安全地改這兩個設定了,而且還是藏在一些不好發現的留言裡。其他關鍵字,像是 tearing,vsync,撕裂等等的都沒辦法找到這個解法。於是我就來發這篇文啦~~

解法

我是用 375.26 版驅動程式,其他的我就不清楚了。總之,直接兩張圖教你怎麼改,首先你要有 nvidia-settings,沒有的話就去 google。直接在 terminal 下 nvidia-settings 這個指令就會有一個 Nvidia X Server Settings 的圖形界面跑出來,然後:

Screenshot_20170506_2321412.png

Screenshot_20170506_2321502.png

  1. X Server Display Configuration
  2. Advance
  3. Force Full Composition Pipeline
  4. Apply
  5. Save to Configuration File

步驟 1~3 是 enable Force Full Composition Pipeline(如果不行也可以試試看 Force Full Composition Pipeline 左邊的 Force Composition Pipeline),步驟 4 套用完設定後,就可以去測試還會不會撕裂了。確定沒問題後用步驟 5 把設定存下來,不然重開機後就沒了。

就這麼簡單,但超難查到,大部分人都拼命下指令或是改設定檔… 只有在特別針對這兩個參數去 google 的時候,才能夠發現可以這樣設定… 可能是因為新版 driver 才有這個設定。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

Up ↑

%d bloggers like this: