diff --git a/tests/in/variations.glsl b/tests/in/variations.glsl new file mode 100644 index 0000000000..11904137f3 --- /dev/null +++ b/tests/in/variations.glsl @@ -0,0 +1,9 @@ +#version 460 core + +layout(set = 0, binding = 0) uniform textureCube texCube; +layout(set = 0, binding = 1) uniform sampler samp; + +void main() { + ivec2 sizeCube = textureSize(samplerCube(texCube, samp), 0); + float a = ceil(1.0); +} diff --git a/tests/out/glsl/variations-glsl.main.Fragment.glsl b/tests/out/glsl/variations-glsl.main.Fragment.glsl new file mode 100644 index 0000000000..d42deaecea --- /dev/null +++ b/tests/out/glsl/variations-glsl.main.Fragment.glsl @@ -0,0 +1,21 @@ +#version 310 es + +precision highp float; +precision highp int; + +uniform highp samplerCube _group_0_binding_0_fs; + + +void main_1() { + ivec2 sizeCube = ivec2(0); + float a = 0.0; + sizeCube = textureSize(_group_0_binding_0_fs, 0).xy; + a = ceil(1.0); + return; +} + +void main() { + main_1(); + return; +} + diff --git a/tests/snapshots.rs b/tests/snapshots.rs index 65439888ff..b1b2058453 100644 --- a/tests/snapshots.rs +++ b/tests/snapshots.rs @@ -556,6 +556,25 @@ fn convert_spv_all() { convert_spv("degrees", false, Targets::empty()); } +#[cfg(feature = "glsl-in")] +#[test] +fn convert_glsl_variations_check() { + let root = env!("CARGO_MANIFEST_DIR"); + let file = fs::read_to_string(format!("{}/{}/variations.glsl", root, BASE_DIR_IN)) + .expect("Couldn't find glsl file"); + let mut parser = naga::front::glsl::Parser::default(); + let module = parser + .parse( + &naga::front::glsl::Options { + stage: naga::ShaderStage::Fragment, + defines: Default::default(), + }, + &file, + ) + .unwrap(); + check_targets(&module, "variations-glsl", Targets::GLSL); +} + #[cfg(feature = "glsl-in")] #[allow(unused_variables)] #[test]