glsl: Always emit structures
Skipping those that are block-decorated is not correct, as
block-decorated structures can also have non-buffer usages. This is
even clearer now that WGSL has removed the block attribute.
Bug: tint:1324
Change-Id: I6484766a5c541d39e2dc08beb3ae7b889759a3fb
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/72083
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/writer/glsl/generator_impl.cc b/src/writer/glsl/generator_impl.cc
index 3e7185a..c021420 100644
--- a/src/writer/glsl/generator_impl.cc
+++ b/src/writer/glsl/generator_impl.cc
@@ -123,10 +123,8 @@
return false;
}
} else if (auto* str = decl->As<ast::Struct>()) {
- if (!str->IsBlockDecorated()) {
- if (!EmitStructType(current_buffer_, builder_.Sem().Get(str))) {
- return false;
- }
+ if (!EmitStructType(current_buffer_, builder_.Sem().Get(str))) {
+ return false;
}
} else if (auto* func = decl->As<ast::Function>()) {
if (func->IsEntryPoint()) {
diff --git a/src/writer/glsl/generator_impl_function_test.cc b/src/writer/glsl/generator_impl_function_test.cc
index 2324dd1..3d710f4 100644
--- a/src/writer/glsl/generator_impl_function_test.cc
+++ b/src/writer/glsl/generator_impl_function_test.cc
@@ -434,6 +434,9 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct UBO {
+ vec4 coord;
+};
layout (binding = 0) uniform UBO_1 {
vec4 coord;
@@ -484,6 +487,9 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct Uniforms {
+ vec4 coord;
+};
layout (binding = 0) uniform Uniforms_1 {
vec4 coord;
@@ -535,6 +541,10 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct Data {
+ int a;
+ float b;
+};
layout (binding = 0) buffer Data_1 {
int a;
@@ -587,6 +597,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ int a;
+ float b;
+};
layout (binding = 0) buffer Data_1 {
int a;
@@ -635,6 +649,10 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct Data {
+ int a;
+ float b;
+};
layout (binding = 0) buffer Data_1 {
int a;
@@ -684,6 +702,10 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct Data {
+ int a;
+ float b;
+};
layout (binding = 0) buffer Data_1 {
int a;
@@ -735,6 +757,9 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct S {
+ float x;
+};
layout (binding = 0) uniform S_1 {
float x;
@@ -791,6 +816,9 @@
R"(#version 310 es
precision mediump float;
+struct S {
+ float x;
+};
layout (binding = 0) buffer S_1 {
float x;
@@ -1057,6 +1085,9 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
+struct Data {
+ float d;
+};
layout (binding = 0) buffer Data_1 {
float d;
diff --git a/src/writer/glsl/generator_impl_member_accessor_test.cc b/src/writer/glsl/generator_impl_member_accessor_test.cc
index d1df07a..36809b3 100644
--- a/src/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/writer/glsl/generator_impl_member_accessor_test.cc
@@ -296,6 +296,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ int a;
+ mat2x3 b;
+};
layout (binding = 0) buffer Data_1 {
int a;
@@ -342,6 +346,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ float z;
+ mat4x3 a;
+};
layout (binding = 0) buffer Data_1 {
float z;
@@ -386,6 +394,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ float z;
+ int a[5];
+};
layout (binding = 0) buffer Data_1 {
float z;
@@ -431,6 +443,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ float z;
+ int a[5];
+};
layout (binding = 0) buffer Data_1 {
float z;
@@ -473,6 +489,10 @@
R"(#version 310 es
precision mediump float;
+struct Data {
+ float z;
+ int a[5];
+};
layout (binding = 0) buffer Data_1 {
float z;
@@ -530,6 +550,9 @@
vec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
@@ -589,6 +612,9 @@
vec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
@@ -648,6 +674,9 @@
vec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
@@ -707,6 +736,9 @@
vec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
@@ -762,6 +794,9 @@
vec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
@@ -821,6 +856,9 @@
ivec3 a;
vec3 b;
};
+struct Data {
+ Inner c[4];
+};
layout (binding = 0) buffer Data_1 {
Inner c[4];
diff --git a/src/writer/glsl/generator_impl_sanitizer_test.cc b/src/writer/glsl/generator_impl_sanitizer_test.cc
index 8d5fdb2..c7be764c 100644
--- a/src/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/writer/glsl/generator_impl_sanitizer_test.cc
@@ -51,6 +51,9 @@
auto* expect = R"(#version 310 es
precision mediump float;
+struct my_struct {
+ float a[];
+};
layout (binding = 1) buffer my_struct_1 {
float a[];
@@ -102,6 +105,10 @@
auto* expect = R"(#version 310 es
precision mediump float;
+struct my_struct {
+ float z;
+ float a[];
+};
layout (binding = 1) buffer my_struct_1 {
float z;
@@ -156,6 +163,9 @@
auto* expect = R"(#version 310 es
precision mediump float;
+struct my_struct {
+ float a[];
+};
layout (binding = 1) buffer my_struct_1 {
float a[];
diff --git a/test/buffer/storage/static_index/read.wgsl.expected.glsl b/test/buffer/storage/static_index/read.wgsl.expected.glsl
index 4e36bd3..f481a98 100644
--- a/test/buffer/storage/static_index/read.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/read.wgsl.expected.glsl
@@ -7,6 +7,18 @@
struct tint_padded_array_element {
Inner el;
};
+struct S {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ Inner i;
+ tint_padded_array_element j[4];
+};
layout (binding = 0) buffer S_1 {
ivec3 a;
diff --git a/test/buffer/storage/static_index/write.wgsl.expected.glsl b/test/buffer/storage/static_index/write.wgsl.expected.glsl
index ab273ea..4434c96 100644
--- a/test/buffer/storage/static_index/write.wgsl.expected.glsl
+++ b/test/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -7,6 +7,18 @@
struct tint_padded_array_element {
Inner el;
};
+struct S {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ mat2x3 g;
+ mat3x2 h;
+ Inner i;
+ tint_padded_array_element j[4];
+};
layout (binding = 0) buffer S_1 {
ivec3 a;
diff --git a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
index 30c6e8f..f199d0e 100644
--- a/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
+++ b/test/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
@@ -14,6 +14,9 @@
mat3x2 j;
ivec4 k[4];
};
+struct S {
+ Inner arr[8];
+};
layout (binding = 0) uniform S_1 {
Inner arr[8];
diff --git a/test/buffer/uniform/static_index/read.wgsl.expected.glsl b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
index 27169f0..c7b4979 100644
--- a/test/buffer/uniform/static_index/read.wgsl.expected.glsl
+++ b/test/buffer/uniform/static_index/read.wgsl.expected.glsl
@@ -7,6 +7,20 @@
struct tint_padded_array_element {
Inner el;
};
+struct S {
+ ivec3 a;
+ int b;
+ uvec3 c;
+ uint d;
+ vec3 e;
+ float f;
+ ivec2 g;
+ ivec2 h;
+ mat2x3 i;
+ mat3x2 j;
+ Inner k;
+ tint_padded_array_element l[4];
+};
layout (binding = 0) uniform S_1 {
ivec3 a;
diff --git a/test/bug/dawn/947.wgsl.expected.glsl b/test/bug/dawn/947.wgsl.expected.glsl
index b46d8fc..3bea768 100644
--- a/test/bug/dawn/947.wgsl.expected.glsl
+++ b/test/bug/dawn/947.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct Uniforms {
+ vec2 u_scale;
+ vec2 u_offset;
+};
layout (binding = 0) uniform Uniforms_1 {
vec2 u_scale;
@@ -61,6 +65,10 @@
#version 310 es
precision mediump float;
+struct Uniforms {
+ vec2 u_scale;
+ vec2 u_offset;
+};
struct VertexOutputs {
vec2 texcoords;
vec4 position;
diff --git a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
index 8920c6e..34598bf 100644
--- a/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
index 22345a8..a2d8b26 100644
--- a/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
index e314c42..b6fe342 100644
--- a/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -1,15 +1,26 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
} ubo;
+struct Result {
+ int tint_symbol;
+};
+
layout (binding = 2) buffer Result_1 {
int tint_symbol;
} result;
+struct SSBO {
+ int data[4];
+};
+
layout (binding = 1) buffer SSBO_1 {
int data[4];
} ssbo;
diff --git a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
index f0eb7e8..cb10e51 100644
--- a/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -4,12 +4,20 @@
struct tint_padded_array_element {
int el;
};
+struct UBO {
+ tint_padded_array_element data[4];
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
tint_padded_array_element data[4];
int dynamic_idx;
} ubo;
+struct Result {
+ int tint_symbol;
+};
+
layout (binding = 2) buffer Result_1 {
int tint_symbol;
} result;
diff --git a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
index 517ad2e..63c02da 100644
--- a/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
index 3a085d7..6f1e673 100644
--- a/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
index 5009af2..fd39680 100644
--- a/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
index ef743de..7978da0 100644
--- a/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
index ee89365..9e134bd 100644
--- a/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
index 4374a4f..7f63a15 100644
--- a/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -1,15 +1,26 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
} ubo;
+struct Result {
+ int tint_symbol;
+};
+
layout (binding = 2) buffer Result_1 {
int tint_symbol;
} result;
+struct SSBO {
+ int data[4];
+};
+
layout (binding = 1) buffer SSBO_1 {
int data[4];
} ssbo;
diff --git a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
index e28fc0b..bd2a954 100644
--- a/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
+++ b/test/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct UBO {
+ int dynamic_idx;
+};
layout (binding = 0) uniform UBO_1 {
int dynamic_idx;
@@ -9,6 +12,9 @@
struct S {
int data[64];
};
+struct Result {
+ int tint_symbol;
+};
layout (binding = 1) buffer Result_1 {
int tint_symbol;
diff --git a/test/bug/tint/1088.spvasm.expected.glsl b/test/bug/tint/1088.spvasm.expected.glsl
index d1e9121..38a4ce4 100644
--- a/test/bug/tint/1088.spvasm.expected.glsl
+++ b/test/bug/tint/1088.spvasm.expected.glsl
@@ -4,6 +4,12 @@
struct tint_padded_array_element {
float el;
};
+struct LeftOver {
+ mat4 worldViewProjection;
+ float time;
+ mat4 test2[2];
+ tint_padded_array_element test[4];
+};
vec3 position = vec3(0.0f, 0.0f, 0.0f);
layout (binding = 2) uniform LeftOver_1 {
diff --git a/test/bug/tint/221.wgsl.expected.glsl b/test/bug/tint/221.wgsl.expected.glsl
index a6e8124..6df8d78 100644
--- a/test/bug/tint/221.wgsl.expected.glsl
+++ b/test/bug/tint/221.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct Buf {
+ uint count;
+ uint data[50];
+};
layout (binding = 0) buffer Buf_1 {
uint count;
diff --git a/test/bug/tint/403.wgsl.expected.glsl b/test/bug/tint/403.wgsl.expected.glsl
index 9909e66..81cdb18 100644
--- a/test/bug/tint/403.wgsl.expected.glsl
+++ b/test/bug/tint/403.wgsl.expected.glsl
@@ -1,6 +1,12 @@
#version 310 es
precision mediump float;
+struct vertexUniformBuffer1 {
+ mat2 transform1;
+};
+struct vertexUniformBuffer2 {
+ mat2 transform2;
+};
layout (binding = 0) uniform vertexUniformBuffer1_1 {
mat2 transform1;
diff --git a/test/bug/tint/492.wgsl.expected.glsl b/test/bug/tint/492.wgsl.expected.glsl
index 69f3063..11b70ab 100644
--- a/test/bug/tint/492.wgsl.expected.glsl
+++ b/test/bug/tint/492.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int a;
+};
layout (binding = 0) buffer S_1 {
int a;
diff --git a/test/bug/tint/749.spvasm.expected.glsl b/test/bug/tint/749.spvasm.expected.glsl
index a551d92..5c9f099 100644
--- a/test/bug/tint/749.spvasm.expected.glsl
+++ b/test/bug/tint/749.spvasm.expected.glsl
@@ -4,6 +4,9 @@
struct QuicksortObject {
int numbers[10];
};
+struct buf0 {
+ vec2 resolution;
+};
QuicksortObject obj = QuicksortObject(int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
vec4 tint_symbol = vec4(0.0f, 0.0f, 0.0f, 0.0f);
diff --git a/test/bug/tint/870.spvasm.expected.glsl b/test/bug/tint/870.spvasm.expected.glsl
index 631204b..57cbe8d 100644
--- a/test/bug/tint/870.spvasm.expected.glsl
+++ b/test/bug/tint/870.spvasm.expected.glsl
@@ -7,6 +7,9 @@
int essence;
int orientation[6];
};
+struct x_B4_BuildInformation {
+ sspp962805860buildInformationS passthru;
+};
layout (binding = 2) buffer x_B4_BuildInformation_1 {
sspp962805860buildInformationS passthru;
diff --git a/test/bug/tint/926.wgsl.expected.glsl b/test/bug/tint/926.wgsl.expected.glsl
index c54318d..ca68eca 100644
--- a/test/bug/tint/926.wgsl.expected.glsl
+++ b/test/bug/tint/926.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct DrawIndirectArgs {
+ uint vertexCount;
+};
layout (binding = 5) buffer DrawIndirectArgs_1 {
uint vertexCount;
diff --git a/test/bug/tint/942.wgsl.expected.glsl b/test/bug/tint/942.wgsl.expected.glsl
index 3e730ee..50c0e13 100644
--- a/test/bug/tint/942.wgsl.expected.glsl
+++ b/test/bug/tint/942.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct Params {
+ uint filterDim;
+ uint blockDim;
+};
layout (binding = 1) uniform Params_1 {
@@ -10,6 +14,10 @@
uniform highp sampler2D inputTex;
uniform highp writeonly image2D outputTex;
+struct Flip {
+ uint value;
+};
+
layout (binding = 3) uniform Flip_1 {
uint value;
} flip;
diff --git a/test/bug/tint/959.wgsl.expected.glsl b/test/bug/tint/959.wgsl.expected.glsl
index 584c796..6cc913a 100644
--- a/test/bug/tint/959.wgsl.expected.glsl
+++ b/test/bug/tint/959.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ float a;
+};
layout (binding = 0) buffer S_1 {
float a;
diff --git a/test/bug/tint/980.wgsl.expected.glsl b/test/bug/tint/980.wgsl.expected.glsl
index 3f7cc01..0a23dd2 100644
--- a/test/bug/tint/980.wgsl.expected.glsl
+++ b/test/bug/tint/980.wgsl.expected.glsl
@@ -7,6 +7,11 @@
return normalize(normal);
}
+struct S {
+ vec3 v;
+ uint i;
+};
+
layout (binding = 0) buffer S_1 {
vec3 v;
uint i;
diff --git a/test/bug/tint/993.wgsl.expected.glsl b/test/bug/tint/993.wgsl.expected.glsl
index e0485c5..bd72c86 100644
--- a/test/bug/tint/993.wgsl.expected.glsl
+++ b/test/bug/tint/993.wgsl.expected.glsl
@@ -1,15 +1,26 @@
#version 310 es
precision mediump float;
+struct Constants {
+ uint zero;
+};
layout (binding = 0) uniform Constants_1 {
uint zero;
} constants;
+struct Result {
+ uint value;
+};
+
layout (binding = 1) buffer Result_1 {
uint value;
} result;
+struct TestData {
+ int data[3];
+};
+
layout (binding = 0) buffer TestData_1 {
int data[3];
} s;
diff --git a/test/bug/tint/998.wgsl.expected.glsl b/test/bug/tint/998.wgsl.expected.glsl
index 7f04e45..ff8352a 100644
--- a/test/bug/tint/998.wgsl.expected.glsl
+++ b/test/bug/tint/998.wgsl.expected.glsl
@@ -1,11 +1,17 @@
#version 310 es
precision mediump float;
+struct Constants {
+ uint zero;
+};
layout (binding = 0) uniform Constants_1 {
uint zero;
} constants;
+struct Result {
+ uint value;
+};
struct S {
uint data[3];
};
diff --git a/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
index 79f4870..e649373 100644
--- a/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct S {
+ mat3x2 matrix;
+ vec3 vector;
+};
layout (binding = 0) uniform S_1 {
mat3x2 matrix;
diff --git a/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
index ba963d9..33ba823 100644
--- a/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct S {
+ mat3 matrix;
+ vec3 vector;
+};
layout (binding = 0) uniform S_1 {
mat3 matrix;
diff --git a/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
index 6103644..7b6342b 100644
--- a/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct S {
+ mat3 matrix;
+ vec3 vector;
+};
layout (binding = 0) uniform S_1 {
mat3 matrix;
diff --git a/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
index 2b7ad6d..645908f 100644
--- a/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
+++ b/test/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
@@ -1,6 +1,10 @@
#version 310 es
precision mediump float;
+struct S {
+ mat4x3 matrix;
+ vec3 vector;
+};
layout (binding = 0) uniform S_1 {
mat4x3 matrix;
diff --git a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
index f2dd43a..3e36b2d 100644
--- a/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/8a199a.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
index a324c7a..d9c5a35 100644
--- a/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
index a4c446d..9e528ea 100644
--- a/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/152966.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
index c7c9601..d76169e 100644
--- a/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
index 93d6d9e..32a2f50 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/12871c.wgsl.expected.glsl
@@ -9,6 +9,9 @@
}
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -38,6 +41,9 @@
}
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
index 72a7f09..2820d4c 100644
--- a/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicCompareExchangeWeak/6673da.wgsl.expected.glsl
@@ -9,6 +9,9 @@
}
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -38,6 +41,9 @@
}
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
index a4f0b7f..74dc87d 100644
--- a/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/d59712.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
index bc0e46e..de3f371 100644
--- a/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
index 68355ce..3581163 100644
--- a/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/0806ad.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
index 373dafa..c1d0eaa 100644
--- a/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
index e95789e..95bb783 100644
--- a/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/51b9be.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
index f5392cf..02868b3 100644
--- a/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMax/92aa72.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
index 0897032..ac4746e 100644
--- a/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/8e38dc.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
index 85e42dd..7270770 100644
--- a/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicMin/c67a74.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
index aafb344..9d21c00 100644
--- a/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/5e95d4.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
index b5f1e99..ad98ddf 100644
--- a/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicOr/8d96a0.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
index e81b356..93af41a 100644
--- a/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/cdc29e.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
index eba2fdb..c47fb06 100644
--- a/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
index f9984be..7814d33 100644
--- a/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/051100.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
index 0f5901c..649250f 100644
--- a/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicSub/15bfc9.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
index feabaaf..ffa97fb 100644
--- a/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/54510e.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ uint arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
uint arg_0;
diff --git a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
index 6e8d361..2b727f8 100644
--- a/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/intrinsics/gen/atomicXor/c1b78c.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
@@ -22,6 +25,9 @@
#version 310 es
precision mediump float;
+struct SB_RW {
+ int arg_0;
+};
layout (binding = 0) buffer SB_RW_1 {
int arg_0;
diff --git a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
index 42c33b6..1d30f1c 100644
--- a/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/666f2a.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isInf/666f2a.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec3<bool> = isInf(vec3<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
index 7aee66b..74a902c 100644
--- a/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7bd98f.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isInf/7bd98f.wgsl:28:19 warning: use of deprecated intrinsic
+ var res: bool = isInf(1.0);
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
index 8cc9c15..1045535 100644
--- a/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/7e81b5.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isInf/7e81b5.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec4<bool> = isInf(vec4<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
index 885f145..1919c56 100644
--- a/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isInf/a46d6f.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isInf/a46d6f.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec2<bool> = isInf(vec2<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
index dc203d6..6b33851 100644
--- a/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/1280ab.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isNan/1280ab.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec3<bool> = isNan(vec3<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
index f8b1bb8..6ace2f9 100644
--- a/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/4d280d.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isNan/4d280d.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec4<bool> = isNan(vec4<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
index 827aee7..cfc77ea 100644
--- a/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/67ecd3.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isNan/67ecd3.wgsl:28:25 warning: use of deprecated intrinsic
+ var res: vec2<bool> = isNan(vec2<f32>());
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
index 0b9f0c6..73191e8 100644
--- a/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
+++ b/test/intrinsics/gen/isNan/e4978e.wgsl.expected.glsl
@@ -1,3 +1,7 @@
+intrinsics/gen/isNan/e4978e.wgsl:28:19 warning: use of deprecated intrinsic
+ var res: bool = isNan(1.0);
+ ^^^^^
+
#version 310 es
precision mediump float;
diff --git a/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
index 2571ad5..211b0a1 100644
--- a/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/storage_buffer.wgsl.expected.glsl
@@ -9,6 +9,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int i;
+};
layout (binding = 0) buffer S_1 {
int i;
diff --git a/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
index 9ed6461..987d1c2 100644
--- a/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
+++ b/test/intrinsics/ignore/uniform_buffer.wgsl.expected.glsl
@@ -9,6 +9,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int i;
+};
layout (binding = 0) uniform S_1 {
int i;
diff --git a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
index 3859a1d..fde4f57 100644
--- a/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
+++ b/test/layout/storage/mat2x2/f32.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct SSBO {
+ mat2 m;
+};
layout (binding = 0) buffer SSBO_1 {
mat2 m;
diff --git a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
index 5b84d7f..e30bf57 100644
--- a/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
+++ b/test/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
@@ -4,6 +4,9 @@
struct tint_padded_array_element {
vec2 el;
};
+struct SSBO {
+ tint_padded_array_element m[2];
+};
layout (binding = 0) buffer SSBO_1 {
tint_padded_array_element m[2];
diff --git a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
index 84dff04..b295029 100644
--- a/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int a;
+};
layout (binding = 0) buffer S_1 {
int a;
diff --git a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
index 9e4df2a..503e6d6 100644
--- a/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
+++ b/test/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int a;
+};
layout (binding = 0) uniform S_1 {
int a;
diff --git a/test/samples/compute_boids.wgsl.expected.glsl b/test/samples/compute_boids.wgsl.expected.glsl
index b924fd4..e5f1906 100644
--- a/test/samples/compute_boids.wgsl.expected.glsl
+++ b/test/samples/compute_boids.wgsl.expected.glsl
@@ -23,6 +23,18 @@
vec2 pos;
vec2 vel;
};
+struct SimParams {
+ float deltaT;
+ float rule1Distance;
+ float rule2Distance;
+ float rule3Distance;
+ float rule1Scale;
+ float rule2Scale;
+ float rule3Scale;
+};
+struct Particles {
+ Particle particles[5];
+};
struct tint_symbol_6 {
uvec3 tint_symbol;
};
@@ -71,6 +83,18 @@
vec2 pos;
vec2 vel;
};
+struct SimParams {
+ float deltaT;
+ float rule1Distance;
+ float rule2Distance;
+ float rule3Distance;
+ float rule1Scale;
+ float rule2Scale;
+ float rule3Scale;
+};
+struct Particles {
+ Particle particles[5];
+};
struct tint_symbol_6 {
uvec3 tint_symbol;
};
@@ -107,6 +131,18 @@
vec2 pos;
vec2 vel;
};
+struct SimParams {
+ float deltaT;
+ float rule1Distance;
+ float rule2Distance;
+ float rule3Distance;
+ float rule1Scale;
+ float rule2Scale;
+ float rule3Scale;
+};
+struct Particles {
+ Particle particles[5];
+};
layout (binding = 0) uniform SimParams_1 {
float deltaT;
diff --git a/test/samples/cube.wgsl.expected.glsl b/test/samples/cube.wgsl.expected.glsl
index 1afe19d..08ec2e8 100644
--- a/test/samples/cube.wgsl.expected.glsl
+++ b/test/samples/cube.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct Uniforms {
+ mat4 modelViewProjectionMatrix;
+};
layout (binding = 0) uniform Uniforms_1 {
mat4 modelViewProjectionMatrix;
@@ -63,6 +66,9 @@
#version 310 es
precision mediump float;
+struct Uniforms {
+ mat4 modelViewProjectionMatrix;
+};
struct VertexInput {
vec4 cur_position;
vec4 color;
diff --git a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
index c72d1b6..02095de 100644
--- a/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
+++ b/test/statements/assign/phony/storage_buffer.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int i;
+};
layout (binding = 0) buffer S_1 {
int i;
diff --git a/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
index db601bc..1ade86d 100644
--- a/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
+++ b/test/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
@@ -1,6 +1,9 @@
#version 310 es
precision mediump float;
+struct S {
+ int i;
+};
layout (binding = 0) uniform S_1 {
int i;