Neuer Renderer für GTK
(blog.gtk.org)Neuer Renderer für GTK
- Für GTK wurden zwei neue Renderer für GL und Vulkan hinzugefügt.
- Sie verwenden die bestehenden Namen „ngl“ und „vulkan“ weiter.
- Da sie aus derselben Quelle erstellt werden, werden sie auch als „vereinheitlichter“ Renderer bezeichnet.
Eine gemeinsame Quelle
- Beide Renderer werden aus derselben Quelle erstellt und sind nach einem Modell entworfen, das der Vulkan-API folgt.
- Sie enthalten Abstraktionen, um die Unterschiede zwischen Vulkan und GL abzudecken.
- Dadurch kann Infrastruktur wie das Traversieren des Scene Graph, das Beibehalten von Transformationen sowie Texture- und Glyph-Caching gemeinsam genutzt werden.
- Eine Erweiterung auf einen Metal-basierten Renderer für macOS oder einen DirectX-basierten Renderer für Windows ist möglich.
Implementierungsdetails
- Der bestehende GL-Renderer verwendet einfache Shader und verlässt sich bei komplexeren Inhalten auf Offscreen-Rendering.
- Der vereinheitlichte Renderer hat Shader für jeden einzelnen Node und verwendet anstelle von Offscreen komplexe Shader, die Daten aus Puffern interpretieren.
- Der vereinheitlichte Renderer ist weniger optimiert, legt aber den Schwerpunkt auf Korrektheit und Wartbarkeit und kann dadurch eine größere Vielfalt an Render-Node-Bäumen korrekt verarbeiten.
Neue Funktionen
- Antialiasing: Der bisherige GL-Renderer hatte Probleme mit Detailverlust, der vereinheitlichte Renderer verbessert dies durch Antialiasing.
- Fraktionale Skalierung: Der vereinheitlichte Renderer kann fraktionale Skalierung korrekt verarbeiten.
- Beliebige Farbverläufe: Der vereinheitlichte Renderer kann Farbverläufe mit unbegrenzt vielen Farbstopps verarbeiten.
- Dmabufs: Der Vulkan-Renderer kann beim Erzeugen von Texturen über die
render_textureAPI dmabufs erzeugen.
Wichtige Hinweise
glshader-Nodes werden nicht mehr unterstützt.- Fraktionale Positionen: Der neue Renderer platziert Objekte an exakt korrekten Positionen.
- Treiberprobleme: Der neue Renderer nutzt Grafiktreiber auf neue und andere Weise, daher können Probleme auftreten.
Ist er schneller?
- Der neue Renderer ist derzeit noch nicht schneller.
- Der bestehende GL-Renderer ist auf Geschwindigkeit optimiert, während der neue Renderer neue Funktionen und höhere Korrektheit bietet.
- Der Vulkan-Renderer zeigt in inoffiziellen Benchmarks eine ähnliche Leistung wie der bestehende GL-Renderer.
Neue Standardeinstellung
- Im kürzlich veröffentlichten Snapshot 4.13.6 wurde der
ngl-Renderer als neue Standardeinstellung gesetzt. - Das ist eine experimentelle Maßnahme; bei Problemen kann wieder auf den bisherigen GL-Renderer zurückgewechselt werden.
Zukunftspläne und Möglichkeiten
- Der neue Renderer bildet eine gute Grundlage für die Umsetzung von korrekter Farbverarbeitung einschließlich HDR, Path Rendering auf der GPU, Rendering außerhalb des Main Threads und Leistungsverbesserungen.
Zusammenfassung
- Der neue Renderer bietet interessante Funktionen, und weitere sollen noch hinzukommen.
- Es wird dazu aufgerufen, den neuen Renderer auszuprobieren und Feedback dazu zu geben, ob er funktioniert.
GN⁺-Meinung
- Der neue Renderer ist ein wichtiger Fortschritt, der Entwicklern präzisere und vielfältigere Rendering-Optionen bietet.
- Der integrierte Ansatz für Vulkan und GL hat das Potenzial, die Rendering-Kompatibilität auf verschiedenen Plattformen künftig zu verbessern.
- Dieser technische Fortschritt dürfte die User Experience verbessern und zur höheren visuellen Qualität von Anwendungen beitragen.
1 Kommentare
Hacker-News-Kommentare