锈蚀-GPU

2020-10-23 00:15:20

今天,我们将发布Rust的一个非常早期的版本-GPU-一个新的项目,使Rust成为GPU代码的一流语言和生态系统!

GPU编程历来是使用HLSL或GLSL完成的,这两种简单的编程语言多年来随着呈现API的发展而发展。然而,随着游戏引擎的发展,这些语言未能提供处理大型代码库的机制,与其他编程语言相比,它们通常落后于其他编程语言。

我们希望通过将Rust这一现有的低级、安全和高性能的语言引入GPU来推动该行业向前发展。随之而来的还有一些额外的巨大好处:一个业界最好的软件包/模块系统,内置的安全,不受竞争条件或越界内存访问,广泛的库和工具,以改进程序员的工作流程,以及许多其他!

如果我们做对了这个项目,开发人员可以使用开放源码的板条箱,提供创造美好体验所需的图形效果。他们可以简单地添加正确的板条箱,而不是在论坛帖子上共享代码片段。

在登船,我们一直在建立我们自己的新游戏引擎从头开始在铁锈。我们之前有内部开发RLSL原型的经验,我们有一支优秀的渲染工程师团队,他们熟悉来自游戏、游戏引擎和其他行业的当前着色语言中的问题。因此,我们相信,我们处于独特的地位,可以尝试解决这个问题。

我们希望用一种优秀的语言简化我们自己的内部开发,建立一个开源图形生态系统和社区,促进GPU和CPU之间的代码共享,最重要的是:使我们(未来的)用户和其他开发人员能够更快地构建出色的外观和引人入胜的体验。

领导该项目:@Jasper-Bekkers-具有Frostbit&;Seed经验的渲染工程师和导线研究主管。

@VZout,@REPI,@MaikKlein,@h3r2tic,@hrydgard,@emilk,@NiklasNummelin-devs将尝试用Rust编写他们所有的着色器!

但我们不能单独做到这一点。这就是为什么我们决定与其余的铁锈和图形编程社区一起,公开开发这个项目。如果您有兴趣合作,请与我们联系。

编译和运行非常简单的图形着色器是可行的,核心库的很大一部分也会编译。

有了这个,我们已经能够在Rust中创建一些第一个真正的着色器,比如这个天空着色器(来源):

Rustc编译器后端生成SPIR-V,插入VIA-Z codegen-后端。未来的版本可能会支持DXIL(DirectX的目标)或WGSL(与SPIR-V双射的WebGPU着色语言)。

高级渲染图形利用了这一点,使得用户很容易开发和使用渲染效果。

我们将举行每周一次的会议,讨论不和谐问题,并在GitHub问题上分享公开的议程。RFC和其他讨论也将在GitHub处理。