Gallium3D
# Gallium3D

Gallium3D (auch „Gallium 3D“ geschrieben) ist eine ursprünglich von Tungsten Graphics entwickelte Programmierschnittstelle, die die Entwicklung von plattformunabhängigen Grafiktreibern erleichtern soll. Die Hauptaufgabe besteht in der Zusammenfassung von Funktionen, wie sie jeder Grafiktreiber benötigt, um auf modernen Grafikprozessoren hardwarebeschleunigte Grafikausgaben zu realisieren. Hierbei abstrahiert Gallium3D an verschiedenen Punkten (Betriebssystem, Computergrafik-APIs wie OpenGL oder DirectX usw.), um dem eigentlichen Grafiktreiber eine einheitliche Schnittstelle anzubieten.
Gallium3D ist seit 2009 Teil von Mesa 3D und wird derzeit von den freien Treibern für AMD-Radeon-GPUs (ab dem R300), nVidia-GeForce-GPUs und einigen Intel-GPUs (vor allem im Bereich von Android und Chromium OS) eingesetzt.
Darüber hinaus gibt es mit LLVMpipe einen Treiber auf Gallium3D-Basis, der mittels Software Rendering per LLVM OpenGL-Nutzung auf Grafik-Hardware ohne dedizierte Treiber ermöglicht.
In etlichen Linux-Benchmarks waren Gallium3D-Treiber langsamer, doch hat sich die Situation in den vergangenen Jahren auch durch die Bereitstellung von Dokumentationen durch AMD drastisch geändert, so dass oftmals der quelloffene radeonsi performanter ist als der proprietäre fglrx bei OpenGL-Benchmarks. Seit 2018 entwickelt auch Intel einen Gallium3D-Treiber für ihre IGP, Codename iris, der seit Mesa 19.1 auf experimenteller Basis enthalten ist. Dennoch sind die Qualitäts- und Leistungs-Unterschiede zwischen quelloffenen und proprietären Treibern je nach Hardware sehr groß.
* Mesa/DRI und Gallium3D haben unterschiedliche Modelle für Gerätetreiber. Beide teilen allerdings große Mengen an freiem Quellcode.
* Eine mögliche Matrix, wenn das Gallium3D Model konsequent umgesetzt würde. Durch die Einführung der beiden Schnittstellen Gallium3D Tracker Interface und Gallium3D WinSys Interface sind nur 18 anstatt 36 Module notwendig. Jedes WinSys-Modul kann mit jedem Gallium3D Gerätetreiber-Modul und mit jedem State Tracker-Modul kombiniert werden.
* Illustration des Linux Grafik Stacks