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

Warum ist das Zerreißen von Videos unter Linux ein solches Problem?

Dies liegt alles daran, dass der X-Server veraltet und für die heutige Grafikhardware ungeeignet ist und im Grunde die gesamte direkte Grafikkartenkommunikation als Erweiterung ("Patch") über den alten aufgeblähten Kern erfolgt. Der X-Server bietet keine eingebauten Mittel zur Synchronisierung zwischen dem Rendern des Fensters durch den Benutzer und dem Bildschirm, der ein Fenster anzeigt, sodass sich der Inhalt während des Renderns ändert. Dies ist eines der bekannten Probleme des X-Servers (er hat viele, das gesamte Modell dessen, was der Server tut, und ist veraltet - Ereignisbehandlung in Unterfenstern, Metadaten über Fenster, grafische Primitive zum direkten Zeichnen ...). Widget-Toolkits wollen all dies meist beschönigen, aber Tearing ist immer noch ein Problem, da es keinen Mechanismus gibt, um damit umzugehen. Zusätzliche Probleme treten auf, wenn Sie mehrere Karten haben, die unterschiedliche Treiber benötigen, und darüber hinaus hat die opengl-Bibliothek eine fest verdrahtete Abhängigkeit von xlib, sodass Sie sie nicht wirklich unabhängig verwenden können, ohne über X zu gehen.

Wayland, das etwas lustlos versucht, X zu ersetzen, unterstützt in seinem Kern eine pedantische vsync-Synchronisation und wird damit beworben, dass jeder Frame genau perfekt ist.

Wenn Sie schnell "Wayland Video Tearing" googeln, finden Sie weitere Informationen zu allem.


Wenn Sie einen nvidia-Treiber>=365.20 verwenden, versuchen Sie, die Option „Force Full Composition Pipeline“ in nvidia-settings zu aktivieren .


Screen Tearing tritt hauptsächlich aus zwei Gründen auf - Treiber, die noch nicht da sind, und fehlendes Vsync mit bestimmten Fenstermanagern.

Bei den Treibern unterstützen sowohl kostenlose als auch proprietäre Treiber Free-Tearing-Compositing (nvidia und amd beide). Beachten Sie, dass z. Aktivieren eines unterbrechungsfreien Desktops in Catalyst (fglrx ) kann zu Frame-Drop und Verzögerungen führen, daher ist es normalerweise standardmäßig deaktiviert. Was den offenen Treiber betrifft, sollte vsync standardmäßig aktiviert sein. Das Screen-Tearing-Problem kann also gelöst werden, indem verschiedene Treiber ausprobiert und konfiguriert werden.

Was Fenstermanager betrifft, so ist bekannt, dass Openbox, Awesome und andere leichtgewichtige WMS kein Tearing-Free unterstützen. XFCE (xfwm, um genau zu sein) hat es in den letzten Versionen behoben, 4.11/12 haben jetzt Vsync. Große Desktop-Umgebungen haben auch keine Probleme mit Tearing, einschließlich GNOME, KDE, Unity und Cinna.

Wenn weiterhin Screen Tearing auftritt, können Sie einen anderen Compositing-Manager wie Compton oder Kwin ausprobieren. Kwin ist der Fenstermanager für KDE und ich habe Erfahrung mit der Verwendung von kwin in XFCE, als es vsync nicht unterstützte und es wirklich gut funktionierte.

Die Lösung hier ist also Experimentieren, was in einer Kombination von Treiber/WM kaputt ist, kann in einer anderen funktionieren. Ich glaube, dass sich die Situation bald verbessern wird, da Open-Source-Treiber immer fortschrittlicher werden und der Wechsel zu Wayland alte Probleme mit Xorg beseitigen könnte.


Linux
  1. Warum Linux für Edge Computing entscheidend ist

  2. Warum Programmierer die Linux-Paketierung lieben

  3. 5 Gründe, warum ich es liebe, unter Linux zu programmieren

  4. Warum ich von Mac zu Linux gewechselt bin

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

Warum ich unter Linux exa anstelle von ls verwende

3 Möglichkeiten, Videospiele unter Linux zu spielen

Die 10 wichtigsten Gründe für die Verwendung von Linux

Warum Nerds Linux verwenden

Ubuntu Linux – OpenShot-Videoeditor

Ein Video unter Linux beschleunigen