Kirjoittaja Aihe: Nvidian näytönohjaimet ja näytön repeily (screen tearing)  (Luettu 6385 kertaa)

zordo

  • Käyttäjä
  • Viestejä: 170
    • Profiili
http://forum.linuxmint.com/viewtopic.php?f=56&p=951298

Tuolta löydetyt ohjeet korjasivat oman koneen ongelmat niin selaimessa kuin videotoistossakin. On vaan niin uskomatonta, että näinkin oleellisia korjauksia joutuu googlettelemaan ympäri muidenkin jakeluiden forumeita - puhumattakaan siitä, että tuon joutuu ylipäätään itse säätämään päälle. Vai aiheuttaako tuo sitten ongelmia muissa tilanteissa? Omassa koneessa on Kubuntu 15.04 ja GTX 970 nVidian 352.30-ajureilla. Uusi thread, koska mitä ilmeisimmin auttaa muillakin näytönohjaimilla.

Ideana siis muokata /etc/X11/xorg.conf
Jokaiselle käytössä olevalle monitorille
Koodia: [Valitse]
{ ForceFullCompositionPipeline = On } rimpsu perään. Uudelleenkäynnistys ja ongelma on poissa.

Tässä oma xorg.conf screen-osuus,  missä alkuperäinen rivi kommentoituna(#) muutetun alla.
Koodia: [Valitse]

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +1920+0 { ForceFullCompositionPipeline = On }, DVI-D-0: 1920x1080_60 +0+0 { ForceFullCompositionPipeline = On }"
    #Option         "metamodes" "DVI-I-1: nvidia-auto-select +1920+0, DVI-D-0: 1920x1080_60 +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection
Core I5 2500K  GTX970 ubuntu 14.10

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Syy miksi tuo ei ole käytössä on varmaan sama kuin Intelillä vastaava:
https://bugs.freedesktop.org/show_bug.cgi?id=37686#c92 sekä pari viimeistä kommenttia https://bugs.freedesktop.org/show_bug.cgi?id=37686#c122
https://devtalk.nvidia.com/default/topic/780094/linux/when-will-the-tearing-issue-be-fixed-/post/4330351/#4330351

Eli todennäköisesti tuo toteuttaa komposoinnin ajureissa ja siten lisää muistinkäyttöä. Lisäksi jos käytössä on jo valmiiksi komposoiva ikkunamanageri (tai joku muu taso*) niin tuo tekee sen ylimääräisen kerran ja siksi hukkaa myös suorituskykyä. Komposoinnin pitäisi kyllä silloinkin estää repeily, jos se on toteutettu (ja säädetty) oikein.

*muulla tasolla tarkoitan tässä sitä, että kunhan työpöydällä siirrytään pois X:stä Waylandiin, niin komposointi on käytännössä pakollinen (mutta sitähän ei tarvitse tehdä näytönohjaimella, jos rauta ei riitä).

Itselläni on Intel enkä käytä tuota TearFreetä. Työpöytänä on Gnome enkä huomaa repeilyä, paitsi toistaessani videoita koko näytöllä, jolloin Gnome ei komposoi. Jos joku tietää miten Gnomessa saa komposoinnin päälle myös koko ruudulle, niin olisin kiinnostunut kuulemaan. Ei haittaa vaikka olisi kaikilla ohjelmilla aina päällä, mutta jos saa säännön esimerkiksi vain VLC:lle niin se olisi täydellistä.
« Viimeksi muokattu: 08.08.15 - klo:00.03 kirjoittanut Tomin »
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

Lepotila zZ

  • Käyttäjä
  • Viestejä: 347
    • Profiili
Olen huomannut saman (GTX 960; Nvidia 346.59; Xfce). Oma ratkaisuni oli ottaa komposoija pois käytöstä ja käyttää SMPlayerissä (mplayer2 backend) vdpau ajuria. Videot eivät repeile eivätkä nyi - säädän tosin näytön virkistystaajuden videoille sopivaksi (100Hz tai 120Hz). Muut ulostulo ajurit (xv ja gl) olivat alttiita repeilylle, vaikka näytön virkistystaajuus olisi sovitettu videoiden kanssa ja ajurin OpenGL-asetuksissa olisi "Sync to VBlank" -täppä valittuna. V-syncin toteutuksessa on siis jotakin häikkää. (Vdpau ajurillakin videoihin tulee jotakin ylimääräistä nykimistä, jos komposoija on käytössä - vaikka olisi valittuna "Näytä koko näytön peittokuvaikkunat suoraan".)

Kun en käytä komposoijaa, selaimessa sivujen vierittämisen yhteydessä on repeilyä havaittavissa, mutta se ei ole yhtä häiritsevää kuin repeily komposoijan kanssa. Muistaakseni sain Comptonia käyttämällä repeämisen häviämään, mutta siitä seurannut nykiminen häiritsi minua vielä enemmän. Varmaan se on yhtälailla osoitus siitä, että X:n ja komposoijien yhteistyössä on jotakin ongelmaa. Täytyypä testailla tuota "ForceFullCompositionPipeline"-asetusta jollakin koneella - nyt komposoinnista on vain haittaa koneillani.

Zordon linkkaamassa keskustelussa oli yksi Nvidian antama syy sille, miksi "ForceFullCompositionPipeline" ei ole oletuksena päällä: se lisää latenssia yhden ruutupäivityksen verran, ja pelaajat eivät tykkää siitä. En ymmärrä tosin tarkoittaako se kokonaan ylimääräistä ruutupäivitystä (eli kiinteää n.17ms lisälatenssia 60Hz näytöllä) normaalin V-syncin tuoman latenssin lisäksi, vai ainoastaan tuota normaalia V-syncin tuomaa latenssia (maksimissaan yhden ruutupäivityksen, mutta keskimäärin vähemmän).

Nvidiahan käyttää tavallisesti "adaptive V-Sync" "tekniikkaa", joka tarkoittaa, että kun kone ei kykene tuottamaan ruutuja virkistystaajuuden nopeudella, V-Syncista luovutaan. On valittava repeilyn (tearing) ja nykimisen (stuttering) välillä, ja Nvidian mukaan repeily haittaa pelaajia vähemmän kuin nykiminen. (Olen samaa mieltä.) Pelaajien siis varmaan kannattaa olla tarkkana, että "ForceFullCompositionPipeline" ei heikennä pelikokemusta: lisää latenssia, vähennä ruutupäivityksiä sekunnissa, tai aiheuta nykimistä.

zordo

  • Käyttäjä
  • Viestejä: 170
    • Profiili
Eipä ole näkynyt muistinkäytössä merkittävällä tavalla. Sama 2/8GB käytössä työpöydällä muutaman selainvälilehden kera(Maten puolella 600MB). Vielä kun saisi näytönohjaimen kellot pysymään idletasolla työpöytäkäytössä...

Ja ainakin Cities Skylines toimii viritelmän jälkeen ilman repeilyjä. Aiemmin boottasin mieluummin windowsin puolelle pelaamaan.
« Viimeksi muokattu: 09.08.15 - klo:00.59 kirjoittanut zordo »
Core I5 2500K  GTX970 ubuntu 14.10

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Ei se oikeastaan tuolla tavalla muistinkulutuksessa voikaan näkyä. Tuo lisää yhden bufferin, johon näytön sisältö (näytöonohjaimella) piirretään ja sen koko lienee FullHD-kuvalla (24-bittiset värit) 1920*1080*24 b = 49766400 b = 6220800 B = 5,9 MiB eli ei ihan hirveästi ja sekin menee näytönohjaimen muistista, mikä ei pelikäyttöön suunnitellulla näytönohjaimella tunnu missään. Näin ainakin, jos olen ymmärtänyt oikein.

Miksikäs niiden kellojen pitäisi idle-tasolla pysyä työpöydällä? Nykyiset suorittimet säästävät enemmän sähköä tekemällä työt täydellä teholla ja sitten vetäytymällä lepoon, jolloin parhaat leikkaavat kulutuksensa lähelle nollaa.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

zordo

  • Käyttäjä
  • Viestejä: 170
    • Profiili
No siis windowsin puolella ei työpöydällä nouse 970:n kellot sieltä alimmasta lokerosta. Ubuntun puolella paukkuu 1GHz rikki todella usein. Lämmöissäkin on 10-15C ero.
Core I5 2500K  GTX970 ubuntu 14.10

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
No siis windowsin puolella ei työpöydällä nouse 970:n kellot sieltä alimmasta lokerosta. Ubuntun puolella paukkuu 1GHz rikki todella usein. Lämmöissäkin on 10-15C ero.

Aivan. Tarkoitit näytönohjaimen kelloja. Siitäpä en osaakaan mennä sanomaan mitään. Näkyyhän tuo nytkin olevan suurimmalla asetuksella. Tuo saattaisi olla myös sellainen asia mitä kannattaisi Nvidialta kysyä.
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.

zordo

  • Käyttäjä
  • Viestejä: 170
    • Profiili
Se hyppää aina n. puoleksi minuutiksi täysille, kun käynnistää jonkun ohjelman. Päivittelin ajurit uusimpaan vakaaseen versioon ja hieman helpotti. Enää 5C ero windowsin puolelle. Näissä uusissahan ei tuulettimet lähde päälle kuin vasta jossain 65C:ssa joten tuskin on mitään hirveää virrankulutuseroa.
Core I5 2500K  GTX970 ubuntu 14.10

Lepotila zZ

  • Käyttäjä
  • Viestejä: 347
    • Profiili
Itselläni on Intel enkä käytä tuota TearFreetä. Työpöytänä on Gnome enkä huomaa repeilyä, paitsi toistaessani videoita koko näytöllä, jolloin Gnome ei komposoi. Jos joku tietää miten Gnomessa saa komposoinnin päälle myös koko ruudulle, niin olisin kiinnostunut kuulemaan. Ei haittaa vaikka olisi kaikilla ohjelmilla aina päällä, mutta jos saa säännön esimerkiksi vain VLC:lle niin se olisi täydellistä.

Voisikohan vaihtaa Mutterin Comptoniin? Comptonissa käyttäjä saa itse säätää enemmän kuin Mutterissa. Kokeilin sitä Xfce:ssä ja vaikutti toimivalta ja vakaalta.

Jos pitäydyt Mutterissa Googlaa : "Meta.disable_unredirect_for_screen(global.screen)". Pääasiassa taitaa tulokset koskea Muffinia, mutta löytyyköhän sama asetus Mutterista? Jos löytyy, voisi olla relevantti ongelmasi kannalta.

Tomin

  • Palvelimen ylläpitäjä
  • Käyttäjä / moderaattori+
  • Viestejä: 11481
    • Profiili
    • Tomin kotisivut
Itselläni on Intel enkä käytä tuota TearFreetä. Työpöytänä on Gnome enkä huomaa repeilyä, paitsi toistaessani videoita koko näytöllä, jolloin Gnome ei komposoi. Jos joku tietää miten Gnomessa saa komposoinnin päälle myös koko ruudulle, niin olisin kiinnostunut kuulemaan. Ei haittaa vaikka olisi kaikilla ohjelmilla aina päällä, mutta jos saa säännön esimerkiksi vain VLC:lle niin se olisi täydellistä.

Voisikohan vaihtaa Mutterin Comptoniin? Comptonissa käyttäjä saa itse säätää enemmän kuin Mutterissa. Kokeilin sitä Xfce:ssä ja vaikutti toimivalta ja vakaalta.

Jos pitäydyt Mutterissa Googlaa : "Meta.disable_unredirect_for_screen(global.screen)". Pääasiassa taitaa tulokset koskea Muffinia, mutta löytyyköhän sama asetus Mutterista? Jos löytyy, voisi olla relevantti ongelmasi kannalta.

Hei, kiitos. Ainakin tämä komento poistaa repeilyn VLC:stä kokoruudulla:
Koodia: [Valitse]
gdbus call --session --dest org.gnome.Shell --object-path /org/gnome/Shell --method org.gnome.Shell.Eval 'Meta.disable_unredirect_for_screen(global.screen);'Tästä on hyvä jatkaa. Mutterista en tosiaan välittäisi pois vaihtaa, vaikka sen säätäminen ehkä onkin vähän vaikeaa.
Komento napattu tuolta: http://forums.fedoraforum.org/showthread.php?t=303945
Automaattinen allekirjoitus:
Lisäisitkö [RATKAISTU] ketjun ensimmäisen viestin aiheeseen ongelman ratkettua, kiitos.