Bug 341166

Summary: Tearing bei Reboot
Product: [Plasma] kwin Reporter: Martin Brugger <martin.brugger>
Component: compositingAssignee: KWin default assignee <kwin-bugs-null>
Status: RESOLVED DUPLICATE    
Severity: normal CC: lehmax
Priority: NOR    
Version: 4.11.12   
Target Milestone: ---   
Platform: Kubuntu   
OS: Linux   
See Also: https://bugs.kde.org/show_bug.cgi?id=322060
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Martin Brugger 2014-11-21 21:18:11 UTC
Hallo, ich habe eine NVIDIA GeForce GTX 660 und den entsprechenden Treiber über den internen "Driver Manager" hierzu installiert. Es funktioniert auch alles soweit. Allerdings habe ich starkes Tearing festgestellt. Dies konnte ich aber beheben, indem ich in den "Arbeitsflächen-Effekte-Systemeinstellungen" unter Erweitert den "Composit-Typ" auf OpenGl 3.1 und das "Einzelbild-Zerreißen (Tearing) verhindern (VSync)" auf automatisch gestellt habe.

Jetzt kommt das Problem: Wenn ich mich abmelde oder den Computer neustarte, ist das Tearing wieder da. Die Einstellungen sind zwar immer noch wie vorher, wirken aber nicht. Erst wenn ich den "Composit-Typ" einmal auf OpenGL 2.0 und wieder zurück auf OpenGL 3.1 stelle, ist VSync wieder aktiv.

Das ist ziemlich nervig, da ich dies bei jedem Neustart tun muss.

Gibt es einen Weg, das Problem zu beheben? Vielleicht mit einem Skript beim Anmelden oder so 

Reproducible: Always
Comment 1 Thomas Lübking 2014-11-21 22:43:17 UTC
Vermutlich bug #322060 - eigentlich ist der Bug, daß es nach dem Backendwechsel funktioniert.

Bitte mal schauen, ob Triple Buffering aktiviert ist:
grep -i triple /var/log/Xorg.0.log

Wenn nicht, idealerweise aktivieren:

------- /etc/X11/xorg.conf.d/20-nvidia.conf -----------------------
Section "Device"
        Identifier "Default nvidia Device"
        Driver "nvidia"
        Option "NoLogo" "True" # kein nvidia logo beim start
        Option "CoolBits" "1" # mehr nvidia-settings optionen
        Option "TripleBuffer" "True"
EndSection

Alternativ KWin mit exportiertem __GL_YIELD="USLEEP" starten (Sitzungsweiter export in ~/.kde/env/script.sh, alternativ zB. das "kwin" script von https://github.com/luebking/KLItools irgendwo höher in $PATH (zB. /usr/local/bin oder ~/bin) ablegen.


PS:
Generell solltest Du Bugs nach Möglichkeit in englisch melden (gerne auch in Schlechtem ;-)
Bei vielen Komponenten fehlt sonst das Sprachverständnis.
Comment 2 Martin Brugger 2014-11-22 00:16:46 UTC
Super! Thank you! I have put the 

Option "NoLogo" "True" # kein nvidia logo beim start
Option "CoolBits" "1" # mehr nvidia-settings optionen
Option "TripleBuffer" "True"

into my xorg.conf file.

Now its much better, but not perfect!
Comment 3 Thomas Lübking 2014-11-22 00:27:58 UTC
(In reply to Martin Brugger from comment #2)
> Now its much better, but not perfect!
Inwiefern genau?

*** This bug has been marked as a duplicate of bug 322060 ***
Comment 4 Martin Brugger 2014-11-22 09:55:02 UTC
Ich hatte zwar schon viel weniger "Einzelbild-Zerreißen (Tearing)" aber an einer Stelle am Monitor (Ich habe drei)  war noch was.

Jetzt habe ich noch folgende 6 Optionen in meine xorg.conf Datei reingeschrieben und jetzt passt es perfekt.

Section "Screen"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-4.8"
    Option         "metamodes" "DP-1.8: nvidia-auto-select +1920+0, DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +4480+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    EndSubSection

Danke Dir herzlichst!
Comment 5 Thomas Lübking 2014-11-22 13:37:25 UTC
Ah, multiscreen.
Zum Hintergrund: Du kannst nur ein Display syncen. Per Default sollte das der primary screen sein.

Du kannst das auch zur Laufzeit (und für jede Anwendung) mit zB.
    export __GL_SYNC_DISPLAY_DEVICE=DVI-D-0
steuern, resp. indem Du eben den "primary" screen "korrekt" zuweist.
Comment 6 lehmax 2016-08-18 21:36:11 UTC
I'm still experiencing this issue with Plasma 5.6.5. Sorry to bother you, but is this way of solving the problem still the correct way in 2016? Everyone is using different solutions. Some people use etc/X11/xorg.conf, some use xorg.conf.d/20-nvidia.conf. Is there even a right way to do this?