Does Unity have plans to use SLANG for shaders? What do others think of SLANG?

Khronos Group Launch Slang Shader Language – GameFromScratch.com

The Slang Shading Language

With NVidia, Autodesk, Vulkan, Valve, and others supporting it, and pushing for industry adoption, it seems like something Unity might look at adopting into its own eco system. As is, it can be used to produce HLSL, GLSL, WGSL and Metal.

I haven’t used it and am also wondering about other’s experience with it as Unity developers. Do you think it’s worth adopting, does it need to be, reasons for/against?

11 Likes

Bump. I would love to see it, but it would probably take a major rewrite to all SRPs, no?

I have to say it’s a non-starter for any existing game engines as it involves a rewrite of the entire ecosystem, which is not acceptable.
HLSL has already switched its interchange data format to SPIR-V officially so that there should be no issue on cross-platform. So what else significant improvements can SLANG bring the existing ecosystem except a different syntax?

one thing i would look very much forward to is actual proper language server protocol utilization and everything that comes with it

HLSL already has its language server: tgjones/HlslTools: A Visual Studio extension that provides enhanced support for editing High Level Shading Language (HLSL) files

It’s shipped in a VS extension currently but the language server can be built and run separately, and the language server itself is cross-platform (you need to tweak a bit on the csproj to enable build for other platforms): HlslTools/src/ShaderTools.LanguageServer at master · tgjones/HlslTools

sure, there are already some 3rd party language server extensions, heck, i’m the co-author of one, however, none are super great.

additionally, i’ve just yesterday looked more into slang and actually used it to (re-)write some shaders for a current project of mine, and oh boi it was a treat. not only does slang basically support full hlsl syntax by default, so you don’t really have much work when porting existing shaders, no it also supports many different syntaxes overall so you can choose the syntax that you want. after the rewrite of my existing shaders (that worked fine without any real syntax change, but I chose to change the syntax afterall), my new shader code now looks incredibly similar to C#, and that is just the most divine feeling