Login
Newsletter
Werbung

Fr, 2. November 2018, 09:58

Software::Grafik

Zink: OpenGL-Implementation über der Vulkan-Schnittstelle

Erik Faye-Lund hat das Projekt Zink vorgestellt, das es jeder Anwendung, die OpenGL über Mesa nutzt, ermöglicht, mit Vulkan-Treibern zu laufen. Es macht die Hardware-Beschleunigung von Vulkan auch den Anwendungen zugänglich, die weiter die OpenGL-Schnittstelle aufrufen.

Open-Source-Grafikarchitektur mit Zink

Erik Faye-Lund

Open-Source-Grafikarchitektur mit Zink

Vulkan ist ein plattform- und herstellerunabhängiger Standard für 3D-Grafik, der eine offene Schnittstelle definiert. Er ist der Nachfolger von OpenGL und soll den Zugriff auf die Grafik- und Hochleistungsberechnungs-Hardware moderner Rechner noch effizienter und besser steuerbar machen, den Treiber-Overhead minimieren und die Parallelität maximieren. Es ermöglicht, wo nötig, die direkte Kontrolle über die GPU. Die Treiber sollen einfacher sein als bei OpenGL und die Parallelinstallation mehrerer Treiber ist ebenfalls vorgesehen.

Einige der wichtigsten Grafiktreiber bieten jetzt sowohl die OpenGL- als auch die Vulkan-Schnittstelle an. Es gibt aber bereits neuere Treiber, die nur Vulkan anbieten, und die Möglichkeit besteht, dass OpenGL irgendwann auch aus den Treibern verschwinden wird, denn OpenGL wird sich nicht mehr wesentlich weiterentwickeln. Das wäre aber ein Problem für viele Anwendungen, die OpenGL nutzen. Diese auf Vulkan umzustellen, bedeutet jeweils einen erheblichen zeitlichen Aufwand.

Das Projekt Zink von Erik Faye-Lund verschafft diesen Anwendungen erst einmal eine längere Frist. Der bei Collabora arbeitende Entwickler hat das Projekt jetzt offiziell vorgestellt. Zink ist eine OpenGL-Implementation, die intern Vulkan nutzt. Die Implementation von Zink erfolgte als Gallium-Treiber in der OpenGL-Bibliothek Mesa. Zink ermöglicht den Anwendungen daher, weiterhin OpenGL zu nutzen, auch wenn der eigentliche Grafiktreiber nur Vulkan anbietet. Für Anwendungen, die Mesa nutzen, ändert sich daher gar nichts.

Faye-Lund gibt vier Gründe für die Schaffung von Zink an: Vereinfachung des Grafik-Subsystems, einfachere Wartung der Grafiktreiber, mehr Integration und erleichterte Portierung der Anwendungen auf Vulkan. Diese Gründe erläutert er nachfolgend genauer. Nach seiner Auffassung werden mehr und mehr Anwendungen für Vulkan ertüchtigt, aber OpenGL wird nicht verschwinden. Dank Zink müssen Treiber künftig nur noch Vulkan unterstützen, was die Komplexität stark reduziert. Denn OpenGL ist über 25 Jahr gewachsen und hat einen enormen Umfang. Die Portierung der Anwendungen auf Vulkan kann durch Zink erleichtert werden, wenn es so erweitert wird, dass Anwendungen Zink und direkte Vulkan-Aufrufe nebeneinander verwenden können.

Allerdings ist Zink noch nicht allzu weit fortgeschritten. Es benötigt Vulkan 1.0, nutzt also noch keine der Erweiterungen von Vulkan 1.1. Es implementiert zur Zeit lediglich OpenGL 2.1, OpenGL ES 1.1 und OpenGL ES 2.0, und auch diese noch nicht in vollem Umfang. Bedingt durch die »Übersetzung« von OpenGL in Vulkan kann Zink auch nicht die Geschwindigkeit von nativen OpenGL-Treibern erreichen. Es ist aber bereits jetzt nutzbar und kann noch optimiert werden. Da Zink noch in keine Linux-Distribution aufgenommen wurde, müssen Interessierte den Code aus den im Beitrag angegebenen Quellen beziehen. Es sollte aber nicht mehr lange dauern, bis Zink in Mesa integriert wird und neuere OpenGL-Versionen unterstützt - volle Unterstützung für OpenGL 4.6 ist das Ziel.

Werbung
Pro-Linux
Pro-Linux @Facebook
Neue Nachrichten
Werbung