Software-Library steht Open Source zur Verfügung

SwiftShader – Googles Rendering-Engine für 3D-Content
Kommentare

Zur Darstellung von Grafiken nutzen Browser normalerweise WebGL und somit die GPU. Doch was ist mit Geräten, die diese Technologie nicht unterstützen – aber deren Nutzer trotzdem nicht auf ordentlichen 3D-Content verzichten wollen? Da kommt Googles Rendering-Engine SwiftShader gerade recht – mit ihr erfolgt die Grafik-Berechnung in der CPU.

Die Software-Library SwiftShader wird für hochperformantes Grafik-Rendering in der CPU (Central Processing Unit) eingesetzt. Google setzt die Bibliothek bereits in verschiedenen Produkten ein, darunter in Chrome, Android-Entwicklungstools und Cloud-Diensten. Ab sofort steht sie komplett Open Source zur Verfügung.

SwiftShader – das sind die Features

In Chrome wird SwiftShader bereits seit 2009 eingesetzt, um 3D-Rendering in Systemen zu ermöglichen, die kein vollständiges Hardware-beschleunigtes Rendering unterstützen. Während 3D-Content wie etwa WebGL normalerweise in der GPU (Graphics Processing Unit) gerendert wird, unterstützen einige ältere Geräte eine solche Ausführung nicht. Zudem macht WebGL auch einigen Treibern Probleme, wodurch 3D-Rendering unzuverlässig oder sogar unmöglich werden kann. In diesen Fällen setzt Chrome die hauseigene Rendering-Engine ein, um 3D-Webinhalte allen Nutzern zur Verfügung zu stellen.

chrome, swiftshader

Chrome ohne SwiftShader auf einem System mit ungenügender GPU (links) – die Grafik kann nicht gerendert werden; Chrome mit SwiftShader (rechts) – Inhalt wird komplett gerendert

SwiftShader implementiert dasselbe OpenGL-ES-API, das auch von Chrome und Android genutzt wird. Durch die Software-Library sind auch andere Browserhersteller in der Lage, 3D-Inhalte universell zu unterstützen. Zudem ist sie auch von Cloud-Anwendungen nutzbar. Die Berechnung der Grafiken erfolgt in der CPU, die Grafikkarte wird also nicht beansprucht.

Der Code wird dynamisch generiert, sodass dieser zur Laufzeit optimiert wird. Erst durch die Verwendung von Reactor, einer speziellen C++-Spracherweiterung, wird diese Aufgabe überhaupt möglich. Durch weitere Anpassungen sind parallele Abläufe zwischen den verfügbaren CPU-Kernen und Vektoreinheiten möglich. Auf diese Weise kann auch Echtzeit-Rendering für spezielle Use Cases wie App-Streaming genutzt werden.

Ausführliche Informationen bietet der Eintrag im Chromium-Blog; der SwiftShader-Quellcode steht im Git-Repository Open Source zur Verfügung.

Name SwiftShader
Hersteller Google
Git https://swiftshader.googlesource.com/SwiftShader

Aufmacherbild: Abstract futuristic polygonal structure with blue wire-frame lines in dark room interior, 3d render illustration von Shutterstock / Urheberrecht: Eugene Sergeev

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -