https://gpuweb.github.io/gpuweb/#abstract-opdef-default-pipeline-layout
As an example:
Else if the sampled type of resource is:
- f32 and resource is statically used with a textureSample* builtin in the shader
Set textureLayout.sampleType to "float"
- f32 otherwise
Set textureLayout.sampleType to "unfilterable-float"
- i32
Set textureLayout.sampleType to "sint"
- u32
Set textureLayout.sampleType to "uint"
Is there a reason why the WGSL type name is "u32", and the bind-group-layout type name is "uint"? Making these more similar would help reduce cognitive load when translating layouts between shaders and the API.