[WGSL] Overrides with default values have initializers which doesn't compile Opening https://webgpu.github.io/webgpu-samples/samples/shadowMapping results in the following error: program_source:58:47: error: an attribute list cannot appear here constant float shadowDepthTextureSize = 1024. [[function_constant(0)]]; as the generated metal looks like: constant float shadowDepthTextureSize = 1024. [[function_constant(0)]]; instead it should be: constant float shadowDepthTextureSize [[function_constant(0)]]; and the default value of 1024 should be returned in likely SpecializationConstant: struct SpecializationConstant { String mangledName; SpecializationConstantType type; String value; // <-- new member, or alternatively, std::variant<bool, float, int, unsigned, __fp16> }; Also it would be nice to add "Half" to SpecializationConstantType, that could be done separately. Then the default can be used in: MTLFunctionConstantValues *createConstantValues(uint32_t constantCount, const WGPUConstantEntry* constants, const WGSL::Reflection::EntryPointInformation& entryPointInformation)
<rdar://problem/116209279>