RLSL的未来

2020-11-03 04:34:03

3年前,我开始了一个项目,名为“铁锈般的着色语言”(Rust Like Shading Language),将铁锈带到GPU上。我对GLSL和HLSL的现状非常不满,我想象如果我们有适当的工具,如格式化、编译器错误、适当的类型系统、包管理器、自动完成等,着色器编程将会是什么样子。在Vulkan引入SPIR-V之后,我期待着许多新的着色语言的出现,但没有一种是真正的,我决定自己解决问题。

对编译器一无所知,我为一种非常简单的语言编写了一个简单的解析器和类型检查器,我可以生成一个三角形,但我意识到编写自己的编译器是一项相当艰巨的任务,我正在考虑使用rustc。

经过几天的挠头之后,我可以再次绘制一个三角形,从铁锈->;hir(高级IR)->;SPIR-V开始。虽然将HIR转换为SPIR-V很简单,但也很耗时。我决定试用MIR(中级IR)。经过几周的摸索之后,我终于可以再次渲染这个三角形了,几天后,我还可以从shadertoy生成默认的着色器。

我预计会遇到严重的阻止问题。虽然肯定会有一些挑战,但我总是能找到一种方法来绕过它们。我只是不停地添加功能:

到那个时候,我正在处理稍微复杂的着色器,比如光线行进,然后我遇到了一个小小的凹陷。当时的生态系统相当不成熟,调试错误的编解码器非常耗时。我真的需要一种方法来自动化调试过程。

我也是一名大学生,我在RLSL上花了太多的时间,这超出了我应该花的时间。与专注于学习相比,我真的很难证明我在RLSL上的工作是合理的。

几个月后,我在登船工作室看到一篇关于生锈的帖子。长话短说,我申请了,得到了工作,从德国搬到瑞典(斯德哥尔摩)。工作中的每个人都对将Rust引入GPU非常感兴趣。只是现在还不是进行专业研究的合适时机。

在业余时间做RLSL和ASH的同时,我也在努力保持工作和生活的良好平衡。

快进一年半,我们现在有了铁锈图形处理器。有关更多细节,请参阅公告。Rust-GPU将取代RLSL。Rust-GPU是由我的一些非常有才华的同事编写的,我对他们所做的工作感到非常高兴。我正在与团队协作,尽管我现在并没有积极提交代码。我非常兴奋,很快就可以在铁锈中编写着色器了,我希望你也是。

我要感谢你们所有人多年来对我的支持。我无法告诉你,所有这些善意的评论在多大程度上帮助我度过了一些艰难的时期。谢谢你,❤️。