SDL3 verzögert die Wayland-Unterstützung 

SDL

SDL ist eine Reihe von Bibliotheken, die in der Programmiersprache C entwickelt wurden und grundlegende Funktionen für die Durchführung von Multimedia-Vorgängen (Audio und Video) sowie das Laden und Verwalten von Bildern bereitstellen.

SDL ist eine Bibliothek bietet Tools wie hardwarebeschleunigte 2D- und 3D-Grafikausgabe, worüber wir bereits mehrfach gesprochen haben hier auf dem Blog (normalerweise bei ihren neuen Versionen) funktionierte diese Bibliothek lange Zeit standardmäßig auf X11, jedoch mit Wayland als zweiter Option.

Zur Zeit Entwickler arbeiten am neuen Zweig von SDL3 wobei eines der Hauptmerkmale und (insbesondere) eine Neuheit die Verdrängung von X11 durch die standardmäßige Verwendung von Wayland war, ein Schritt, der theoretisch viele Aspekte der Bibliothek verbessern würde.

Aber es scheint (zumindest vorerst), dass seit kurzem weder das eine noch das andere in SDL3 erfüllt sein wird Es wurde eine Anfrage an die Entwickler gestellt, was im Grunde bestand darin, die Änderung zu widerrufen, mit der der SDL3-Zweig auf die Verwendung des Wayland-Protokolls umgestellt wurde als Standard in Umgebungen, die Wayland und X11 gleichzeitig unterstützen.

Wayland hat eine große Anzahl ungelöster Probleme im Zusammenhang mit der Einführung der Oberflächenschlafblockierung und der grundsätzlich fehlerhaften FIFO-Implementierung (vsync), die zu einer verringerten GPU-Leistung führt.

Das heißt nicht „wir sollten FIFO in Mesa/anderen Treibern reparieren“, sondern dass es überhaupt nicht ohne ein zusätzliches Protokoll, in diesem Fall fifo-v1, behoben werden kann 1 .

Ohne dieses Protokoll müssen vkQueuePresent oder glSwapBuffers nach der Präsentation eines Bildes für den „Frame“-Rückruf anhalten. Der einzige Grund, warum wir damit auf SteamOS durchkommen, ist, dass Gamescope im Wesentlichen fifo-v1 implementiert und wir es dort verwenden ...

Es gibt keinen Vorteil, wenn durchschnittliche Spiele und Apps Wayland gegenüber
Daher müssen wir diese Änderung rückgängig machen, bis fifo-v1 und commit-timing-v1 veröffentlicht werden und zumindest in einer stabilen Version für große Komponisten.

Obwohl Die Pull-Anfrage wurde überprüft und genehmigt vom Erfinder von SDL, wurde noch nicht in die Codebasis übernommen. Der Hauptgrund sind ungelöste Probleme in der Wayland-Umgebung im Zusammenhang mit der Oberflächensperrung und der FIFO-Implementierung (vsync), die zu einer verminderten Leistung führen. Diese Probleme können ohne die Implementierung der zusätzlichen Protokolle fifo-v1 und commit-timing-v1 nicht vollständig gelöst werden.

Es wird hervorgehoben, dass Ohne die Lösung dieser Probleme bietet der Übergang von X11 zu Wayland keine wesentlichen Vorteile für gängige Anwendungen und Spiele, führt aber zu gravierenden Leistungseinbußen und möglichen Rückschritten. Daher wird empfohlen, die Migration von SDL zu Wayland erst dann zu überdenken, wenn die Protokolle fifo-v1 und commit-timing-v1 genehmigt und in stabilen Versionen der wichtigsten Composite-Manager implementiert wurden.

Im Hinblick auf den Fall ist es wichtig, dies zu erwähnen Derzeit ist die Annahme des Antrags „aufgeschoben“ Da Sam Lantinga, der Erfinder von SDL, angekündigt hat, diese Anfrage im Zusammenhang mit der Umstellung auf Wayland standardmäßig zu prüfen, erwähnt er, dass der Fall später (näher an der endgültigen Veröffentlichung von SDL3) behandelt wird, da bereits beschlossen wurde, dies zu tun Wenn Sie es vorziehen, die oben genannten Probleme anzugehen, kann sich die Situation bis dahin normalisieren. Wayland bleibt vorerst in SDL 3-Testversionen aktiviert, um eine bessere Bewertung in Wayland-basierten Umgebungen zu ermöglichen und Benutzerfeedback zu sammeln.

Obwohl Im Moment scheint alles darauf hinzudeuten, dass Wayland die endgültige Wahl sein wirdWenn die Probleme nicht gelöst werden und vor allem keine optimale Leistung erreicht wird, könnte Waylands Verzögerung als Zahlungsverzug Realität werden.

Im Moment können Sie den aktuellen Stand der Entwicklung des neuen SDL 3-Zweigs einsehen, Dazu gehören Änderungen an verschiedenen Subsystemen, API-Änderungen, die sich auf die Kompatibilität auswirken können, und eine gründliche Bereinigung veralteter Funktionen. Beispielsweise wurde in SDL 3 der Code für die Arbeit mit Sound komplett neu gestaltet, in der 2D-Rendering-API wurde ein neues Backend für das Rendering über die Vulkan-API eingeführt, die Unterstützung für HDR wurde erweitert, die API für die Arbeit mit transparenten Fenstern u. a .

Wenn Sie Interesse daran, den Fortschritt zu erfahren In SDL3 können Sie die von angebotene Testversion nutzen den folgenden Link.Wenn Sie andererseits die Wayland-Verzögerungsdiskussion weiterverfolgen möchten, können Sie dies tun über den Link unten.