Os desenvolvedores do projeto Mesa anunciaram que o driver rusticl foi certificado pela Khronos. Ele passou com sucesso em todos os testes do Kronos Conformance Test Suite (CTS) e é considerado totalmente compatível com a especificação OpenCL 3.0, que define APIs e extensões da linguagem C para computação paralela multiplataforma. A obtenção dessa certificação permite à Khronos declarar oficialmente a conformidade com os padrões e usar as marcas registradas associadas. A verificação foi realizada em um sistema com GPUs integradas Intel de 12ª geração, utilizando o driver Gallium3D Iris.
O driver é escrito em Rust e desenvolvido por Karol Herbst da Red Hat, que está envolvido no desenvolvimento do Mesa, do driver Nouveau e da pilha OpenCL de código aberto. O Rusticl atua como um análogo do frontend OpenCL do Mesa, o Clover, e também é desenvolvido usando a interface Gallium do Mesa. O Clover foi abandonado há muito tempo, e o Rusticl se posiciona como seu futuro substituto. Além de alcançar compatibilidade com o OpenCL 3.0, o Rusticl difere do Clover por suportar extensões OpenCL para processamento de imagens, mas ainda não suporta o formato FP16. O Rusticl usa o rust-bindgen para gerar bindings para o Mesa e o OpenCL, permitindo que funções Rust sejam chamadas a partir de código C e vice-versa.
O código de suporte à linguagem Rust e o driver rusticl foram aceitos no núcleo do Mesa e serão lançados no Mesa 22.3, previsto para o final de novembro. O suporte a Rust e rusticl estará desativado por padrão e exigirá opções de compilação explícitas, como "-D gallium-rusticl=true -Dllvm=enabled -Drust_std=2021". Dependências de compilação adicionais incluem o compilador rustc, bindgen, LLVM, SPIRV-Tools e SPIRV-LLVM-Translator.
A possibilidade de usar a linguagem Rust no projeto Mesa vem sendo discutida desde 2020. Entre as vantagens de suportar Rust estão o aumento da segurança e da qualidade dos drivers devido à eliminação de problemas comuns de memória, bem como a capacidade de incorporar desenvolvimentos de terceiros ao Mesa, como o Kazan (uma implementação em Rust do Vulkan). As desvantagens incluem maior complexidade do sistema de compilação, resistência em se integrar ao sistema de empacotamento Cargo, requisitos expandidos do ambiente de compilação e a necessidade de incluir o compilador Rust nas dependências de compilação necessárias para construir componentes essenciais para a área de trabalho. Linux.
Além disso, o trabalho de desenvolvimento do driver Nouveau, também liderado por Carol Herbst, é digno de nota. O driver Nouveau adiciona suporte básico a OpenGL para GPUs NVIDIA GeForce RTX 30xx baseadas na microarquitetura Ampere, lançadas desde maio de 2020. As alterações relacionadas ao suporte para os novos chips serão incorporadas ao kernel. Linux 6.2 e Mesa 22.3.
Fonte: opennet.ru
