Nvidia ja videon repeily (voi kökkö)

December 2nd, 2015

Ehdin jo tottua Intelin integroidun näyttiksen kanssa siihen, että video toistuu nätisti repeilemättä VLC:llä, mutta nyt palasin Nvidia-maahan ja ongelmia ilmeni saman tien. Alla on Mint/MATE ja ikkunamanagerina vsyncin päälle huonosti ymmärtävä Marco. Useamman tunnin googletuksella tuli vastaan seuraavia paremmin ja huonommin toimivia ehdotuksia:

  1. Käsienheiluttelut. Laita Nvidian asetuksista täydet tehot päälle, poista käytöstä X-palvelimelta backing store jne. Ei auta.
  2. VLC:n videoulostulo. Xvideo repeilee pahasti, normaali X11 on kohtuuttoman hidas ja vielä GLX:kin repeilee tarpeettoman paljon. Ei auta.
  3. Compiz. Marcon vaihtaminen Compiziin tosiaankin auttoi asiaa, koska jälkimmäinen kompositoi koko ruudun. Valitettavasti bugeja tuli vastaan lyhyelläkin käytöllä ihan liikaa, enkä saanut asetuksia muutenkaan mieleisikseni.
  4. Compton. Marcon kanssa toimiva pelkkä komposiittori (kompostori?) ratkaisi sekin repeilyn kunnialla, mutta vei valitettavasti aivan liikaa tehoa, minkä lisäksi päivitystaajuus lerpahti.
  5. Nvidian kikkale. Nvidiakin tukee kaikessa hiljaisuudessa kompositointia, vaikkei sitä saakaan normaaleista asetuksista päälle. Jonkin verran vie tehoja sekin, mutta vähemmän kuin Compton.

Kohta 5 vaatii seuraavanlaisen, ei aivan ilmeisen /etc/X11/xorg.confin:

Section "Screen"
  Identifier "nvidia"
  Device "nvidia"
  Option "TripleBuffer" "True"
  Option "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"
EndSection

Tämän jälkeen Nvidian ajuri kompositoi ja synkronoi ruudunpiirron ja videot toistuvat kauniisti, eivätkä ikkunatkaan splittaile liikutellessa. Pienenä kauneusvirheenä Xvideo on hidas, joten VLC:hen kannattaa vaihtaa ulostuloksi GLX. Ei tämäkään mikään täydellinen ratkaisu ole, sillä X vie nyt tyhjän panttina jonkin verran prosessoritehoa ja kuormitettuna enemmän, minkä lisäksi OpenGL hidastuu jonkin verran. Riittää kuitenkin tähän hätään tilapäisratkaisuksi parempaa etsiessä — vinkkejä otetaan mielellään vastaan.

edit: eihän tämä ollut tietenkään koko kuva vielä. Kävi ilmi, että Nvidian ajuri hukkaa kompositoinnin, jos kone käy nukkumassa. Tilannetta voi korjailla palauttamalla kompostorin nvidia-settingsin avulla. Itse laittoin paikkaan /etc/pm/sleep.d ajettavan tiedoston 20_nvidia seuraavilla sisuksilla:

#!/bin/sh
case "${1}" in
    resume|thaw)
        nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline=Off }"
        nvidia-settings --assign CurrentMetaMode="nvidia-auto-select +0+0 { ForceFullCompositionPipeline=On }"
    ;; 
esac

Hieman kludge, mutta tuntuu toimivan toistaiseksi.

edit 2: Ruudunsäästäjä tuhoaa kompositoinnin myös! Tämän saa kierrettyä poistamalla ruudunsäästäjän kokonaan käytöstä ja pimentämällä näytön virransäästöasetuksilla.

Filed under: laitteet,linux,softat

Kommentin kirjoitus

You must be logged in to post a comment.

RSS feed for comments on this post.


Kommenttien virta

Aiheet