Rust GPU, un ensemble d'outils pour développer des shaders dans Rust

La société de développement de jeux Embark Studios a publié la première version expérimentale projet GPU rouillé, qui vise à utiliser le langage Rust pour développer du code GPU. 

Le désir d'utiliser Rust pour écrire des programmes pour GPU ne provient pas seulement des caractéristiques de sécurité et des performances élevées, mais aussi de la nécessité de se doter d'outils modernes pour travailler avec des packages et des modules pour améliorer l'efficacité du processus de développement.

Société de développement de GPU Rust Embark Studios utilise également Rust dans son moteur de jeu et s'efforce de faciliter l'échange de code Rust entre le CPU et le GPU.

Selon eux, Historiquement, dans les jeux, la programmation GPU se faisait en écrivant HLSL ou, dans une moindre mesure, GLSL. Ce sont des langages de programmation simples qui ont évolué parallèlement aux API de rendu au fil des ans.

Cependant, à mesure que les moteurs de jeu ont évolué, ces langages n'ont pas fourni de mécanismes pour gérer de grandes bases de code, et généralement ils ont pris du retard par rapport aux autres langages de programmation.

Bien qu'il existe généralement de meilleures alternatives pour les deux langues, aucune d'elles n'est en mesure de remplacer HLSL ou GLSL.

Soit parce qu'ils sont bloqués par le fournisseur, soit parce qu'ils ne sont pas pris en charge avec le pipeline graphique traditionnel. Des exemples de ceci incluent CUDA et OpenCL. Et bien que des tentatives aient été faites pour créer un langage dans cet espace, aucune d'elles n'a gagné en popularité dans la communauté des gamedev.

Le GPU Rust continue de développer des idées à partir du projet RLSL, dans lequel une tentative a été faite pour créer un compilateur Rust vers l'intermédiaire de shader générique SPIR-V, qui est proposé dans l'API Vulkan et pris en charge dans OpenGL 4.6.

À son stade actuel de développement, le GPU Rust vous permet déjà d'exécuter des shaders graphiques simples et de compiler une partie importante de la bibliothèque standard de base de Rust. Dans le même temps, le projet est encore loin d'être prêt pour une utilisation généralisée, par exemple les boucles ne sont pas encore prises en charge par les shaders.

Chez Embark, nous avons construit notre propre moteur de jeu à partir de zéro dans Rust. Nous avons une expérience antérieure dans le développement en interne du prototype RLSL et nous avons une équipe d'excellents ingénieurs de rendu qui connaissent les problèmes des langages de shader actuels, à la fois des jeux, des moteurs de jeux et d'autres industries. Par conséquent, nous pensons que nous sommes dans une position unique pour essayer de résoudre ce problème.

Nous voulons rationaliser notre propre développement en interne avec un seul excellent langage, créer une communauté et un écosystème graphiques open source, faciliter le partage de code entre GPU et CPU, et surtout - permettre à nos (futurs) utilisateurs et collègues développeurs ayez plus Créez rapidement des expériences engageantes et engageantes.

Sur la base du code en langage Rust, une représentation des shaders SPIR-V est formée, pour la génération desquels un backend spécial pour le compilateur Rust a été développé, qui fonctionne par analogie avec le générateur de code cranelift utilisé pour compiler en une représentation WebAssembly.

L'approche actuelle consiste à prendre en charge l'API Vulkan Graphics et les vues SPIR-V, mais des générateurs sont prévus pour l'avenir des vues de shader DXIL (DirectX) et WGSL (WebGPU). En s'appuyant sur Cargo et crates.io, des outils sont en cours de développement pour développer et publier des packages avec des shaders au format SPIR-V.

Enfin, si vous souhaitez en savoir plus sur ce projet, vous pouvez vérifier les détails dans le référentiel du projet, le lien est le suivant.

Quant à ceux qui souhaitent pouvoir connaître le code, ils doivent savoir que le code est publié sous les licences MIT et Apache 2.0 et qu'il est possible de l'obtenir à partir du lien ci-dessous.

Et ils peuvent également consulter la documentation déjà préparée pour les développeurs afin qu'ils puissent travailler sous Linux, Windows et Mac. consultez le guide sur ce lien.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.

  1.   Autopilot dit

    Rust décolle, j'espère pas une autre "Scala mortelle".