Quirks

GPU.sb3 has some quirks that might make development a bit annoying if you don't know about them. Some of these are obvious, others less so. I'm probably forgetting a lot, so this list may be updated over time.

If you use any block not in the blocks list compilation will fail

Most scratch blocks are either not usable, unnecessary, or just impossible in WGSL.

You need to compile the shaders before you can use them

The extension needs to convert the scratch blocks into actual code, and this can be slow so you should only do it when you have to.

The f32 array block returns a reference

You can't do anything to this array. You might be able to in the future, idk.

The variable created via the for loop block is an i32

If you want to use it for something else you need to convert it, there are some casting functions in the wgsl builtin functions.

NO RECURSION

This is a limitation from wgsl, I can't do anything about it! If you're saying "but derpygamer2142, shadertoy does it!", that's because shadertoy uses glsl and inigo quilez used some sort of witchcraft that I can't be bothered researching.

arrayLength builtin function doesn't work on anything other than bound buffers

Once again, this is an issue with wgsl and not me. Cry about it.

Previous page: blocks

Next page: internals