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

23 октября 2020 года

Компания Embark Studios, специализирующаяся на разработке игр, опубликовала первый экспериментальный выпуск проекта Rust GPU, нацеленного на использование языка Rust для разработки кода для GPU. Код опубликован под лицензиями MIT и Apache 2.0.

Желание использовать Rust для написания программ для GPU объясняется не только средствами для обеспечения безопасности программ и высокой производительностью, но и необходимостью получить современные инструменты для работы с пакетами и модулями для повышения эффективности процесса разработки. Развивающая Rust GPU компания Embark Studios также использует Rust в своём игровом движке и работает в направлении упрощения совместного использования кода на Rust для CPU и GPU.

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

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

Источники

править
 
 
Creative Commons
Эта статья содержит материалы из статьи «Представлен Rust GPU, инструментарий для разработки шейдеров на языке Rust», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.