GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So beheben Sie Video-Tearing unter Linux (mit Intel-Grafik)

Jetzt sei nicht schnippisch. Der Titel dieses Artikels impliziert nicht, dass Sie Tearing mit Intel-Grafiken beheben, sondern wenn Sie zufällig einen Computer mit Intel-Grafiken haben und Linux verwenden, dann sind Sie möglicherweise auf Video-Tearing gestoßen, normalerweise horizontale Linien über das obere Drittel von a Videobild. Dies geschieht normalerweise auf den Gnome-, Xfce- oder MATE-Desktops, weniger auf Plasma, unabhängig von der zugrunde liegenden Distributionswahl. Konsistenz ftw.

Wie auch immer, ich habe dieses Problem schon oft gesehen - aber es scheint in letzter Zeit etwas häufiger wieder aufgetaucht zu sein. Lassen Sie uns also ein kleines Tutorial haben, das hoffentlich all Ihre Probleme behebt oder Ihnen zumindest eine reibungslose, klare Videowiedergabe ermöglicht. Nach mir.

Intel-Grafik

Bevor wir das Problem lösen, müssen wir es verstehen. Im Lösungsabschnitt unten werde ich alle Arten von Technobabble schreiben, und wenn Sie einfach blind kopieren, werden Sie das Problem beheben, aber Sie werden nicht wissen, warum. Beginnen wir also mit der Übersicht des Intel-Grafikstacks. Dies bezieht sich auf den Übergangstreiber namens "Intel", der eine große Bandbreite verschiedener Chipsätze abdeckt.

Bitte beachten Sie, dass sich die verlinkte Manpage auf die X.Org (Xorg)-Display-Server-Implementierung bezieht. Tatsächlich konzentriert sich dieser Leitfaden aus zwei Gründen auf Xorg. Erstens verwende ich das hauptsächlich und nicht Wayland. Zweitens, teilweise, weil, siehe vorheriger Punkt, ich unter Xorg meistens auf Tearing gestoßen bin. Ich erinnere mich jedoch, dass ich auch Video-Tearing unter Wayland gesehen habe, und ich werde darüber nachdenken, auch dafür ein separates Tutorial zu schreiben. Machen wir jetzt mit unserer Mini-Ausbildung weiter.

Video-Tearing resultiert normalerweise aus einer Nichtübereinstimmung zwischen Ihrem Display und dem Treiber, sodass Sie am Ende die Aktualisierung der Frames sehen. Sie können benutzerdefinierte Xorg-Konfigurationen erstellen, die das Standardverhalten außer Kraft setzen, sodass Sie bestimmte Funktionen im Grafikstapel verwenden, die standardmäßig nicht aktiviert (oder deaktiviert) sind.

Nun, alles, was in der verlinkten Übersicht aufgeführt ist, kann sich auf die Videowiedergabe in irgendeiner Weise auswirken, und die Untersuchungsarbeit hier ist keineswegs trivial. Nach viel Lesen (und einigem Rätselraten) habe ich die Liste auf einen möglichen Hauptschuldigen eingegrenzt. Mal sehen, was es gibt.

  • Option "TearFree" "boolean" - TearFree-Updates deaktivieren oder aktivieren. Diese Option zwingt X, das gesamte Rendern in einen Backbuffer durchzuführen, bevor die tatsächliche Anzeige aktualisiert wird ... Diese Option ist standardmäßig deaktiviert, aber Sie möchten sie möglicherweise aktivieren. Das bedeutet, dass mehr Videospeicher verwendet wird, aber Sie sollten auch eine flüssigere Wiedergabe haben.

OK, jetzt, da wir die potenzielle Optimierung kennen, können wir sie implementieren. Um das Problem zu lösen, erstellen wir tatsächlich eine Xorg-Konfigurationsdatei, die die Standardeinstellungen überschreibt.

Lösung

Wir müssen eine benutzerdefinierte Konfigurationsdatei erstellen:

sudo mkdir -p /etc/X11/xorg.conf.d
sudo touch /etc/X11/xorg.conf.d/20-intel.conf

Öffnen Sie diese Datei in einem Texteditor (mit sudo oder als root) und fügen Sie den folgenden Text hinzu:

Abschnitt "Device"
Identifier "Intel Graphics"
Driver "XXXX"
Option "TearFree" "true"
EndSection

Ersetzen Sie XXXX durch den richtigen Treibernamen für Ihre spezifische Hardware. Sie können die generische Intel oder die genaue Treiberversion verwenden. Auf einem meiner Laptops ist der Treiber beispielsweise i915, also wird der Abschnitt zu:

Abschnitt "Device"
Identifier "Intel Graphics"
Driver "i915"
Option "TearFree" "true"
EndSection

Es gibt viele Möglichkeiten, um zu überprüfen, welcher Treiber auf Ihrem System verwendet wird:

sudo lspci -k | grep -EA3 'VGA|3D|Anzeige'

grep "LoadModule" /var/log/Xorg.0.log

Alternativ können Sie dies auch mit dem inxi-Befehl prüfen:

inxi -G
Grafik:
Gerät-1:Intel Haswell-ULT Integrated Graphics Treiber:i915 v:Kernel
Display:x11 Server:X.Org 1.20.8 Treiber:i915 Auflösung:1366x768 ~60 Hz
OpenGL:Renderer:Mesa DRI Intel HD Graphics 4400 (HSW GT2)
v:4.5 Mesa 20.0.4

Es kann einige Unterschiede zwischen den Systemen geben, da einige Linux-Distributionen Protokolle unter /var führen, während andere sie möglicherweise unter /run speichern. Außerdem ist der inxi-Befehl möglicherweise nicht verfügbar oder installiert. Der Befehl lspci ist am sichersten und sollte auf jedem System funktionieren.

Nachdem Sie den Treiber identifiziert haben, schreiben Sie den Treibernamen in die Datei 20-intel.conf, speichern Sie die Datei und starten Sie Ihre Sitzung neu. Sie können neu starten oder sich einfach abmelden und wieder anmelden. Jetzt sollten Sie eine reibungslose und unterbrechungsfreie Videowiedergabe haben.

Alternative Korrekturen

Es ist möglich, dass nur die eine Option-Zeile, die wir oben hinzugefügt haben, nicht funktioniert. Sie müssen also vielleicht etwas strenger vorgehen. Hier sind zwei zusätzliche Optionen, die möglicherweise in die Datei 20-intel.conf aufgenommen werden sollten:

  • Option "AccelMethod" "string" - Beschleunigungsmethode auswählen. Es gibt ein paar ... Diese Option definiert die Methode der Hardwarebeschleunigung. UXA (Unified Acceleration Architecture) ist ein älteres, aber ausgereifteres Backend. SNA (SandyBridge's New Acceleration) ist die neue Methode, die UXA ersetzt und die Standardeinstellung ist. Wenn Sie Video-Tearing haben, möchten Sie möglicherweise auf das ältere Back-End zurückgreifen, da es eine breitere Gesamtkompatibilität bieten könnte.
  • Option "DRI" "string" - DRI-Unterstützung deaktivieren oder aktivieren ... Normalerweise sollte dies kein Problem sein, und Ihr System sollte OpenGL ES 3 verwenden. Wenn Sie jedoch Video-Tearing haben, können Sie dies tun diese Option auf "3" setzen möchten.

Die Konfigurationsdatei wird dann:

Abschnitt „Device“
Identifier „Intel Graphics“
Driver „XXXX“
Option „TearFree“ „true“
Option „AccelMod“ „uxa“
Option „DRI " "3"
EndSection

Schlussfolgerung

Hinzufügen ... Ich habe die erste 20-intel.conf in Ubuntu MATE, Xubuntu und Fedora in mehreren Editionen dieser Distributionen getestet. In den meisten Fällen ist die TearFree-Option ausreichend. Eine der Distributionsversionen erforderte auch die Beschleunigungsmethode. Schließlich löste in nur einem Fall eine eigenständige DRI-Option (ohne die beiden anderen) das Tearing-Problem. Meine Empfehlung ist angesichts der Tatsache, dass es eine ganze Reihe von Grafikkarten gibt, jede Permutation dieser drei Optionen auszuprobieren. Es klingt ein wenig nach Hexerei, und vielleicht ist es das auch.

Zumindest ist es Hexerei mit guten Ergebnissen. Im Idealfall sollten Sie niemals mit Tearing in Ihren Videos konfrontiert werden. Aber der Linux-Desktop hat mehrere Hauptprobleme, und der benutzerzentrierte, produktzentrierte Ansatz ist das größte davon, weshalb Fehler kommen und gehen und dann zurückkehren, und Sie werden eine unregelmäßige, zufällige Manifestation dieser über Distributionen hinweg haben. Versionen und Hardwareplattformen. Versuchen Sie auf jeden Fall, zu sehen, was sich ergibt, und hoffentlich können Sie Videos mit reibungsloser, sauberer Wiedergabe ansehen. Wir sehen uns.


Linux
  1. Wie ich Vagrant mit libvirt verwende

  2. So verschlüsseln Sie Dateien mit gocryptfs unter Linux

  3. So installieren Sie einen Gerätetreiber unter Linux

  4. Linux – Wie finde ich den Treiber (Modul), der mit einem Gerät unter Linux verbunden ist?

  5. Wie überprüfe ich das Passwort mit Linux?

So erstellen Sie einen eigenen Video-Streaming-Server mit OBS Studio unter Linux

So richten Sie eine Firewall mit GUFW unter Linux ein

Screen Tearing in 11.10 mit Intel Graphics?

So führen Sie einen Alias ​​mit Sudo in Linux aus

Erste Schritte mit Arch Linux

Wie schütze ich GRUB mit einem Passwort unter Linux?