Bug 262346
| Summary: | [WGSL] Overrides with default values have initializers which doesn't compile | ||
|---|---|---|---|
| Product: | WebKit | Reporter: | Mike Wyrzykowski <mwyrzykowski> |
| Component: | WebGPU | Assignee: | Nobody <webkit-unassigned> |
| Status: | NEW | ||
| Severity: | Normal | CC: | webkit-bug-importer |
| Priority: | P2 | Keywords: | InRadar |
| Version: | Other | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
Mike Wyrzykowski
[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 | ||
|---|---|---|
| Add attachment proposed patch, testcase, etc. |
Radar WebKit Bug Importer
<rdar://problem/116209279>