RustGpu relies on the shader definitions passed into Material::specialize in order to assign the appropriate entrypoints to VertexState and FragmentState.
However, NO_TEXTURE_ARRAYS_SUPPORT, SIXTEEN_BYTE_ALIGNMENT and AVAILABLE_STORAGE_BUFFER_BINDINGS are omitted, as ShaderCache injects those at when a shader is retrieved via get, which occurs after Material::specialize.
This is accounted for in my development fork of bevy, but will block a stable release until resolved in mainline.
Upstream issue: bevy #8190