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
