-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Open
Labels
area: naga back-endOutputs of naga shader conversionOutputs of naga shader conversionlang: SPIR-VVulkan's Shading LanguageVulkan's Shading LanguagenagaShader TranslatorShader Translatortype: bugSomething isn't workingSomething isn't working
Description
Description
Translating wgsl with an empty if in the middle of a function generates invalid spirv.
Repro steps
Translate
@workgroup_size(1)
@compute
fn comp(@builtin(global_invocation_id) id: vec3<u32>) {
if (id.x == 0) {
}
_ = 1+1; // otherwise, naga generates returns in the if statement.
return;
}
into spirv 1.6, then validate it. Demonstrated in https://github.com/Vecvec/wgpu/tree/branch-same-repro.
Expected vs observed behavior
I would expect wgsl that passes validation to also pass spirv validation. This case passes naga validation but not spirv validation
Extra materials
error: line 25: In SPIR-V 1.6 or later, True Label and False Label must be different labels
OpBranchConditional %17 %18 %18
Platform
trunk
Metadata
Metadata
Assignees
Labels
area: naga back-endOutputs of naga shader conversionOutputs of naga shader conversionlang: SPIR-VVulkan's Shading LanguageVulkan's Shading LanguagenagaShader TranslatorShader Translatortype: bugSomething isn't workingSomething isn't working
Type
Projects
Status
Todo