28.11.2020

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


Компания 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.

Источник: https://www.opennet.ru/opennews/art.shtml?num=53949

Добавить комментарий