From 00bbbed90a14b8f1d4b7d6c261eb1b3be2150a89 Mon Sep 17 00:00:00 2001 From: Igor Shaposhnik Date: Wed, 27 Oct 2021 00:46:27 +0300 Subject: [PATCH] Handle empty variable names in namer (#1484) * Handle empty variable names in namer * Add glsl-in test with empty global name --- src/proc/namer.rs | 8 +++++++- tests/in/glsl/empty-global-name.frag | 7 +++++++ tests/out/wgsl/empty-global-name-frag.wgsl | 21 +++++++++++++++++++++ 3 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 tests/in/glsl/empty-global-name.frag create mode 100644 tests/out/wgsl/empty-global-name-frag.wgsl diff --git a/src/proc/namer.rs b/src/proc/namer.rs index 0a74b178b8..126d985dbf 100644 --- a/src/proc/namer.rs +++ b/src/proc/namer.rs @@ -117,7 +117,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; +}