Rust GPU, набор инструментов для разработки шейдеров в Rust

Компания по разработке игр Embark Studios выпустила первый экспериментальный релиз проект Ржавчина GPU, который нацелен на использование языка Rust для разработки кода GPU. 

Желание использовать Rust писать программы для GPU проистекает не только из соображений безопасности и высокой производительности, но также и о необходимости получить современные инструменты для работы с пакетами и модулями, чтобы повысить эффективность процесса разработки.

Компания Embark Studios, разрабатывающая графические процессоры на Rust также использует Rust в своем игровом движке и он работает, чтобы облегчить обмен кодом Rust между CPU и GPU.

Согласно им, исторически в играх программирование GPU выполнялось с помощью HLSL. или, в меньшей степени, GLSL. Это простые языки программирования, которые развивались вместе с API рендеринга на протяжении многих лет.

Однако по мере развития игровых движков эти языки не предоставляли механизмов для работы с большими кодовыми базами, и в целом они отстали по сравнению с другими языками программирования.

Хотя, как правило, существуют лучшие альтернативы для обоих языков, ни один из них не может заменить HLSL или GLSL.

Либо потому, что они заблокированы поставщиком, либо потому, что они не поддерживаются с традиционным графическим конвейером. Примеры этого включают CUDA и OpenCL. И хотя были предприняты попытки создать язык в этой области, ни одна из них не получила заметной поддержки в сообществе разработчиков игр.

Rust GPU продолжает развивать идеи из проекта RLSL, в котором была предпринята попытка создать компилятор Rust для универсального промежуточного шейдера SPIR-V, который предлагается в API Vulkan и поддерживается в OpenGL 4.6.

На текущем этапе разработки Rust GPU уже позволяет запускать простые графические шейдеры и компилировать значительную часть базовой стандартной библиотеки Rust. В то же время проект еще далек от готовности к широкому использованию, например циклы еще не поддерживаются шейдерами.

В Embark мы создавали собственный игровой движок с нуля на Rust. У нас есть предыдущий опыт внутренней разработки прототипа RLSL, и у нас есть команда превосходных инженеров по рендерингу, которые знакомы с проблемами современных языков шейдеров как из игр, так и из игровых движков и других отраслей. Поэтому мы считаем, что находимся в уникальном положении, чтобы попытаться решить эту проблему.

Мы хотим упростить нашу собственную внутреннюю разработку с помощью единого отличного языка, создать сообщество и экосистему графики с открытым исходным кодом, облегчить совместное использование кода между графическим процессором и процессором и, что наиболее важно, позволить нашим (будущим) пользователям и другим разработчикам иметь больше Быстро создавайте увлекательные и увлекательные впечатления.

На основе кода на языке Rust формируется представление шейдеров SPIR-V, для генерации которого разработан специальный бэкэнд для компилятора Rust, работающий по аналогии с генератором кода кранлифта, используемым для компиляции в представление WebAssembly.

Текущий подход заключается в поддержке графического API Vulkan и представлений SPIR-V, но в будущем планируется создание генераторов для шейдерных представлений DXIL (DirectX) и WGSL (WebGPU). На основе Cargo и crates.io разрабатываются инструменты для разработки и публикации пакетов с шейдерами в формате SPIR-V.

Наконец, если вы хотите узнать больше об этом проекте, вы можете проверить детали в репозитории проекта, ссылка такая.

Что касается тех, кто заинтересован в возможности узнать код, они должны знать, что код публикуется под лицензиями MIT и Apache 2.0 и его можно получить. по ссылке ниже.

И они также могут ознакомиться с документацией, которая уже подготовлена ​​для разработчиков, чтобы они могли работать в Linux, Windows и Mac. обратитесь к руководству по этой ссылке.


Комментарий, оставьте свой

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Автопилот сказал

    Rust взлетает, надеюсь, это не еще одна «смертоносная Scala».