Rust GPU,一套用于在Rust中开发着色器的工具

游戏开发公司 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上工作。 请参阅此链接上的指南。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   自动驾驶仪

    Rust起飞了,希望不会再有“致命的Scala”了。