Die Entwickler des Mesa-Projekts haben die Zertifizierung des rusticl-Treibers durch die Khronos-Organisation bekannt gegeben, der alle Tests des CTS (Kronos Conformance Test Suite) erfolgreich bestanden hat und vollstĂ€ndig kompatibel mit der Spezifikation OpenCL 3.0 ist, die die API und Erweiterungen der Programmiersprache C fĂŒr die Organisation plattformĂŒbergreifender parallelle Berechnungen definiert. Der Erhalt des Zertifikats ermöglicht es, offiziell die KompatibilitĂ€t mit den Standards zu erklĂ€ren und die damit verbundenen Warenzeichen von Khronos zu verwenden. Der Test wurde auf einem System mit der 12. Generation integrierter Intel-GPUs durchgefĂŒhrt, auf dem der Gallium3D-Treiber Iris verwendet wurde.
Der Treiber ist in Rust geschrieben und wird von Karol Herbst von Red Hat entwickelt, der an der Entwicklung von Mesa, dem Nouveau-Treiber und dem offenen OpenCL-Stack beteiligt ist. Rusticl fungiert als Ăquivalent zum in Mesa vorhandenen OpenCL-Frontend Clover und wurde ebenfalls unter Verwendung der von Mesa bereitgestellten Gallium-Schnittstelle entwickelt. Clover befindet sich bereits seit langem im stillgelegten Zustand, und rusticl wird als dessen zukĂŒnftiger Ersatz positioniert. Neben der Erreichung 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 nicht das FP16-Format. Um Bindings fĂŒr Mesa und OpenCL zu generieren, die den Aufruf von Rust-Funktionen aus C-Code und umgekehrt ermöglichen, kommt in Rusticl rust-bindgen zum Einsatz.
Der Code zur UnterstĂŒtzung der Programmiersprache Rust und des rusticl-Treibers wurde in den Hauptzweig von Mesa ĂŒbernommen und wird in der am Ende November erwarteten Version Mesa 22.3 angeboten. Die UnterstĂŒtzung fĂŒr Rust und rusticl wird standardmĂ€Ăig deaktiviert sein und erfordert einen Build mit der expliziten Angabe der Optionen â-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021â. Bei der Erstellung werden als zusĂ€tzliche AbhĂ€ngigkeiten der Compiler rustc, der Bindungsgenerator bindgen, LLVM, das SPIRV-Tools-Toolset und der SPIRV-LLVM-Ăbersetzer benötigt.
Die Möglichkeit, die Programmiersprache Rust im Mesa-Projekt zu verwenden, wird seit 2020 diskutiert. Zu den Vorteilen der Rust-UnterstĂŒtzung zĂ€hlen die erhöhte Sicherheit und QualitĂ€t der Treiber durch die Beseitigung typischer Speicherprobleme sowie die Möglichkeit, externe BeitrĂ€ge wie Kazan (eine Vulkan-Implementierung in Rust) in Mesa einzufĂŒgen. Zu den Nachteilen gehören die KomplexitĂ€t des Build-Systems, das Unbehagen, sich an das Paketverwaltungssystem Cargo zu binden, die Erweiterung der Anforderungen an die Build-Umgebung und die Notwendigkeit, den Rust-Compiler in die fĂŒr den Bau der SchlĂŒsselkomponenten des Desktops in Linux erforderlichen AbhĂ€ngigkeiten aufzunehmen.
ZusĂ€tzlich kann die Entwicklung des Nouveau-Treibers erwĂ€hnt werden, die ebenfalls von Carol Herbst durchgefĂŒhrt wurde. Der Nouveau-Treiber hat grundlegende OpenGL-UnterstĂŒtzung fĂŒr GNU NVIDIA GeForce RTX 30xx auf Basis der Mikroarchitektur Ampere erhalten, die seit Mai 2020 auf dem Markt 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
