diff --git a/src/proc/namer.rs b/src/proc/namer.rs index 90c91e503d..ea1971c801 100644 --- a/src/proc/namer.rs +++ b/src/proc/namer.rs @@ -89,7 +89,13 @@ impl Namer { pub fn call_or(&mut self, label: &Option, fallback: &str) -> String { self.call(match *label { - Some(ref name) => name, + Some(ref name) => { + if name.trim().is_empty() { + fallback + } else { + name + } + } None => fallback, }) } diff --git a/tests/in/glsl/empty-global-name.frag b/tests/in/glsl/empty-global-name.frag new file mode 100644 index 0000000000..d2b495c625 --- /dev/null +++ b/tests/in/glsl/empty-global-name.frag @@ -0,0 +1,7 @@ +layout(set = 1, binding = 1) uniform TextureData { + vec4 material; +}; + +void main() { + vec2 coords = vec2(material.xy); +} diff --git a/tests/out/wgsl/empty-global-name-frag.wgsl b/tests/out/wgsl/empty-global-name-frag.wgsl new file mode 100644 index 0000000000..b3d73f14d1 --- /dev/null +++ b/tests/out/wgsl/empty-global-name-frag.wgsl @@ -0,0 +1,21 @@ +[[block]] +struct TextureData { + material: vec4; +}; + +[[group(1), binding(1)]] +var global: TextureData; + +fn main1() { + var coords: vec2; + + let e2: vec4 = global.material; + coords = vec2(e2.xy); + return; +} + +[[stage(fragment)]] +fn main() { + main1(); + return; +}