Die Entwickler des Mesa-Projekts haben die Zertifizierung des Rusticl-Treibers durch die Khronos-Organisation bekannt gegeben. Dieser hat erfolgreich alle Tests der Khronos Conformance Test Suite (CTS) bestanden und wird als vollständig kompatibel mit der OpenCL 3.0-Spezifikation anerkannt, die die API und Erweiterungen der Programmiersprache C für plattformübergreifende Parallelberechnungen definiert. Der Erhalt des Zertifikats ermöglicht eine offizielle Erklärung zur Kompatibilität mit den Standards und zur Nutzung der entsprechenden Marken von Khronos. Die Überprüfung wurde auf einem System mit der 12. Generation integrierter Intel-GPUs durchgeführt, das den Gallium3D-Treiber Iris verwendete.
Der Treiber ist in der Programmiersprache Rust verfasst und wird von Karol Herbst von Red Hat entwickelt, der an der Entwicklung von Mesa, dem Nouveau-Treiber und dem OpenCL-Stack beteiligt ist. Rusticl fungiert als Pendant zum OpenCL-Frontend Clover in Mesa und wurde ebenfalls mithilfe der in Mesa bereitgestellten Gallium-Schnittstelle entwickelt. Clover ist seit langem nicht mehr aktiv, und rusticl wird als dessen zukünftiger Nachfolger positioniert. Neben der Kompatibilität mit OpenCL 3.0 unterscheidet sich das Projekt Rusticl von Clover durch die Unterstützung von OpenCL-Erweiterungen zur Bildverarbeitung, unterstützt jedoch derzeit noch nicht das FP16-Format. Zur Generierung von Bindings für Mesa und OpenCL, die es ermöglichen, Rust-Funktionen aus C-Code und umgekehrt aufzurufen, wird in Rusticl rust-bindgen verwendet.
Der Support für die Programmiersprache Rust und den Treiber rusticl wurde in den Hauptzweig von Mesa aufgenommen und wird in Mesa 22.3, die Ende November erwartet wird, verfügbar sein. Der Rust- und rusticl-Support ist standardmäßig deaktiviert und erfordert eine Kompilierung mit den expliziten Optionen „-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021“. Für die Kompilierung werden als zusätzliche Abhängigkeiten der Rust-Compiler rustc, der Bindungs-Generator bindgen, LLVM, das Werkzeug-SPIRV und der SPIRV-LLVM-Translator benötigt.
Die Möglichkeit, die Programmiersprache Rust im Mesa-Projekt zu nutzen, wird seit 2020 diskutiert. Zu den Vorteilen der Unterstützung von Rust zählen eine höhere Sicherheit und Qualität der Treiber, da typische Probleme im Umgang mit Speicher vermieden werden, sowie die Möglichkeit, externe Entwicklungen wie Kazan (eine Vulkan-Implementierung in Rust) in Mesa aufzunehmen. Zu den Nachteilen gehören die Komplexität des Build-Systems, der Widerstand gegen die Bindung an das Paketmanagement-System Cargo, erweiterte Anforderungen an die Build-Umgebung und die Notwendigkeit, den Rust-Compiler in die Build-Abhängigkeiten einzubeziehen, die für die Erstellung der wichtigsten Desktop-Komponenten in Linux erforderlich sind.
Zusätzlich kann die Entwicklung des Nouveau-Treibers erwähnt werden, die von Carol Herbst durchgeführt wurde. Der Nouveau-Treiber bietet grundlegende OpenGL-Unterstützung für die GNU NVIDIA GeForce RTX 30xx, die auf der Ampere-Architektur basiert und seit Mai 2020 erhältlich ist. Die mit der Unterstützung neuer Chips verbundenen Änderungen werden in den Linux-Kernel 6.2 und Mesa 22.3 integriert.
Quelle: opennet.ru
