NEW262346
[WGSL] Overrides with default values have initializers which doesn't compile
https://bugs.webkit.org/show_bug.cgi?id=262346
Summary [WGSL] Overrides with default values have initializers which doesn't compile
Mike Wyrzykowski
Reported 2023-09-28 16:46:03 PDT
[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)
Attachments
Radar WebKit Bug Importer
Comment 1 2023-09-28 16:46:26 PDT
Note You need to log in before you can comment on or make changes to this bug.