Los desarrolladores del proyecto Mesa anunciaron la certificación del controlador rusticl por la organización Khronos, que ha superado todas las pruebas del conjunto CTS (Kronos Conformance Test Suite) y se ha reconocido como completamente compatible con la especificación OpenCL 3.0, que define la API y las extensiones del lenguaje C para la organización de cálculos paralelos multiplataforma. La obtención del certificado permite afirmar oficialmente la compatibilidad con los estándares y utilizar las marcas comerciales relacionadas de Khronos. La verificación se realizó en un sistema con GPU integradas Intel de 12ª generación, utilizando el controlador Gallium3D Iris.
El controlador está escrito en Rust y es desarrollado por Karol Herbst de Red Hat, quien participa en el desarrollo de Mesa, el controlador Nouveau y la pila abierta de OpenCL. Rusticl actúa como el análogo del frontend OpenCL Clover presente en Mesa y también se desarrolla utilizando la interfaz Gallium proporcionada en Mesa. Clover ha estado en estado de abandono durante mucho tiempo y rusticl se posiciona como su futura reemplazo. Además de lograr la compatibilidad con OpenCL 3.0, el proyecto Rusticl se diferencia de Clover por el soporte de extensiones OpenCL para el procesamiento de imágenes, aunque actualmente no admite el formato FP16. Para generar las vinculaciones para Mesa y OpenCL, que permiten invocar funciones de Rust desde el código en C y viceversa, rust-bindgen se utiliza en Rusticl.
El código para el soporte del lenguaje Rust y el controlador rusticl ha sido aceptado en el núcleo de Mesa y se propone para el lanzamiento de Mesa 22.3, que se espera a finales de noviembre. El soporte para Rust y rusticl estará desactivado por defecto y requerirá una compilación con la indicación explícita de las opciones «-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021». En la compilación, se requerirán como dependencias adicionales el compilador rustc, el generador de vinculaciones bindgen, LLVM, las herramientas SPIRV-Tools y el traductor SPIRV-LLVM-Translator.
La posibilidad de usar el lenguaje Rust en el proyecto Mesa se ha discutido desde 2020. Entre los beneficios de la compatibilidad con Rust se mencionan el aumento de la seguridad y la calidad de los controladores al eliminar problemas típicos relacionados con la memoria, así como la posibilidad de incluir en Mesa trabajos de terceros, como Kazan (una implementación de Vulkan en Rust). Entre las desventajas, se destacan la complejidad del sistema de construcción, la reluctancia a depender del sistema de paquetes cargo, la expansión de los requisitos del entorno de construcción y la necesidad de incluir el compilador Rust en las dependencias de construcción necesarias para crear componentes clave del escritorio en Linux.
Además, se puede mencionar el trabajo en el desarrollo del controlador Nouveau, también llevado a cabo por Carol Herbst. Se ha agregado soporte básico para OpenGL en el controlador Nouveau para las tarjetas gráficas GNU NVIDIA GeForce RTX 30xx, basadas en la microarquitectura Ampere, producidas desde mayo de 2020. Los cambios relacionados con el soporte de nuevos chips se incluirán en el núcleo de Linux 6.2 y en Mesa 22.3.
Fuente: opennet.ru
