游戏开发公司 Embark Studios发布了第一个实验版本 项目的 Rust GPU, 旨在使用Rust语言 开发GPU代码。
使用Rust的愿望 为GPU编写程序 不仅源于安全功能和高性能, 而且还需要获得与软件包和模块一起使用的现代工具,以提高开发过程的效率。
Rust GPU开发公司Embark Studios 在游戏引擎中也使用Rust 并且正在努力促进CPU和GPU之间的Rust代码交换。
根据他们, 历史上,在游戏中,GPU编程是通过编写HLSL完成的 或在较小程度上包括GLSL。 这些是简单的编程语言,这些年来随着渲染API一起发展。
但是,随着游戏引擎的发展,这些语言还没有提供处理大型代码库的机制,总的来说, 与其他编程语言相比,它们已经落后了。
虽然一般来说,两种语言都有更好的替代方法,但是都无法代替HLSL或GLSL。
是因为它们被提供程序阻止,还是因为它们不受支持 与传统的图形管道。 这样的示例包括CUDA和OpenCL。 尽管已尝试在此空间中创建语言,但没有一个在gamedev社区中获得明显的吸引力。
Rust GPU继续根据RLSL项目开发思想,其中尝试为SPIR-V通用着色器中间件创建Rust编译器,该编译器在Vulkan API中提出,并在OpenGL 4.6中得到支持。
在目前的开发阶段,Rust GPU已经允许您运行简单的图形着色器并编译Rust基本标准库的重要部分。 同时,该项目还没有为广泛使用做好准备,例如,着色器尚不支持循环。
在Embark,我们一直在Rust中从头开始构建自己的游戏引擎。 我们在RLSL原型的内部开发方面拥有先前的经验,我们拥有一支由出色的渲染工程师组成的团队,他们熟悉游戏,游戏引擎和其他行业中当今着色器语言的问题。 因此,我们认为我们处于解决这一问题的独特位置。
我们希望使用一种出色的语言简化我们自己的内部开发,建立一个开源图形社区和生态系统,促进GPU和CPU之间的代码共享,最重要的是-使我们(未来的)用户和其他开发人员拥有更多快速创建引人入胜的体验。
基于Rust语言的代码,形成了SPIR-V着色器的表示形式,为此开发了一个Rust编译器的特殊后端,该类后端类似于用来编译成表示形式的Cranelift代码生成器WebAssembly。
当前的方法是支持Vulkan图形API和SPIR-V视图, 但是计划在未来的DXIL(DirectX)和WGSL(WebGPU)着色器视图中使用生成器。 基于Cargo和crates.io,正在开发工具来开发和发布带有SPIR-V格式的着色器的程序包。
最后,如果您想进一步了解该项目,可以在项目存储库中查看详细信息, 链接是这个。
对于那些对知道代码感兴趣的人,他们应该知道该代码是根据MIT和Apache 2.0许可发布的,并且有可能获取它 从下面的链接。
他们还可以查阅已经为开发人员准备的文档,以便他们可以在Linux,Windows和Mac上工作。 请参阅此链接上的指南。
Rust起飞了,希望不会再有“致命的Scala”了。