GLSL: Change Add[Spirv]BlockAttribute to support GLSL
Modify the AddSpirvBlockAttribute transform to fix top-level structure
access of uniform, storage and push-constant buffers for use in the
GLSL backend. The small change to the transform makes the transform
wrap host-sharable buffers, if they're also used as a
non-host-sharable structure. Also rename the transform to
AddBlockAttrbibute in order to reflect its wider applicability.
Change-Id: Ib2bf4ebf6bce72790791dbae9387032be765e4b9
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/101061
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Stephen White <senorblanco@chromium.org>
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index f53b520..ea32d78 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -390,9 +390,9 @@
"program_builder.h",
"program_id.cc",
"program_id.h",
- "reflection.h",
"reader/reader.cc",
"reader/reader.h",
+ "reflection.h",
"resolver/const_eval.cc",
"resolver/const_eval.h",
"resolver/ctor_conv_intrinsic.cc",
@@ -470,10 +470,10 @@
"text/unicode.cc",
"text/unicode.h",
"traits.h",
+ "transform/add_block_attribute.cc",
+ "transform/add_block_attribute.h",
"transform/add_empty_entry_point.cc",
"transform/add_empty_entry_point.h",
- "transform/add_spirv_block_attribute.cc",
- "transform/add_spirv_block_attribute.h",
"transform/array_length_from_uniform.cc",
"transform/array_length_from_uniform.h",
"transform/binding_remapper.cc",
@@ -1186,8 +1186,8 @@
tint_unittests_source_set("tint_unittests_transform_src") {
sources = [
+ "transform/add_block_attribute_test.cc",
"transform/add_empty_entry_point_test.cc",
- "transform/add_spirv_block_attribute_test.cc",
"transform/array_length_from_uniform_test.cc",
"transform/binding_remapper_test.cc",
"transform/builtin_polyfill_test.cc",
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 3e0c5d1..08212d3 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -384,8 +384,8 @@
traits.h
transform/add_empty_entry_point.cc
transform/add_empty_entry_point.h
- transform/add_spirv_block_attribute.cc
- transform/add_spirv_block_attribute.h
+ transform/add_block_attribute.cc
+ transform/add_block_attribute.h
transform/array_length_from_uniform.cc
transform/array_length_from_uniform.h
transform/binding_remapper.cc
@@ -1102,7 +1102,7 @@
if(${TINT_BUILD_WGSL_READER} AND ${TINT_BUILD_WGSL_WRITER})
list(APPEND TINT_TEST_SRCS
transform/add_empty_entry_point_test.cc
- transform/add_spirv_block_attribute_test.cc
+ transform/add_block_attribute_test.cc
transform/array_length_from_uniform_test.cc
transform/binding_remapper_test.cc
transform/builtin_polyfill_test.cc
diff --git a/src/tint/ast/struct_test.cc b/src/tint/ast/struct_test.cc
index 53ec9c8..29b9e9a 100644
--- a/src/tint/ast/struct_test.cc
+++ b/src/tint/ast/struct_test.cc
@@ -26,13 +26,13 @@
#include "src/tint/ast/texture.h"
#include "src/tint/ast/u32.h"
#include "src/tint/ast/vector.h"
-#include "src/tint/transform/add_spirv_block_attribute.h"
+#include "src/tint/transform/add_block_attribute.h"
namespace tint::ast {
namespace {
using AstStructTest = TestHelper;
-using SpirvBlockAttribute = transform::AddSpirvBlockAttribute::SpirvBlockAttribute;
+using BlockAttribute = transform::AddBlockAttribute::BlockAttribute;
TEST_F(AstStructTest, Creation) {
auto name = Sym("s");
@@ -51,12 +51,12 @@
auto* s = create<Struct>(name, utils::Vector{Member("a", ty.i32())},
utils::Vector{
- ASTNodes().Create<SpirvBlockAttribute>(ID(), AllocateNodeID()),
+ ASTNodes().Create<BlockAttribute>(ID(), AllocateNodeID()),
});
EXPECT_EQ(s->name, name);
EXPECT_EQ(s->members.Length(), 1u);
ASSERT_EQ(s->attributes.Length(), 1u);
- EXPECT_TRUE(s->attributes[0]->Is<SpirvBlockAttribute>());
+ EXPECT_TRUE(s->attributes[0]->Is<BlockAttribute>());
EXPECT_EQ(s->source.range.begin.line, 0u);
EXPECT_EQ(s->source.range.begin.column, 0u);
EXPECT_EQ(s->source.range.end.line, 0u);
@@ -65,14 +65,14 @@
TEST_F(AstStructTest, CreationWithSourceAndAttributes) {
auto name = Sym("s");
- auto* s = create<Struct>(
- Source{Source::Range{Source::Location{27, 4}, Source::Location{27, 8}}}, name,
- utils::Vector{Member("a", ty.i32())},
- utils::Vector{ASTNodes().Create<SpirvBlockAttribute>(ID(), AllocateNodeID())});
+ auto* s =
+ create<Struct>(Source{Source::Range{Source::Location{27, 4}, Source::Location{27, 8}}},
+ name, utils::Vector{Member("a", ty.i32())},
+ utils::Vector{ASTNodes().Create<BlockAttribute>(ID(), AllocateNodeID())});
EXPECT_EQ(s->name, name);
EXPECT_EQ(s->members.Length(), 1u);
ASSERT_EQ(s->attributes.Length(), 1u);
- EXPECT_TRUE(s->attributes[0]->Is<SpirvBlockAttribute>());
+ EXPECT_TRUE(s->attributes[0]->Is<BlockAttribute>());
EXPECT_EQ(s->source.range.begin.line, 27u);
EXPECT_EQ(s->source.range.begin.column, 4u);
EXPECT_EQ(s->source.range.end.line, 27u);
@@ -115,9 +115,9 @@
{
ProgramBuilder b1;
ProgramBuilder b2;
- b1.create<Struct>(b1.Sym("S"), utils::Vector{b1.Member("a", b1.ty.i32())},
- utils::Vector{b2.ASTNodes().Create<SpirvBlockAttribute>(
- b2.ID(), b2.AllocateNodeID())});
+ b1.create<Struct>(
+ b1.Sym("S"), utils::Vector{b1.Member("a", b1.ty.i32())},
+ utils::Vector{b2.ASTNodes().Create<BlockAttribute>(b2.ID(), b2.AllocateNodeID())});
},
"internal compiler error");
}
diff --git a/src/tint/resolver/attribute_validation_test.cc b/src/tint/resolver/attribute_validation_test.cc
index 0180589..7f573a8 100644
--- a/src/tint/resolver/attribute_validation_test.cc
+++ b/src/tint/resolver/attribute_validation_test.cc
@@ -15,7 +15,7 @@
#include "src/tint/ast/disable_validation_attribute.h"
#include "src/tint/resolver/resolver.h"
#include "src/tint/resolver/resolver_test_helper.h"
-#include "src/tint/transform/add_spirv_block_attribute.h"
+#include "src/tint/transform/add_block_attribute.h"
#include "gmock/gmock.h"
@@ -557,7 +557,7 @@
namespace StructAndStructMemberTests {
using StructAttributeTest = TestWithParams;
-using SpirvBlockAttribute = transform::AddSpirvBlockAttribute::SpirvBlockAttribute;
+using SpirvBlockAttribute = transform::AddBlockAttribute::BlockAttribute;
TEST_P(StructAttributeTest, IsValid) {
auto& params = GetParam();
diff --git a/src/tint/transform/add_spirv_block_attribute.cc b/src/tint/transform/add_block_attribute.cc
similarity index 67%
rename from src/tint/transform/add_spirv_block_attribute.cc
rename to src/tint/transform/add_block_attribute.cc
index 25abdce..619083d 100644
--- a/src/tint/transform/add_spirv_block_attribute.cc
+++ b/src/tint/transform/add_block_attribute.cc
@@ -12,8 +12,9 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/transform/add_spirv_block_attribute.h"
+#include "src/tint/transform/add_block_attribute.h"
+#include <unordered_set>
#include <utility>
#include "src/tint/program_builder.h"
@@ -21,16 +22,29 @@
#include "src/tint/utils/hashmap.h"
#include "src/tint/utils/hashset.h"
-TINT_INSTANTIATE_TYPEINFO(tint::transform::AddSpirvBlockAttribute);
-TINT_INSTANTIATE_TYPEINFO(tint::transform::AddSpirvBlockAttribute::SpirvBlockAttribute);
+TINT_INSTANTIATE_TYPEINFO(tint::transform::AddBlockAttribute);
+TINT_INSTANTIATE_TYPEINFO(tint::transform::AddBlockAttribute::BlockAttribute);
namespace tint::transform {
-AddSpirvBlockAttribute::AddSpirvBlockAttribute() = default;
+namespace {
-AddSpirvBlockAttribute::~AddSpirvBlockAttribute() = default;
+bool IsUsedAsNonBuffer(const std::unordered_set<tint::ast::StorageClass>& uses) {
+ for (auto use : uses) {
+ if (!ast::IsHostShareable(use)) {
+ return true;
+ }
+ }
+ return false;
+}
-void AddSpirvBlockAttribute::Run(CloneContext& ctx, const DataMap&, DataMap&) const {
+} // namespace
+
+AddBlockAttribute::AddBlockAttribute() = default;
+
+AddBlockAttribute::~AddBlockAttribute() = default;
+
+void AddBlockAttribute::Run(CloneContext& ctx, const DataMap&, DataMap&) const {
auto& sem = ctx.src->Sem();
// Collect the set of structs that are nested in other types.
@@ -66,8 +80,10 @@
auto* ty = var->Type()->UnwrapRef();
auto* str = ty->As<sem::Struct>();
- bool needs_wrapping = !str || // Type is not a structure
- nested_structs.Contains(str); // Structure is nested by another type
+ bool needs_wrapping =
+ !str || // Type is not a structure
+ nested_structs.Contains(str) || // Structure is nested by another type
+ IsUsedAsNonBuffer(str->StorageClassUsage()); // Structure is used as a non-buffer usage
if (needs_wrapping) {
const char* kMemberName = "inner";
@@ -75,8 +91,8 @@
// This is a non-struct or a struct that is nested somewhere else, so we
// need to wrap it first.
auto* wrapper = wrapper_structs.GetOrCreate(ty, [&] {
- auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(
- ctx.dst->ID(), ctx.dst->AllocateNodeID());
+ auto* block = ctx.dst->ASTNodes().Create<BlockAttribute>(ctx.dst->ID(),
+ ctx.dst->AllocateNodeID());
auto wrapper_name = ctx.src->Symbols().NameFor(global->symbol) + "_block";
auto* ret = ctx.dst->create<ast::Struct>(
ctx.dst->Symbols().New(wrapper_name),
@@ -95,8 +111,8 @@
}
} else {
// Add a block attribute to this struct directly.
- auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(
- ctx.dst->ID(), ctx.dst->AllocateNodeID());
+ auto* block = ctx.dst->ASTNodes().Create<BlockAttribute>(ctx.dst->ID(),
+ ctx.dst->AllocateNodeID());
ctx.InsertFront(str->Declaration()->attributes, block);
}
}
@@ -104,16 +120,16 @@
ctx.Clone();
}
-AddSpirvBlockAttribute::SpirvBlockAttribute::SpirvBlockAttribute(ProgramID pid, ast::NodeID nid)
+AddBlockAttribute::BlockAttribute::BlockAttribute(ProgramID pid, ast::NodeID nid)
: Base(pid, nid) {}
-AddSpirvBlockAttribute::SpirvBlockAttribute::~SpirvBlockAttribute() = default;
-std::string AddSpirvBlockAttribute::SpirvBlockAttribute::InternalName() const {
- return "spirv_block";
+AddBlockAttribute::BlockAttribute::~BlockAttribute() = default;
+std::string AddBlockAttribute::BlockAttribute::InternalName() const {
+ return "block";
}
-const AddSpirvBlockAttribute::SpirvBlockAttribute*
-AddSpirvBlockAttribute::SpirvBlockAttribute::Clone(CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<AddSpirvBlockAttribute::SpirvBlockAttribute>(
+const AddBlockAttribute::BlockAttribute* AddBlockAttribute::BlockAttribute::Clone(
+ CloneContext* ctx) const {
+ return ctx->dst->ASTNodes().Create<AddBlockAttribute::BlockAttribute>(
ctx->dst->ID(), ctx->dst->AllocateNodeID());
}
diff --git a/src/tint/transform/add_spirv_block_attribute.h b/src/tint/transform/add_block_attribute.h
similarity index 68%
rename from src/tint/transform/add_spirv_block_attribute.h
rename to src/tint/transform/add_block_attribute.h
index 51409c8..69dfab5 100644
--- a/src/tint/transform/add_spirv_block_attribute.h
+++ b/src/tint/transform/add_block_attribute.h
@@ -12,8 +12,8 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#ifndef SRC_TINT_TRANSFORM_ADD_SPIRV_BLOCK_ATTRIBUTE_H_
-#define SRC_TINT_TRANSFORM_ADD_SPIRV_BLOCK_ATTRIBUTE_H_
+#ifndef SRC_TINT_TRANSFORM_ADD_BLOCK_ATTRIBUTE_H_
+#define SRC_TINT_TRANSFORM_ADD_BLOCK_ATTRIBUTE_H_
#include <string>
@@ -22,23 +22,23 @@
namespace tint::transform {
-/// AddSpirvBlockAttribute is a transform that adds an
-/// `@internal(spirv_block)` attribute to any structure that is used as the
+/// AddBlockAttribute is a transform that adds an
+/// `@internal(block)` attribute to any structure that is used as the
/// store type of a buffer. If that structure is nested inside another structure
/// or an array, then it is wrapped inside another structure which gets the
-/// `@internal(spirv_block)` attribute instead.
-class AddSpirvBlockAttribute final : public Castable<AddSpirvBlockAttribute, Transform> {
+/// `@internal(block)` attribute instead.
+class AddBlockAttribute final : public Castable<AddBlockAttribute, Transform> {
public:
- /// SpirvBlockAttribute is an InternalAttribute that is used to decorate a
- // structure that needs a SPIR-V block attribute.
- class SpirvBlockAttribute final : public Castable<SpirvBlockAttribute, ast::InternalAttribute> {
+ /// BlockAttribute is an InternalAttribute that is used to decorate a
+ // structure that is used as a buffer in SPIR-V or GLSL.
+ class BlockAttribute final : public Castable<BlockAttribute, ast::InternalAttribute> {
public:
/// Constructor
/// @param program_id the identifier of the program that owns this node
/// @param nid the unique node identifier
- SpirvBlockAttribute(ProgramID program_id, ast::NodeID nid);
+ BlockAttribute(ProgramID program_id, ast::NodeID nid);
/// Destructor
- ~SpirvBlockAttribute() override;
+ ~BlockAttribute() override;
/// @return a short description of the internal attribute which will be
/// displayed as `@internal(<name>)`
@@ -47,14 +47,14 @@
/// Performs a deep clone of this object using the CloneContext `ctx`.
/// @param ctx the clone context
/// @return the newly cloned object
- const SpirvBlockAttribute* Clone(CloneContext* ctx) const override;
+ const BlockAttribute* Clone(CloneContext* ctx) const override;
};
/// Constructor
- AddSpirvBlockAttribute();
+ AddBlockAttribute();
/// Destructor
- ~AddSpirvBlockAttribute() override;
+ ~AddBlockAttribute() override;
protected:
/// Runs the transform using the CloneContext built for transforming a
@@ -68,4 +68,4 @@
} // namespace tint::transform
-#endif // SRC_TINT_TRANSFORM_ADD_SPIRV_BLOCK_ATTRIBUTE_H_
+#endif // SRC_TINT_TRANSFORM_ADD_BLOCK_ATTRIBUTE_H_
diff --git a/src/tint/transform/add_spirv_block_attribute_test.cc b/src/tint/transform/add_block_attribute_test.cc
similarity index 65%
rename from src/tint/transform/add_spirv_block_attribute_test.cc
rename to src/tint/transform/add_block_attribute_test.cc
index 62abae3..7bb5efc 100644
--- a/src/tint/transform/add_spirv_block_attribute_test.cc
+++ b/src/tint/transform/add_block_attribute_test.cc
@@ -12,7 +12,7 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-#include "src/tint/transform/add_spirv_block_attribute.h"
+#include "src/tint/transform/add_block_attribute.h"
#include <memory>
#include <utility>
@@ -22,18 +22,18 @@
namespace tint::transform {
namespace {
-using AddSpirvBlockAttributeTest = TransformTest;
+using AddBlockAttributeTest = TransformTest;
-TEST_F(AddSpirvBlockAttributeTest, EmptyModule) {
+TEST_F(AddBlockAttributeTest, EmptyModule) {
auto* src = "";
auto* expect = "";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Noop_UsedForPrivateVar) {
+TEST_F(AddBlockAttributeTest, Noop_UsedForPrivateVar) {
auto* src = R"(
struct S {
f : f32,
@@ -48,12 +48,12 @@
)";
auto* expect = src;
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Noop_UsedForShaderIO) {
+TEST_F(AddBlockAttributeTest, Noop_UsedForShaderIO) {
auto* src = R"(
struct S {
@location(0)
@@ -67,12 +67,12 @@
)";
auto* expect = src;
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicScalar) {
+TEST_F(AddBlockAttributeTest, BasicScalar) {
auto* src = R"(
@group(0) @binding(0)
var<uniform> u : f32;
@@ -83,7 +83,7 @@
}
)";
auto* expect = R"(
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : f32,
}
@@ -96,12 +96,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicArray) {
+TEST_F(AddBlockAttributeTest, BasicArray) {
auto* src = R"(
@group(0) @binding(0)
var<uniform> u : array<vec4<f32>, 4u>;
@@ -112,7 +112,7 @@
}
)";
auto* expect = R"(
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : array<vec4<f32>, 4u>,
}
@@ -125,12 +125,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicArray_Alias) {
+TEST_F(AddBlockAttributeTest, BasicArray_Alias) {
auto* src = R"(
type Numbers = array<vec4<f32>, 4u>;
@@ -145,7 +145,7 @@
auto* expect = R"(
type Numbers = array<vec4<f32>, 4u>;
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : array<vec4<f32>, 4u>,
}
@@ -158,12 +158,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicStruct_AccessRoot) {
+TEST_F(AddBlockAttributeTest, BasicStruct_AccessRoot) {
auto* src = R"(
struct S {
f : f32,
@@ -178,25 +178,29 @@
}
)";
auto* expect = R"(
-@internal(spirv_block)
struct S {
f : f32,
}
-@group(0) @binding(0) var<uniform> u : S;
+@internal(block)
+struct u_block {
+ inner : S,
+}
+
+@group(0) @binding(0) var<uniform> u : u_block;
@fragment
fn main() {
- let f = u;
+ let f = u.inner;
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicStruct_AccessField) {
+TEST_F(AddBlockAttributeTest, BasicStruct_AccessField) {
auto* src = R"(
struct S {
f : f32,
@@ -211,7 +215,7 @@
}
)";
auto* expect = R"(
-@internal(spirv_block)
+@internal(block)
struct S {
f : f32,
}
@@ -224,12 +228,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicScalar_PushConstant) {
+TEST_F(AddBlockAttributeTest, BasicScalar_PushConstant) {
auto* src = R"(
enable chromium_experimental_push_constant;
var<push_constant> u : f32;
@@ -242,7 +246,7 @@
auto* expect = R"(
enable chromium_experimental_push_constant;
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : f32,
}
@@ -255,12 +259,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, BasicStruct_PushConstant) {
+TEST_F(AddBlockAttributeTest, BasicStruct_PushConstant) {
auto* src = R"(
enable chromium_experimental_push_constant;
struct S {
@@ -276,7 +280,7 @@
auto* expect = R"(
enable chromium_experimental_push_constant;
-@internal(spirv_block)
+@internal(block)
struct S {
f : f32,
}
@@ -289,12 +293,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Nested_OuterBuffer_InnerNotBuffer) {
+TEST_F(AddBlockAttributeTest, Nested_OuterBuffer_InnerNotBuffer) {
auto* src = R"(
struct Inner {
f : f32,
@@ -317,7 +321,7 @@
f : f32,
}
-@internal(spirv_block)
+@internal(block)
struct Outer {
i : Inner,
}
@@ -330,12 +334,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Nested_OuterBuffer_InnerBuffer) {
+TEST_F(AddBlockAttributeTest, Nested_OuterBuffer_InnerBuffer) {
auto* src = R"(
struct Inner {
f : f32,
@@ -362,14 +366,14 @@
f : f32,
}
-@internal(spirv_block)
+@internal(block)
struct Outer {
i : Inner,
}
@group(0) @binding(0) var<uniform> u0 : Outer;
-@internal(spirv_block)
+@internal(block)
struct u1_block {
inner : Inner,
}
@@ -383,12 +387,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Nested_OuterNotBuffer_InnerBuffer) {
+TEST_F(AddBlockAttributeTest, Nested_OuterNotBuffer_InnerBuffer) {
auto* src = R"(
struct Inner {
f : f32,
@@ -420,7 +424,7 @@
var<private> p : Outer;
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : Inner,
}
@@ -434,12 +438,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Nested_InnerUsedForMultipleBuffers) {
+TEST_F(AddBlockAttributeTest, Nested_InnerUsedForMultipleBuffers) {
auto* src = R"(
struct Inner {
f : f32,
@@ -470,14 +474,14 @@
f : f32,
}
-@internal(spirv_block)
+@internal(block)
struct S {
i : Inner,
}
@group(0) @binding(0) var<uniform> u0 : S;
-@internal(spirv_block)
+@internal(block)
struct u1_block {
inner : Inner,
}
@@ -494,12 +498,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, StructInArray) {
+TEST_F(AddBlockAttributeTest, StructInArray) {
auto* src = R"(
struct S {
f : f32,
@@ -519,7 +523,7 @@
f : f32,
}
-@internal(spirv_block)
+@internal(block)
struct u_block {
inner : S,
}
@@ -533,12 +537,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, StructInArray_MultipleBuffers) {
+TEST_F(AddBlockAttributeTest, StructInArray_MultipleBuffers) {
auto* src = R"(
struct S {
f : f32,
@@ -562,7 +566,7 @@
f : f32,
}
-@internal(spirv_block)
+@internal(block)
struct u0_block {
inner : S,
}
@@ -579,12 +583,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Aliases_Nested_OuterBuffer_InnerBuffer) {
+TEST_F(AddBlockAttributeTest, Aliases_Nested_OuterBuffer_InnerBuffer) {
auto* src = R"(
struct Inner {
f : f32,
@@ -617,7 +621,7 @@
type MyInner = Inner;
-@internal(spirv_block)
+@internal(block)
struct Outer {
i : MyInner,
}
@@ -626,7 +630,7 @@
@group(0) @binding(0) var<uniform> u0 : MyOuter;
-@internal(spirv_block)
+@internal(block)
struct u1_block {
inner : Inner,
}
@@ -640,12 +644,12 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
-TEST_F(AddSpirvBlockAttributeTest, Aliases_Nested_OuterBuffer_InnerBuffer_OutOfOrder) {
+TEST_F(AddBlockAttributeTest, Aliases_Nested_OuterBuffer_InnerBuffer_OutOfOrder) {
auto* src = R"(
@fragment
fn main() {
@@ -678,7 +682,7 @@
let f1 = u1.inner.f;
}
-@internal(spirv_block)
+@internal(block)
struct u1_block {
inner : Inner,
}
@@ -691,7 +695,7 @@
type MyOuter = Outer;
-@internal(spirv_block)
+@internal(block)
struct Outer {
i : MyInner,
}
@@ -701,7 +705,147 @@
}
)";
- auto got = Run<AddSpirvBlockAttribute>(src);
+ auto got = Run<AddBlockAttribute>(src);
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(AddBlockAttributeTest, UniformAndPrivateUsages) {
+ auto* src = R"(
+struct S {
+ f : f32,
+}
+
+@group(0) @binding(0) var<uniform> u : S;
+
+var<private> p : S;
+
+@fragment
+fn main() {
+ p = u;
+}
+)";
+ auto* expect = R"(
+struct S {
+ f : f32,
+}
+
+@internal(block)
+struct u_block {
+ inner : S,
+}
+
+@group(0) @binding(0) var<uniform> u : u_block;
+
+var<private> p : S;
+
+@fragment
+fn main() {
+ p = u.inner;
+}
+)";
+
+ auto got = Run<AddBlockAttribute>(src);
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(AddBlockAttributeTest, StorageAndPrivateUsages) {
+ auto* src = R"(
+struct S {
+ f : f32,
+}
+
+@group(0) @binding(0) var<storage, read_write> s : S;
+
+var<private> p : S;
+
+@fragment
+fn main() {
+ p = s;
+ p.f = 1234.0;
+ s = p;
+}
+)";
+ auto* expect = R"(
+struct S {
+ f : f32,
+}
+
+@internal(block)
+struct s_block {
+ inner : S,
+}
+
+@group(0) @binding(0) var<storage, read_write> s : s_block;
+
+var<private> p : S;
+
+@fragment
+fn main() {
+ p = s.inner;
+ p.f = 1234.0;
+ s.inner = p;
+}
+)";
+
+ auto got = Run<AddBlockAttribute>(src);
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(AddBlockAttributeTest, StorageAndUniformUsages) {
+ auto* src = R"(
+struct S {
+ f : f32,
+}
+
+@group(0) @binding(0) var<uniform> u : S;
+
+@group(0) @binding(1) var<storage, read_write> s : S;
+
+@fragment
+fn main() {
+ s = u;
+}
+)";
+ auto* expect = R"(
+@internal(block) @internal(block)
+struct S {
+ f : f32,
+}
+
+@group(0) @binding(0) var<uniform> u : S;
+
+@group(0) @binding(1) var<storage, read_write> s : S;
+
+@fragment
+fn main() {
+ s = u;
+}
+)";
+
+ auto got = Run<AddBlockAttribute>(src);
+
+ EXPECT_EQ(expect, str(got));
+}
+
+TEST_F(AddBlockAttributeTest, PrivateUsageOnly) {
+ auto* src = R"(
+struct S {
+ f : f32,
+}
+
+var<private> p : S;
+
+@fragment
+fn main() {
+ p.f = 4321.0f;
+}
+)";
+ auto* expect = src;
+
+ auto got = Run<AddBlockAttribute>(src);
EXPECT_EQ(expect, str(got));
}
diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index e783b0b..d1261f1 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -46,8 +46,8 @@
#include "src/tint/sem/type_constructor.h"
#include "src/tint/sem/type_conversion.h"
#include "src/tint/sem/variable.h"
+#include "src/tint/transform/add_block_attribute.h"
#include "src/tint/transform/add_empty_entry_point.h"
-#include "src/tint/transform/add_spirv_block_attribute.h"
#include "src/tint/transform/binding_remapper.h"
#include "src/tint/transform/builtin_polyfill.h"
#include "src/tint/transform/canonicalize_entry_point_io.h"
@@ -244,7 +244,7 @@
manager.Add<transform::PromoteInitializersToLet>();
manager.Add<transform::AddEmptyEntryPoint>();
- manager.Add<transform::AddSpirvBlockAttribute>();
+ manager.Add<transform::AddBlockAttribute>();
data.Add<transform::CanonicalizeEntryPointIO::Config>(
transform::CanonicalizeEntryPointIO::ShaderStyle::kGlsl);
@@ -284,18 +284,15 @@
return false;
}
} else if (auto* str = decl->As<ast::Struct>()) {
- // Skip emission if the struct contains a runtime-sized array, since its
- // only use will be as the store-type of a buffer and we emit those
- // elsewhere.
- // TODO(crbug.com/tint/1339): We could also avoid emitting any other
- // struct that is only used as a buffer store type.
- const sem::Struct* sem_str = builder_.Sem().Get(str);
- const auto& members = sem_str->Members();
- TINT_ASSERT(Writer, members.size() > 0);
- auto* last_member = members[members.size() - 1];
- auto* arr = last_member->Type()->As<sem::Array>();
- if (!arr || !arr->IsRuntimeSized()) {
- if (!EmitStructType(current_buffer_, sem_str)) {
+ auto* sem = builder_.Sem().Get(str);
+ bool has_rt_arr = false;
+ if (auto* arr = sem->Members().back()->Type()->As<sem::Array>()) {
+ has_rt_arr = arr->IsRuntimeSized();
+ }
+ bool is_block =
+ ast::HasAttribute<transform::AddBlockAttribute::BlockAttribute>(str->attributes);
+ if (!has_rt_arr && !is_block) {
+ if (!EmitStructType(current_buffer_, sem)) {
return false;
}
}
@@ -1915,7 +1912,7 @@
if (version_.IsDesktop()) {
out << ", std140";
}
- out << ") uniform " << UniqueIdentifier(StructName(str)) << " {";
+ out << ") uniform " << UniqueIdentifier(StructName(str) + "_ubo") << " {";
}
EmitStructMembers(current_buffer_, str, /* emit_offsets */ true);
auto name = builder_.Symbols().NameFor(var->symbol);
@@ -1934,10 +1931,12 @@
}
auto bp = sem->As<sem::GlobalVariable>()->BindingPoint();
line() << "layout(binding = " << bp.binding << ", std430) buffer "
- << UniqueIdentifier(StructName(str)) << " {";
+ << UniqueIdentifier(StructName(str) + "_ssbo") << " {";
EmitStructMembers(current_buffer_, str, /* emit_offsets */ true);
auto name = builder_.Symbols().NameFor(var->symbol);
line() << "} " << name << ";";
+ line();
+
return true;
}
diff --git a/src/tint/writer/glsl/generator_impl_function_test.cc b/src/tint/writer/glsl/generator_impl_function_test.cc
index 83ba37b..c388005 100644
--- a/src/tint/writer/glsl/generator_impl_function_test.cc
+++ b/src/tint/writer/glsl/generator_impl_function_test.cc
@@ -384,7 +384,7 @@
vec4 coord;
};
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
vec4 coord;
} ubo;
@@ -425,7 +425,7 @@
vec4 coord;
};
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
vec4 coord;
} uniforms;
@@ -462,15 +462,11 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
-struct Data {
- int a;
- float b;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
int a;
float b;
} coord;
+
void frag_main() {
float v = coord.b;
return;
@@ -510,15 +506,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- int a;
- float b;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
int a;
float b;
} coord;
+
void frag_main() {
float v = coord.b;
return;
@@ -555,15 +547,11 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
-struct Data {
- int a;
- float b;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
int a;
float b;
} coord;
+
void frag_main() {
coord.b = 2.0f;
return;
@@ -600,15 +588,11 @@
EXPECT_EQ(gen.result(), R"(#version 310 es
precision mediump float;
-struct Data {
- int a;
- float b;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
int a;
float b;
} coord;
+
void frag_main() {
coord.b = 2.0f;
return;
@@ -651,7 +635,7 @@
float x;
};
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
float x;
} coord;
@@ -694,13 +678,10 @@
R"(#version 310 es
precision mediump float;
-struct S {
- float x;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
float x;
} coord;
+
float sub_func(float param) {
return coord.x;
}
@@ -930,13 +911,10 @@
ASSERT_TRUE(gen.Generate()) << gen.error();
EXPECT_EQ(gen.result(), R"(#version 310 es
-struct Data {
- float d;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
float d;
} data;
+
void a() {
float v = data.d;
return;
diff --git a/src/tint/writer/glsl/generator_impl_member_accessor_test.cc b/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
index 1602068..b44a11b 100644
--- a/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
+++ b/src/tint/writer/glsl/generator_impl_member_accessor_test.cc
@@ -277,15 +277,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- int a;
- mat2x3 b;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
int a;
mat2x3 b;
} data;
+
void tint_symbol() {
data.b = mat2x3(vec3(0.0f), vec3(0.0f));
}
@@ -322,15 +318,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- float z;
- mat4x3 a;
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
float z;
mat4x3 a;
} data;
+
void tint_symbol() {
float x = data.a[2][1];
}
@@ -367,15 +359,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- float z;
- int a[5];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
float z;
int a[5];
} data;
+
void tint_symbol() {
int x = data.a[2];
}
@@ -415,15 +403,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- float z;
- int a[5];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
float z;
int a[5];
} data;
+
void tint_symbol() {
int a = 2;
int b = 4;
@@ -462,15 +446,11 @@
R"(#version 310 es
precision mediump float;
-struct Data {
- float z;
- int a[5];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
float z;
int a[5];
} data;
+
void tint_symbol() {
data.a[2] = 2;
}
@@ -520,13 +500,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
vec3 x = data.c[2].b;
}
@@ -578,13 +555,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
vec2 x = data.c[2].b.xy;
}
@@ -637,13 +611,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
float x = data.c[2].b.g;
}
@@ -695,13 +666,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
float x = data.c[2].b[1];
}
@@ -752,13 +720,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
data.c[2].b = vec3(1.0f, 2.0f, 3.0f);
}
@@ -810,13 +775,10 @@
vec3 b;
};
-struct Data {
- Inner c[4];
-};
-
-layout(binding = 0, std430) buffer Data_1 {
+layout(binding = 0, std430) buffer Data_ssbo {
Inner c[4];
} data;
+
void tint_symbol() {
data.c[2].b.y = 1.0f;
}
diff --git a/src/tint/writer/glsl/generator_impl_sanitizer_test.cc b/src/tint/writer/glsl/generator_impl_sanitizer_test.cc
index f1157f1..2d0d1ce 100644
--- a/src/tint/writer/glsl/generator_impl_sanitizer_test.cc
+++ b/src/tint/writer/glsl/generator_impl_sanitizer_test.cc
@@ -45,9 +45,10 @@
auto* expect = R"(#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_ssbo {
float a[];
} b;
+
void a_func() {
uint len = uint(b.a.length());
}
@@ -84,10 +85,11 @@
auto* expect = R"(#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_ssbo {
float z;
float a[];
} b;
+
void a_func() {
uint len = uint(b.a.length());
}
@@ -127,9 +129,10 @@
auto* expect = R"(#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer my_struct_1 {
+layout(binding = 1, std430) buffer my_struct_ssbo {
float a[];
} b;
+
void a_func() {
uint len = uint(b.a.length());
}
diff --git a/src/tint/writer/glsl/generator_impl_storage_buffer_test.cc b/src/tint/writer/glsl/generator_impl_storage_buffer_test.cc
index 8c60374..2c7bed1 100644
--- a/src/tint/writer/glsl/generator_impl_storage_buffer_test.cc
+++ b/src/tint/writer/glsl/generator_impl_storage_buffer_test.cc
@@ -57,11 +57,12 @@
float louie;
};
-layout(binding = 0, std430) buffer Nephews_1 {
+layout(binding = 0, std430) buffer Nephews_ssbo {
float huey;
float dewey;
float louie;
} nephews;
+
)");
}
@@ -79,11 +80,12 @@
float louie;
};
-layout(binding = 0, std430) buffer Nephews_1 {
+layout(binding = 0, std430) buffer Nephews_ssbo {
float huey;
layout(offset=256) float dewey;
layout(offset=512) float louie;
} nephews;
+
)");
}
diff --git a/src/tint/writer/glsl/generator_impl_uniform_buffer_test.cc b/src/tint/writer/glsl/generator_impl_uniform_buffer_test.cc
index 555e237..e3d2eee 100644
--- a/src/tint/writer/glsl/generator_impl_uniform_buffer_test.cc
+++ b/src/tint/writer/glsl/generator_impl_uniform_buffer_test.cc
@@ -37,7 +37,7 @@
float member;
};
-layout(binding = 0) uniform Simple_1 {
+layout(binding = 0) uniform Simple_ubo {
float member;
} simple;
@@ -57,7 +57,7 @@
float member;
};
-layout(binding = 0, std140) uniform Simple_1 {
+layout(binding = 0, std140) uniform Simple_ubo {
float member;
} simple;
diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc
index c2056a4..04cbaac 100644
--- a/src/tint/writer/spirv/builder.cc
+++ b/src/tint/writer/spirv/builder.cc
@@ -43,7 +43,7 @@
#include "src/tint/sem/type_conversion.h"
#include "src/tint/sem/variable.h"
#include "src/tint/sem/vector.h"
-#include "src/tint/transform/add_spirv_block_attribute.h"
+#include "src/tint/transform/add_block_attribute.h"
#include "src/tint/utils/defer.h"
#include "src/tint/utils/map.h"
#include "src/tint/writer/append_vector.h"
@@ -4059,8 +4059,7 @@
ops.push_back(result);
auto* decl = struct_type->Declaration();
- if (decl && ast::HasAttribute<transform::AddSpirvBlockAttribute::SpirvBlockAttribute>(
- decl->attributes)) {
+ if (decl && ast::HasAttribute<transform::AddBlockAttribute::BlockAttribute>(decl->attributes)) {
push_annot(spv::Op::OpDecorate, {Operand(struct_id), U32Operand(SpvDecorationBlock)});
}
diff --git a/src/tint/writer/spirv/generator_impl.cc b/src/tint/writer/spirv/generator_impl.cc
index d7a2b80..06f8613 100644
--- a/src/tint/writer/spirv/generator_impl.cc
+++ b/src/tint/writer/spirv/generator_impl.cc
@@ -17,8 +17,8 @@
#include <utility>
#include <vector>
+#include "src/tint/transform/add_block_attribute.h"
#include "src/tint/transform/add_empty_entry_point.h"
-#include "src/tint/transform/add_spirv_block_attribute.h"
#include "src/tint/transform/builtin_polyfill.h"
#include "src/tint/transform/canonicalize_entry_point_io.h"
#include "src/tint/transform/disable_uniformity_analysis.h"
@@ -86,7 +86,7 @@
manager.Add<transform::WhileToLoop>(); // ZeroInitWorkgroupMemory
manager.Add<transform::CanonicalizeEntryPointIO>();
manager.Add<transform::AddEmptyEntryPoint>();
- manager.Add<transform::AddSpirvBlockAttribute>();
+ manager.Add<transform::AddBlockAttribute>();
manager.Add<transform::VarForDynamicIndex>();
data.Add<transform::CanonicalizeEntryPointIO::Config>(
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.glsl b/test/tint/array/assign_to_function_var.wgsl.expected.glsl
index ef532a6..ecaba84 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.glsl
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.glsl
@@ -10,13 +10,14 @@
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
shared ivec4 src_workgroup[4];
-layout(binding = 0) uniform S_1 {
- ivec4 arr[4];
+layout(binding = 0) uniform src_uniform_block_ubo {
+ S inner;
} src_uniform;
-layout(binding = 1, std430) buffer S_2 {
- ivec4 arr[4];
+layout(binding = 1, std430) buffer src_uniform_block_ssbo {
+ S inner;
} src_storage;
+
ivec4[4] ret_arr() {
ivec4 tint_symbol_1[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
return tint_symbol_1;
@@ -41,8 +42,8 @@
dst = src_workgroup;
S tint_symbol = ret_struct_arr();
dst = tint_symbol.arr;
- dst = src_uniform.arr;
- dst = src_storage.arr;
+ dst = src_uniform.inner.arr;
+ dst = src_storage.inner.arr;
int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
dst_nested = src_nested;
diff --git a/test/tint/array/assign_to_function_var.wgsl.expected.spvasm b/test/tint/array/assign_to_function_var.wgsl.expected.spvasm
index 636346d..46e5c7f 100644
--- a/test/tint/array/assign_to_function_var.wgsl.expected.spvasm
+++ b/test/tint/array/assign_to_function_var.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 64
+; Bound: 65
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -9,6 +9,8 @@
OpExecutionMode %unused_entry_point LocalSize 1 1 1
OpName %src_private "src_private"
OpName %src_workgroup "src_workgroup"
+ OpName %src_uniform_block "src_uniform_block"
+ OpMemberName %src_uniform_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %src_uniform "src_uniform"
@@ -23,7 +25,8 @@
OpName %dst_nested "dst_nested"
OpName %src_nested "src_nested"
OpDecorate %_arr_v4int_uint_4 ArrayStride 16
- OpDecorate %S Block
+ OpDecorate %src_uniform_block Block
+ OpMemberDecorate %src_uniform_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpDecorate %src_uniform NonWritable
OpDecorate %src_uniform DescriptorSet 0
@@ -44,24 +47,25 @@
%_ptr_Workgroup__arr_v4int_uint_4 = OpTypePointer Workgroup %_arr_v4int_uint_4
%src_workgroup = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%S = OpTypeStruct %_arr_v4int_uint_4
-%_ptr_Uniform_S = OpTypePointer Uniform %S
-%src_uniform = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
-%src_storage = OpVariable %_ptr_StorageBuffer_S StorageBuffer
+%src_uniform_block = OpTypeStruct %S
+%_ptr_Uniform_src_uniform_block = OpTypePointer Uniform %src_uniform_block
+%src_uniform = OpVariable %_ptr_Uniform_src_uniform_block Uniform
+%_ptr_StorageBuffer_src_uniform_block = OpTypePointer StorageBuffer %src_uniform_block
+%src_storage = OpVariable %_ptr_StorageBuffer_src_uniform_block StorageBuffer
%void = OpTypeVoid
- %16 = OpTypeFunction %void
- %20 = OpTypeFunction %_arr_v4int_uint_4
- %23 = OpTypeFunction %S
- %26 = OpConstantNull %S
- %27 = OpTypeFunction %void %_arr_v4int_uint_4
+ %17 = OpTypeFunction %void
+ %21 = OpTypeFunction %_arr_v4int_uint_4
+ %24 = OpTypeFunction %S
+ %27 = OpConstantNull %S
+ %28 = OpTypeFunction %void %_arr_v4int_uint_4
%_ptr_Function__arr_v4int_uint_4 = OpTypePointer Function %_arr_v4int_uint_4
%int_1 = OpConstant %int 1
- %35 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+ %36 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
%int_2 = OpConstant %int 2
- %37 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
+ %38 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%int_3 = OpConstant %int 3
- %39 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
- %40 = OpConstantComposite %_arr_v4int_uint_4 %35 %37 %39 %39
+ %40 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
+ %41 = OpConstantComposite %_arr_v4int_uint_4 %36 %38 %40 %40
%uint_0 = OpConstant %uint 0
%_ptr_Uniform__arr_v4int_uint_4 = OpTypePointer Uniform %_arr_v4int_uint_4
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
@@ -71,47 +75,47 @@
%_arr__arr_int_uint_2_uint_3 = OpTypeArray %_arr_int_uint_2 %uint_3
%_arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypeArray %_arr__arr_int_uint_2_uint_3 %uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4
- %61 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
-%unused_entry_point = OpFunction %void None %16
- %19 = OpLabel
+ %62 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
+%unused_entry_point = OpFunction %void None %17
+ %20 = OpLabel
OpReturn
OpFunctionEnd
- %ret_arr = OpFunction %_arr_v4int_uint_4 None %20
- %22 = OpLabel
+ %ret_arr = OpFunction %_arr_v4int_uint_4 None %21
+ %23 = OpLabel
OpReturnValue %8
OpFunctionEnd
-%ret_struct_arr = OpFunction %S None %23
- %25 = OpLabel
- OpReturnValue %26
+%ret_struct_arr = OpFunction %S None %24
+ %26 = OpLabel
+ OpReturnValue %27
OpFunctionEnd
- %foo = OpFunction %void None %27
+ %foo = OpFunction %void None %28
%src_param = OpFunctionParameter %_arr_v4int_uint_4
- %30 = OpLabel
+ %31 = OpLabel
%src_function = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %8
%dst = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %8
- %dst_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %61
- %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %61
- OpStore %dst %40
- OpStore %dst %src_param
- %41 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
+ %dst_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %62
+ %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %62
OpStore %dst %41
- OpStore %dst %8
- %42 = OpLoad %_arr_v4int_uint_4 %src_function
+ OpStore %dst %src_param
+ %42 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
OpStore %dst %42
- %43 = OpLoad %_arr_v4int_uint_4 %src_private
+ OpStore %dst %8
+ %43 = OpLoad %_arr_v4int_uint_4 %src_function
OpStore %dst %43
- %44 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ %44 = OpLoad %_arr_v4int_uint_4 %src_private
OpStore %dst %44
- %45 = OpFunctionCall %S %ret_struct_arr
- %46 = OpCompositeExtract %_arr_v4int_uint_4 %45 0
- OpStore %dst %46
- %49 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0
- %50 = OpLoad %_arr_v4int_uint_4 %49
- OpStore %dst %50
- %52 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0
- %53 = OpLoad %_arr_v4int_uint_4 %52
- OpStore %dst %53
- %63 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
- OpStore %dst_nested %63
+ %45 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ OpStore %dst %45
+ %46 = OpFunctionCall %S %ret_struct_arr
+ %47 = OpCompositeExtract %_arr_v4int_uint_4 %46 0
+ OpStore %dst %47
+ %50 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0 %uint_0
+ %51 = OpLoad %_arr_v4int_uint_4 %50
+ OpStore %dst %51
+ %53 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0 %uint_0
+ %54 = OpLoad %_arr_v4int_uint_4 %53
+ OpStore %dst %54
+ %64 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
+ OpStore %dst_nested %64
OpReturn
OpFunctionEnd
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.glsl b/test/tint/array/assign_to_private_var.wgsl.expected.glsl
index 6a18417..57630d5 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.glsl
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.glsl
@@ -10,13 +10,14 @@
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
shared ivec4 src_workgroup[4];
-layout(binding = 0) uniform S_1 {
- ivec4 arr[4];
+layout(binding = 0) uniform src_uniform_block_ubo {
+ S inner;
} src_uniform;
-layout(binding = 1, std430) buffer S_2 {
- ivec4 arr[4];
+layout(binding = 1, std430) buffer src_uniform_block_ssbo {
+ S inner;
} src_storage;
+
ivec4 dst[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
int dst_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
ivec4[4] ret_arr() {
@@ -42,8 +43,8 @@
dst = src_workgroup;
S tint_symbol = ret_struct_arr();
dst = tint_symbol.arr;
- dst = src_uniform.arr;
- dst = src_storage.arr;
+ dst = src_uniform.inner.arr;
+ dst = src_storage.inner.arr;
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
dst_nested = src_nested;
}
diff --git a/test/tint/array/assign_to_private_var.wgsl.expected.spvasm b/test/tint/array/assign_to_private_var.wgsl.expected.spvasm
index 3427ea7..caae540 100644
--- a/test/tint/array/assign_to_private_var.wgsl.expected.spvasm
+++ b/test/tint/array/assign_to_private_var.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 66
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -9,6 +9,8 @@
OpExecutionMode %unused_entry_point LocalSize 1 1 1
OpName %src_private "src_private"
OpName %src_workgroup "src_workgroup"
+ OpName %src_uniform_block "src_uniform_block"
+ OpMemberName %src_uniform_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %src_uniform "src_uniform"
@@ -23,7 +25,8 @@
OpName %src_function "src_function"
OpName %src_nested "src_nested"
OpDecorate %_arr_v4int_uint_4 ArrayStride 16
- OpDecorate %S Block
+ OpDecorate %src_uniform_block Block
+ OpMemberDecorate %src_uniform_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpDecorate %src_uniform NonWritable
OpDecorate %src_uniform DescriptorSet 0
@@ -44,10 +47,11 @@
%_ptr_Workgroup__arr_v4int_uint_4 = OpTypePointer Workgroup %_arr_v4int_uint_4
%src_workgroup = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%S = OpTypeStruct %_arr_v4int_uint_4
-%_ptr_Uniform_S = OpTypePointer Uniform %S
-%src_uniform = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
-%src_storage = OpVariable %_ptr_StorageBuffer_S StorageBuffer
+%src_uniform_block = OpTypeStruct %S
+%_ptr_Uniform_src_uniform_block = OpTypePointer Uniform %src_uniform_block
+%src_uniform = OpVariable %_ptr_Uniform_src_uniform_block Uniform
+%_ptr_StorageBuffer_src_uniform_block = OpTypePointer StorageBuffer %src_uniform_block
+%src_storage = OpVariable %_ptr_StorageBuffer_src_uniform_block StorageBuffer
%dst = OpVariable %_ptr_Private__arr_v4int_uint_4 Private %8
%uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -55,64 +59,64 @@
%_arr__arr_int_uint_2_uint_3 = OpTypeArray %_arr_int_uint_2 %uint_3
%_arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypeArray %_arr__arr_int_uint_2_uint_3 %uint_4
%_ptr_Private__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Private %_arr__arr__arr_int_uint_2_uint_3_uint_4
- %24 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
- %dst_nested = OpVariable %_ptr_Private__arr__arr__arr_int_uint_2_uint_3_uint_4 Private %24
+ %25 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
+ %dst_nested = OpVariable %_ptr_Private__arr__arr__arr_int_uint_2_uint_3_uint_4 Private %25
%void = OpTypeVoid
- %25 = OpTypeFunction %void
- %29 = OpTypeFunction %_arr_v4int_uint_4
- %32 = OpTypeFunction %S
- %35 = OpConstantNull %S
- %36 = OpTypeFunction %void %_arr_v4int_uint_4
+ %26 = OpTypeFunction %void
+ %30 = OpTypeFunction %_arr_v4int_uint_4
+ %33 = OpTypeFunction %S
+ %36 = OpConstantNull %S
+ %37 = OpTypeFunction %void %_arr_v4int_uint_4
%_ptr_Function__arr_v4int_uint_4 = OpTypePointer Function %_arr_v4int_uint_4
%int_1 = OpConstant %int 1
- %43 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+ %44 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
%int_2 = OpConstant %int 2
- %45 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
+ %46 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%int_3 = OpConstant %int 3
- %47 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
- %48 = OpConstantComposite %_arr_v4int_uint_4 %43 %45 %47 %47
+ %48 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
+ %49 = OpConstantComposite %_arr_v4int_uint_4 %44 %46 %48 %48
%uint_0 = OpConstant %uint 0
%_ptr_Uniform__arr_v4int_uint_4 = OpTypePointer Uniform %_arr_v4int_uint_4
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4
-%unused_entry_point = OpFunction %void None %25
- %28 = OpLabel
+%unused_entry_point = OpFunction %void None %26
+ %29 = OpLabel
OpReturn
OpFunctionEnd
- %ret_arr = OpFunction %_arr_v4int_uint_4 None %29
- %31 = OpLabel
+ %ret_arr = OpFunction %_arr_v4int_uint_4 None %30
+ %32 = OpLabel
OpReturnValue %8
OpFunctionEnd
-%ret_struct_arr = OpFunction %S None %32
- %34 = OpLabel
- OpReturnValue %35
+%ret_struct_arr = OpFunction %S None %33
+ %35 = OpLabel
+ OpReturnValue %36
OpFunctionEnd
- %foo = OpFunction %void None %36
+ %foo = OpFunction %void None %37
%src_param = OpFunctionParameter %_arr_v4int_uint_4
- %39 = OpLabel
+ %40 = OpLabel
%src_function = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %8
- %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %24
- OpStore %dst %48
- OpStore %dst %src_param
- %49 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
+ %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %25
OpStore %dst %49
- OpStore %dst %8
- %50 = OpLoad %_arr_v4int_uint_4 %src_function
+ OpStore %dst %src_param
+ %50 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
OpStore %dst %50
- %51 = OpLoad %_arr_v4int_uint_4 %src_private
+ OpStore %dst %8
+ %51 = OpLoad %_arr_v4int_uint_4 %src_function
OpStore %dst %51
- %52 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ %52 = OpLoad %_arr_v4int_uint_4 %src_private
OpStore %dst %52
- %53 = OpFunctionCall %S %ret_struct_arr
- %54 = OpCompositeExtract %_arr_v4int_uint_4 %53 0
- OpStore %dst %54
- %57 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0
- %58 = OpLoad %_arr_v4int_uint_4 %57
- OpStore %dst %58
- %60 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0
- %61 = OpLoad %_arr_v4int_uint_4 %60
- OpStore %dst %61
- %64 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
- OpStore %dst_nested %64
+ %53 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ OpStore %dst %53
+ %54 = OpFunctionCall %S %ret_struct_arr
+ %55 = OpCompositeExtract %_arr_v4int_uint_4 %54 0
+ OpStore %dst %55
+ %58 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0 %uint_0
+ %59 = OpLoad %_arr_v4int_uint_4 %58
+ OpStore %dst %59
+ %61 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0 %uint_0
+ %62 = OpLoad %_arr_v4int_uint_4 %61
+ OpStore %dst %62
+ %65 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
+ OpStore %dst_nested %65
OpReturn
OpFunctionEnd
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.glsl b/test/tint/array/assign_to_storage_var.wgsl.expected.glsl
index bda5283..fd9a95f 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.glsl
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.glsl
@@ -8,25 +8,24 @@
ivec4 arr[4];
};
-struct S_nested {
- int arr[4][3][2];
-};
-
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
shared ivec4 src_workgroup[4];
-layout(binding = 0) uniform S_1 {
- ivec4 arr[4];
+layout(binding = 0) uniform src_uniform_block_ubo {
+ S inner;
} src_uniform;
-layout(binding = 1, std430) buffer S_2 {
- ivec4 arr[4];
+layout(binding = 1, std430) buffer src_uniform_block_ssbo {
+ S inner;
} src_storage;
-layout(binding = 2, std430) buffer S_3 {
- ivec4 arr[4];
+
+layout(binding = 2, std430) buffer src_uniform_block_ssbo_1 {
+ S inner;
} dst;
-layout(binding = 3, std430) buffer S_nested_1 {
+
+layout(binding = 3, std430) buffer S_nested_ssbo {
int arr[4][3][2];
} dst_nested;
+
ivec4[4] ret_arr() {
ivec4 tint_symbol_2[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
return tint_symbol_2;
@@ -40,19 +39,19 @@
void foo(ivec4 src_param[4]) {
ivec4 src_function[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
ivec4 tint_symbol_4[4] = ivec4[4](ivec4(1), ivec4(2), ivec4(3), ivec4(3));
- dst.arr = tint_symbol_4;
- dst.arr = src_param;
+ dst.inner.arr = tint_symbol_4;
+ dst.inner.arr = src_param;
ivec4 tint_symbol[4] = ret_arr();
- dst.arr = tint_symbol;
+ dst.inner.arr = tint_symbol;
ivec4 src_let[4] = ivec4[4](ivec4(0), ivec4(0), ivec4(0), ivec4(0));
- dst.arr = src_let;
- dst.arr = src_function;
- dst.arr = src_private;
- dst.arr = src_workgroup;
+ dst.inner.arr = src_let;
+ dst.inner.arr = src_function;
+ dst.inner.arr = src_private;
+ dst.inner.arr = src_workgroup;
S tint_symbol_1 = ret_struct_arr();
- dst.arr = tint_symbol_1.arr;
- dst.arr = src_uniform.arr;
- dst.arr = src_storage.arr;
+ dst.inner.arr = tint_symbol_1.arr;
+ dst.inner.arr = src_uniform.inner.arr;
+ dst.inner.arr = src_storage.inner.arr;
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
dst_nested.arr = src_nested;
}
diff --git a/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm b/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm
index f33dfbe..df20726 100644
--- a/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm
+++ b/test/tint/array/assign_to_storage_var.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 78
+; Bound: 79
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -9,6 +9,8 @@
OpExecutionMode %unused_entry_point LocalSize 1 1 1
OpName %src_private "src_private"
OpName %src_workgroup "src_workgroup"
+ OpName %src_uniform_block "src_uniform_block"
+ OpMemberName %src_uniform_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %src_uniform "src_uniform"
@@ -25,7 +27,8 @@
OpName %src_function "src_function"
OpName %src_nested "src_nested"
OpDecorate %_arr_v4int_uint_4 ArrayStride 16
- OpDecorate %S Block
+ OpDecorate %src_uniform_block Block
+ OpMemberDecorate %src_uniform_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpDecorate %src_uniform NonWritable
OpDecorate %src_uniform DescriptorSet 0
@@ -52,11 +55,12 @@
%_ptr_Workgroup__arr_v4int_uint_4 = OpTypePointer Workgroup %_arr_v4int_uint_4
%src_workgroup = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%S = OpTypeStruct %_arr_v4int_uint_4
-%_ptr_Uniform_S = OpTypePointer Uniform %S
-%src_uniform = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
-%src_storage = OpVariable %_ptr_StorageBuffer_S StorageBuffer
- %dst = OpVariable %_ptr_StorageBuffer_S StorageBuffer
+%src_uniform_block = OpTypeStruct %S
+%_ptr_Uniform_src_uniform_block = OpTypePointer Uniform %src_uniform_block
+%src_uniform = OpVariable %_ptr_Uniform_src_uniform_block Uniform
+%_ptr_StorageBuffer_src_uniform_block = OpTypePointer StorageBuffer %src_uniform_block
+%src_storage = OpVariable %_ptr_StorageBuffer_src_uniform_block StorageBuffer
+ %dst = OpVariable %_ptr_StorageBuffer_src_uniform_block StorageBuffer
%uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
%uint_3 = OpConstant %uint 3
@@ -66,74 +70,74 @@
%_ptr_StorageBuffer_S_nested = OpTypePointer StorageBuffer %S_nested
%dst_nested = OpVariable %_ptr_StorageBuffer_S_nested StorageBuffer
%void = OpTypeVoid
- %25 = OpTypeFunction %void
- %29 = OpTypeFunction %_arr_v4int_uint_4
- %32 = OpTypeFunction %S
- %35 = OpConstantNull %S
- %36 = OpTypeFunction %void %_arr_v4int_uint_4
+ %26 = OpTypeFunction %void
+ %30 = OpTypeFunction %_arr_v4int_uint_4
+ %33 = OpTypeFunction %S
+ %36 = OpConstantNull %S
+ %37 = OpTypeFunction %void %_arr_v4int_uint_4
%_ptr_Function__arr_v4int_uint_4 = OpTypePointer Function %_arr_v4int_uint_4
%uint_0 = OpConstant %uint 0
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
%int_1 = OpConstant %int 1
- %46 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+ %47 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
%int_2 = OpConstant %int 2
- %48 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
+ %49 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%int_3 = OpConstant %int 3
- %50 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
- %51 = OpConstantComposite %_arr_v4int_uint_4 %46 %48 %50 %50
+ %51 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
+ %52 = OpConstantComposite %_arr_v4int_uint_4 %47 %49 %51 %51
%_ptr_Uniform__arr_v4int_uint_4 = OpTypePointer Uniform %_arr_v4int_uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4
- %74 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
+ %75 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
%_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer StorageBuffer %_arr__arr__arr_int_uint_2_uint_3_uint_4
-%unused_entry_point = OpFunction %void None %25
- %28 = OpLabel
+%unused_entry_point = OpFunction %void None %26
+ %29 = OpLabel
OpReturn
OpFunctionEnd
- %ret_arr = OpFunction %_arr_v4int_uint_4 None %29
- %31 = OpLabel
+ %ret_arr = OpFunction %_arr_v4int_uint_4 None %30
+ %32 = OpLabel
OpReturnValue %8
OpFunctionEnd
-%ret_struct_arr = OpFunction %S None %32
- %34 = OpLabel
- OpReturnValue %35
+%ret_struct_arr = OpFunction %S None %33
+ %35 = OpLabel
+ OpReturnValue %36
OpFunctionEnd
- %foo = OpFunction %void None %36
+ %foo = OpFunction %void None %37
%src_param = OpFunctionParameter %_arr_v4int_uint_4
- %39 = OpLabel
+ %40 = OpLabel
%src_function = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %8
- %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %74
- %44 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- OpStore %44 %51
- %52 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- OpStore %52 %src_param
- %53 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
- %54 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- OpStore %54 %53
- %55 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- OpStore %55 %8
- %56 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %57 = OpLoad %_arr_v4int_uint_4 %src_function
- OpStore %56 %57
- %58 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %59 = OpLoad %_arr_v4int_uint_4 %src_private
- OpStore %58 %59
- %60 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %61 = OpLoad %_arr_v4int_uint_4 %src_workgroup
- OpStore %60 %61
- %62 = OpFunctionCall %S %ret_struct_arr
- %63 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %64 = OpCompositeExtract %_arr_v4int_uint_4 %62 0
- OpStore %63 %64
- %65 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %67 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0
- %68 = OpLoad %_arr_v4int_uint_4 %67
- OpStore %65 %68
- %69 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0
- %70 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0
- %71 = OpLoad %_arr_v4int_uint_4 %70
- OpStore %69 %71
- %76 = OpAccessChain %_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 %dst_nested %uint_0
- %77 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
- OpStore %76 %77
+ %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %75
+ %45 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ OpStore %45 %52
+ %53 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ OpStore %53 %src_param
+ %54 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
+ %55 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ OpStore %55 %54
+ %56 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ OpStore %56 %8
+ %57 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %58 = OpLoad %_arr_v4int_uint_4 %src_function
+ OpStore %57 %58
+ %59 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %60 = OpLoad %_arr_v4int_uint_4 %src_private
+ OpStore %59 %60
+ %61 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %62 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ OpStore %61 %62
+ %63 = OpFunctionCall %S %ret_struct_arr
+ %64 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %65 = OpCompositeExtract %_arr_v4int_uint_4 %63 0
+ OpStore %64 %65
+ %66 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %68 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0 %uint_0
+ %69 = OpLoad %_arr_v4int_uint_4 %68
+ OpStore %66 %69
+ %70 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %dst %uint_0 %uint_0
+ %71 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0 %uint_0
+ %72 = OpLoad %_arr_v4int_uint_4 %71
+ OpStore %70 %72
+ %77 = OpAccessChain %_ptr_StorageBuffer__arr__arr__arr_int_uint_2_uint_3_uint_4 %dst_nested %uint_0
+ %78 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
+ OpStore %77 %78
OpReturn
OpFunctionEnd
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.glsl b/test/tint/array/assign_to_workgroup_var.wgsl.expected.glsl
index e32aa22..c023ca5 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.glsl
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.glsl
@@ -10,13 +10,14 @@
ivec4 src_private[4] = ivec4[4](ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0));
shared ivec4 src_workgroup[4];
-layout(binding = 0) uniform S_1 {
- ivec4 arr[4];
+layout(binding = 0) uniform src_uniform_block_ubo {
+ S inner;
} src_uniform;
-layout(binding = 1, std430) buffer S_2 {
- ivec4 arr[4];
+layout(binding = 1, std430) buffer src_uniform_block_ssbo {
+ S inner;
} src_storage;
+
shared ivec4 dst[4];
shared int dst_nested[4][3][2];
ivec4[4] ret_arr() {
@@ -42,8 +43,8 @@
dst = src_workgroup;
S tint_symbol = ret_struct_arr();
dst = tint_symbol.arr;
- dst = src_uniform.arr;
- dst = src_storage.arr;
+ dst = src_uniform.inner.arr;
+ dst = src_storage.inner.arr;
int src_nested[4][3][2] = int[4][3][2](int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)), int[3][2](int[2](0, 0), int[2](0, 0), int[2](0, 0)));
dst_nested = src_nested;
}
diff --git a/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm b/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm
index a834fb2..85496ae 100644
--- a/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm
+++ b/test/tint/array/assign_to_workgroup_var.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 65
+; Bound: 66
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -9,6 +9,8 @@
OpExecutionMode %unused_entry_point LocalSize 1 1 1
OpName %src_private "src_private"
OpName %src_workgroup "src_workgroup"
+ OpName %src_uniform_block "src_uniform_block"
+ OpMemberName %src_uniform_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "arr"
OpName %src_uniform "src_uniform"
@@ -23,7 +25,8 @@
OpName %src_function "src_function"
OpName %src_nested "src_nested"
OpDecorate %_arr_v4int_uint_4 ArrayStride 16
- OpDecorate %S Block
+ OpDecorate %src_uniform_block Block
+ OpMemberDecorate %src_uniform_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpDecorate %src_uniform NonWritable
OpDecorate %src_uniform DescriptorSet 0
@@ -44,10 +47,11 @@
%_ptr_Workgroup__arr_v4int_uint_4 = OpTypePointer Workgroup %_arr_v4int_uint_4
%src_workgroup = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%S = OpTypeStruct %_arr_v4int_uint_4
-%_ptr_Uniform_S = OpTypePointer Uniform %S
-%src_uniform = OpVariable %_ptr_Uniform_S Uniform
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
-%src_storage = OpVariable %_ptr_StorageBuffer_S StorageBuffer
+%src_uniform_block = OpTypeStruct %S
+%_ptr_Uniform_src_uniform_block = OpTypePointer Uniform %src_uniform_block
+%src_uniform = OpVariable %_ptr_Uniform_src_uniform_block Uniform
+%_ptr_StorageBuffer_src_uniform_block = OpTypePointer StorageBuffer %src_uniform_block
+%src_storage = OpVariable %_ptr_StorageBuffer_src_uniform_block StorageBuffer
%dst = OpVariable %_ptr_Workgroup__arr_v4int_uint_4 Workgroup
%uint_2 = OpConstant %uint 2
%_arr_int_uint_2 = OpTypeArray %int %uint_2
@@ -57,62 +61,62 @@
%_ptr_Workgroup__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Workgroup %_arr__arr__arr_int_uint_2_uint_3_uint_4
%dst_nested = OpVariable %_ptr_Workgroup__arr__arr__arr_int_uint_2_uint_3_uint_4 Workgroup
%void = OpTypeVoid
- %24 = OpTypeFunction %void
- %28 = OpTypeFunction %_arr_v4int_uint_4
- %31 = OpTypeFunction %S
- %34 = OpConstantNull %S
- %35 = OpTypeFunction %void %_arr_v4int_uint_4
+ %25 = OpTypeFunction %void
+ %29 = OpTypeFunction %_arr_v4int_uint_4
+ %32 = OpTypeFunction %S
+ %35 = OpConstantNull %S
+ %36 = OpTypeFunction %void %_arr_v4int_uint_4
%_ptr_Function__arr_v4int_uint_4 = OpTypePointer Function %_arr_v4int_uint_4
%int_1 = OpConstant %int 1
- %42 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
+ %43 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
%int_2 = OpConstant %int 2
- %44 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
+ %45 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
%int_3 = OpConstant %int 3
- %46 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
- %47 = OpConstantComposite %_arr_v4int_uint_4 %42 %44 %46 %46
+ %47 = OpConstantComposite %v4int %int_3 %int_3 %int_3 %int_3
+ %48 = OpConstantComposite %_arr_v4int_uint_4 %43 %45 %47 %47
%uint_0 = OpConstant %uint 0
%_ptr_Uniform__arr_v4int_uint_4 = OpTypePointer Uniform %_arr_v4int_uint_4
%_ptr_StorageBuffer__arr_v4int_uint_4 = OpTypePointer StorageBuffer %_arr_v4int_uint_4
%_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 = OpTypePointer Function %_arr__arr__arr_int_uint_2_uint_3_uint_4
- %63 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
-%unused_entry_point = OpFunction %void None %24
- %27 = OpLabel
+ %64 = OpConstantNull %_arr__arr__arr_int_uint_2_uint_3_uint_4
+%unused_entry_point = OpFunction %void None %25
+ %28 = OpLabel
OpReturn
OpFunctionEnd
- %ret_arr = OpFunction %_arr_v4int_uint_4 None %28
- %30 = OpLabel
+ %ret_arr = OpFunction %_arr_v4int_uint_4 None %29
+ %31 = OpLabel
OpReturnValue %8
OpFunctionEnd
-%ret_struct_arr = OpFunction %S None %31
- %33 = OpLabel
- OpReturnValue %34
+%ret_struct_arr = OpFunction %S None %32
+ %34 = OpLabel
+ OpReturnValue %35
OpFunctionEnd
- %foo = OpFunction %void None %35
+ %foo = OpFunction %void None %36
%src_param = OpFunctionParameter %_arr_v4int_uint_4
- %38 = OpLabel
+ %39 = OpLabel
%src_function = OpVariable %_ptr_Function__arr_v4int_uint_4 Function %8
- %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %63
- OpStore %dst %47
- OpStore %dst %src_param
- %48 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
+ %src_nested = OpVariable %_ptr_Function__arr__arr__arr_int_uint_2_uint_3_uint_4 Function %64
OpStore %dst %48
- OpStore %dst %8
- %49 = OpLoad %_arr_v4int_uint_4 %src_function
+ OpStore %dst %src_param
+ %49 = OpFunctionCall %_arr_v4int_uint_4 %ret_arr
OpStore %dst %49
- %50 = OpLoad %_arr_v4int_uint_4 %src_private
+ OpStore %dst %8
+ %50 = OpLoad %_arr_v4int_uint_4 %src_function
OpStore %dst %50
- %51 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ %51 = OpLoad %_arr_v4int_uint_4 %src_private
OpStore %dst %51
- %52 = OpFunctionCall %S %ret_struct_arr
- %53 = OpCompositeExtract %_arr_v4int_uint_4 %52 0
- OpStore %dst %53
- %56 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0
- %57 = OpLoad %_arr_v4int_uint_4 %56
- OpStore %dst %57
- %59 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0
- %60 = OpLoad %_arr_v4int_uint_4 %59
- OpStore %dst %60
- %64 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
- OpStore %dst_nested %64
+ %52 = OpLoad %_arr_v4int_uint_4 %src_workgroup
+ OpStore %dst %52
+ %53 = OpFunctionCall %S %ret_struct_arr
+ %54 = OpCompositeExtract %_arr_v4int_uint_4 %53 0
+ OpStore %dst %54
+ %57 = OpAccessChain %_ptr_Uniform__arr_v4int_uint_4 %src_uniform %uint_0 %uint_0
+ %58 = OpLoad %_arr_v4int_uint_4 %57
+ OpStore %dst %58
+ %60 = OpAccessChain %_ptr_StorageBuffer__arr_v4int_uint_4 %src_storage %uint_0 %uint_0
+ %61 = OpLoad %_arr_v4int_uint_4 %60
+ OpStore %dst %61
+ %65 = OpLoad %_arr__arr__arr_int_uint_2_uint_3_uint_4 %src_nested
+ OpStore %dst_nested %65
OpReturn
OpFunctionEnd
diff --git a/test/tint/array/strides.spvasm.expected.glsl b/test/tint/array/strides.spvasm.expected.glsl
index 6d3f329..90c988a 100644
--- a/test/tint/array/strides.spvasm.expected.glsl
+++ b/test/tint/array/strides.spvasm.expected.glsl
@@ -8,13 +8,10 @@
strided_arr el[3][2];
};
-struct S {
- strided_arr_1 a[4];
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
strided_arr_1 a[4];
} s;
+
void f_1() {
strided_arr_1 x_19[4] = s.a;
strided_arr x_24[3][2] = s.a[3].el;
diff --git a/test/tint/benchmark/particles.wgsl.expected.glsl b/test/tint/benchmark/particles.wgsl.expected.glsl
index 88e5156..4f82c9e 100644
--- a/test/tint/benchmark/particles.wgsl.expected.glsl
+++ b/test/tint/benchmark/particles.wgsl.expected.glsl
@@ -7,13 +7,7 @@
layout(location = 2) in vec2 quad_pos_1;
layout(location = 0) out vec4 color_2;
layout(location = 1) out vec2 quad_pos_2;
-struct RenderParams {
- mat4 modelViewProjectionMatrix;
- vec3 right;
- vec3 up;
-};
-
-layout(binding = 0) uniform RenderParams_1 {
+layout(binding = 0) uniform RenderParams_ubo {
mat4 modelViewProjectionMatrix;
vec3 right;
vec3 up;
@@ -147,11 +141,6 @@
vec2 quad_pos;
};
-struct SimulationParams {
- float deltaTime;
- vec4 seed;
-};
-
struct Particle {
vec3 position;
float lifetime;
@@ -159,14 +148,15 @@
vec3 velocity;
};
-layout(binding = 0) uniform SimulationParams_1 {
+layout(binding = 0) uniform SimulationParams_ubo {
float deltaTime;
vec4 seed;
} sim_params;
-layout(binding = 1, std430) buffer Particles_1 {
+layout(binding = 1, std430) buffer Particles_ssbo {
Particle particles[];
} data;
+
struct UBO {
uint width;
};
@@ -214,8 +204,8 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:64: 'textureQueryLevels' : no matching overloaded function found
-ERROR: 0:64: '' : compilation terminated
+ERROR: 0:60: 'textureQueryLevels' : no matching overloaded function found
+ERROR: 0:60: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.
@@ -252,20 +242,18 @@
vec3 velocity;
};
-struct UBO {
- uint width;
-};
-
-layout(binding = 3) uniform UBO_1 {
+layout(binding = 3) uniform UBO_ubo {
uint width;
} ubo;
-layout(binding = 4, std430) buffer Buffer_1 {
+layout(binding = 4, std430) buffer Buffer_ssbo {
float weights[];
} buf_in;
-layout(binding = 5, std430) buffer Buffer_2 {
+
+layout(binding = 5, std430) buffer Buffer_ssbo_1 {
float weights[];
} buf_out;
+
uniform highp sampler2D tex_in_1;
void import_level(uvec3 coord) {
uint offset = (coord.x + (coord.y * ubo.width));
@@ -309,20 +297,18 @@
vec3 velocity;
};
-struct UBO {
- uint width;
-};
-
-layout(binding = 3) uniform UBO_1 {
+layout(binding = 3) uniform UBO_ubo {
uint width;
} ubo;
-layout(binding = 4, std430) buffer Buffer_1 {
+layout(binding = 4, std430) buffer Buffer_ssbo {
float weights[];
} buf_in;
-layout(binding = 5, std430) buffer Buffer_2 {
+
+layout(binding = 5, std430) buffer Buffer_ssbo_1 {
float weights[];
} buf_out;
+
layout(rgba8) uniform highp writeonly image2D tex_out;
void export_level(uvec3 coord) {
if (all(lessThan(coord.xy, uvec2(imageSize(tex_out))))) {
diff --git a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.glsl b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.glsl
index c2aca77..6ef2768 100644
--- a/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/dynamic_index/read.wgsl.expected.glsl
@@ -12,9 +12,10 @@
ivec4 i[4];
};
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
Inner arr[];
} s;
+
void tint_symbol(uint idx) {
ivec3 a = s.arr[idx].a;
int b = s.arr[idx].b;
diff --git a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
index 827cccc..71c6708 100644
--- a/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/dynamic_index/write.wgsl.expected.glsl
@@ -12,9 +12,10 @@
ivec4 i[4];
};
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
Inner arr[];
} s;
+
void tint_symbol(uint idx) {
s.arr[idx].a = ivec3(0);
s.arr[idx].b = 0;
diff --git a/test/tint/buffer/storage/static_index/read.wgsl.expected.glsl b/test/tint/buffer/storage/static_index/read.wgsl.expected.glsl
index b2e9f78..447a5fc 100644
--- a/test/tint/buffer/storage/static_index/read.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/static_index/read.wgsl.expected.glsl
@@ -4,20 +4,7 @@
int x;
};
-struct S {
- ivec3 a;
- int b;
- uvec3 c;
- uint d;
- vec3 e;
- float f;
- mat2x3 g;
- mat3x2 h;
- Inner i;
- Inner j[4];
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec3 a;
int b;
uvec3 c;
@@ -29,6 +16,7 @@
Inner i;
Inner j[4];
} s;
+
void tint_symbol() {
ivec3 a = s.a;
int b = s.b;
diff --git a/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl b/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
index 947728e..f2f9b98 100644
--- a/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/static_index/write.wgsl.expected.glsl
@@ -4,20 +4,7 @@
int x;
};
-struct S {
- ivec3 a;
- int b;
- uvec3 c;
- uint d;
- vec3 e;
- float f;
- mat2x3 g;
- mat3x2 h;
- Inner i;
- Inner j[4];
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec3 a;
int b;
uvec3 c;
@@ -29,6 +16,7 @@
Inner i;
Inner j[4];
} s;
+
void tint_symbol() {
s.a = ivec3(0);
s.b = 0;
diff --git a/test/tint/buffer/storage/types/array.wgsl.expected.glsl b/test/tint/buffer/storage/types/array.wgsl.expected.glsl
index 490065e..f90230b 100644
--- a/test/tint/buffer/storage/types/array.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/array.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- float inner[4];
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
float inner[4];
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
float inner[4];
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/f32.wgsl.expected.glsl b/test/tint/buffer/storage/types/f32.wgsl.expected.glsl
index 8b5a1ad..7c9cd92 100644
--- a/test/tint/buffer/storage/types/f32.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/f32.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- float inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
float inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
float inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/i32.wgsl.expected.glsl b/test/tint/buffer/storage/types/i32.wgsl.expected.glsl
index 7d4b0e8..3f9cb20 100644
--- a/test/tint/buffer/storage/types/i32.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/i32.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- int inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
int inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
int inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/mat2x2.wgsl.expected.glsl b/test/tint/buffer/storage/types/mat2x2.wgsl.expected.glsl
index 44e0e39..2266eb1 100644
--- a/test/tint/buffer/storage/types/mat2x2.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/mat2x2.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- mat2 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
mat2 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
mat2 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/mat2x3.wgsl.expected.glsl b/test/tint/buffer/storage/types/mat2x3.wgsl.expected.glsl
index 81b2a71..8112c5d 100644
--- a/test/tint/buffer/storage/types/mat2x3.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/mat2x3.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- mat2x3 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
mat2x3 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
mat2x3 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/mat3x2.wgsl.expected.glsl b/test/tint/buffer/storage/types/mat3x2.wgsl.expected.glsl
index d2ee221..ce99ab0 100644
--- a/test/tint/buffer/storage/types/mat3x2.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/mat3x2.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- mat3x2 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
mat3x2 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
mat3x2 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/mat4x4.wgsl.expected.glsl b/test/tint/buffer/storage/types/mat4x4.wgsl.expected.glsl
index 2b60247..b6c957a 100644
--- a/test/tint/buffer/storage/types/mat4x4.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/mat4x4.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- mat4 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
mat4 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
mat4 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/runtime_array.wgsl.expected.glsl b/test/tint/buffer/storage/types/runtime_array.wgsl.expected.glsl
index 438385f..40eb01b 100644
--- a/test/tint/buffer/storage/types/runtime_array.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/runtime_array.wgsl.expected.glsl
@@ -4,12 +4,14 @@
float f;
};
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
S inner[];
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
S inner[];
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner[0] = tint_symbol.inner[0];
}
diff --git a/test/tint/buffer/storage/types/struct.wgsl.expected.glsl b/test/tint/buffer/storage/types/struct.wgsl.expected.glsl
index e20caab..d33f278 100644
--- a/test/tint/buffer/storage/types/struct.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/struct.wgsl.expected.glsl
@@ -6,16 +6,14 @@
float f;
};
-struct S {
- Inner inner;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
Inner inner;
} tint_symbol;
-layout(binding = 1, std430) buffer S_2 {
+
+layout(binding = 1, std430) buffer S_ssbo_1 {
Inner inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1 = tint_symbol;
}
@@ -26,8 +24,8 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:18: 'assign' : cannot convert from 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global highp float f} inner}' to 'layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global highp float f} inner}'
-ERROR: 0:18: '' : compilation terminated
+ERROR: 0:16: 'assign' : cannot convert from 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global highp float f} inner}' to 'layout( binding=1 column_major std430) buffer block{layout( column_major std430 offset=0) buffer structure{ global highp float f} inner}'
+ERROR: 0:16: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.
diff --git a/test/tint/buffer/storage/types/u32.wgsl.expected.glsl b/test/tint/buffer/storage/types/u32.wgsl.expected.glsl
index c239e5a..5ee3c7c 100644
--- a/test/tint/buffer/storage/types/u32.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/u32.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
uint inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
uint inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/vec2.wgsl.expected.glsl b/test/tint/buffer/storage/types/vec2.wgsl.expected.glsl
index 65e25d0..078f7e6 100644
--- a/test/tint/buffer/storage/types/vec2.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/vec2.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- ivec2 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
ivec2 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
ivec2 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/vec3.wgsl.expected.glsl b/test/tint/buffer/storage/types/vec3.wgsl.expected.glsl
index 3d37255..899f170 100644
--- a/test/tint/buffer/storage/types/vec3.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/vec3.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- uvec3 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
uvec3 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
uvec3 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/storage/types/vec4.wgsl.expected.glsl b/test/tint/buffer/storage/types/vec4.wgsl.expected.glsl
index 4dc8ec5..fcb4b51 100644
--- a/test/tint/buffer/storage/types/vec4.wgsl.expected.glsl
+++ b/test/tint/buffer/storage/types/vec4.wgsl.expected.glsl
@@ -1,15 +1,13 @@
#version 310 es
-struct tint_symbol_block {
- vec4 inner;
-};
-
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
vec4 inner;
} tint_symbol;
-layout(binding = 1, std430) buffer tint_symbol_block_2 {
+
+layout(binding = 1, std430) buffer tint_symbol_block_ssbo_1 {
vec4 inner;
} tint_symbol_1;
+
void tint_symbol_2() {
tint_symbol_1.inner = tint_symbol.inner;
}
diff --git a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.glsl b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
index f9e6f8c..ebf8edb 100644
--- a/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/dynamic_index/read.wgsl.expected.glsl
@@ -34,11 +34,7 @@
Inner arr[8];
};
-struct S_std140 {
- Inner_std140 arr[8];
-};
-
-layout(binding = 0) uniform S_std140_1 {
+layout(binding = 0) uniform S_std140_ubo {
Inner_std140 arr[8];
} s;
diff --git a/test/tint/buffer/uniform/static_index/read.wgsl.expected.glsl b/test/tint/buffer/uniform/static_index/read.wgsl.expected.glsl
index 20d5414..82cc9d0 100644
--- a/test/tint/buffer/uniform/static_index/read.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/static_index/read.wgsl.expected.glsl
@@ -19,24 +19,7 @@
Inner l[4];
};
-struct S_std140 {
- ivec3 a;
- int b;
- uvec3 c;
- uint d;
- vec3 e;
- float f;
- ivec2 g;
- ivec2 h;
- mat2x3 i;
- vec2 j_0;
- vec2 j_1;
- vec2 j_2;
- Inner k;
- Inner l[4];
-};
-
-layout(binding = 0) uniform S_std140_1 {
+layout(binding = 0) uniform S_std140_ubo {
ivec3 a;
int b;
uvec3 c;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/dynamic_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/dynamic_index_via_ptr.wgsl.expected.glsl
index 9f698b3..e53a2e0 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/dynamic_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/dynamic_index_via_ptr.wgsl.expected.glsl
@@ -17,11 +17,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/static_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/static_index_via_ptr.wgsl.expected.glsl
index 38280cd..7f11118 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/static_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/static_index_via_ptr.wgsl.expected.glsl
@@ -17,11 +17,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/to_builtin.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/to_builtin.wgsl.expected.glsl
index 91beaa7..1850c73 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/to_builtin.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/to_builtin.wgsl.expected.glsl
@@ -13,11 +13,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/to_fn.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/to_fn.wgsl.expected.glsl
index b2fc7d8..576ddd0 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/to_fn.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/to_fn.wgsl.expected.glsl
@@ -13,11 +13,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/to_private.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/to_private.wgsl.expected.glsl
index 7d8afca..a6b76c6 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/to_private.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/to_private.wgsl.expected.glsl
@@ -13,11 +13,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/to_storage.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/to_storage.wgsl.expected.glsl
index 6961e35..afca67d 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/to_storage.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/to_storage.wgsl.expected.glsl
@@ -13,21 +13,14 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
-struct s_block {
- S inner[4];
-};
-
-layout(binding = 1, std430) buffer s_block_1 {
+layout(binding = 1, std430) buffer s_block_ssbo {
S inner[4];
} s;
+
S conv_S(S_std140 val) {
S tint_symbol = S(val.before, mat2(val.m_0, val.m_1), val.after);
return tint_symbol;
diff --git a/test/tint/buffer/uniform/std140/mat2x2/to_workgroup.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat2x2/to_workgroup.wgsl.expected.glsl
index 0f49e3f..af5d513 100644
--- a/test/tint/buffer/uniform/std140/mat2x2/to_workgroup.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat2x2/to_workgroup.wgsl.expected.glsl
@@ -13,11 +13,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/dynamic_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/dynamic_index_via_ptr.wgsl.expected.glsl
index 77e3585..8aaf4c2 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/dynamic_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/dynamic_index_via_ptr.wgsl.expected.glsl
@@ -18,11 +18,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/static_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/static_index_via_ptr.wgsl.expected.glsl
index 3df60e5..47bf6ba 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/static_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/static_index_via_ptr.wgsl.expected.glsl
@@ -18,11 +18,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/to_builtin.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/to_builtin.wgsl.expected.glsl
index 9ffd3ac..d940c27 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/to_builtin.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/to_builtin.wgsl.expected.glsl
@@ -14,11 +14,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/to_fn.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/to_fn.wgsl.expected.glsl
index 04a65eb..8bcd005 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/to_fn.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/to_fn.wgsl.expected.glsl
@@ -14,11 +14,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/to_private.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/to_private.wgsl.expected.glsl
index f9eeb07..3c89125 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/to_private.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/to_private.wgsl.expected.glsl
@@ -14,11 +14,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/to_storage.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/to_storage.wgsl.expected.glsl
index 3a1cb49..df93b26 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/to_storage.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/to_storage.wgsl.expected.glsl
@@ -14,21 +14,14 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
-struct s_block {
- S inner[4];
-};
-
-layout(binding = 1, std430) buffer s_block_1 {
+layout(binding = 1, std430) buffer s_block_ssbo {
S inner[4];
} s;
+
S conv_S(S_std140 val) {
S tint_symbol = S(val.before, mat3x2(val.m_0, val.m_1, val.m_2), val.after);
return tint_symbol;
diff --git a/test/tint/buffer/uniform/std140/mat3x2/to_workgroup.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat3x2/to_workgroup.wgsl.expected.glsl
index 1c5b65e..d004b4b 100644
--- a/test/tint/buffer/uniform/std140/mat3x2/to_workgroup.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat3x2/to_workgroup.wgsl.expected.glsl
@@ -14,11 +14,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/dynamic_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/dynamic_index_via_ptr.wgsl.expected.glsl
index f495bbd..1ccb8d2 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/dynamic_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/dynamic_index_via_ptr.wgsl.expected.glsl
@@ -19,11 +19,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/static_index_via_ptr.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/static_index_via_ptr.wgsl.expected.glsl
index c1a89f6..5c10cfb 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/static_index_via_ptr.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/static_index_via_ptr.wgsl.expected.glsl
@@ -19,11 +19,7 @@
Inner_std140 a[4];
};
-struct a_block {
- Outer_std140 inner[4];
-};
-
-layout(binding = 0) uniform a_block_1 {
+layout(binding = 0) uniform a_block_ubo {
Outer_std140 inner[4];
} a;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/to_builtin.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/to_builtin.wgsl.expected.glsl
index 110d8e5..46fbeb6 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/to_builtin.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/to_builtin.wgsl.expected.glsl
@@ -15,11 +15,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/to_fn.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/to_fn.wgsl.expected.glsl
index a73babb..c409f8b 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/to_fn.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/to_fn.wgsl.expected.glsl
@@ -15,11 +15,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/to_private.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/to_private.wgsl.expected.glsl
index 9bf0359..9696062 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/to_private.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/to_private.wgsl.expected.glsl
@@ -15,11 +15,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/to_storage.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/to_storage.wgsl.expected.glsl
index fa43041..72e4c1c 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/to_storage.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/to_storage.wgsl.expected.glsl
@@ -15,21 +15,14 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
-struct s_block {
- S inner[4];
-};
-
-layout(binding = 1, std430) buffer s_block_1 {
+layout(binding = 1, std430) buffer s_block_ssbo {
S inner[4];
} s;
+
S conv_S(S_std140 val) {
S tint_symbol = S(val.before, mat4x2(val.m_0, val.m_1, val.m_2, val.m_3), val.after);
return tint_symbol;
diff --git a/test/tint/buffer/uniform/std140/mat4x2/to_workgroup.wgsl.expected.glsl b/test/tint/buffer/uniform/std140/mat4x2/to_workgroup.wgsl.expected.glsl
index 945cbcf..5f308a1 100644
--- a/test/tint/buffer/uniform/std140/mat4x2/to_workgroup.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/std140/mat4x2/to_workgroup.wgsl.expected.glsl
@@ -15,11 +15,7 @@
int after;
};
-struct u_block {
- S_std140 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
S_std140 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/types/array.wgsl.expected.glsl b/test/tint/buffer/uniform/types/array.wgsl.expected.glsl
index 68352ce..d07ae63 100644
--- a/test/tint/buffer/uniform/types/array.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/array.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- vec4 inner[4];
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
vec4 inner[4];
} u;
diff --git a/test/tint/buffer/uniform/types/f32.wgsl.expected.glsl b/test/tint/buffer/uniform/types/f32.wgsl.expected.glsl
index 4c45bc3..664b5a3 100644
--- a/test/tint/buffer/uniform/types/f32.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/f32.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- float inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
float inner;
} u;
diff --git a/test/tint/buffer/uniform/types/i32.wgsl.expected.glsl b/test/tint/buffer/uniform/types/i32.wgsl.expected.glsl
index 7d07279..69fc627 100644
--- a/test/tint/buffer/uniform/types/i32.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/i32.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- int inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
int inner;
} u;
diff --git a/test/tint/buffer/uniform/types/mat2x2.wgsl.expected.glsl b/test/tint/buffer/uniform/types/mat2x2.wgsl.expected.glsl
index 2e7ee4f..e53fad7 100644
--- a/test/tint/buffer/uniform/types/mat2x2.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/mat2x2.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- mat2 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
mat2 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/mat2x3.wgsl.expected.glsl b/test/tint/buffer/uniform/types/mat2x3.wgsl.expected.glsl
index a47210b..ce089a2 100644
--- a/test/tint/buffer/uniform/types/mat2x3.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/mat2x3.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- mat2x3 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
mat2x3 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/mat3x2.wgsl.expected.glsl b/test/tint/buffer/uniform/types/mat3x2.wgsl.expected.glsl
index 2915d77..4bf66e3 100644
--- a/test/tint/buffer/uniform/types/mat3x2.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/mat3x2.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- mat3x2 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
mat3x2 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/mat4x4.wgsl.expected.glsl b/test/tint/buffer/uniform/types/mat4x4.wgsl.expected.glsl
index 5fb106fd..f0b2c98 100644
--- a/test/tint/buffer/uniform/types/mat4x4.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/mat4x4.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- mat4 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
mat4 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/struct.wgsl.expected.glsl b/test/tint/buffer/uniform/types/struct.wgsl.expected.glsl
index e844ec6..708f176 100644
--- a/test/tint/buffer/uniform/types/struct.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/struct.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct Inner {
@@ -10,12 +8,12 @@
Inner inner;
};
-layout(binding = 0) uniform S_1 {
- Inner inner;
+layout(binding = 0) uniform u_block_ubo {
+ S inner;
} u;
void tint_symbol() {
- S x = u;
+ S x = u.inner;
}
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
@@ -23,10 +21,3 @@
tint_symbol();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:16: '=' : cannot convert from 'layout( binding=0 column_major shared) uniform block{layout( column_major shared) uniform structure{ global highp float f} inner}' to ' temp structure{ global structure{ global highp float f} inner}'
-ERROR: 0:16: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/buffer/uniform/types/struct.wgsl.expected.spvasm b/test/tint/buffer/uniform/types/struct.wgsl.expected.spvasm
index b8d2ad8..9c63d49 100644
--- a/test/tint/buffer/uniform/types/struct.wgsl.expected.spvasm
+++ b/test/tint/buffer/uniform/types/struct.wgsl.expected.spvasm
@@ -1,19 +1,22 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 11
+; Bound: 16
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %main "main"
OpExecutionMode %main LocalSize 1 1 1
+ OpName %u_block "u_block"
+ OpMemberName %u_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "inner"
OpName %Inner "Inner"
OpMemberName %Inner 0 "f"
OpName %u "u"
OpName %main "main"
- OpDecorate %S Block
+ OpDecorate %u_block Block
+ OpMemberDecorate %u_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %Inner 0 Offset 0
OpDecorate %u NonWritable
@@ -22,12 +25,17 @@
%float = OpTypeFloat 32
%Inner = OpTypeStruct %float
%S = OpTypeStruct %Inner
-%_ptr_Uniform_S = OpTypePointer Uniform %S
- %u = OpVariable %_ptr_Uniform_S Uniform
+ %u_block = OpTypeStruct %S
+%_ptr_Uniform_u_block = OpTypePointer Uniform %u_block
+ %u = OpVariable %_ptr_Uniform_u_block Uniform
%void = OpTypeVoid
- %6 = OpTypeFunction %void
- %main = OpFunction %void None %6
- %9 = OpLabel
- %10 = OpLoad %S %u
+ %7 = OpTypeFunction %void
+ %uint = OpTypeInt 32 0
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_S = OpTypePointer Uniform %S
+ %main = OpFunction %void None %7
+ %10 = OpLabel
+ %14 = OpAccessChain %_ptr_Uniform_S %u %uint_0
+ %15 = OpLoad %S %14
OpReturn
OpFunctionEnd
diff --git a/test/tint/buffer/uniform/types/u32.wgsl.expected.glsl b/test/tint/buffer/uniform/types/u32.wgsl.expected.glsl
index c3369ca..68cf9bc 100644
--- a/test/tint/buffer/uniform/types/u32.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/u32.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- uint inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
uint inner;
} u;
diff --git a/test/tint/buffer/uniform/types/vec2.wgsl.expected.glsl b/test/tint/buffer/uniform/types/vec2.wgsl.expected.glsl
index 208277d..d3a3922 100644
--- a/test/tint/buffer/uniform/types/vec2.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/vec2.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- ivec2 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
ivec2 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/vec3.wgsl.expected.glsl b/test/tint/buffer/uniform/types/vec3.wgsl.expected.glsl
index 05975ff..473cdcd 100644
--- a/test/tint/buffer/uniform/types/vec3.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/vec3.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- uvec3 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
uvec3 inner;
} u;
diff --git a/test/tint/buffer/uniform/types/vec4.wgsl.expected.glsl b/test/tint/buffer/uniform/types/vec4.wgsl.expected.glsl
index 93a224e..2006679 100644
--- a/test/tint/buffer/uniform/types/vec4.wgsl.expected.glsl
+++ b/test/tint/buffer/uniform/types/vec4.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct u_block {
- vec4 inner;
-};
-
-layout(binding = 0) uniform u_block_1 {
+layout(binding = 0) uniform u_block_ubo {
vec4 inner;
} u;
diff --git a/test/tint/bug/chromium/1273230.wgsl.expected.glsl b/test/tint/bug/chromium/1273230.wgsl.expected.glsl
index 5793189..685ab03 100644
--- a/test/tint/bug/chromium/1273230.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1273230.wgsl.expected.glsl
@@ -1,30 +1,6 @@
#version 310 es
-struct Uniforms {
- uint numTriangles;
- uint gridSize;
- uint puuuuuuuuuuuuuuuuad1;
- uint pad2;
- vec3 bbMin;
- vec3 bbMax;
-};
-
-struct Dbg {
- uint offsetCounter;
- uint pad0;
- uint pad1;
- uint pad2;
- uint value0;
- uint value1;
- uint value2;
- uint value3;
- float value_f32_0;
- float value_f32_1;
- float value_f32_2;
- float value_f32_3;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
uint numTriangles;
uint gridSize;
uint puuuuuuuuuuuuuuuuad1;
@@ -33,19 +9,23 @@
vec3 bbMax;
} uniforms;
-layout(binding = 10, std430) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_ssbo {
uint values[];
} indices;
-layout(binding = 11, std430) buffer F32s_1 {
+
+layout(binding = 11, std430) buffer F32s_ssbo {
float values[];
} positions;
-layout(binding = 20, std430) buffer AU32s_1 {
+
+layout(binding = 20, std430) buffer AU32s_ssbo {
uint values[];
} counters;
-layout(binding = 21, std430) buffer AI32s_1 {
+
+layout(binding = 21, std430) buffer AI32s_ssbo {
int values[];
} LUT;
-layout(binding = 50, std430) buffer Dbg_1 {
+
+layout(binding = 50, std430) buffer Dbg_ssbo {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -59,6 +39,7 @@
float value_f32_2;
float value_f32_3;
} dbg;
+
vec3 toVoxelPos(vec3 position) {
vec3 bbMin = vec3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
vec3 bbMax = vec3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
diff --git a/test/tint/bug/chromium/1290107.wgsl.expected.glsl b/test/tint/bug/chromium/1290107.wgsl.expected.glsl
index 4073388..7c5b1d3 100644
--- a/test/tint/bug/chromium/1290107.wgsl.expected.glsl
+++ b/test/tint/bug/chromium/1290107.wgsl.expected.glsl
@@ -4,9 +4,10 @@
float f;
};
-layout(binding = 0, std430) buffer arr_block_1 {
+layout(binding = 0, std430) buffer arr_block_ssbo {
S inner[];
} arr;
+
void tint_symbol() {
uint len = uint(arr.inner.length());
}
diff --git a/test/tint/bug/dawn/947.wgsl.expected.glsl b/test/tint/bug/dawn/947.wgsl.expected.glsl
index ce20459..1eb7221 100644
--- a/test/tint/bug/dawn/947.wgsl.expected.glsl
+++ b/test/tint/bug/dawn/947.wgsl.expected.glsl
@@ -13,12 +13,7 @@
#version 310 es
layout(location = 0) out vec2 texcoords_1;
-struct Uniforms {
- vec2 u_scale;
- vec2 u_offset;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
vec2 u_scale;
vec2 u_offset;
} uniforms;
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
index c1318a7..e7bad69 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/function.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
void f() {
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
result.tint_symbol = s.data[ubo.dynamic_idx];
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
index f0795b3..8ed17e0 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/private.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
void f() {
result.tint_symbol = s.data[ubo.dynamic_idx];
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
index 549058c..68fb649 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/storage.wgsl.expected.glsl
@@ -1,27 +1,17 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 2, std430) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_ssbo {
int tint_symbol;
} result;
-struct SSBO {
- int data[4];
-};
-layout(binding = 1, std430) buffer SSBO_1 {
+layout(binding = 1, std430) buffer SSBO_ssbo {
int data[4];
} ssbo;
+
void f() {
result.tint_symbol = ssbo.data[ubo.dynamic_idx];
}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
index 641aa10..e980b5d 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/uniform.wgsl.expected.glsl
@@ -1,22 +1,14 @@
#version 310 es
-struct UBO {
- ivec4 data[4];
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
ivec4 data[4];
int dynamic_idx;
} ubo;
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 2, std430) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
void f() {
result.tint_symbol = ubo.data[ubo.dynamic_idx].x;
}
diff --git a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
index 6f0710e..c98cbdf 100644
--- a/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/read/workgroup.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
shared S s;
void f(uint local_invocation_index) {
{
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
index a2b99f2..1798e8b 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
void f() {
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
s.data[ubo.dynamic_idx] = 1;
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
index a2dd311..a5ca9c7 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/function_via_param.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
void x(inout S p) {
p.data[ubo.dynamic_idx] = 1;
}
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
index 23f401b..f5737c7 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
void f() {
s.data[ubo.dynamic_idx] = 1;
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
index 3044061..6ecdef3 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/private_via_param.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
S s = S(int[64](0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0));
void x(inout S p) {
p.data[ubo.dynamic_idx] = 1;
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
index 306a76e..8fc82a2 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/storage.wgsl.expected.glsl
@@ -1,27 +1,17 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 2, std430) buffer Result_1 {
+layout(binding = 2, std430) buffer Result_ssbo {
int tint_symbol;
} result;
-struct SSBO {
- int data[4];
-};
-layout(binding = 1, std430) buffer SSBO_1 {
+layout(binding = 1, std430) buffer SSBO_ssbo {
int data[4];
} ssbo;
+
void f() {
ssbo.data[ubo.dynamic_idx] = 1;
result.tint_symbol = ssbo.data[3];
diff --git a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
index 5571c82..11cf201 100644
--- a/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/dyn_array_idx/write/workgroup.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct UBO {
- int dynamic_idx;
-};
-
-layout(binding = 0) uniform UBO_1 {
+layout(binding = 0) uniform UBO_ubo {
int dynamic_idx;
} ubo;
@@ -12,13 +8,10 @@
int data[64];
};
-struct Result {
- int tint_symbol;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
int tint_symbol;
} result;
+
shared S s;
void f(uint local_invocation_index) {
{
diff --git a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
index dcce86f..af6d544 100644
--- a/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/indexed_assign_to_array_in_struct/1206.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Simulation {
- uint i;
-};
-
struct Particle {
vec3 position[8];
float lifetime;
@@ -11,10 +7,11 @@
vec3 velocity;
};
-layout(binding = 3, std430) buffer Particles_1 {
+layout(binding = 3, std430) buffer Particles_ssbo {
Particle p[];
} particles;
-layout(binding = 4) uniform Simulation_1 {
+
+layout(binding = 4) uniform Simulation_ubo {
uint i;
} sim;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
index efc5916..719abc4 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_x.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
index 3c4ef9e..d3300f2 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_xy.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
index e2f093e..daf05d3 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_scalar_y.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
index 8e13a9f..dfeccec 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/local_assign_vector.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
index 127b0a1..647fc86 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_x.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
index e301809..c0f23a7 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_xy.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
index e2f093e..daf05d3 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_scalar_y.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
index 59c7f97..309d081 100644
--- a/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
+++ b/test/tint/bug/fxc/matrix_assignment_dynamic_index/module_assign_vector.wgsl.expected.glsl
@@ -1,11 +1,6 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/bug/tint/1046.wgsl.expected.glsl b/test/tint/bug/tint/1046.wgsl.expected.glsl
index 25caf19..a65f344 100644
--- a/test/tint/bug/tint/1046.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1046.wgsl.expected.glsl
@@ -10,15 +10,7 @@
vec4 position;
};
-struct Uniforms {
- mat4 worldView;
- mat4 proj;
- uint numPointLights;
- uint color_source;
- vec4 color;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
mat4 worldView;
mat4 proj;
uint numPointLights;
@@ -26,9 +18,10 @@
vec4 color;
} uniforms;
-layout(binding = 1, std430) buffer PointLights_1 {
+layout(binding = 1, std430) buffer PointLights_ssbo {
PointLight values[];
} pointLights;
+
struct FragmentInput {
vec4 position;
vec4 view_position;
diff --git a/test/tint/bug/tint/1061.spvasm.expected.glsl b/test/tint/bug/tint/1061.spvasm.expected.glsl
index 57d9959..edeb86c 100644
--- a/test/tint/bug/tint/1061.spvasm.expected.glsl
+++ b/test/tint/bug/tint/1061.spvasm.expected.glsl
@@ -2,11 +2,7 @@
precision mediump float;
layout(location = 0) out vec4 x_GLF_color_1_1;
-struct buf0 {
- vec4 ref;
-};
-
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
vec4 ref;
} x_7;
diff --git a/test/tint/bug/tint/1088.spvasm.expected.glsl b/test/tint/bug/tint/1088.spvasm.expected.glsl
index 20c3aba..6084c12 100644
--- a/test/tint/bug/tint/1088.spvasm.expected.glsl
+++ b/test/tint/bug/tint/1088.spvasm.expected.glsl
@@ -8,15 +8,8 @@
float el;
};
-struct LeftOver {
- mat4 worldViewProjection;
- float time;
- mat4 test2[2];
- strided_arr test[4];
-};
-
vec3 position = vec3(0.0f, 0.0f, 0.0f);
-layout(binding = 2) uniform LeftOver_1 {
+layout(binding = 2) uniform LeftOver_ubo {
mat4 worldViewProjection;
float time;
mat4 test2[2];
diff --git a/test/tint/bug/tint/1113.wgsl.expected.glsl b/test/tint/bug/tint/1113.wgsl.expected.glsl
index 43d7029..c077619 100644
--- a/test/tint/bug/tint/1113.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1113.wgsl.expected.glsl
@@ -1,30 +1,6 @@
#version 310 es
-struct Uniforms {
- uint numTriangles;
- uint gridSize;
- uint pad1;
- uint pad2;
- vec3 bbMin;
- vec3 bbMax;
-};
-
-struct Dbg {
- uint offsetCounter;
- uint pad0;
- uint pad1;
- uint pad2;
- uint value0;
- uint value1;
- uint value2;
- uint value3;
- float value_f32_0;
- float value_f32_1;
- float value_f32_2;
- float value_f32_3;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
uint numTriangles;
uint gridSize;
uint pad1;
@@ -33,19 +9,23 @@
vec3 bbMax;
} uniforms;
-layout(binding = 10, std430) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_ssbo {
uint values[];
} indices;
-layout(binding = 11, std430) buffer F32s_1 {
+
+layout(binding = 11, std430) buffer F32s_ssbo {
float values[];
} positions;
-layout(binding = 20, std430) buffer AU32s_1 {
+
+layout(binding = 20, std430) buffer AU32s_ssbo {
uint values[];
} counters;
-layout(binding = 21, std430) buffer AI32s_1 {
+
+layout(binding = 21, std430) buffer AI32s_ssbo {
int values[];
} LUT;
-layout(binding = 50, std430) buffer Dbg_1 {
+
+layout(binding = 50, std430) buffer Dbg_ssbo {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -59,6 +39,7 @@
float value_f32_2;
float value_f32_3;
} dbg;
+
vec3 toVoxelPos(vec3 position) {
vec3 bbMin = vec3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
vec3 bbMax = vec3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
@@ -121,31 +102,7 @@
}
#version 310 es
-struct Uniforms {
- uint numTriangles;
- uint gridSize;
- uint pad1;
- uint pad2;
- vec3 bbMin;
- vec3 bbMax;
-};
-
-struct Dbg {
- uint offsetCounter;
- uint pad0;
- uint pad1;
- uint pad2;
- uint value0;
- uint value1;
- uint value2;
- uint value3;
- float value_f32_0;
- float value_f32_1;
- float value_f32_2;
- float value_f32_3;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
uint numTriangles;
uint gridSize;
uint pad1;
@@ -154,19 +111,23 @@
vec3 bbMax;
} uniforms;
-layout(binding = 10, std430) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_ssbo {
uint values[];
} indices;
-layout(binding = 11, std430) buffer F32s_1 {
+
+layout(binding = 11, std430) buffer F32s_ssbo {
float values[];
} positions;
-layout(binding = 20, std430) buffer AU32s_1 {
+
+layout(binding = 20, std430) buffer AU32s_ssbo {
uint values[];
} counters;
-layout(binding = 21, std430) buffer AI32s_1 {
+
+layout(binding = 21, std430) buffer AI32s_ssbo {
int values[];
} LUT;
-layout(binding = 50, std430) buffer Dbg_1 {
+
+layout(binding = 50, std430) buffer Dbg_ssbo {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -180,6 +141,7 @@
float value_f32_2;
float value_f32_3;
} dbg;
+
void doIgnore() {
uint g42 = uniforms.numTriangles;
uint kj6 = dbg.value1;
@@ -212,31 +174,7 @@
}
#version 310 es
-struct Uniforms {
- uint numTriangles;
- uint gridSize;
- uint pad1;
- uint pad2;
- vec3 bbMin;
- vec3 bbMax;
-};
-
-struct Dbg {
- uint offsetCounter;
- uint pad0;
- uint pad1;
- uint pad2;
- uint value0;
- uint value1;
- uint value2;
- uint value3;
- float value_f32_0;
- float value_f32_1;
- float value_f32_2;
- float value_f32_3;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
uint numTriangles;
uint gridSize;
uint pad1;
@@ -245,19 +183,23 @@
vec3 bbMax;
} uniforms;
-layout(binding = 10, std430) buffer U32s_1 {
+layout(binding = 10, std430) buffer U32s_ssbo {
uint values[];
} indices;
-layout(binding = 11, std430) buffer F32s_1 {
+
+layout(binding = 11, std430) buffer F32s_ssbo {
float values[];
} positions;
-layout(binding = 20, std430) buffer AU32s_1 {
+
+layout(binding = 20, std430) buffer AU32s_ssbo {
uint values[];
} counters;
-layout(binding = 21, std430) buffer AI32s_1 {
+
+layout(binding = 21, std430) buffer AI32s_ssbo {
int values[];
} LUT;
-layout(binding = 50, std430) buffer Dbg_1 {
+
+layout(binding = 50, std430) buffer Dbg_ssbo {
uint offsetCounter;
uint pad0;
uint pad1;
@@ -271,6 +213,7 @@
float value_f32_2;
float value_f32_3;
} dbg;
+
vec3 toVoxelPos(vec3 position) {
vec3 bbMin = vec3(uniforms.bbMin.x, uniforms.bbMin.y, uniforms.bbMin.z);
vec3 bbMax = vec3(uniforms.bbMax.x, uniforms.bbMax.y, uniforms.bbMax.z);
diff --git a/test/tint/bug/tint/1118.wgsl.expected.glsl b/test/tint/bug/tint/1118.wgsl.expected.glsl
index a39c375..a695211 100644
--- a/test/tint/bug/tint/1118.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1118.wgsl.expected.glsl
@@ -16,29 +16,13 @@
layout(location = 2) in float fClipDistance3_param_1;
layout(location = 3) in float fClipDistance4_param_1;
layout(location = 0) out vec4 glFragColor_1_1;
-struct Scene {
- vec4 vEyePosition;
-};
-
-struct Material {
- vec4 vDiffuseColor;
- vec3 vAmbientColor;
- float placeholder;
- vec3 vEmissiveColor;
- float placeholder2;
-};
-
-struct Mesh {
- float visibility;
-};
-
float fClipDistance3 = 0.0f;
float fClipDistance4 = 0.0f;
-layout(binding = 0) uniform Scene_1 {
+layout(binding = 0) uniform Scene_ubo {
vec4 vEyePosition;
} x_29;
-layout(binding = 1) uniform Material_1 {
+layout(binding = 1) uniform Material_ubo {
vec4 vDiffuseColor;
vec3 vAmbientColor;
float placeholder;
@@ -46,7 +30,7 @@
float placeholder2;
} x_49;
-layout(binding = 2) uniform Mesh_1 {
+layout(binding = 2) uniform Mesh_ubo {
float visibility;
} x_137;
diff --git a/test/tint/bug/tint/1121.wgsl.expected.glsl b/test/tint/bug/tint/1121.wgsl.expected.glsl
index da9bf0f..e509937 100644
--- a/test/tint/bug/tint/1121.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1121.wgsl.expected.glsl
@@ -6,31 +6,20 @@
float radius;
};
-layout(binding = 0, std430) buffer LightsBuffer_1 {
+layout(binding = 0, std430) buffer LightsBuffer_ssbo {
LightData lights[];
} lightsBuffer;
+
struct TileLightIdData {
uint count;
uint lightId[64];
};
-struct Tiles {
- TileLightIdData data[4];
-};
-
-layout(binding = 0, std430) buffer Tiles_1 {
+layout(binding = 0, std430) buffer Tiles_ssbo {
TileLightIdData data[4];
} tileLightId;
-struct Config {
- uint numLights;
- uint numTiles;
- uint tileCountX;
- uint tileCountY;
- uint numTileLightSlot;
- uint tileSize;
-};
-layout(binding = 0) uniform Config_1 {
+layout(binding = 0) uniform Config_ubo {
uint numLights;
uint numTiles;
uint tileCountX;
@@ -39,15 +28,7 @@
uint tileSize;
} config;
-struct Uniforms {
- vec4 tint_symbol;
- vec4 tint_symbol_1;
- mat4 viewMatrix;
- mat4 projectionMatrix;
- vec4 fullScreenSize;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
vec4 tint_symbol;
vec4 tint_symbol_1;
mat4 viewMatrix;
diff --git a/test/tint/bug/tint/1136.wgsl.expected.glsl b/test/tint/bug/tint/1136.wgsl.expected.glsl
index 38b94ee..958228b 100644
--- a/test/tint/bug/tint/1136.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1136.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct Buffer {
- uint data;
-};
-
-layout(binding = 0, std430) buffer Buffer_1 {
+layout(binding = 0, std430) buffer Buffer_ssbo {
uint data;
} tint_symbol;
+
void tint_symbol_1() {
tint_symbol.data = (tint_symbol.data + 1u);
}
diff --git a/test/tint/bug/tint/1385.wgsl.expected.glsl b/test/tint/bug/tint/1385.wgsl.expected.glsl
index caa6386..b4f293a 100644
--- a/test/tint/bug/tint/1385.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1385.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer data_block_1 {
+layout(binding = 1, std430) buffer data_block_ssbo {
int inner[];
} data;
+
int foo() {
return data.inner[0];
}
diff --git a/test/tint/bug/tint/1520.spvasm.expected.glsl b/test/tint/bug/tint/1520.spvasm.expected.glsl
index 468864c..0e08ab8 100644
--- a/test/tint/bug/tint/1520.spvasm.expected.glsl
+++ b/test/tint/bug/tint/1520.spvasm.expected.glsl
@@ -3,14 +3,7 @@
layout(location = 0) in vec4 vcolor_S0_param_1;
layout(location = 0) out vec4 sk_FragColor_1_1;
-struct UniformBuffer {
- float unknownInput_S1_c0;
- vec4 ucolorRed_S1_c0;
- vec4 ucolorGreen_S1_c0;
- mat3 umatrix_S1;
-};
-
-layout(binding = 0) uniform UniformBuffer_1 {
+layout(binding = 0) uniform UniformBuffer_ubo {
float unknownInput_S1_c0;
vec4 ucolorRed_S1_c0;
vec4 ucolorGreen_S1_c0;
diff --git a/test/tint/bug/tint/1573.wgsl.expected.glsl b/test/tint/bug/tint/1573.wgsl.expected.glsl
index 013839e..55803e2 100644
--- a/test/tint/bug/tint/1573.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1573.wgsl.expected.glsl
@@ -6,13 +6,10 @@
};
-struct a_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer a_block_1 {
+layout(binding = 0, std430) buffer a_block_ssbo {
uint inner;
} a;
+
void tint_symbol() {
uint value = 42u;
atomic_compare_exchange_resultu32 atomic_compare_result;
diff --git a/test/tint/bug/tint/1574.wgsl.expected.glsl b/test/tint/bug/tint/1574.wgsl.expected.glsl
index bf711e7..3c839bf 100644
--- a/test/tint/bug/tint/1574.wgsl.expected.glsl
+++ b/test/tint/bug/tint/1574.wgsl.expected.glsl
@@ -11,20 +11,14 @@
};
-struct a_u32_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer a_u32_block_1 {
+layout(binding = 0, std430) buffer a_u32_block_ssbo {
uint inner;
} a_u32;
-struct a_i32_block {
- int inner;
-};
-layout(binding = 1, std430) buffer a_i32_block_1 {
+layout(binding = 1, std430) buffer a_i32_block_ssbo {
int inner;
} a_i32;
+
shared uint b_u32;
shared int b_i32;
void tint_symbol(uint local_invocation_index) {
diff --git a/test/tint/bug/tint/221.wgsl.expected.glsl b/test/tint/bug/tint/221.wgsl.expected.glsl
index eddc747..65779b7 100644
--- a/test/tint/bug/tint/221.wgsl.expected.glsl
+++ b/test/tint/bug/tint/221.wgsl.expected.glsl
@@ -1,14 +1,10 @@
#version 310 es
-struct Buf {
- uint count;
- uint data[50];
-};
-
-layout(binding = 0, std430) buffer Buf_1 {
+layout(binding = 0, std430) buffer Buf_ssbo {
uint count;
uint data[50];
} b;
+
void tint_symbol() {
uint i = 0u;
while (true) {
diff --git a/test/tint/bug/tint/294.wgsl.expected.glsl b/test/tint/bug/tint/294.wgsl.expected.glsl
index 023a180..8bfaa2e 100644
--- a/test/tint/bug/tint/294.wgsl.expected.glsl
+++ b/test/tint/bug/tint/294.wgsl.expected.glsl
@@ -9,6 +9,7 @@
vec3 colour;
};
-layout(binding = 1, std430) buffer Lights_1 {
+layout(binding = 1, std430) buffer Lights_ssbo {
Light light[];
} lights;
+
diff --git a/test/tint/bug/tint/369.wgsl.expected.glsl b/test/tint/bug/tint/369.wgsl.expected.glsl
index aa195e8..0a45971 100644
--- a/test/tint/bug/tint/369.wgsl.expected.glsl
+++ b/test/tint/bug/tint/369.wgsl.expected.glsl
@@ -4,19 +4,11 @@
void unused_entry_point() {
return;
}
-struct S {
- mat2 m;
-};
-
-struct S_std140 {
- vec2 m_0;
- vec2 m_1;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
mat2 m;
} SSBO;
-layout(binding = 0) uniform S_std140_1 {
+
+layout(binding = 0) uniform S_std140_ubo {
vec2 m_0;
vec2 m_1;
} UBO;
diff --git a/test/tint/bug/tint/403.wgsl.expected.glsl b/test/tint/bug/tint/403.wgsl.expected.glsl
index e89b9ee..8369676 100644
--- a/test/tint/bug/tint/403.wgsl.expected.glsl
+++ b/test/tint/bug/tint/403.wgsl.expected.glsl
@@ -4,26 +4,16 @@
mat2 transform1;
};
-struct vertexUniformBuffer1_std140 {
- vec2 transform1_0;
- vec2 transform1_1;
-};
-
struct vertexUniformBuffer2 {
mat2 transform2;
};
-struct vertexUniformBuffer2_std140 {
- vec2 transform2_0;
- vec2 transform2_1;
-};
-
-layout(binding = 0) uniform vertexUniformBuffer1_std140_1 {
+layout(binding = 0) uniform vertexUniformBuffer1_std140_ubo {
vec2 transform1_0;
vec2 transform1_1;
} x_20;
-layout(binding = 0) uniform vertexUniformBuffer2_std140_1 {
+layout(binding = 0) uniform vertexUniformBuffer2_std140_ubo {
vec2 transform2_0;
vec2 transform2_1;
} x_26;
diff --git a/test/tint/bug/tint/492.wgsl.expected.glsl b/test/tint/bug/tint/492.wgsl.expected.glsl
index 74c958e..1e8e23f 100644
--- a/test/tint/bug/tint/492.wgsl.expected.glsl
+++ b/test/tint/bug/tint/492.wgsl.expected.glsl
@@ -1,12 +1,9 @@
#version 310 es
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} buf;
+
void tint_symbol() {
buf.a = 12;
}
diff --git a/test/tint/bug/tint/534.wgsl.expected.glsl b/test/tint/bug/tint/534.wgsl.expected.glsl
index cf35895..7c556c5 100644
--- a/test/tint/bug/tint/534.wgsl.expected.glsl
+++ b/test/tint/bug/tint/534.wgsl.expected.glsl
@@ -1,16 +1,10 @@
#version 310 es
-struct Uniforms {
- uint dstTextureFlipY;
- uint isFloat16;
- uint isRGB10A2Unorm;
- uint channelCount;
-};
-
-layout(binding = 2, std430) buffer OutputBuf_1 {
+layout(binding = 2, std430) buffer OutputBuf_ssbo {
uint result[];
} tint_symbol;
-layout(binding = 3) uniform Uniforms_1 {
+
+layout(binding = 3) uniform Uniforms_ubo {
uint dstTextureFlipY;
uint isFloat16;
uint isRGB10A2Unorm;
diff --git a/test/tint/bug/tint/744.wgsl.expected.glsl b/test/tint/bug/tint/744.wgsl.expected.glsl
index b6c9722..eeeef67 100644
--- a/test/tint/bug/tint/744.wgsl.expected.glsl
+++ b/test/tint/bug/tint/744.wgsl.expected.glsl
@@ -1,21 +1,18 @@
#version 310 es
-struct Uniforms {
- uvec2 aShape;
- uvec2 bShape;
- uvec2 outShape;
-};
-
-layout(binding = 0, std430) buffer Matrix_1 {
+layout(binding = 0, std430) buffer Matrix_ssbo {
uint numbers[];
} firstMatrix;
-layout(binding = 1, std430) buffer Matrix_2 {
+
+layout(binding = 1, std430) buffer Matrix_ssbo_1 {
uint numbers[];
} secondMatrix;
-layout(binding = 2, std430) buffer Matrix_3 {
+
+layout(binding = 2, std430) buffer Matrix_ssbo_2 {
uint numbers[];
} resultMatrix;
-layout(binding = 3) uniform Uniforms_1 {
+
+layout(binding = 3) uniform Uniforms_ubo {
uvec2 aShape;
uvec2 bShape;
uvec2 outShape;
diff --git a/test/tint/bug/tint/749.spvasm.expected.glsl b/test/tint/bug/tint/749.spvasm.expected.glsl
index ea9ce91..7f580c1 100644
--- a/test/tint/bug/tint/749.spvasm.expected.glsl
+++ b/test/tint/bug/tint/749.spvasm.expected.glsl
@@ -6,13 +6,9 @@
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);
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
vec2 resolution;
} x_188;
diff --git a/test/tint/bug/tint/757.wgsl.expected.glsl b/test/tint/bug/tint/757.wgsl.expected.glsl
index cd7ba22..f8fe064 100644
--- a/test/tint/bug/tint/757.wgsl.expected.glsl
+++ b/test/tint/bug/tint/757.wgsl.expected.glsl
@@ -4,9 +4,10 @@
int level;
};
-layout(binding = 3, std430) buffer Result_1 {
+layout(binding = 3, std430) buffer Result_ssbo {
float values[];
} result;
+
uniform highp sampler2DArray myTexture_1;
void tint_symbol(uvec3 GlobalInvocationID) {
uint flatIndex = (((4u * GlobalInvocationID.z) + (2u * GlobalInvocationID.y)) + GlobalInvocationID.x);
diff --git a/test/tint/bug/tint/827.wgsl.expected.glsl b/test/tint/bug/tint/827.wgsl.expected.glsl
index 4098e55..43f26e2 100644
--- a/test/tint/bug/tint/827.wgsl.expected.glsl
+++ b/test/tint/bug/tint/827.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
float values[];
} result;
+
uniform highp sampler2D tex_1;
void tint_symbol(uvec3 GlobalInvocationId) {
result.values[((GlobalInvocationId.y * 128u) + GlobalInvocationId.x)] = texelFetch(tex_1, ivec2(int(GlobalInvocationId.x), int(GlobalInvocationId.y)), 0).x;
diff --git a/test/tint/bug/tint/870.spvasm.expected.glsl b/test/tint/bug/tint/870.spvasm.expected.glsl
index ed30b13..fc79f0f 100644
--- a/test/tint/bug/tint/870.spvasm.expected.glsl
+++ b/test/tint/bug/tint/870.spvasm.expected.glsl
@@ -8,13 +8,10 @@
int orientation[6];
};
-struct x_B4_BuildInformation {
- sspp962805860buildInformationS passthru;
-};
-
-layout(binding = 2, std430) buffer x_B4_BuildInformation_1 {
+layout(binding = 2, std430) buffer x_B4_BuildInformation_ssbo {
sspp962805860buildInformationS passthru;
} sspp962805860buildInformation;
+
void main_1() {
int orientation[6] = int[6](0, 0, 0, 0, 0, 0);
int x_23[6] = sspp962805860buildInformation.passthru.orientation;
diff --git a/test/tint/bug/tint/913.wgsl.expected.glsl b/test/tint/bug/tint/913.wgsl.expected.glsl
index bd770ef..01a54d0 100644
--- a/test/tint/bug/tint/913.wgsl.expected.glsl
+++ b/test/tint/bug/tint/913.wgsl.expected.glsl
@@ -1,17 +1,10 @@
#version 310 es
-struct Uniforms {
- uint dstTextureFlipY;
- uint channelCount;
- uvec2 srcCopyOrigin;
- uvec2 dstCopyOrigin;
- uvec2 copySize;
-};
-
-layout(binding = 2, std430) buffer OutputBuf_1 {
+layout(binding = 2, std430) buffer OutputBuf_ssbo {
uint result[];
} tint_symbol;
-layout(binding = 3) uniform Uniforms_1 {
+
+layout(binding = 3) uniform Uniforms_ubo {
uint dstTextureFlipY;
uint channelCount;
uvec2 srcCopyOrigin;
diff --git a/test/tint/bug/tint/914.wgsl.expected.glsl b/test/tint/bug/tint/914.wgsl.expected.glsl
index 25b3ff3..284ace8 100644
--- a/test/tint/bug/tint/914.wgsl.expected.glsl
+++ b/test/tint/bug/tint/914.wgsl.expected.glsl
@@ -1,21 +1,18 @@
#version 310 es
-struct Uniforms {
- uint dimAOuter;
- uint dimInner;
- uint dimBOuter;
-};
-
-layout(binding = 0, std430) buffer Matrix_1 {
+layout(binding = 0, std430) buffer Matrix_ssbo {
float numbers[];
} firstMatrix;
-layout(binding = 1, std430) buffer Matrix_2 {
+
+layout(binding = 1, std430) buffer Matrix_ssbo_1 {
float numbers[];
} secondMatrix;
-layout(binding = 2, std430) buffer Matrix_3 {
+
+layout(binding = 2, std430) buffer Matrix_ssbo_2 {
float numbers[];
} resultMatrix;
-layout(binding = 3) uniform Uniforms_1 {
+
+layout(binding = 3) uniform Uniforms_ubo {
uint dimAOuter;
uint dimInner;
uint dimBOuter;
diff --git a/test/tint/bug/tint/922.wgsl.expected.glsl b/test/tint/bug/tint/922.wgsl.expected.glsl
index eaefb02..d88d887 100644
--- a/test/tint/bug/tint/922.wgsl.expected.glsl
+++ b/test/tint/bug/tint/922.wgsl.expected.glsl
@@ -25,35 +25,22 @@
vec4 my;
};
-struct ub_SceneParams {
- Mat4x4_ u_Projection;
-};
-
-struct ub_MaterialParams {
- Mat4x2_ u_TexMtx[1];
- vec4 u_Misc0_;
-};
-
-struct ub_PacketParams {
- Mat4x3_ u_PosMtx[32];
-};
-
struct VertexOutput {
vec4 v_Color;
vec2 v_TexCoord;
vec4 member;
};
-layout(binding = 0) uniform ub_SceneParams_1 {
+layout(binding = 0) uniform ub_SceneParams_ubo {
Mat4x4_ u_Projection;
} global;
-layout(binding = 1) uniform ub_MaterialParams_1 {
+layout(binding = 1) uniform ub_MaterialParams_ubo {
Mat4x2_ u_TexMtx[1];
vec4 u_Misc0_;
} global1;
-layout(binding = 2) uniform ub_PacketParams_1 {
+layout(binding = 2) uniform ub_PacketParams_ubo {
Mat4x3_ u_PosMtx[32];
} global2;
diff --git a/test/tint/bug/tint/926.wgsl.expected.glsl b/test/tint/bug/tint/926.wgsl.expected.glsl
index 7e80241..1171d66 100644
--- a/test/tint/bug/tint/926.wgsl.expected.glsl
+++ b/test/tint/bug/tint/926.wgsl.expected.glsl
@@ -1,12 +1,9 @@
#version 310 es
-struct DrawIndirectArgs {
- uint vertexCount;
-};
-
-layout(binding = 5, std430) buffer DrawIndirectArgs_1 {
+layout(binding = 5, std430) buffer DrawIndirectArgs_ssbo {
uint vertexCount;
} drawOut;
+
uint cubeVerts = 0u;
void computeMain(uvec3 global_id) {
uint firstVertex = atomicAdd(drawOut.vertexCount, cubeVerts);
diff --git a/test/tint/bug/tint/942.wgsl.expected.glsl b/test/tint/bug/tint/942.wgsl.expected.glsl
index d194f13..f577d03 100644
--- a/test/tint/bug/tint/942.wgsl.expected.glsl
+++ b/test/tint/bug/tint/942.wgsl.expected.glsl
@@ -1,21 +1,12 @@
#version 310 es
-struct Params {
- uint filterDim;
- uint blockDim;
-};
-
-layout(binding = 1) uniform Params_1 {
+layout(binding = 1) uniform Params_ubo {
uint filterDim;
uint blockDim;
} params;
layout(rgba8) uniform highp writeonly image2D outputTex;
-struct Flip {
- uint value;
-};
-
-layout(binding = 3) uniform Flip_1 {
+layout(binding = 3) uniform Flip_ubo {
uint value;
} flip;
diff --git a/test/tint/bug/tint/943.spvasm.expected.glsl b/test/tint/bug/tint/943.spvasm.expected.glsl
index 2f05a68..59b4da0 100644
--- a/test/tint/bug/tint/943.spvasm.expected.glsl
+++ b/test/tint/bug/tint/943.spvasm.expected.glsl
@@ -3,16 +3,8 @@
note: reading from module-scope private variable 'dimInner_1' may result in a non-uniform value
#version 310 es
-struct Uniforms {
- float NAN;
- ivec3 aShape;
- ivec3 bShape;
- ivec3 outShape;
- ivec2 outShapeStrides;
-};
-
int dimAOuter_1 = 0;
-layout(binding = 3) uniform Uniforms_1 {
+layout(binding = 3) uniform Uniforms_ubo {
float NAN;
ivec3 aShape;
ivec3 bShape;
@@ -22,20 +14,23 @@
int dimInner_1 = 0;
int dimBOuter_1 = 0;
-layout(binding = 0, std430) buffer ssbOut_1 {
+layout(binding = 0, std430) buffer ssbOut_ssbo {
float result[];
} x_54;
+
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
uvec3 tint_symbol_1 = uvec3(0u, 0u, 0u);
shared float mm_Asub[64][64];
shared float mm_Bsub[64][1];
-layout(binding = 1, std430) buffer ssbA_1 {
+layout(binding = 1, std430) buffer ssbA_ssbo {
float A[];
} x_165;
+
int batch = 0;
-layout(binding = 2, std430) buffer ssbB_1 {
+layout(binding = 2, std430) buffer ssbB_ssbo {
float B[];
} x_185;
+
bool coordsInBounds_vi2_vi2_(inout ivec2 coord, inout ivec2 shape) {
bool x_87 = false;
bool x_88_phi = false;
diff --git a/test/tint/bug/tint/948.wgsl.expected.glsl b/test/tint/bug/tint/948.wgsl.expected.glsl
index bdeba4b..50e6863 100644
--- a/test/tint/bug/tint/948.wgsl.expected.glsl
+++ b/test/tint/bug/tint/948.wgsl.expected.glsl
@@ -25,19 +25,7 @@
layout(location = 0) in vec3 vPosition_param_1;
layout(location = 1) in vec2 vUV_param_1;
layout(location = 0) out vec4 glFragColor_1_1;
-struct LeftOver {
- float time;
- uint padding;
- mat4 worldViewProjection;
- vec2 outputSize;
- vec2 stageSize;
- vec2 spriteMapSize;
- float stageScale;
- float spriteCount;
- vec3 colorMul;
-};
-
-layout(binding = 9) uniform LeftOver_1 {
+layout(binding = 9) uniform LeftOver_ubo {
float time;
uint padding;
mat4 worldViewProjection;
diff --git a/test/tint/bug/tint/949.wgsl.expected.glsl b/test/tint/bug/tint/949.wgsl.expected.glsl
index 8cac306..3372f67 100644
--- a/test/tint/bug/tint/949.wgsl.expected.glsl
+++ b/test/tint/bug/tint/949.wgsl.expected.glsl
@@ -23,32 +23,10 @@
vec3 specular;
};
-struct LeftOver {
- mat4 u_World;
- mat4 u_ViewProjection;
- float u_bumpStrength;
- uint padding;
- vec3 u_cameraPosition;
- float u_parallaxScale;
- float textureInfoName;
- uint padding_1;
- vec2 tangentSpaceParameter0;
-};
-
-struct Light0 {
- vec4 vLightData;
- vec4 vLightDiffuse;
- vec4 vLightSpecular;
- vec3 vLightGround;
- uint padding_2;
- vec4 shadowsInfo;
- vec2 depthValues;
-};
-
float u_Float = 0.0f;
vec3 u_Color = vec3(0.0f, 0.0f, 0.0f);
vec2 vMainuv = vec2(0.0f, 0.0f);
-layout(binding = 6) uniform LeftOver_1 {
+layout(binding = 6) uniform LeftOver_ubo {
mat4 u_World;
mat4 u_ViewProjection;
float u_bumpStrength;
@@ -64,7 +42,7 @@
bool tint_symbol = false;
vec2 v_uv = vec2(0.0f, 0.0f);
vec4 v_output2 = vec4(0.0f, 0.0f, 0.0f, 0.0f);
-layout(binding = 5) uniform Light0_1 {
+layout(binding = 5) uniform Light0_ubo {
vec4 vLightData;
vec4 vLightDiffuse;
vec4 vLightSpecular;
diff --git a/test/tint/bug/tint/951.spvasm.expected.glsl b/test/tint/bug/tint/951.spvasm.expected.glsl
index 865294e..4711f56 100644
--- a/test/tint/bug/tint/951.spvasm.expected.glsl
+++ b/test/tint/bug/tint/951.spvasm.expected.glsl
@@ -1,21 +1,15 @@
#version 310 es
-struct Uniforms {
- float NAN;
- int aShape;
- int outShape;
- int outShapeStrides;
- int size;
-};
-
-layout(binding = 0, std430) buffer ssbOut_1 {
+layout(binding = 0, std430) buffer ssbOut_ssbo {
float result[];
} x_16;
-layout(binding = 1, std430) buffer ssbA_1 {
+
+layout(binding = 1, std430) buffer ssbA_ssbo {
float A[];
} x_20;
+
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
-layout(binding = 2) uniform Uniforms_1 {
+layout(binding = 2) uniform Uniforms_ubo {
float NAN;
int aShape;
int outShape;
diff --git a/test/tint/bug/tint/959.wgsl.expected.glsl b/test/tint/bug/tint/959.wgsl.expected.glsl
index 7538459..a461051 100644
--- a/test/tint/bug/tint/959.wgsl.expected.glsl
+++ b/test/tint/bug/tint/959.wgsl.expected.glsl
@@ -1,63 +1,67 @@
#version 310 es
precision mediump float;
-struct S {
- float a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
float a;
} b0;
-layout(binding = 0, std430) buffer S_2 {
+
+layout(binding = 0, std430) buffer S_ssbo_1 {
float a;
} b1;
-layout(binding = 0, std430) buffer S_3 {
+
+layout(binding = 0, std430) buffer S_ssbo_2 {
float a;
} b2;
-layout(binding = 0, std430) buffer S_4 {
+
+layout(binding = 0, std430) buffer S_ssbo_3 {
float a;
} b3;
-layout(binding = 0, std430) buffer S_5 {
+
+layout(binding = 0, std430) buffer S_ssbo_4 {
float a;
} b4;
-layout(binding = 0, std430) buffer S_6 {
+
+layout(binding = 0, std430) buffer S_ssbo_5 {
float a;
} b5;
-layout(binding = 0, std430) buffer S_7 {
+
+layout(binding = 0, std430) buffer S_ssbo_6 {
float a;
} b6;
-layout(binding = 0, std430) buffer S_8 {
+
+layout(binding = 0, std430) buffer S_ssbo_7 {
float a;
} b7;
-layout(binding = 1) uniform S_9 {
+
+layout(binding = 1) uniform S_ubo {
float a;
} b8;
-layout(binding = 1) uniform S_10 {
+layout(binding = 1) uniform S_ubo_1 {
float a;
} b9;
-layout(binding = 1) uniform S_11 {
+layout(binding = 1) uniform S_ubo_2 {
float a;
} b10;
-layout(binding = 1) uniform S_12 {
+layout(binding = 1) uniform S_ubo_3 {
float a;
} b11;
-layout(binding = 1) uniform S_13 {
+layout(binding = 1) uniform S_ubo_4 {
float a;
} b12;
-layout(binding = 1) uniform S_14 {
+layout(binding = 1) uniform S_ubo_5 {
float a;
} b13;
-layout(binding = 1) uniform S_15 {
+layout(binding = 1) uniform S_ubo_6 {
float a;
} b14;
-layout(binding = 1) uniform S_16 {
+layout(binding = 1) uniform S_ubo_7 {
float a;
} b15;
diff --git a/test/tint/bug/tint/977.spvasm.expected.glsl b/test/tint/bug/tint/977.spvasm.expected.glsl
index b784f3e..8715d9e 100644
--- a/test/tint/bug/tint/977.spvasm.expected.glsl
+++ b/test/tint/bug/tint/977.spvasm.expected.glsl
@@ -7,9 +7,10 @@
};
uvec3 tint_symbol = uvec3(0u, 0u, 0u);
-layout(binding = 2, std430) buffer ResultMatrix_1 {
+layout(binding = 2, std430) buffer ResultMatrix_ssbo {
float numbers[];
} resultMatrix;
+
float binaryOperation_f1_f1_(inout float a, inout float b) {
float x_26 = 0.0f;
float x_13 = b;
diff --git a/test/tint/bug/tint/980.wgsl.expected.glsl b/test/tint/bug/tint/980.wgsl.expected.glsl
index 215481c..cfe795c 100644
--- a/test/tint/bug/tint/980.wgsl.expected.glsl
+++ b/test/tint/bug/tint/980.wgsl.expected.glsl
@@ -6,15 +6,11 @@
return normalize(normal);
}
-struct S {
- vec3 v;
- uint i;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec3 v;
uint i;
} io;
+
void tint_symbol(uint idx) {
vec3 tint_symbol_1 = Bad(io.i, io.v);
io.v = tint_symbol_1;
diff --git a/test/tint/bug/tint/993.wgsl.expected.glsl b/test/tint/bug/tint/993.wgsl.expected.glsl
index 2e4ad53..bd15be7 100644
--- a/test/tint/bug/tint/993.wgsl.expected.glsl
+++ b/test/tint/bug/tint/993.wgsl.expected.glsl
@@ -1,27 +1,17 @@
#version 310 es
-struct Constants {
- uint zero;
-};
-
-layout(binding = 0) uniform Constants_1 {
+layout(binding = 0) uniform Constants_ubo {
uint zero;
} constants;
-struct Result {
- uint value;
-};
-
-layout(binding = 1, std430) buffer Result_1 {
+layout(binding = 1, std430) buffer Result_ssbo {
uint value;
} result;
-struct TestData {
- int data[3];
-};
-layout(binding = 0, std430) buffer TestData_1 {
+layout(binding = 0, std430) buffer TestData_ssbo {
int data[3];
} s;
+
int runTest() {
return atomicOr(s.data[(0u + uint(constants.zero))], 0);
}
diff --git a/test/tint/bug/tint/998.wgsl.expected.glsl b/test/tint/bug/tint/998.wgsl.expected.glsl
index 226cf72..30dd9b8 100644
--- a/test/tint/bug/tint/998.wgsl.expected.glsl
+++ b/test/tint/bug/tint/998.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct Constants {
- uint zero;
-};
-
-layout(binding = 0) uniform Constants_1 {
+layout(binding = 0) uniform Constants_ubo {
uint zero;
} constants;
diff --git a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.glsl b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
index 7d17e02..c67fc49 100644
--- a/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/complex_via_let.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.a.length());
}
diff --git a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
index c7ac2b7..b5587e7 100644
--- a/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/complex_via_let_no_struct.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_ssbo {
int inner[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.inner.length());
}
diff --git a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.glsl b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.glsl
index b6e9fe6..3b29a21 100644
--- a/test/tint/builtins/arrayLength/deprecated.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/deprecated.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.a.length());
uint l2 = uint(G.a.length());
diff --git a/test/tint/builtins/arrayLength/simple.wgsl.expected.glsl b/test/tint/builtins/arrayLength/simple.wgsl.expected.glsl
index 7d17e02..c67fc49 100644
--- a/test/tint/builtins/arrayLength/simple.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/simple.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.a.length());
}
diff --git a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
index c7ac2b7..b5587e7 100644
--- a/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/simple_no_struct.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_ssbo {
int inner[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.inner.length());
}
diff --git a/test/tint/builtins/arrayLength/via_let.wgsl.expected.glsl b/test/tint/builtins/arrayLength/via_let.wgsl.expected.glsl
index 7d17e02..c67fc49 100644
--- a/test/tint/builtins/arrayLength/via_let.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/via_let.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.a.length());
}
diff --git a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.glsl b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
index 7d17e02..c67fc49 100644
--- a/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/via_let_complex.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.a.length());
}
diff --git a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
index c7ac2b7..b5587e7 100644
--- a/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/via_let_complex_no_struct.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_ssbo {
int inner[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.inner.length());
}
diff --git a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
index c7ac2b7..b5587e7 100644
--- a/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
+++ b/test/tint/builtins/arrayLength/via_let_no_struct.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer G_block_1 {
+layout(binding = 0, std430) buffer G_block_ssbo {
int inner[];
} G;
+
void tint_symbol() {
uint l1 = uint(G.inner.length());
}
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.glsl
index 875dc08..ca2a7f9 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.glsl
index 48a0735..7ffe848 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAdd/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.glsl
index 28adfe0..20ff9c8 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int res = 0;
int x_9 = atomicAnd(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int res = 0;
int x_9 = atomicAnd(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.glsl
index 6d879c1..362308c 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicAnd/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint res = 0u;
uint x_9 = atomicAnd(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint res = 0u;
uint x_9 = atomicAnd(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
index b46c227..f26f67a 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
@@ -7,10 +7,6 @@
};
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
@@ -20,9 +16,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32(0, false);
atomic_compare_exchange_resulti32 atomic_compare_result;
@@ -57,10 +54,6 @@
};
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
@@ -70,9 +63,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
x__atomic_compare_exchange_resulti32 res = x__atomic_compare_exchange_resulti32(0, false);
atomic_compare_exchange_resulti32 atomic_compare_result;
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
index 385735d..79a81ac 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
@@ -7,10 +7,6 @@
};
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
@@ -20,9 +16,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32(0u, false);
atomic_compare_exchange_resultu32 atomic_compare_result;
@@ -57,10 +54,6 @@
};
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
@@ -70,9 +63,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
x__atomic_compare_exchange_resultu32 res = x__atomic_compare_exchange_resultu32(0u, false);
atomic_compare_exchange_resultu32 atomic_compare_result;
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.glsl
index 4fdae27..cb759e7 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int res = 0;
int x_9 = atomicExchange(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int res = 0;
int x_9 = atomicExchange(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.glsl
index 57f0291..ae7c7a4 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicExchange/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint res = 0u;
uint x_9 = atomicExchange(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint res = 0u;
uint x_9 = atomicExchange(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.glsl
index d034197..c5f15b1 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 0);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 0);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.glsl
index cebe232..8bddcce 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicLoad/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 0u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 0u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.glsl
index 6341848..388ccf7 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int res = 0;
int x_9 = atomicMax(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int res = 0;
int x_9 = atomicMax(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.glsl
index 08dd962..9cdec37 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMax/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint res = 0u;
uint x_9 = atomicMax(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint res = 0u;
uint x_9 = atomicMax(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.glsl
index 021d201..5aad3be 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int res = 0;
int x_9 = atomicMin(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int res = 0;
int x_9 = atomicMin(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.glsl
index 66cb351..90d76b8 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicMin/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint res = 0u;
uint x_9 = atomicMin(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint res = 0u;
uint x_9 = atomicMin(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.glsl
index b9557e3..2874145 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.glsl
index 5ad5f61..dafd141 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicOr/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.glsl
index 24fc51e..f8778d9 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
atomicExchange(sb_rw.arg_0, 1);
return;
@@ -32,17 +29,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
atomicExchange(sb_rw.arg_0, 1);
return;
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.glsl
index e9c81a2..588fac6 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicStore/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
atomicExchange(sb_rw.arg_0, 1u);
return;
@@ -32,17 +29,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
atomicExchange(sb_rw.arg_0, 1u);
return;
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.glsl
index 8f573df..c3538ae 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.glsl
index e462c21..b2eccbc 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicSub/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.glsl
index cc05c28..1c83583 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int res = 0;
int x_9 = atomicXor(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int res = 0;
int x_9 = atomicXor(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.glsl
index 2893791..09295d7 100644
--- a/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/atomicXor/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint res = 0u;
uint x_9 = atomicXor(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint res = 0u;
uint x_9 = atomicXor(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
index 875dc08..ca2a7f9 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
index 48a0735..7ffe848 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
index 875dc08..ca2a7f9 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = 0;
int x_9 = atomicAdd(sb_rw.arg_0, 1);
diff --git a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
index 48a0735..7ffe848 100644
--- a/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/literal/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = 0u;
uint x_9 = atomicAdd(sb_rw.arg_0, 1u);
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.glsl
index bd9f7f8..d0daed9 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.glsl
index 5c1a1b0..7e082b7 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAdd/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.glsl
index ea9ff84..f27eaef 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.glsl
index e3abb2a..1d3eb24 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicAnd/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
index 286017b..b19348c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_i32.spvasm.expected.glsl
@@ -7,10 +7,6 @@
};
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
@@ -20,9 +16,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
int arg_1 = 0;
int arg_2 = 0;
@@ -62,10 +59,6 @@
};
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
@@ -75,9 +68,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
int arg_1 = 0;
int arg_2 = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
index ec3e6e1..43fa00c 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicCompareExchangeWeak/storage_u32.spvasm.expected.glsl
@@ -7,10 +7,6 @@
};
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
@@ -20,9 +16,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
uint arg_1 = 0u;
uint arg_2 = 0u;
@@ -62,10 +59,6 @@
};
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
@@ -75,9 +68,10 @@
bool exchanged;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
uint arg_1 = 0u;
uint arg_2 = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.glsl
index 284be71..e70784d 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.glsl
index edc360d..e949e68 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicExchange/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.glsl
index d034197..c5f15b1 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 0);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = 0;
int x_9 = atomicOr(sb_rw.arg_0, 0);
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.glsl
index cebe232..8bddcce 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicLoad/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 0u);
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = 0u;
uint x_9 = atomicOr(sb_rw.arg_0, 0u);
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.glsl
index d458f05..32e30cd 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.glsl
index e5f7f89..680684b 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMax/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.glsl
index e233a68..e982a9b 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.glsl
index 06e8d89..f3397bb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicMin/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.glsl
index dd17274..0e9f155 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.glsl
index ba78059..b918b88 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicOr/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.glsl
index cf63c29..3e9839e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
int arg_1 = 0;
arg_1 = 1;
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
int arg_1 = 0;
arg_1 = 1;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.glsl
index 7a8d693..7628fb4 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicStore/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
uint arg_1 = 0u;
arg_1 = 1u;
@@ -34,17 +31,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
uint arg_1 = 0u;
arg_1 = 1u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.glsl
index fcc4155..c6aa9c3 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.glsl
index f91b7f8..c5f6b9e 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicSub/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.glsl
index 4953346..71a8526 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.glsl
index c382bff..c03bbbb 100644
--- a/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/atomicXor/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
index 167e99c..9d593d4 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
index d9e0515..baaa2cc 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicDecrement/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
index 167e99c..9d593d4 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_i32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- int arg_0;
-};
-
struct SB_RW {
int arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 0;
int res = 0;
diff --git a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.glsl b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
index d9e0515..baaa2cc 100644
--- a/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
+++ b/test/tint/builtins/atomics/from_gen/var/spvAtomicIncrement/storage_u32.spvasm.expected.glsl
@@ -1,17 +1,14 @@
#version 310 es
precision mediump float;
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
@@ -36,17 +33,14 @@
}
#version 310 es
-struct SB_RW_atomic {
- uint arg_0;
-};
-
struct SB_RW {
uint arg_0;
};
-layout(binding = 0, std430) buffer SB_RW_atomic_1 {
+layout(binding = 0, std430) buffer SB_RW_atomic_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 0u;
uint res = 0u;
diff --git a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
index a143e18..4f59c4b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/1588cd.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
index 46667de..d22edc1 100644
--- a/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/61b1c7.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
index 233c92b..51547d9 100644
--- a/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/8421b9.wgsl.expected.glsl
@@ -1,17 +1,17 @@
SKIP: FAILED
-gen/literal/arrayLength/8421b9.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
+builtins/gen/literal/arrayLength/8421b9.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
arg_0: array<f16>,
^^^^^^^^^^
-gen/literal/arrayLength/8421b9.wgsl:25:1 note: see layout of struct:
+builtins/gen/literal/arrayLength/8421b9.wgsl:25:1 note: see layout of struct:
/* align(2) size(2) */ struct SB_RO {
/* offset(0) align(2) size(2) */ arg_0 : array<f16>;
/* */ };
struct SB_RO {
^^^^^^
-gen/literal/arrayLength/8421b9.wgsl:28:42 note: see declaration of variable
+builtins/gen/literal/arrayLength/8421b9.wgsl:28:42 note: see declaration of variable
@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
^^^^^
diff --git a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
index 44aaf23..d7e4539 100644
--- a/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
index e0a5253..ba9a68b 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cbd6b5.wgsl.expected.glsl
@@ -1,17 +1,17 @@
SKIP: FAILED
-gen/literal/arrayLength/cbd6b5.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
+builtins/gen/literal/arrayLength/cbd6b5.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
arg_0: array<f16>,
^^^^^^^^^^
-gen/literal/arrayLength/cbd6b5.wgsl:25:1 note: see layout of struct:
+builtins/gen/literal/arrayLength/cbd6b5.wgsl:25:1 note: see layout of struct:
/* align(2) size(2) */ struct SB_RW {
/* offset(0) align(2) size(2) */ arg_0 : array<f16>;
/* */ };
struct SB_RW {
^^^^^^
-gen/literal/arrayLength/cbd6b5.wgsl:28:48 note: see declaration of variable
+builtins/gen/literal/arrayLength/cbd6b5.wgsl:28:48 note: see declaration of variable
@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
^^^^^
diff --git a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
index dac4336..5d417ac 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cdd123.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
index e159bef..a605e06 100644
--- a/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/cfca0a.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
index a11f1aa..51f60de 100644
--- a/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/arrayLength/eb510f.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
index c2e7cdb..17d0040 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/8a199a.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = atomicAdd(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint res = atomicAdd(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
index a9a2c73..494e26c 100644
--- a/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = atomicAdd(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int res = atomicAdd(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
index 0815478..d1d9eee 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/152966.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int res = atomicAnd(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int res = atomicAnd(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
index 3363b8b..4a93dfb 100644
--- a/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint res = atomicAnd(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint res = atomicAnd(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
index 001110f..6823d69 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
@@ -7,13 +7,10 @@
};
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
atomic_compare_exchange_resulti32 atomic_compare_result;
atomic_compare_result.old_value = atomicCompSwap(sb_rw.arg_0, 1, 1);
@@ -37,13 +34,10 @@
};
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
atomic_compare_exchange_resulti32 atomic_compare_result;
atomic_compare_result.old_value = atomicCompSwap(sb_rw.arg_0, 1, 1);
diff --git a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
index e5738b7..e27f02e 100644
--- a/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
@@ -7,13 +7,10 @@
};
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
atomic_compare_exchange_resultu32 atomic_compare_result;
atomic_compare_result.old_value = atomicCompSwap(sb_rw.arg_0, 1u, 1u);
@@ -37,13 +34,10 @@
};
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
atomic_compare_exchange_resultu32 atomic_compare_result;
atomic_compare_result.old_value = atomicCompSwap(sb_rw.arg_0, 1u, 1u);
diff --git a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
index 03b9891..12b23de 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/d59712.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint res = atomicExchange(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint res = atomicExchange(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
index d1f33c7..c9131e2 100644
--- a/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int res = atomicExchange(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int res = atomicExchange(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
index 38a8c92..64291f3 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/0806ad.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = atomicOr(sb_rw.arg_0, 0);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = atomicOr(sb_rw.arg_0, 0);
}
diff --git a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
index b4bd0d8..f17c518 100644
--- a/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = atomicOr(sb_rw.arg_0, 0u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = atomicOr(sb_rw.arg_0, 0u);
}
diff --git a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
index 98f34a9..3f16d51 100644
--- a/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/51b9be.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint res = atomicMax(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint res = atomicMax(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
index 9f6d085..1b3e247 100644
--- a/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMax/92aa72.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int res = atomicMax(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int res = atomicMax(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
index e2d3c72..ea043dd 100644
--- a/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/8e38dc.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int res = atomicMin(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int res = atomicMin(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
index 6e3098e..588b83f 100644
--- a/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicMin/c67a74.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint res = atomicMin(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint res = atomicMin(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
index 4ee4dea..7bc55f0 100644
--- a/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/5e95d4.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint res = atomicOr(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint res = atomicOr(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
index d5d42c4..baad60d 100644
--- a/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicOr/8d96a0.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int res = atomicOr(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int res = atomicOr(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
index 7d8d0f5..f1b5526 100644
--- a/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicStore/cdc29e.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
atomicExchange(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
atomicExchange(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
index 1281880..95dc6ea 100644
--- a/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
atomicExchange(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
atomicExchange(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
index 07573d2..1969c48 100644
--- a/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/051100.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int res = atomicAdd(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int res = atomicAdd(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
index 24aa578..9881ff1 100644
--- a/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicSub/15bfc9.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint res = atomicAdd(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint res = atomicAdd(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
index e04552e..a69ee2d 100644
--- a/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/54510e.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint res = atomicXor(sb_rw.arg_0, 1u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint res = atomicXor(sb_rw.arg_0, 1u);
}
diff --git a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
index 0ebd9e7..4f11212 100644
--- a/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/atomicXor/c1b78c.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int res = atomicXor(sb_rw.arg_0, 1);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int res = atomicXor(sb_rw.arg_0, 1);
}
diff --git a/test/tint/builtins/gen/literal/textureDimensions/ba1481.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureDimensions/ba1481.wgsl.expected.glsl
index 47564ae..f610169 100644
--- a/test/tint/builtins/gen/literal/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureDimensions/ba1481.wgsl.expected.glsl
@@ -11,16 +11,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
@@ -61,16 +52,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
@@ -105,16 +87,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
index 4305443..2d9af35 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct GammaTransferParams {
@@ -22,13 +20,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -56,7 +49,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
}
vec4 vertex_main() {
@@ -72,14 +65,6 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:57: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:57: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:57: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -103,13 +88,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -137,7 +117,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
}
void fragment_main() {
@@ -148,14 +128,6 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:58: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:58: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:58: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
struct GammaTransferParams {
@@ -178,13 +150,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -212,7 +179,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, ivec2(0), ext_tex_params.inner);
}
void compute_main() {
@@ -224,11 +191,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:57: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:57: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:57: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
index 01d8762..6eba59e 100644
--- a/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureLoad/8acf41.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 134
+; Bound: 138
; Schema: 0
OpCapability Shader
- %27 = OpExtInstImport "GLSL.std.450"
+ %28 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -14,6 +14,8 @@
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %ext_tex_plane_1 "ext_tex_plane_1"
+ OpName %ext_tex_params_block "ext_tex_params_block"
+ OpMemberName %ext_tex_params_block 0 "inner"
OpName %ExternalTextureParams "ExternalTextureParams"
OpMemberName %ExternalTextureParams 0 "numPlanes"
OpMemberName %ExternalTextureParams 1 "doYuvToRgbConversionOnly"
@@ -51,7 +53,8 @@
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ext_tex_plane_1 DescriptorSet 1
OpDecorate %ext_tex_plane_1 Binding 1
- OpDecorate %ExternalTextureParams Block
+ OpDecorate %ext_tex_params_block Block
+ OpMemberDecorate %ext_tex_params_block 0 Offset 0
OpMemberDecorate %ExternalTextureParams 0 Offset 0
OpMemberDecorate %ExternalTextureParams 1 Offset 4
OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -92,147 +95,151 @@
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float
-%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
-%ext_tex_params = OpVariable %_ptr_Uniform_ExternalTextureParams Uniform
+%ext_tex_params_block = OpTypeStruct %ExternalTextureParams
+%_ptr_Uniform_ext_tex_params_block = OpTypePointer Uniform %ext_tex_params_block
+%ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block Uniform
%arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
- %21 = OpTypeFunction %v3float %v3float %GammaTransferParams
+ %22 = OpTypeFunction %v3float %v3float %GammaTransferParams
%bool = OpTypeBool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %41 = OpConstantNull %v3float
+ %42 = OpConstantNull %v3float
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %61 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
+ %62 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
%uint_1 = OpConstant %uint 1
- %78 = OpConstantNull %int
+ %79 = OpConstantNull %int
%v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
- %92 = OpConstantNull %uint
+ %93 = OpConstantNull %uint
%void = OpTypeVoid
- %110 = OpTypeFunction %void
- %117 = OpConstantNull %v2int
+ %111 = OpTypeFunction %void
+ %118 = OpConstantNull %v2int
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
%_ptr_Function_v4float = OpTypePointer Function %v4float
- %121 = OpTypeFunction %v4float
-%gammaCorrection = OpFunction %v3float None %21
+ %125 = OpTypeFunction %v4float
+%gammaCorrection = OpFunction %v3float None %22
%v = OpFunctionParameter %v3float
%params = OpFunctionParameter %GammaTransferParams
- %25 = OpLabel
- %39 = OpVariable %_ptr_Function_v3float Function %41
- %51 = OpVariable %_ptr_Function_v3float Function %41
- %57 = OpVariable %_ptr_Function_v3float Function %41
- %26 = OpExtInst %v3float %27 FAbs %v
- %28 = OpCompositeExtract %float %params 4
- %29 = OpCompositeConstruct %v3float %28 %28 %28
- %30 = OpFOrdLessThan %v3bool %26 %29
- %33 = OpExtInst %v3float %27 FSign %v
- %34 = OpCompositeExtract %float %params 3
- %35 = OpExtInst %v3float %27 FAbs %v
- %36 = OpVectorTimesScalar %v3float %35 %34
- %37 = OpCompositeExtract %float %params 6
- %42 = OpCompositeConstruct %v3float %37 %37 %37
- %38 = OpFAdd %v3float %36 %42
- %43 = OpFMul %v3float %33 %38
- %44 = OpExtInst %v3float %27 FSign %v
- %46 = OpCompositeExtract %float %params 1
- %47 = OpExtInst %v3float %27 FAbs %v
- %48 = OpVectorTimesScalar %v3float %47 %46
- %49 = OpCompositeExtract %float %params 2
- %52 = OpCompositeConstruct %v3float %49 %49 %49
- %50 = OpFAdd %v3float %48 %52
- %53 = OpCompositeExtract %float %params 0
- %54 = OpCompositeConstruct %v3float %53 %53 %53
- %45 = OpExtInst %v3float %27 Pow %50 %54
- %55 = OpCompositeExtract %float %params 5
- %58 = OpCompositeConstruct %v3float %55 %55 %55
- %56 = OpFAdd %v3float %45 %58
- %59 = OpFMul %v3float %44 %56
- %60 = OpSelect %v3float %30 %43 %59
- OpReturnValue %60
+ %26 = OpLabel
+ %40 = OpVariable %_ptr_Function_v3float Function %42
+ %52 = OpVariable %_ptr_Function_v3float Function %42
+ %58 = OpVariable %_ptr_Function_v3float Function %42
+ %27 = OpExtInst %v3float %28 FAbs %v
+ %29 = OpCompositeExtract %float %params 4
+ %30 = OpCompositeConstruct %v3float %29 %29 %29
+ %31 = OpFOrdLessThan %v3bool %27 %30
+ %34 = OpExtInst %v3float %28 FSign %v
+ %35 = OpCompositeExtract %float %params 3
+ %36 = OpExtInst %v3float %28 FAbs %v
+ %37 = OpVectorTimesScalar %v3float %36 %35
+ %38 = OpCompositeExtract %float %params 6
+ %43 = OpCompositeConstruct %v3float %38 %38 %38
+ %39 = OpFAdd %v3float %37 %43
+ %44 = OpFMul %v3float %34 %39
+ %45 = OpExtInst %v3float %28 FSign %v
+ %47 = OpCompositeExtract %float %params 1
+ %48 = OpExtInst %v3float %28 FAbs %v
+ %49 = OpVectorTimesScalar %v3float %48 %47
+ %50 = OpCompositeExtract %float %params 2
+ %53 = OpCompositeConstruct %v3float %50 %50 %50
+ %51 = OpFAdd %v3float %49 %53
+ %54 = OpCompositeExtract %float %params 0
+ %55 = OpCompositeConstruct %v3float %54 %54 %54
+ %46 = OpExtInst %v3float %28 Pow %51 %55
+ %56 = OpCompositeExtract %float %params 5
+ %59 = OpCompositeConstruct %v3float %56 %56 %56
+ %57 = OpFAdd %v3float %46 %59
+ %60 = OpFMul %v3float %45 %57
+ %61 = OpSelect %v3float %31 %44 %60
+ OpReturnValue %61
OpFunctionEnd
-%textureLoadExternal = OpFunction %v4float None %61
+%textureLoadExternal = OpFunction %v4float None %62
%plane0 = OpFunctionParameter %11
%plane1 = OpFunctionParameter %11
%coord = OpFunctionParameter %v2int
%params_0 = OpFunctionParameter %ExternalTextureParams
- %69 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %41
- %71 = OpCompositeExtract %uint %params_0 0
- %73 = OpIEqual %bool %71 %uint_1
- OpSelectionMerge %74 None
- OpBranchConditional %73 %75 %76
- %75 = OpLabel
- %77 = OpImageFetch %v4float %plane0 %coord Lod %78
- %79 = OpVectorShuffle %v3float %77 %77 0 1 2
- OpStore %color %79
- OpBranch %74
+ %70 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %42
+ %72 = OpCompositeExtract %uint %params_0 0
+ %74 = OpIEqual %bool %72 %uint_1
+ OpSelectionMerge %75 None
+ OpBranchConditional %74 %76 %77
%76 = OpLabel
- %80 = OpImageFetch %v4float %plane0 %coord Lod %78
- %81 = OpCompositeExtract %float %80 0
- %82 = OpImageFetch %v4float %plane1 %coord Lod %78
- %84 = OpVectorShuffle %v2float %82 %82 0 1
- %85 = OpCompositeExtract %float %84 0
- %86 = OpCompositeExtract %float %84 1
- %88 = OpCompositeConstruct %v4float %81 %85 %86 %float_1
- %89 = OpCompositeExtract %mat3v4float %params_0 2
- %90 = OpVectorTimesMatrix %v3float %88 %89
- OpStore %color %90
- OpBranch %74
- %74 = OpLabel
- %91 = OpCompositeExtract %uint %params_0 1
- %93 = OpIEqual %bool %91 %92
- OpSelectionMerge %94 None
- OpBranchConditional %93 %95 %94
- %95 = OpLabel
- %97 = OpLoad %v3float %color
- %98 = OpCompositeExtract %GammaTransferParams %params_0 3
- %96 = OpFunctionCall %v3float %gammaCorrection %97 %98
- OpStore %color %96
- %99 = OpCompositeExtract %mat3v3float %params_0 5
- %100 = OpLoad %v3float %color
- %101 = OpMatrixTimesVector %v3float %99 %100
- OpStore %color %101
- %103 = OpLoad %v3float %color
- %104 = OpCompositeExtract %GammaTransferParams %params_0 4
- %102 = OpFunctionCall %v3float %gammaCorrection %103 %104
+ %78 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %80 = OpVectorShuffle %v3float %78 %78 0 1 2
+ OpStore %color %80
+ OpBranch %75
+ %77 = OpLabel
+ %81 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %82 = OpCompositeExtract %float %81 0
+ %83 = OpImageFetch %v4float %plane1 %coord Lod %79
+ %85 = OpVectorShuffle %v2float %83 %83 0 1
+ %86 = OpCompositeExtract %float %85 0
+ %87 = OpCompositeExtract %float %85 1
+ %89 = OpCompositeConstruct %v4float %82 %86 %87 %float_1
+ %90 = OpCompositeExtract %mat3v4float %params_0 2
+ %91 = OpVectorTimesMatrix %v3float %89 %90
+ OpStore %color %91
+ OpBranch %75
+ %75 = OpLabel
+ %92 = OpCompositeExtract %uint %params_0 1
+ %94 = OpIEqual %bool %92 %93
+ OpSelectionMerge %95 None
+ OpBranchConditional %94 %96 %95
+ %96 = OpLabel
+ %98 = OpLoad %v3float %color
+ %99 = OpCompositeExtract %GammaTransferParams %params_0 3
+ %97 = OpFunctionCall %v3float %gammaCorrection %98 %99
+ OpStore %color %97
+ %100 = OpCompositeExtract %mat3v3float %params_0 5
+ %101 = OpLoad %v3float %color
+ %102 = OpMatrixTimesVector %v3float %100 %101
OpStore %color %102
- OpBranch %94
- %94 = OpLabel
- %105 = OpLoad %v3float %color
- %106 = OpCompositeExtract %float %105 0
- %107 = OpCompositeExtract %float %105 1
- %108 = OpCompositeExtract %float %105 2
- %109 = OpCompositeConstruct %v4float %106 %107 %108 %float_1
- OpReturnValue %109
+ %104 = OpLoad %v3float %color
+ %105 = OpCompositeExtract %GammaTransferParams %params_0 4
+ %103 = OpFunctionCall %v3float %gammaCorrection %104 %105
+ OpStore %color %103
+ OpBranch %95
+ %95 = OpLabel
+ %106 = OpLoad %v3float %color
+ %107 = OpCompositeExtract %float %106 0
+ %108 = OpCompositeExtract %float %106 1
+ %109 = OpCompositeExtract %float %106 2
+ %110 = OpCompositeConstruct %v4float %107 %108 %109 %float_1
+ OpReturnValue %110
OpFunctionEnd
-%textureLoad_8acf41 = OpFunction %void None %110
- %113 = OpLabel
+%textureLoad_8acf41 = OpFunction %void None %111
+ %114 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %5
- %115 = OpLoad %11 %arg_0
- %116 = OpLoad %11 %ext_tex_plane_1
- %118 = OpLoad %ExternalTextureParams %ext_tex_params
- %114 = OpFunctionCall %v4float %textureLoadExternal %115 %116 %117 %118
- OpStore %res %114
+ %116 = OpLoad %11 %arg_0
+ %117 = OpLoad %11 %ext_tex_plane_1
+ %121 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+ %122 = OpLoad %ExternalTextureParams %121
+ %115 = OpFunctionCall %v4float %textureLoadExternal %116 %117 %118 %122
+ OpStore %res %115
OpReturn
OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %121
- %123 = OpLabel
- %124 = OpFunctionCall %void %textureLoad_8acf41
+%vertex_main_inner = OpFunction %v4float None %125
+ %127 = OpLabel
+ %128 = OpFunctionCall %void %textureLoad_8acf41
OpReturnValue %5
OpFunctionEnd
-%vertex_main = OpFunction %void None %110
- %126 = OpLabel
- %127 = OpFunctionCall %v4float %vertex_main_inner
- OpStore %value %127
+%vertex_main = OpFunction %void None %111
+ %130 = OpLabel
+ %131 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %131
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %110
- %129 = OpLabel
- %130 = OpFunctionCall %void %textureLoad_8acf41
+%fragment_main = OpFunction %void None %111
+ %133 = OpLabel
+ %134 = OpFunctionCall %void %textureLoad_8acf41
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %110
- %132 = OpLabel
- %133 = OpFunctionCall %void %textureLoad_8acf41
+%compute_main = OpFunction %void None %111
+ %136 = OpLabel
+ %137 = OpFunctionCall %void %textureLoad_8acf41
OpReturn
OpFunctionEnd
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
index 68b71f1..63c387f 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct GammaTransferParams {
@@ -22,13 +20,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -57,7 +50,7 @@
uniform highp sampler2D arg_0_arg_1;
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
}
vec4 vertex_main() {
@@ -73,14 +66,6 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:58: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:58: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:58: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -104,13 +89,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -139,7 +119,7 @@
uniform highp sampler2D arg_0_arg_1;
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
}
void fragment_main() {
@@ -150,14 +130,6 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:59: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:59: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:59: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
struct GammaTransferParams {
@@ -180,13 +152,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -215,7 +182,7 @@
uniform highp sampler2D arg_0_arg_1;
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, vec2(0.0f), ext_tex_params.inner);
}
void compute_main() {
@@ -227,11 +194,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:58: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:58: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:58: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
index 444e4c2..acb3f03 100644
--- a/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/literal/textureSampleLevel/979816.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 140
+; Bound: 144
; Schema: 0
OpCapability Shader
- %30 = OpExtInstImport "GLSL.std.450"
+ %31 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -14,6 +14,8 @@
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %ext_tex_plane_1 "ext_tex_plane_1"
+ OpName %ext_tex_params_block "ext_tex_params_block"
+ OpMemberName %ext_tex_params_block 0 "inner"
OpName %ExternalTextureParams "ExternalTextureParams"
OpMemberName %ExternalTextureParams 0 "numPlanes"
OpMemberName %ExternalTextureParams 1 "doYuvToRgbConversionOnly"
@@ -53,7 +55,8 @@
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ext_tex_plane_1 DescriptorSet 1
OpDecorate %ext_tex_plane_1 Binding 2
- OpDecorate %ExternalTextureParams Block
+ OpDecorate %ext_tex_params_block Block
+ OpMemberDecorate %ext_tex_params_block 0 Offset 0
OpMemberDecorate %ExternalTextureParams 0 Offset 0
OpMemberDecorate %ExternalTextureParams 1 Offset 4
OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -96,153 +99,157 @@
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float
-%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
-%ext_tex_params = OpVariable %_ptr_Uniform_ExternalTextureParams Uniform
+%ext_tex_params_block = OpTypeStruct %ExternalTextureParams
+%_ptr_Uniform_ext_tex_params_block = OpTypePointer Uniform %ext_tex_params_block
+%ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block Uniform
%arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
- %23 = OpTypeSampler
-%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
- %arg_1 = OpVariable %_ptr_UniformConstant_23 UniformConstant
- %24 = OpTypeFunction %v3float %v3float %GammaTransferParams
+ %24 = OpTypeSampler
+%_ptr_UniformConstant_24 = OpTypePointer UniformConstant %24
+ %arg_1 = OpVariable %_ptr_UniformConstant_24 UniformConstant
+ %25 = OpTypeFunction %v3float %v3float %GammaTransferParams
%bool = OpTypeBool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %44 = OpConstantNull %v3float
+ %45 = OpConstantNull %v3float
%v2float = OpTypeVector %float 2
- %64 = OpTypeFunction %v4float %11 %11 %23 %v2float %ExternalTextureParams
+ %65 = OpTypeFunction %v4float %11 %11 %24 %v2float %ExternalTextureParams
%uint_1 = OpConstant %uint 1
- %81 = OpTypeSampledImage %11
+ %82 = OpTypeSampledImage %11
%float_1 = OpConstant %float 1
- %97 = OpConstantNull %uint
+ %98 = OpConstantNull %uint
%void = OpTypeVoid
- %115 = OpTypeFunction %void
- %123 = OpConstantNull %v2float
+ %116 = OpTypeFunction %void
+ %124 = OpConstantNull %v2float
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
%_ptr_Function_v4float = OpTypePointer Function %v4float
- %127 = OpTypeFunction %v4float
-%gammaCorrection = OpFunction %v3float None %24
+ %131 = OpTypeFunction %v4float
+%gammaCorrection = OpFunction %v3float None %25
%v = OpFunctionParameter %v3float
%params = OpFunctionParameter %GammaTransferParams
- %28 = OpLabel
- %42 = OpVariable %_ptr_Function_v3float Function %44
- %54 = OpVariable %_ptr_Function_v3float Function %44
- %60 = OpVariable %_ptr_Function_v3float Function %44
- %29 = OpExtInst %v3float %30 FAbs %v
- %31 = OpCompositeExtract %float %params 4
- %32 = OpCompositeConstruct %v3float %31 %31 %31
- %33 = OpFOrdLessThan %v3bool %29 %32
- %36 = OpExtInst %v3float %30 FSign %v
- %37 = OpCompositeExtract %float %params 3
- %38 = OpExtInst %v3float %30 FAbs %v
- %39 = OpVectorTimesScalar %v3float %38 %37
- %40 = OpCompositeExtract %float %params 6
- %45 = OpCompositeConstruct %v3float %40 %40 %40
- %41 = OpFAdd %v3float %39 %45
- %46 = OpFMul %v3float %36 %41
- %47 = OpExtInst %v3float %30 FSign %v
- %49 = OpCompositeExtract %float %params 1
- %50 = OpExtInst %v3float %30 FAbs %v
- %51 = OpVectorTimesScalar %v3float %50 %49
- %52 = OpCompositeExtract %float %params 2
- %55 = OpCompositeConstruct %v3float %52 %52 %52
- %53 = OpFAdd %v3float %51 %55
- %56 = OpCompositeExtract %float %params 0
- %57 = OpCompositeConstruct %v3float %56 %56 %56
- %48 = OpExtInst %v3float %30 Pow %53 %57
- %58 = OpCompositeExtract %float %params 5
- %61 = OpCompositeConstruct %v3float %58 %58 %58
- %59 = OpFAdd %v3float %48 %61
- %62 = OpFMul %v3float %47 %59
- %63 = OpSelect %v3float %33 %46 %62
- OpReturnValue %63
+ %29 = OpLabel
+ %43 = OpVariable %_ptr_Function_v3float Function %45
+ %55 = OpVariable %_ptr_Function_v3float Function %45
+ %61 = OpVariable %_ptr_Function_v3float Function %45
+ %30 = OpExtInst %v3float %31 FAbs %v
+ %32 = OpCompositeExtract %float %params 4
+ %33 = OpCompositeConstruct %v3float %32 %32 %32
+ %34 = OpFOrdLessThan %v3bool %30 %33
+ %37 = OpExtInst %v3float %31 FSign %v
+ %38 = OpCompositeExtract %float %params 3
+ %39 = OpExtInst %v3float %31 FAbs %v
+ %40 = OpVectorTimesScalar %v3float %39 %38
+ %41 = OpCompositeExtract %float %params 6
+ %46 = OpCompositeConstruct %v3float %41 %41 %41
+ %42 = OpFAdd %v3float %40 %46
+ %47 = OpFMul %v3float %37 %42
+ %48 = OpExtInst %v3float %31 FSign %v
+ %50 = OpCompositeExtract %float %params 1
+ %51 = OpExtInst %v3float %31 FAbs %v
+ %52 = OpVectorTimesScalar %v3float %51 %50
+ %53 = OpCompositeExtract %float %params 2
+ %56 = OpCompositeConstruct %v3float %53 %53 %53
+ %54 = OpFAdd %v3float %52 %56
+ %57 = OpCompositeExtract %float %params 0
+ %58 = OpCompositeConstruct %v3float %57 %57 %57
+ %49 = OpExtInst %v3float %31 Pow %54 %58
+ %59 = OpCompositeExtract %float %params 5
+ %62 = OpCompositeConstruct %v3float %59 %59 %59
+ %60 = OpFAdd %v3float %49 %62
+ %63 = OpFMul %v3float %48 %60
+ %64 = OpSelect %v3float %34 %47 %63
+ OpReturnValue %64
OpFunctionEnd
-%textureSampleExternal = OpFunction %v4float None %64
+%textureSampleExternal = OpFunction %v4float None %65
%plane0 = OpFunctionParameter %11
%plane1 = OpFunctionParameter %11
- %smp = OpFunctionParameter %23
+ %smp = OpFunctionParameter %24
%coord = OpFunctionParameter %v2float
%params_0 = OpFunctionParameter %ExternalTextureParams
- %72 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %44
- %74 = OpCompositeExtract %uint %params_0 0
- %76 = OpIEqual %bool %74 %uint_1
- OpSelectionMerge %77 None
- OpBranchConditional %76 %78 %79
- %78 = OpLabel
- %82 = OpSampledImage %81 %plane0 %smp
- %80 = OpImageSampleExplicitLod %v4float %82 %coord Lod %8
- %83 = OpVectorShuffle %v3float %80 %80 0 1 2
- OpStore %color %83
- OpBranch %77
+ %73 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %45
+ %75 = OpCompositeExtract %uint %params_0 0
+ %77 = OpIEqual %bool %75 %uint_1
+ OpSelectionMerge %78 None
+ OpBranchConditional %77 %79 %80
%79 = OpLabel
- %85 = OpSampledImage %81 %plane0 %smp
- %84 = OpImageSampleExplicitLod %v4float %85 %coord Lod %8
- %86 = OpCompositeExtract %float %84 0
- %88 = OpSampledImage %81 %plane1 %smp
- %87 = OpImageSampleExplicitLod %v4float %88 %coord Lod %8
- %89 = OpVectorShuffle %v2float %87 %87 0 1
- %90 = OpCompositeExtract %float %89 0
- %91 = OpCompositeExtract %float %89 1
- %93 = OpCompositeConstruct %v4float %86 %90 %91 %float_1
- %94 = OpCompositeExtract %mat3v4float %params_0 2
- %95 = OpVectorTimesMatrix %v3float %93 %94
- OpStore %color %95
- OpBranch %77
- %77 = OpLabel
- %96 = OpCompositeExtract %uint %params_0 1
- %98 = OpIEqual %bool %96 %97
- OpSelectionMerge %99 None
- OpBranchConditional %98 %100 %99
- %100 = OpLabel
- %102 = OpLoad %v3float %color
- %103 = OpCompositeExtract %GammaTransferParams %params_0 3
- %101 = OpFunctionCall %v3float %gammaCorrection %102 %103
- OpStore %color %101
- %104 = OpCompositeExtract %mat3v3float %params_0 5
- %105 = OpLoad %v3float %color
- %106 = OpMatrixTimesVector %v3float %104 %105
- OpStore %color %106
- %108 = OpLoad %v3float %color
- %109 = OpCompositeExtract %GammaTransferParams %params_0 4
- %107 = OpFunctionCall %v3float %gammaCorrection %108 %109
+ %83 = OpSampledImage %82 %plane0 %smp
+ %81 = OpImageSampleExplicitLod %v4float %83 %coord Lod %8
+ %84 = OpVectorShuffle %v3float %81 %81 0 1 2
+ OpStore %color %84
+ OpBranch %78
+ %80 = OpLabel
+ %86 = OpSampledImage %82 %plane0 %smp
+ %85 = OpImageSampleExplicitLod %v4float %86 %coord Lod %8
+ %87 = OpCompositeExtract %float %85 0
+ %89 = OpSampledImage %82 %plane1 %smp
+ %88 = OpImageSampleExplicitLod %v4float %89 %coord Lod %8
+ %90 = OpVectorShuffle %v2float %88 %88 0 1
+ %91 = OpCompositeExtract %float %90 0
+ %92 = OpCompositeExtract %float %90 1
+ %94 = OpCompositeConstruct %v4float %87 %91 %92 %float_1
+ %95 = OpCompositeExtract %mat3v4float %params_0 2
+ %96 = OpVectorTimesMatrix %v3float %94 %95
+ OpStore %color %96
+ OpBranch %78
+ %78 = OpLabel
+ %97 = OpCompositeExtract %uint %params_0 1
+ %99 = OpIEqual %bool %97 %98
+ OpSelectionMerge %100 None
+ OpBranchConditional %99 %101 %100
+ %101 = OpLabel
+ %103 = OpLoad %v3float %color
+ %104 = OpCompositeExtract %GammaTransferParams %params_0 3
+ %102 = OpFunctionCall %v3float %gammaCorrection %103 %104
+ OpStore %color %102
+ %105 = OpCompositeExtract %mat3v3float %params_0 5
+ %106 = OpLoad %v3float %color
+ %107 = OpMatrixTimesVector %v3float %105 %106
OpStore %color %107
- OpBranch %99
- %99 = OpLabel
- %110 = OpLoad %v3float %color
- %111 = OpCompositeExtract %float %110 0
- %112 = OpCompositeExtract %float %110 1
- %113 = OpCompositeExtract %float %110 2
- %114 = OpCompositeConstruct %v4float %111 %112 %113 %float_1
- OpReturnValue %114
+ %109 = OpLoad %v3float %color
+ %110 = OpCompositeExtract %GammaTransferParams %params_0 4
+ %108 = OpFunctionCall %v3float %gammaCorrection %109 %110
+ OpStore %color %108
+ OpBranch %100
+ %100 = OpLabel
+ %111 = OpLoad %v3float %color
+ %112 = OpCompositeExtract %float %111 0
+ %113 = OpCompositeExtract %float %111 1
+ %114 = OpCompositeExtract %float %111 2
+ %115 = OpCompositeConstruct %v4float %112 %113 %114 %float_1
+ OpReturnValue %115
OpFunctionEnd
-%textureSampleLevel_979816 = OpFunction %void None %115
- %118 = OpLabel
+%textureSampleLevel_979816 = OpFunction %void None %116
+ %119 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %5
- %120 = OpLoad %11 %arg_0
- %121 = OpLoad %11 %ext_tex_plane_1
- %122 = OpLoad %23 %arg_1
- %124 = OpLoad %ExternalTextureParams %ext_tex_params
- %119 = OpFunctionCall %v4float %textureSampleExternal %120 %121 %122 %123 %124
- OpStore %res %119
+ %121 = OpLoad %11 %arg_0
+ %122 = OpLoad %11 %ext_tex_plane_1
+ %123 = OpLoad %24 %arg_1
+ %127 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+ %128 = OpLoad %ExternalTextureParams %127
+ %120 = OpFunctionCall %v4float %textureSampleExternal %121 %122 %123 %124 %128
+ OpStore %res %120
OpReturn
OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %127
- %129 = OpLabel
- %130 = OpFunctionCall %void %textureSampleLevel_979816
+%vertex_main_inner = OpFunction %v4float None %131
+ %133 = OpLabel
+ %134 = OpFunctionCall %void %textureSampleLevel_979816
OpReturnValue %5
OpFunctionEnd
-%vertex_main = OpFunction %void None %115
- %132 = OpLabel
- %133 = OpFunctionCall %v4float %vertex_main_inner
- OpStore %value %133
+%vertex_main = OpFunction %void None %116
+ %136 = OpLabel
+ %137 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %137
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %115
- %135 = OpLabel
- %136 = OpFunctionCall %void %textureSampleLevel_979816
+%fragment_main = OpFunction %void None %116
+ %139 = OpLabel
+ %140 = OpFunctionCall %void %textureSampleLevel_979816
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %115
- %138 = OpLabel
- %139 = OpFunctionCall %void %textureSampleLevel_979816
+%compute_main = OpFunction %void None %116
+ %142 = OpLabel
+ %143 = OpFunctionCall %void %textureSampleLevel_979816
OpReturn
OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
index a143e18..4f59c4b 100644
--- a/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/1588cd.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
int arg_0[];
} sb_ro;
+
void arrayLength_1588cd() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
index 46667de..d22edc1 100644
--- a/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/61b1c7.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0[];
} sb_rw;
+
void arrayLength_61b1c7() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
index 58ecc49..c34cb64 100644
--- a/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/8421b9.wgsl.expected.glsl
@@ -1,17 +1,17 @@
SKIP: FAILED
-gen/var/arrayLength/8421b9.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
+builtins/gen/var/arrayLength/8421b9.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
arg_0: array<f16>,
^^^^^^^^^^
-gen/var/arrayLength/8421b9.wgsl:25:1 note: see layout of struct:
+builtins/gen/var/arrayLength/8421b9.wgsl:25:1 note: see layout of struct:
/* align(2) size(2) */ struct SB_RO {
/* offset(0) align(2) size(2) */ arg_0 : array<f16>;
/* */ };
struct SB_RO {
^^^^^^
-gen/var/arrayLength/8421b9.wgsl:28:42 note: see declaration of variable
+builtins/gen/var/arrayLength/8421b9.wgsl:28:42 note: see declaration of variable
@group(0) @binding(1) var<storage, read> sb_ro : SB_RO;
^^^^^
diff --git a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
index 44aaf23..d7e4539 100644
--- a/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/a0f5ca.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
float arg_0[];
} sb_ro;
+
void arrayLength_a0f5ca() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
index 07baca0..2819fce 100644
--- a/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cbd6b5.wgsl.expected.glsl
@@ -1,17 +1,17 @@
SKIP: FAILED
-gen/var/arrayLength/cbd6b5.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
+builtins/gen/var/arrayLength/cbd6b5.wgsl:26:10 error: using f16 types in 'storage' storage class is not implemented yet
arg_0: array<f16>,
^^^^^^^^^^
-gen/var/arrayLength/cbd6b5.wgsl:25:1 note: see layout of struct:
+builtins/gen/var/arrayLength/cbd6b5.wgsl:25:1 note: see layout of struct:
/* align(2) size(2) */ struct SB_RW {
/* offset(0) align(2) size(2) */ arg_0 : array<f16>;
/* */ };
struct SB_RW {
^^^^^^
-gen/var/arrayLength/cbd6b5.wgsl:28:48 note: see declaration of variable
+builtins/gen/var/arrayLength/cbd6b5.wgsl:28:48 note: see declaration of variable
@group(0) @binding(0) var<storage, read_write> sb_rw : SB_RW;
^^^^^
diff --git a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
index dac4336..5d417ac 100644
--- a/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cdd123.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
float arg_0[];
} sb_rw;
+
void arrayLength_cdd123() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
index e159bef..a605e06 100644
--- a/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/cfca0a.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 1, std430) buffer SB_RO_1 {
+layout(binding = 1, std430) buffer SB_RO_ssbo {
uint arg_0[];
} sb_ro;
+
void arrayLength_cfca0a() {
uint res = uint(sb_ro.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
index a11f1aa..51f60de 100644
--- a/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/arrayLength/eb510f.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -23,9 +24,10 @@
#version 310 es
precision mediump float;
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
@@ -40,9 +42,10 @@
}
#version 310 es
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0[];
} sb_rw;
+
void arrayLength_eb510f() {
uint res = uint(sb_rw.arg_0.length());
}
diff --git a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
index b4e7e25..1d00210 100644
--- a/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/8a199a.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 1u;
uint res = atomicAdd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAdd_8a199a() {
uint arg_1 = 1u;
uint res = atomicAdd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
index c589612..35d22b2 100644
--- a/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAdd/d32fe4.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 1;
int res = atomicAdd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAdd_d32fe4() {
int arg_1 = 1;
int res = atomicAdd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
index 3e8c40f..79b77f1 100644
--- a/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/152966.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int arg_1 = 1;
int res = atomicAnd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicAnd_152966() {
int arg_1 = 1;
int res = atomicAnd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
index 6d6dd70..66ed609 100644
--- a/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicAnd/85a8d9.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint arg_1 = 1u;
uint res = atomicAnd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicAnd_85a8d9() {
uint arg_1 = 1u;
uint res = atomicAnd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
index cae561b..ff8a3b2 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/1bd40a.wgsl.expected.glsl
@@ -7,13 +7,10 @@
};
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
int arg_1 = 1;
int arg_2 = 1;
@@ -39,13 +36,10 @@
};
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_1bd40a() {
int arg_1 = 1;
int arg_2 = 1;
diff --git a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
index a30b533..d976990 100644
--- a/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicCompareExchangeWeak/63d8e6.wgsl.expected.glsl
@@ -7,13 +7,10 @@
};
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
uint arg_1 = 1u;
uint arg_2 = 1u;
@@ -39,13 +36,10 @@
};
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicCompareExchangeWeak_63d8e6() {
uint arg_1 = 1u;
uint arg_2 = 1u;
diff --git a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
index 36903e2..96a02b8 100644
--- a/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/d59712.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint arg_1 = 1u;
uint res = atomicExchange(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicExchange_d59712() {
uint arg_1 = 1u;
uint res = atomicExchange(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
index c74e310..b4dcaad 100644
--- a/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicExchange/f2e22f.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int arg_1 = 1;
int res = atomicExchange(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicExchange_f2e22f() {
int arg_1 = 1;
int res = atomicExchange(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
index 38a8c92..64291f3 100644
--- a/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/0806ad.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = atomicOr(sb_rw.arg_0, 0);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicLoad_0806ad() {
int res = atomicOr(sb_rw.arg_0, 0);
}
diff --git a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
index b4bd0d8..f17c518 100644
--- a/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicLoad/fe6cc3.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = atomicOr(sb_rw.arg_0, 0u);
}
@@ -22,13 +19,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicLoad_fe6cc3() {
uint res = atomicOr(sb_rw.arg_0, 0u);
}
diff --git a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
index 947c35c..6a0431f 100644
--- a/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/51b9be.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint arg_1 = 1u;
uint res = atomicMax(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMax_51b9be() {
uint arg_1 = 1u;
uint res = atomicMax(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
index 326e6ed..43570a4 100644
--- a/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMax/92aa72.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int arg_1 = 1;
int res = atomicMax(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMax_92aa72() {
int arg_1 = 1;
int res = atomicMax(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
index 215a335..2ed6f59 100644
--- a/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/8e38dc.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int arg_1 = 1;
int res = atomicMin(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicMin_8e38dc() {
int arg_1 = 1;
int res = atomicMin(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
index 4d5b79b..8324f15 100644
--- a/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicMin/c67a74.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint arg_1 = 1u;
uint res = atomicMin(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicMin_c67a74() {
uint arg_1 = 1u;
uint res = atomicMin(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
index ddd41fe..65ecce1 100644
--- a/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/5e95d4.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint arg_1 = 1u;
uint res = atomicOr(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicOr_5e95d4() {
uint arg_1 = 1u;
uint res = atomicOr(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
index 237e6b0..dcb6985 100644
--- a/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicOr/8d96a0.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int arg_1 = 1;
int res = atomicOr(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicOr_8d96a0() {
int arg_1 = 1;
int res = atomicOr(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
index 22fd7a1..d9e75bf 100644
--- a/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicStore/cdc29e.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
uint arg_1 = 1u;
atomicExchange(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicStore_cdc29e() {
uint arg_1 = 1u;
atomicExchange(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
index f5e52e4..e4c98e0 100644
--- a/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicStore/d1e9a6.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
int arg_1 = 1;
atomicExchange(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicStore_d1e9a6() {
int arg_1 = 1;
atomicExchange(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
index 25f8eba..6ea56f6 100644
--- a/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/051100.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int arg_1 = 1;
int res = atomicAdd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicSub_051100() {
int arg_1 = 1;
int res = atomicAdd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
index c21f8f7..e5d348c 100644
--- a/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicSub/15bfc9.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint arg_1 = 1u;
uint res = atomicAdd(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicSub_15bfc9() {
uint arg_1 = 1u;
uint res = atomicAdd(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
index 7ac4420..9ac7f7a 100644
--- a/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/54510e.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint arg_1 = 1u;
uint res = atomicXor(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- uint arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
uint arg_0;
} sb_rw;
+
void atomicXor_54510e() {
uint arg_1 = 1u;
uint res = atomicXor(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
index 3f8236c..113781d 100644
--- a/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/atomicXor/c1b78c.wgsl.expected.glsl
@@ -1,13 +1,10 @@
#version 310 es
precision mediump float;
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int arg_1 = 1;
int res = atomicXor(sb_rw.arg_0, arg_1);
@@ -23,13 +20,10 @@
}
#version 310 es
-struct SB_RW {
- int arg_0;
-};
-
-layout(binding = 0, std430) buffer SB_RW_1 {
+layout(binding = 0, std430) buffer SB_RW_ssbo {
int arg_0;
} sb_rw;
+
void atomicXor_c1b78c() {
int arg_1 = 1;
int res = atomicXor(sb_rw.arg_0, arg_1);
diff --git a/test/tint/builtins/gen/var/textureDimensions/ba1481.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureDimensions/ba1481.wgsl.expected.glsl
index 47564ae..f610169 100644
--- a/test/tint/builtins/gen/var/textureDimensions/ba1481.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureDimensions/ba1481.wgsl.expected.glsl
@@ -11,16 +11,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
@@ -61,16 +52,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
@@ -105,16 +87,7 @@
uint padding;
};
-struct ExternalTextureParams {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
-};
-
-layout(binding = 2) uniform ExternalTextureParams_1 {
+layout(binding = 2) uniform ExternalTextureParams_ubo {
uint numPlanes;
uint doYuvToRgbConversionOnly;
mat3x4 yuvToRgbConversionMatrix;
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
index 2a7cc09..0debae1 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct GammaTransferParams {
@@ -22,13 +20,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -57,7 +50,7 @@
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
ivec2 arg_1 = ivec2(0);
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
}
vec4 vertex_main() {
@@ -73,14 +66,6 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:58: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:58: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:58: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -104,13 +89,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -139,7 +119,7 @@
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
ivec2 arg_1 = ivec2(0);
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
}
void fragment_main() {
@@ -150,14 +130,6 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:59: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:59: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:59: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
struct GammaTransferParams {
@@ -180,13 +152,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -215,7 +182,7 @@
uniform highp sampler2D ext_tex_plane_1_1;
void textureLoad_8acf41() {
ivec2 arg_1 = ivec2(0);
- vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params);
+ vec4 res = textureLoadExternal(arg_0_1, ext_tex_plane_1_1, arg_1, ext_tex_params.inner);
}
void compute_main() {
@@ -227,11 +194,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:58: 'textureLoadExternal' : no matching overloaded function found
-ERROR: 0:58: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:58: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
index c70c6b1..350a201 100644
--- a/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureLoad/8acf41.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 137
+; Bound: 141
; Schema: 0
OpCapability Shader
- %27 = OpExtInstImport "GLSL.std.450"
+ %28 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -14,6 +14,8 @@
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %ext_tex_plane_1 "ext_tex_plane_1"
+ OpName %ext_tex_params_block "ext_tex_params_block"
+ OpMemberName %ext_tex_params_block 0 "inner"
OpName %ExternalTextureParams "ExternalTextureParams"
OpMemberName %ExternalTextureParams 0 "numPlanes"
OpMemberName %ExternalTextureParams 1 "doYuvToRgbConversionOnly"
@@ -52,7 +54,8 @@
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ext_tex_plane_1 DescriptorSet 1
OpDecorate %ext_tex_plane_1 Binding 1
- OpDecorate %ExternalTextureParams Block
+ OpDecorate %ext_tex_params_block Block
+ OpMemberDecorate %ext_tex_params_block 0 Offset 0
OpMemberDecorate %ExternalTextureParams 0 Offset 0
OpMemberDecorate %ExternalTextureParams 1 Offset 4
OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -93,151 +96,155 @@
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float
-%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
-%ext_tex_params = OpVariable %_ptr_Uniform_ExternalTextureParams Uniform
+%ext_tex_params_block = OpTypeStruct %ExternalTextureParams
+%_ptr_Uniform_ext_tex_params_block = OpTypePointer Uniform %ext_tex_params_block
+%ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block Uniform
%arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
- %21 = OpTypeFunction %v3float %v3float %GammaTransferParams
+ %22 = OpTypeFunction %v3float %v3float %GammaTransferParams
%bool = OpTypeBool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %41 = OpConstantNull %v3float
+ %42 = OpConstantNull %v3float
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %61 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
+ %62 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
%uint_1 = OpConstant %uint 1
- %78 = OpConstantNull %int
+ %79 = OpConstantNull %int
%v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
- %92 = OpConstantNull %uint
+ %93 = OpConstantNull %uint
%void = OpTypeVoid
- %110 = OpTypeFunction %void
- %114 = OpConstantNull %v2int
+ %111 = OpTypeFunction %void
+ %115 = OpConstantNull %v2int
%_ptr_Function_v2int = OpTypePointer Function %v2int
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
%_ptr_Function_v4float = OpTypePointer Function %v4float
- %124 = OpTypeFunction %v4float
-%gammaCorrection = OpFunction %v3float None %21
+ %128 = OpTypeFunction %v4float
+%gammaCorrection = OpFunction %v3float None %22
%v = OpFunctionParameter %v3float
%params = OpFunctionParameter %GammaTransferParams
- %25 = OpLabel
- %39 = OpVariable %_ptr_Function_v3float Function %41
- %51 = OpVariable %_ptr_Function_v3float Function %41
- %57 = OpVariable %_ptr_Function_v3float Function %41
- %26 = OpExtInst %v3float %27 FAbs %v
- %28 = OpCompositeExtract %float %params 4
- %29 = OpCompositeConstruct %v3float %28 %28 %28
- %30 = OpFOrdLessThan %v3bool %26 %29
- %33 = OpExtInst %v3float %27 FSign %v
- %34 = OpCompositeExtract %float %params 3
- %35 = OpExtInst %v3float %27 FAbs %v
- %36 = OpVectorTimesScalar %v3float %35 %34
- %37 = OpCompositeExtract %float %params 6
- %42 = OpCompositeConstruct %v3float %37 %37 %37
- %38 = OpFAdd %v3float %36 %42
- %43 = OpFMul %v3float %33 %38
- %44 = OpExtInst %v3float %27 FSign %v
- %46 = OpCompositeExtract %float %params 1
- %47 = OpExtInst %v3float %27 FAbs %v
- %48 = OpVectorTimesScalar %v3float %47 %46
- %49 = OpCompositeExtract %float %params 2
- %52 = OpCompositeConstruct %v3float %49 %49 %49
- %50 = OpFAdd %v3float %48 %52
- %53 = OpCompositeExtract %float %params 0
- %54 = OpCompositeConstruct %v3float %53 %53 %53
- %45 = OpExtInst %v3float %27 Pow %50 %54
- %55 = OpCompositeExtract %float %params 5
- %58 = OpCompositeConstruct %v3float %55 %55 %55
- %56 = OpFAdd %v3float %45 %58
- %59 = OpFMul %v3float %44 %56
- %60 = OpSelect %v3float %30 %43 %59
- OpReturnValue %60
+ %26 = OpLabel
+ %40 = OpVariable %_ptr_Function_v3float Function %42
+ %52 = OpVariable %_ptr_Function_v3float Function %42
+ %58 = OpVariable %_ptr_Function_v3float Function %42
+ %27 = OpExtInst %v3float %28 FAbs %v
+ %29 = OpCompositeExtract %float %params 4
+ %30 = OpCompositeConstruct %v3float %29 %29 %29
+ %31 = OpFOrdLessThan %v3bool %27 %30
+ %34 = OpExtInst %v3float %28 FSign %v
+ %35 = OpCompositeExtract %float %params 3
+ %36 = OpExtInst %v3float %28 FAbs %v
+ %37 = OpVectorTimesScalar %v3float %36 %35
+ %38 = OpCompositeExtract %float %params 6
+ %43 = OpCompositeConstruct %v3float %38 %38 %38
+ %39 = OpFAdd %v3float %37 %43
+ %44 = OpFMul %v3float %34 %39
+ %45 = OpExtInst %v3float %28 FSign %v
+ %47 = OpCompositeExtract %float %params 1
+ %48 = OpExtInst %v3float %28 FAbs %v
+ %49 = OpVectorTimesScalar %v3float %48 %47
+ %50 = OpCompositeExtract %float %params 2
+ %53 = OpCompositeConstruct %v3float %50 %50 %50
+ %51 = OpFAdd %v3float %49 %53
+ %54 = OpCompositeExtract %float %params 0
+ %55 = OpCompositeConstruct %v3float %54 %54 %54
+ %46 = OpExtInst %v3float %28 Pow %51 %55
+ %56 = OpCompositeExtract %float %params 5
+ %59 = OpCompositeConstruct %v3float %56 %56 %56
+ %57 = OpFAdd %v3float %46 %59
+ %60 = OpFMul %v3float %45 %57
+ %61 = OpSelect %v3float %31 %44 %60
+ OpReturnValue %61
OpFunctionEnd
-%textureLoadExternal = OpFunction %v4float None %61
+%textureLoadExternal = OpFunction %v4float None %62
%plane0 = OpFunctionParameter %11
%plane1 = OpFunctionParameter %11
%coord = OpFunctionParameter %v2int
%params_0 = OpFunctionParameter %ExternalTextureParams
- %69 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %41
- %71 = OpCompositeExtract %uint %params_0 0
- %73 = OpIEqual %bool %71 %uint_1
- OpSelectionMerge %74 None
- OpBranchConditional %73 %75 %76
- %75 = OpLabel
- %77 = OpImageFetch %v4float %plane0 %coord Lod %78
- %79 = OpVectorShuffle %v3float %77 %77 0 1 2
- OpStore %color %79
- OpBranch %74
+ %70 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %42
+ %72 = OpCompositeExtract %uint %params_0 0
+ %74 = OpIEqual %bool %72 %uint_1
+ OpSelectionMerge %75 None
+ OpBranchConditional %74 %76 %77
%76 = OpLabel
- %80 = OpImageFetch %v4float %plane0 %coord Lod %78
- %81 = OpCompositeExtract %float %80 0
- %82 = OpImageFetch %v4float %plane1 %coord Lod %78
- %84 = OpVectorShuffle %v2float %82 %82 0 1
- %85 = OpCompositeExtract %float %84 0
- %86 = OpCompositeExtract %float %84 1
- %88 = OpCompositeConstruct %v4float %81 %85 %86 %float_1
- %89 = OpCompositeExtract %mat3v4float %params_0 2
- %90 = OpVectorTimesMatrix %v3float %88 %89
- OpStore %color %90
- OpBranch %74
- %74 = OpLabel
- %91 = OpCompositeExtract %uint %params_0 1
- %93 = OpIEqual %bool %91 %92
- OpSelectionMerge %94 None
- OpBranchConditional %93 %95 %94
- %95 = OpLabel
- %97 = OpLoad %v3float %color
- %98 = OpCompositeExtract %GammaTransferParams %params_0 3
- %96 = OpFunctionCall %v3float %gammaCorrection %97 %98
- OpStore %color %96
- %99 = OpCompositeExtract %mat3v3float %params_0 5
- %100 = OpLoad %v3float %color
- %101 = OpMatrixTimesVector %v3float %99 %100
- OpStore %color %101
- %103 = OpLoad %v3float %color
- %104 = OpCompositeExtract %GammaTransferParams %params_0 4
- %102 = OpFunctionCall %v3float %gammaCorrection %103 %104
+ %78 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %80 = OpVectorShuffle %v3float %78 %78 0 1 2
+ OpStore %color %80
+ OpBranch %75
+ %77 = OpLabel
+ %81 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %82 = OpCompositeExtract %float %81 0
+ %83 = OpImageFetch %v4float %plane1 %coord Lod %79
+ %85 = OpVectorShuffle %v2float %83 %83 0 1
+ %86 = OpCompositeExtract %float %85 0
+ %87 = OpCompositeExtract %float %85 1
+ %89 = OpCompositeConstruct %v4float %82 %86 %87 %float_1
+ %90 = OpCompositeExtract %mat3v4float %params_0 2
+ %91 = OpVectorTimesMatrix %v3float %89 %90
+ OpStore %color %91
+ OpBranch %75
+ %75 = OpLabel
+ %92 = OpCompositeExtract %uint %params_0 1
+ %94 = OpIEqual %bool %92 %93
+ OpSelectionMerge %95 None
+ OpBranchConditional %94 %96 %95
+ %96 = OpLabel
+ %98 = OpLoad %v3float %color
+ %99 = OpCompositeExtract %GammaTransferParams %params_0 3
+ %97 = OpFunctionCall %v3float %gammaCorrection %98 %99
+ OpStore %color %97
+ %100 = OpCompositeExtract %mat3v3float %params_0 5
+ %101 = OpLoad %v3float %color
+ %102 = OpMatrixTimesVector %v3float %100 %101
OpStore %color %102
- OpBranch %94
- %94 = OpLabel
- %105 = OpLoad %v3float %color
- %106 = OpCompositeExtract %float %105 0
- %107 = OpCompositeExtract %float %105 1
- %108 = OpCompositeExtract %float %105 2
- %109 = OpCompositeConstruct %v4float %106 %107 %108 %float_1
- OpReturnValue %109
+ %104 = OpLoad %v3float %color
+ %105 = OpCompositeExtract %GammaTransferParams %params_0 4
+ %103 = OpFunctionCall %v3float %gammaCorrection %104 %105
+ OpStore %color %103
+ OpBranch %95
+ %95 = OpLabel
+ %106 = OpLoad %v3float %color
+ %107 = OpCompositeExtract %float %106 0
+ %108 = OpCompositeExtract %float %106 1
+ %109 = OpCompositeExtract %float %106 2
+ %110 = OpCompositeConstruct %v4float %107 %108 %109 %float_1
+ OpReturnValue %110
OpFunctionEnd
-%textureLoad_8acf41 = OpFunction %void None %110
- %113 = OpLabel
- %arg_1 = OpVariable %_ptr_Function_v2int Function %114
+%textureLoad_8acf41 = OpFunction %void None %111
+ %114 = OpLabel
+ %arg_1 = OpVariable %_ptr_Function_v2int Function %115
%res = OpVariable %_ptr_Function_v4float Function %5
- OpStore %arg_1 %114
- %118 = OpLoad %11 %arg_0
- %119 = OpLoad %11 %ext_tex_plane_1
- %120 = OpLoad %v2int %arg_1
- %121 = OpLoad %ExternalTextureParams %ext_tex_params
- %117 = OpFunctionCall %v4float %textureLoadExternal %118 %119 %120 %121
- OpStore %res %117
+ OpStore %arg_1 %115
+ %119 = OpLoad %11 %arg_0
+ %120 = OpLoad %11 %ext_tex_plane_1
+ %121 = OpLoad %v2int %arg_1
+ %124 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+ %125 = OpLoad %ExternalTextureParams %124
+ %118 = OpFunctionCall %v4float %textureLoadExternal %119 %120 %121 %125
+ OpStore %res %118
OpReturn
OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %124
- %126 = OpLabel
- %127 = OpFunctionCall %void %textureLoad_8acf41
+%vertex_main_inner = OpFunction %v4float None %128
+ %130 = OpLabel
+ %131 = OpFunctionCall %void %textureLoad_8acf41
OpReturnValue %5
OpFunctionEnd
-%vertex_main = OpFunction %void None %110
- %129 = OpLabel
- %130 = OpFunctionCall %v4float %vertex_main_inner
- OpStore %value %130
+%vertex_main = OpFunction %void None %111
+ %133 = OpLabel
+ %134 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %134
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %110
- %132 = OpLabel
- %133 = OpFunctionCall %void %textureLoad_8acf41
+%fragment_main = OpFunction %void None %111
+ %136 = OpLabel
+ %137 = OpFunctionCall %void %textureLoad_8acf41
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %110
- %135 = OpLabel
- %136 = OpFunctionCall %void %textureLoad_8acf41
+%compute_main = OpFunction %void None %111
+ %139 = OpLabel
+ %140 = OpFunctionCall %void %textureLoad_8acf41
OpReturn
OpFunctionEnd
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
index 11782ba..1a5bb9a 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct GammaTransferParams {
@@ -22,13 +20,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -58,7 +51,7 @@
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
vec2 arg_2 = vec2(0.0f);
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
}
vec4 vertex_main() {
@@ -74,14 +67,6 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:59: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:59: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:59: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -105,13 +90,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -141,7 +121,7 @@
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
vec2 arg_2 = vec2(0.0f);
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
}
void fragment_main() {
@@ -152,14 +132,6 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:60: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:60: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:60: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
struct GammaTransferParams {
@@ -182,13 +154,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 3) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 3) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -218,7 +185,7 @@
uniform highp sampler2D ext_tex_plane_1_arg_1;
void textureSampleLevel_979816() {
vec2 arg_2 = vec2(0.0f);
- vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params);
+ vec4 res = textureSampleExternal(arg_0_arg_1, ext_tex_plane_1_arg_1, arg_2, ext_tex_params.inner);
}
void compute_main() {
@@ -230,11 +197,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:59: 'textureSampleExternal' : no matching overloaded function found
-ERROR: 0:59: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:59: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
index ad6d2a9..accaf68 100644
--- a/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
+++ b/test/tint/builtins/gen/var/textureSampleLevel/979816.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 143
+; Bound: 147
; Schema: 0
OpCapability Shader
- %30 = OpExtInstImport "GLSL.std.450"
+ %31 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -14,6 +14,8 @@
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %ext_tex_plane_1 "ext_tex_plane_1"
+ OpName %ext_tex_params_block "ext_tex_params_block"
+ OpMemberName %ext_tex_params_block 0 "inner"
OpName %ExternalTextureParams "ExternalTextureParams"
OpMemberName %ExternalTextureParams 0 "numPlanes"
OpMemberName %ExternalTextureParams 1 "doYuvToRgbConversionOnly"
@@ -54,7 +56,8 @@
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ext_tex_plane_1 DescriptorSet 1
OpDecorate %ext_tex_plane_1 Binding 2
- OpDecorate %ExternalTextureParams Block
+ OpDecorate %ext_tex_params_block Block
+ OpMemberDecorate %ext_tex_params_block 0 Offset 0
OpMemberDecorate %ExternalTextureParams 0 Offset 0
OpMemberDecorate %ExternalTextureParams 1 Offset 4
OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -97,157 +100,161 @@
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float
-%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
-%ext_tex_params = OpVariable %_ptr_Uniform_ExternalTextureParams Uniform
+%ext_tex_params_block = OpTypeStruct %ExternalTextureParams
+%_ptr_Uniform_ext_tex_params_block = OpTypePointer Uniform %ext_tex_params_block
+%ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block Uniform
%arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
- %23 = OpTypeSampler
-%_ptr_UniformConstant_23 = OpTypePointer UniformConstant %23
- %arg_1 = OpVariable %_ptr_UniformConstant_23 UniformConstant
- %24 = OpTypeFunction %v3float %v3float %GammaTransferParams
+ %24 = OpTypeSampler
+%_ptr_UniformConstant_24 = OpTypePointer UniformConstant %24
+ %arg_1 = OpVariable %_ptr_UniformConstant_24 UniformConstant
+ %25 = OpTypeFunction %v3float %v3float %GammaTransferParams
%bool = OpTypeBool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %44 = OpConstantNull %v3float
+ %45 = OpConstantNull %v3float
%v2float = OpTypeVector %float 2
- %64 = OpTypeFunction %v4float %11 %11 %23 %v2float %ExternalTextureParams
+ %65 = OpTypeFunction %v4float %11 %11 %24 %v2float %ExternalTextureParams
%uint_1 = OpConstant %uint 1
- %81 = OpTypeSampledImage %11
+ %82 = OpTypeSampledImage %11
%float_1 = OpConstant %float 1
- %97 = OpConstantNull %uint
+ %98 = OpConstantNull %uint
%void = OpTypeVoid
- %115 = OpTypeFunction %void
- %119 = OpConstantNull %v2float
+ %116 = OpTypeFunction %void
+ %120 = OpConstantNull %v2float
%_ptr_Function_v2float = OpTypePointer Function %v2float
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
%_ptr_Function_v4float = OpTypePointer Function %v4float
- %130 = OpTypeFunction %v4float
-%gammaCorrection = OpFunction %v3float None %24
+ %134 = OpTypeFunction %v4float
+%gammaCorrection = OpFunction %v3float None %25
%v = OpFunctionParameter %v3float
%params = OpFunctionParameter %GammaTransferParams
- %28 = OpLabel
- %42 = OpVariable %_ptr_Function_v3float Function %44
- %54 = OpVariable %_ptr_Function_v3float Function %44
- %60 = OpVariable %_ptr_Function_v3float Function %44
- %29 = OpExtInst %v3float %30 FAbs %v
- %31 = OpCompositeExtract %float %params 4
- %32 = OpCompositeConstruct %v3float %31 %31 %31
- %33 = OpFOrdLessThan %v3bool %29 %32
- %36 = OpExtInst %v3float %30 FSign %v
- %37 = OpCompositeExtract %float %params 3
- %38 = OpExtInst %v3float %30 FAbs %v
- %39 = OpVectorTimesScalar %v3float %38 %37
- %40 = OpCompositeExtract %float %params 6
- %45 = OpCompositeConstruct %v3float %40 %40 %40
- %41 = OpFAdd %v3float %39 %45
- %46 = OpFMul %v3float %36 %41
- %47 = OpExtInst %v3float %30 FSign %v
- %49 = OpCompositeExtract %float %params 1
- %50 = OpExtInst %v3float %30 FAbs %v
- %51 = OpVectorTimesScalar %v3float %50 %49
- %52 = OpCompositeExtract %float %params 2
- %55 = OpCompositeConstruct %v3float %52 %52 %52
- %53 = OpFAdd %v3float %51 %55
- %56 = OpCompositeExtract %float %params 0
- %57 = OpCompositeConstruct %v3float %56 %56 %56
- %48 = OpExtInst %v3float %30 Pow %53 %57
- %58 = OpCompositeExtract %float %params 5
- %61 = OpCompositeConstruct %v3float %58 %58 %58
- %59 = OpFAdd %v3float %48 %61
- %62 = OpFMul %v3float %47 %59
- %63 = OpSelect %v3float %33 %46 %62
- OpReturnValue %63
+ %29 = OpLabel
+ %43 = OpVariable %_ptr_Function_v3float Function %45
+ %55 = OpVariable %_ptr_Function_v3float Function %45
+ %61 = OpVariable %_ptr_Function_v3float Function %45
+ %30 = OpExtInst %v3float %31 FAbs %v
+ %32 = OpCompositeExtract %float %params 4
+ %33 = OpCompositeConstruct %v3float %32 %32 %32
+ %34 = OpFOrdLessThan %v3bool %30 %33
+ %37 = OpExtInst %v3float %31 FSign %v
+ %38 = OpCompositeExtract %float %params 3
+ %39 = OpExtInst %v3float %31 FAbs %v
+ %40 = OpVectorTimesScalar %v3float %39 %38
+ %41 = OpCompositeExtract %float %params 6
+ %46 = OpCompositeConstruct %v3float %41 %41 %41
+ %42 = OpFAdd %v3float %40 %46
+ %47 = OpFMul %v3float %37 %42
+ %48 = OpExtInst %v3float %31 FSign %v
+ %50 = OpCompositeExtract %float %params 1
+ %51 = OpExtInst %v3float %31 FAbs %v
+ %52 = OpVectorTimesScalar %v3float %51 %50
+ %53 = OpCompositeExtract %float %params 2
+ %56 = OpCompositeConstruct %v3float %53 %53 %53
+ %54 = OpFAdd %v3float %52 %56
+ %57 = OpCompositeExtract %float %params 0
+ %58 = OpCompositeConstruct %v3float %57 %57 %57
+ %49 = OpExtInst %v3float %31 Pow %54 %58
+ %59 = OpCompositeExtract %float %params 5
+ %62 = OpCompositeConstruct %v3float %59 %59 %59
+ %60 = OpFAdd %v3float %49 %62
+ %63 = OpFMul %v3float %48 %60
+ %64 = OpSelect %v3float %34 %47 %63
+ OpReturnValue %64
OpFunctionEnd
-%textureSampleExternal = OpFunction %v4float None %64
+%textureSampleExternal = OpFunction %v4float None %65
%plane0 = OpFunctionParameter %11
%plane1 = OpFunctionParameter %11
- %smp = OpFunctionParameter %23
+ %smp = OpFunctionParameter %24
%coord = OpFunctionParameter %v2float
%params_0 = OpFunctionParameter %ExternalTextureParams
- %72 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %44
- %74 = OpCompositeExtract %uint %params_0 0
- %76 = OpIEqual %bool %74 %uint_1
- OpSelectionMerge %77 None
- OpBranchConditional %76 %78 %79
- %78 = OpLabel
- %82 = OpSampledImage %81 %plane0 %smp
- %80 = OpImageSampleExplicitLod %v4float %82 %coord Lod %8
- %83 = OpVectorShuffle %v3float %80 %80 0 1 2
- OpStore %color %83
- OpBranch %77
+ %73 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %45
+ %75 = OpCompositeExtract %uint %params_0 0
+ %77 = OpIEqual %bool %75 %uint_1
+ OpSelectionMerge %78 None
+ OpBranchConditional %77 %79 %80
%79 = OpLabel
- %85 = OpSampledImage %81 %plane0 %smp
- %84 = OpImageSampleExplicitLod %v4float %85 %coord Lod %8
- %86 = OpCompositeExtract %float %84 0
- %88 = OpSampledImage %81 %plane1 %smp
- %87 = OpImageSampleExplicitLod %v4float %88 %coord Lod %8
- %89 = OpVectorShuffle %v2float %87 %87 0 1
- %90 = OpCompositeExtract %float %89 0
- %91 = OpCompositeExtract %float %89 1
- %93 = OpCompositeConstruct %v4float %86 %90 %91 %float_1
- %94 = OpCompositeExtract %mat3v4float %params_0 2
- %95 = OpVectorTimesMatrix %v3float %93 %94
- OpStore %color %95
- OpBranch %77
- %77 = OpLabel
- %96 = OpCompositeExtract %uint %params_0 1
- %98 = OpIEqual %bool %96 %97
- OpSelectionMerge %99 None
- OpBranchConditional %98 %100 %99
- %100 = OpLabel
- %102 = OpLoad %v3float %color
- %103 = OpCompositeExtract %GammaTransferParams %params_0 3
- %101 = OpFunctionCall %v3float %gammaCorrection %102 %103
- OpStore %color %101
- %104 = OpCompositeExtract %mat3v3float %params_0 5
- %105 = OpLoad %v3float %color
- %106 = OpMatrixTimesVector %v3float %104 %105
- OpStore %color %106
- %108 = OpLoad %v3float %color
- %109 = OpCompositeExtract %GammaTransferParams %params_0 4
- %107 = OpFunctionCall %v3float %gammaCorrection %108 %109
+ %83 = OpSampledImage %82 %plane0 %smp
+ %81 = OpImageSampleExplicitLod %v4float %83 %coord Lod %8
+ %84 = OpVectorShuffle %v3float %81 %81 0 1 2
+ OpStore %color %84
+ OpBranch %78
+ %80 = OpLabel
+ %86 = OpSampledImage %82 %plane0 %smp
+ %85 = OpImageSampleExplicitLod %v4float %86 %coord Lod %8
+ %87 = OpCompositeExtract %float %85 0
+ %89 = OpSampledImage %82 %plane1 %smp
+ %88 = OpImageSampleExplicitLod %v4float %89 %coord Lod %8
+ %90 = OpVectorShuffle %v2float %88 %88 0 1
+ %91 = OpCompositeExtract %float %90 0
+ %92 = OpCompositeExtract %float %90 1
+ %94 = OpCompositeConstruct %v4float %87 %91 %92 %float_1
+ %95 = OpCompositeExtract %mat3v4float %params_0 2
+ %96 = OpVectorTimesMatrix %v3float %94 %95
+ OpStore %color %96
+ OpBranch %78
+ %78 = OpLabel
+ %97 = OpCompositeExtract %uint %params_0 1
+ %99 = OpIEqual %bool %97 %98
+ OpSelectionMerge %100 None
+ OpBranchConditional %99 %101 %100
+ %101 = OpLabel
+ %103 = OpLoad %v3float %color
+ %104 = OpCompositeExtract %GammaTransferParams %params_0 3
+ %102 = OpFunctionCall %v3float %gammaCorrection %103 %104
+ OpStore %color %102
+ %105 = OpCompositeExtract %mat3v3float %params_0 5
+ %106 = OpLoad %v3float %color
+ %107 = OpMatrixTimesVector %v3float %105 %106
OpStore %color %107
- OpBranch %99
- %99 = OpLabel
- %110 = OpLoad %v3float %color
- %111 = OpCompositeExtract %float %110 0
- %112 = OpCompositeExtract %float %110 1
- %113 = OpCompositeExtract %float %110 2
- %114 = OpCompositeConstruct %v4float %111 %112 %113 %float_1
- OpReturnValue %114
+ %109 = OpLoad %v3float %color
+ %110 = OpCompositeExtract %GammaTransferParams %params_0 4
+ %108 = OpFunctionCall %v3float %gammaCorrection %109 %110
+ OpStore %color %108
+ OpBranch %100
+ %100 = OpLabel
+ %111 = OpLoad %v3float %color
+ %112 = OpCompositeExtract %float %111 0
+ %113 = OpCompositeExtract %float %111 1
+ %114 = OpCompositeExtract %float %111 2
+ %115 = OpCompositeConstruct %v4float %112 %113 %114 %float_1
+ OpReturnValue %115
OpFunctionEnd
-%textureSampleLevel_979816 = OpFunction %void None %115
- %118 = OpLabel
- %arg_2 = OpVariable %_ptr_Function_v2float Function %119
+%textureSampleLevel_979816 = OpFunction %void None %116
+ %119 = OpLabel
+ %arg_2 = OpVariable %_ptr_Function_v2float Function %120
%res = OpVariable %_ptr_Function_v4float Function %5
- OpStore %arg_2 %119
- %123 = OpLoad %11 %arg_0
- %124 = OpLoad %11 %ext_tex_plane_1
- %125 = OpLoad %23 %arg_1
- %126 = OpLoad %v2float %arg_2
- %127 = OpLoad %ExternalTextureParams %ext_tex_params
- %122 = OpFunctionCall %v4float %textureSampleExternal %123 %124 %125 %126 %127
- OpStore %res %122
+ OpStore %arg_2 %120
+ %124 = OpLoad %11 %arg_0
+ %125 = OpLoad %11 %ext_tex_plane_1
+ %126 = OpLoad %24 %arg_1
+ %127 = OpLoad %v2float %arg_2
+ %130 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+ %131 = OpLoad %ExternalTextureParams %130
+ %123 = OpFunctionCall %v4float %textureSampleExternal %124 %125 %126 %127 %131
+ OpStore %res %123
OpReturn
OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %130
- %132 = OpLabel
- %133 = OpFunctionCall %void %textureSampleLevel_979816
+%vertex_main_inner = OpFunction %v4float None %134
+ %136 = OpLabel
+ %137 = OpFunctionCall %void %textureSampleLevel_979816
OpReturnValue %5
OpFunctionEnd
-%vertex_main = OpFunction %void None %115
- %135 = OpLabel
- %136 = OpFunctionCall %v4float %vertex_main_inner
- OpStore %value %136
+%vertex_main = OpFunction %void None %116
+ %139 = OpLabel
+ %140 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %140
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %115
- %138 = OpLabel
- %139 = OpFunctionCall %void %textureSampleLevel_979816
+%fragment_main = OpFunction %void None %116
+ %142 = OpLabel
+ %143 = OpFunctionCall %void %textureSampleLevel_979816
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %115
- %141 = OpLabel
- %142 = OpFunctionCall %void %textureSampleLevel_979816
+%compute_main = OpFunction %void None %116
+ %145 = OpLabel
+ %146 = OpFunctionCall %void %textureSampleLevel_979816
OpReturn
OpFunctionEnd
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.glsl b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.glsl
index 0d233de..47f9c0a 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.glsl
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
struct GammaTransferParams {
@@ -22,13 +20,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -60,7 +53,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_2;
void doTextureLoad() {
- vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params, ivec2(0));
+ vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params.inner, ivec2(0));
}
vec4 vertex_main() {
@@ -76,14 +69,6 @@
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:61: 'textureLoad2d' : no matching overloaded function found
-ERROR: 0:61: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:61: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
precision mediump float;
@@ -107,13 +92,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -145,7 +125,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_2;
void doTextureLoad() {
- vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params, ivec2(0));
+ vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params.inner, ivec2(0));
}
void fragment_main() {
@@ -156,14 +136,6 @@
fragment_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:62: 'textureLoad2d' : no matching overloaded function found
-ERROR: 0:62: '=' : cannot convert from ' const float' to ' temp mediump 4-component vector of float'
-ERROR: 0:62: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
#version 310 es
struct GammaTransferParams {
@@ -186,13 +158,8 @@
mat3 gamutConversionMatrix;
};
-layout(binding = 2) uniform ExternalTextureParams_1 {
- uint numPlanes;
- uint doYuvToRgbConversionOnly;
- mat3x4 yuvToRgbConversionMatrix;
- GammaTransferParams gammaDecodeParams;
- GammaTransferParams gammaEncodeParams;
- mat3 gamutConversionMatrix;
+layout(binding = 2) uniform ext_tex_params_block_ubo {
+ ExternalTextureParams inner;
} ext_tex_params;
vec3 gammaCorrection(vec3 v, GammaTransferParams params) {
@@ -224,7 +191,7 @@
uniform highp sampler2D arg_0_1;
uniform highp sampler2D ext_tex_plane_1_2;
void doTextureLoad() {
- vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params, ivec2(0));
+ vec4 res = textureLoad2d(arg_0_1, ext_tex_plane_1_2, ext_tex_params.inner, ivec2(0));
}
void compute_main() {
@@ -236,11 +203,3 @@
compute_main();
return;
}
-Error parsing GLSL shader:
-ERROR: 0:61: 'textureLoad2d' : no matching overloaded function found
-ERROR: 0:61: '=' : cannot convert from ' const float' to ' temp highp 4-component vector of float'
-ERROR: 0:61: '' : compilation terminated
-ERROR: 3 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm
index a894d4c..e0ff7dd 100644
--- a/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm
+++ b/test/tint/builtins/textureLoad/texture_external_param.wgsl.expected.spvasm
@@ -1,10 +1,10 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 142
+; Bound: 146
; Schema: 0
OpCapability Shader
- %27 = OpExtInstImport "GLSL.std.450"
+ %28 = OpExtInstImport "GLSL.std.450"
OpMemoryModel Logical GLSL450
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size
OpEntryPoint Fragment %fragment_main "fragment_main"
@@ -14,6 +14,8 @@
OpName %value "value"
OpName %vertex_point_size "vertex_point_size"
OpName %ext_tex_plane_1 "ext_tex_plane_1"
+ OpName %ext_tex_params_block "ext_tex_params_block"
+ OpMemberName %ext_tex_params_block 0 "inner"
OpName %ExternalTextureParams "ExternalTextureParams"
OpMemberName %ExternalTextureParams 0 "numPlanes"
OpMemberName %ExternalTextureParams 1 "doYuvToRgbConversionOnly"
@@ -56,7 +58,8 @@
OpDecorate %vertex_point_size BuiltIn PointSize
OpDecorate %ext_tex_plane_1 DescriptorSet 1
OpDecorate %ext_tex_plane_1 Binding 1
- OpDecorate %ExternalTextureParams Block
+ OpDecorate %ext_tex_params_block Block
+ OpMemberDecorate %ext_tex_params_block 0 Offset 0
OpMemberDecorate %ExternalTextureParams 0 Offset 0
OpMemberDecorate %ExternalTextureParams 1 Offset 4
OpMemberDecorate %ExternalTextureParams 2 Offset 16
@@ -97,157 +100,161 @@
%v3float = OpTypeVector %float 3
%mat3v3float = OpTypeMatrix %v3float 3
%ExternalTextureParams = OpTypeStruct %uint %uint %mat3v4float %GammaTransferParams %GammaTransferParams %mat3v3float
-%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
-%ext_tex_params = OpVariable %_ptr_Uniform_ExternalTextureParams Uniform
+%ext_tex_params_block = OpTypeStruct %ExternalTextureParams
+%_ptr_Uniform_ext_tex_params_block = OpTypePointer Uniform %ext_tex_params_block
+%ext_tex_params = OpVariable %_ptr_Uniform_ext_tex_params_block Uniform
%arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant
- %21 = OpTypeFunction %v3float %v3float %GammaTransferParams
+ %22 = OpTypeFunction %v3float %v3float %GammaTransferParams
%bool = OpTypeBool
%v3bool = OpTypeVector %bool 3
%_ptr_Function_v3float = OpTypePointer Function %v3float
- %41 = OpConstantNull %v3float
+ %42 = OpConstantNull %v3float
%int = OpTypeInt 32 1
%v2int = OpTypeVector %int 2
- %61 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
+ %62 = OpTypeFunction %v4float %11 %11 %v2int %ExternalTextureParams
%uint_1 = OpConstant %uint 1
- %78 = OpConstantNull %int
+ %79 = OpConstantNull %int
%v2float = OpTypeVector %float 2
%float_1 = OpConstant %float 1
- %92 = OpConstantNull %uint
- %110 = OpTypeFunction %v4float %11 %11 %ExternalTextureParams %v2int
+ %93 = OpConstantNull %uint
+ %111 = OpTypeFunction %v4float %11 %11 %ExternalTextureParams %v2int
%void = OpTypeVoid
- %118 = OpTypeFunction %void
- %126 = OpConstantNull %v2int
+ %119 = OpTypeFunction %void
+ %uint_0 = OpConstant %uint 0
+%_ptr_Uniform_ExternalTextureParams = OpTypePointer Uniform %ExternalTextureParams
+ %130 = OpConstantNull %v2int
%_ptr_Function_v4float = OpTypePointer Function %v4float
- %129 = OpTypeFunction %v4float
-%gammaCorrection = OpFunction %v3float None %21
+ %133 = OpTypeFunction %v4float
+%gammaCorrection = OpFunction %v3float None %22
%v = OpFunctionParameter %v3float
%params = OpFunctionParameter %GammaTransferParams
- %25 = OpLabel
- %39 = OpVariable %_ptr_Function_v3float Function %41
- %51 = OpVariable %_ptr_Function_v3float Function %41
- %57 = OpVariable %_ptr_Function_v3float Function %41
- %26 = OpExtInst %v3float %27 FAbs %v
- %28 = OpCompositeExtract %float %params 4
- %29 = OpCompositeConstruct %v3float %28 %28 %28
- %30 = OpFOrdLessThan %v3bool %26 %29
- %33 = OpExtInst %v3float %27 FSign %v
- %34 = OpCompositeExtract %float %params 3
- %35 = OpExtInst %v3float %27 FAbs %v
- %36 = OpVectorTimesScalar %v3float %35 %34
- %37 = OpCompositeExtract %float %params 6
- %42 = OpCompositeConstruct %v3float %37 %37 %37
- %38 = OpFAdd %v3float %36 %42
- %43 = OpFMul %v3float %33 %38
- %44 = OpExtInst %v3float %27 FSign %v
- %46 = OpCompositeExtract %float %params 1
- %47 = OpExtInst %v3float %27 FAbs %v
- %48 = OpVectorTimesScalar %v3float %47 %46
- %49 = OpCompositeExtract %float %params 2
- %52 = OpCompositeConstruct %v3float %49 %49 %49
- %50 = OpFAdd %v3float %48 %52
- %53 = OpCompositeExtract %float %params 0
- %54 = OpCompositeConstruct %v3float %53 %53 %53
- %45 = OpExtInst %v3float %27 Pow %50 %54
- %55 = OpCompositeExtract %float %params 5
- %58 = OpCompositeConstruct %v3float %55 %55 %55
- %56 = OpFAdd %v3float %45 %58
- %59 = OpFMul %v3float %44 %56
- %60 = OpSelect %v3float %30 %43 %59
- OpReturnValue %60
+ %26 = OpLabel
+ %40 = OpVariable %_ptr_Function_v3float Function %42
+ %52 = OpVariable %_ptr_Function_v3float Function %42
+ %58 = OpVariable %_ptr_Function_v3float Function %42
+ %27 = OpExtInst %v3float %28 FAbs %v
+ %29 = OpCompositeExtract %float %params 4
+ %30 = OpCompositeConstruct %v3float %29 %29 %29
+ %31 = OpFOrdLessThan %v3bool %27 %30
+ %34 = OpExtInst %v3float %28 FSign %v
+ %35 = OpCompositeExtract %float %params 3
+ %36 = OpExtInst %v3float %28 FAbs %v
+ %37 = OpVectorTimesScalar %v3float %36 %35
+ %38 = OpCompositeExtract %float %params 6
+ %43 = OpCompositeConstruct %v3float %38 %38 %38
+ %39 = OpFAdd %v3float %37 %43
+ %44 = OpFMul %v3float %34 %39
+ %45 = OpExtInst %v3float %28 FSign %v
+ %47 = OpCompositeExtract %float %params 1
+ %48 = OpExtInst %v3float %28 FAbs %v
+ %49 = OpVectorTimesScalar %v3float %48 %47
+ %50 = OpCompositeExtract %float %params 2
+ %53 = OpCompositeConstruct %v3float %50 %50 %50
+ %51 = OpFAdd %v3float %49 %53
+ %54 = OpCompositeExtract %float %params 0
+ %55 = OpCompositeConstruct %v3float %54 %54 %54
+ %46 = OpExtInst %v3float %28 Pow %51 %55
+ %56 = OpCompositeExtract %float %params 5
+ %59 = OpCompositeConstruct %v3float %56 %56 %56
+ %57 = OpFAdd %v3float %46 %59
+ %60 = OpFMul %v3float %45 %57
+ %61 = OpSelect %v3float %31 %44 %60
+ OpReturnValue %61
OpFunctionEnd
-%textureLoadExternal = OpFunction %v4float None %61
+%textureLoadExternal = OpFunction %v4float None %62
%plane0 = OpFunctionParameter %11
%plane1 = OpFunctionParameter %11
%coord = OpFunctionParameter %v2int
%params_0 = OpFunctionParameter %ExternalTextureParams
- %69 = OpLabel
- %color = OpVariable %_ptr_Function_v3float Function %41
- %71 = OpCompositeExtract %uint %params_0 0
- %73 = OpIEqual %bool %71 %uint_1
- OpSelectionMerge %74 None
- OpBranchConditional %73 %75 %76
- %75 = OpLabel
- %77 = OpImageFetch %v4float %plane0 %coord Lod %78
- %79 = OpVectorShuffle %v3float %77 %77 0 1 2
- OpStore %color %79
- OpBranch %74
+ %70 = OpLabel
+ %color = OpVariable %_ptr_Function_v3float Function %42
+ %72 = OpCompositeExtract %uint %params_0 0
+ %74 = OpIEqual %bool %72 %uint_1
+ OpSelectionMerge %75 None
+ OpBranchConditional %74 %76 %77
%76 = OpLabel
- %80 = OpImageFetch %v4float %plane0 %coord Lod %78
- %81 = OpCompositeExtract %float %80 0
- %82 = OpImageFetch %v4float %plane1 %coord Lod %78
- %84 = OpVectorShuffle %v2float %82 %82 0 1
- %85 = OpCompositeExtract %float %84 0
- %86 = OpCompositeExtract %float %84 1
- %88 = OpCompositeConstruct %v4float %81 %85 %86 %float_1
- %89 = OpCompositeExtract %mat3v4float %params_0 2
- %90 = OpVectorTimesMatrix %v3float %88 %89
- OpStore %color %90
- OpBranch %74
- %74 = OpLabel
- %91 = OpCompositeExtract %uint %params_0 1
- %93 = OpIEqual %bool %91 %92
- OpSelectionMerge %94 None
- OpBranchConditional %93 %95 %94
- %95 = OpLabel
- %97 = OpLoad %v3float %color
- %98 = OpCompositeExtract %GammaTransferParams %params_0 3
- %96 = OpFunctionCall %v3float %gammaCorrection %97 %98
- OpStore %color %96
- %99 = OpCompositeExtract %mat3v3float %params_0 5
- %100 = OpLoad %v3float %color
- %101 = OpMatrixTimesVector %v3float %99 %100
- OpStore %color %101
- %103 = OpLoad %v3float %color
- %104 = OpCompositeExtract %GammaTransferParams %params_0 4
- %102 = OpFunctionCall %v3float %gammaCorrection %103 %104
+ %78 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %80 = OpVectorShuffle %v3float %78 %78 0 1 2
+ OpStore %color %80
+ OpBranch %75
+ %77 = OpLabel
+ %81 = OpImageFetch %v4float %plane0 %coord Lod %79
+ %82 = OpCompositeExtract %float %81 0
+ %83 = OpImageFetch %v4float %plane1 %coord Lod %79
+ %85 = OpVectorShuffle %v2float %83 %83 0 1
+ %86 = OpCompositeExtract %float %85 0
+ %87 = OpCompositeExtract %float %85 1
+ %89 = OpCompositeConstruct %v4float %82 %86 %87 %float_1
+ %90 = OpCompositeExtract %mat3v4float %params_0 2
+ %91 = OpVectorTimesMatrix %v3float %89 %90
+ OpStore %color %91
+ OpBranch %75
+ %75 = OpLabel
+ %92 = OpCompositeExtract %uint %params_0 1
+ %94 = OpIEqual %bool %92 %93
+ OpSelectionMerge %95 None
+ OpBranchConditional %94 %96 %95
+ %96 = OpLabel
+ %98 = OpLoad %v3float %color
+ %99 = OpCompositeExtract %GammaTransferParams %params_0 3
+ %97 = OpFunctionCall %v3float %gammaCorrection %98 %99
+ OpStore %color %97
+ %100 = OpCompositeExtract %mat3v3float %params_0 5
+ %101 = OpLoad %v3float %color
+ %102 = OpMatrixTimesVector %v3float %100 %101
OpStore %color %102
- OpBranch %94
- %94 = OpLabel
- %105 = OpLoad %v3float %color
- %106 = OpCompositeExtract %float %105 0
- %107 = OpCompositeExtract %float %105 1
- %108 = OpCompositeExtract %float %105 2
- %109 = OpCompositeConstruct %v4float %106 %107 %108 %float_1
- OpReturnValue %109
+ %104 = OpLoad %v3float %color
+ %105 = OpCompositeExtract %GammaTransferParams %params_0 4
+ %103 = OpFunctionCall %v3float %gammaCorrection %104 %105
+ OpStore %color %103
+ OpBranch %95
+ %95 = OpLabel
+ %106 = OpLoad %v3float %color
+ %107 = OpCompositeExtract %float %106 0
+ %108 = OpCompositeExtract %float %106 1
+ %109 = OpCompositeExtract %float %106 2
+ %110 = OpCompositeConstruct %v4float %107 %108 %109 %float_1
+ OpReturnValue %110
OpFunctionEnd
-%textureLoad2d = OpFunction %v4float None %110
+%textureLoad2d = OpFunction %v4float None %111
%texture = OpFunctionParameter %11
%ext_tex_plane_1_1 = OpFunctionParameter %11
%ext_tex_params_1 = OpFunctionParameter %ExternalTextureParams
%coords = OpFunctionParameter %v2int
- %116 = OpLabel
- %117 = OpFunctionCall %v4float %textureLoadExternal %texture %ext_tex_plane_1_1 %coords %ext_tex_params_1
- OpReturnValue %117
+ %117 = OpLabel
+ %118 = OpFunctionCall %v4float %textureLoadExternal %texture %ext_tex_plane_1_1 %coords %ext_tex_params_1
+ OpReturnValue %118
OpFunctionEnd
-%doTextureLoad = OpFunction %void None %118
- %121 = OpLabel
+%doTextureLoad = OpFunction %void None %119
+ %122 = OpLabel
%res = OpVariable %_ptr_Function_v4float Function %5
- %123 = OpLoad %11 %arg_0
- %124 = OpLoad %11 %ext_tex_plane_1
- %125 = OpLoad %ExternalTextureParams %ext_tex_params
- %122 = OpFunctionCall %v4float %textureLoad2d %123 %124 %125 %126
- OpStore %res %122
+ %124 = OpLoad %11 %arg_0
+ %125 = OpLoad %11 %ext_tex_plane_1
+ %128 = OpAccessChain %_ptr_Uniform_ExternalTextureParams %ext_tex_params %uint_0
+ %129 = OpLoad %ExternalTextureParams %128
+ %123 = OpFunctionCall %v4float %textureLoad2d %124 %125 %129 %130
+ OpStore %res %123
OpReturn
OpFunctionEnd
-%vertex_main_inner = OpFunction %v4float None %129
- %131 = OpLabel
- %132 = OpFunctionCall %void %doTextureLoad
+%vertex_main_inner = OpFunction %v4float None %133
+ %135 = OpLabel
+ %136 = OpFunctionCall %void %doTextureLoad
OpReturnValue %5
OpFunctionEnd
-%vertex_main = OpFunction %void None %118
- %134 = OpLabel
- %135 = OpFunctionCall %v4float %vertex_main_inner
- OpStore %value %135
+%vertex_main = OpFunction %void None %119
+ %138 = OpLabel
+ %139 = OpFunctionCall %v4float %vertex_main_inner
+ OpStore %value %139
OpStore %vertex_point_size %float_1
OpReturn
OpFunctionEnd
-%fragment_main = OpFunction %void None %118
- %137 = OpLabel
- %138 = OpFunctionCall %void %doTextureLoad
+%fragment_main = OpFunction %void None %119
+ %141 = OpLabel
+ %142 = OpFunctionCall %void %doTextureLoad
OpReturn
OpFunctionEnd
-%compute_main = OpFunction %void None %118
- %140 = OpLabel
- %141 = OpFunctionCall %void %doTextureLoad
+%compute_main = OpFunction %void None %119
+ %144 = OpLabel
+ %145 = OpFunctionCall %void %doTextureLoad
OpReturn
OpFunctionEnd
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.glsl
index 729d8e0..51aef61 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-binary/mul/mat3x2-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
+expressions/binary/mul/mat3x2-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
matrix : mat3x2<f16>,
^^^^^^^^^^^
-binary/mul/mat3x2-vec3/f16.wgsl:2:1 note: see layout of struct:
+expressions/binary/mul/mat3x2-vec3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(24) */ struct S {
/* offset( 0) align(4) size(12) */ matrix : mat3x2<f16>;
/* offset(12) align(1) size( 4) */ // -- implicit field alignment padding --;
@@ -14,7 +14,7 @@
struct S {
^^^^^^
-binary/mul/mat3x2-vec3/f16.wgsl:6:36 note: see declaration of variable
+expressions/binary/mul/mat3x2-vec3/f16.wgsl:6:36 note: see declaration of variable
@group(0) @binding(0) var<uniform> data: S;
^^^^
diff --git a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
index 086769e..c2ceb0a 100644
--- a/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat3x2-vec3/f32.wgsl.expected.glsl
@@ -6,14 +6,7 @@
vec3 vector;
};
-struct S_std140 {
- vec2 matrix_0;
- vec2 matrix_1;
- vec2 matrix_2;
- vec3 vector;
-};
-
-layout(binding = 0) uniform S_std140_1 {
+layout(binding = 0) uniform S_std140_ubo {
vec2 matrix_0;
vec2 matrix_1;
vec2 matrix_2;
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.glsl
index fe18486..0b83b52 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-binary/mul/mat3x3-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
+expressions/binary/mul/mat3x3-vec3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
matrix : mat3x3<f16>,
^^^^^^^^^^^
-binary/mul/mat3x3-vec3/f16.wgsl:2:1 note: see layout of struct:
+expressions/binary/mul/mat3x3-vec3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(32) */ struct S {
/* offset( 0) align(8) size(24) */ matrix : mat3x3<f16>;
/* offset(24) align(8) size( 6) */ vector : vec3<f16>;
@@ -13,7 +13,7 @@
struct S {
^^^^^^
-binary/mul/mat3x3-vec3/f16.wgsl:6:36 note: see declaration of variable
+expressions/binary/mul/mat3x3-vec3/f16.wgsl:6:36 note: see declaration of variable
@group(0) @binding(0) var<uniform> data: S;
^^^^
diff --git a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
index 42cee27..b5481e4 100644
--- a/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/mat3x3-vec3/f32.wgsl.expected.glsl
@@ -1,12 +1,7 @@
#version 310 es
precision mediump float;
-struct S {
- mat3 matrix;
- vec3 vector;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
mat3 matrix;
vec3 vector;
} data;
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.glsl
index da8a0b2..e34358b 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-binary/mul/vec3-mat3x3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
+expressions/binary/mul/vec3-mat3x3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
matrix : mat3x3<f16>,
^^^^^^^^^^^
-binary/mul/vec3-mat3x3/f16.wgsl:2:1 note: see layout of struct:
+expressions/binary/mul/vec3-mat3x3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(32) */ struct S {
/* offset( 0) align(8) size(24) */ matrix : mat3x3<f16>;
/* offset(24) align(8) size( 6) */ vector : vec3<f16>;
@@ -13,7 +13,7 @@
struct S {
^^^^^^
-binary/mul/vec3-mat3x3/f16.wgsl:6:36 note: see declaration of variable
+expressions/binary/mul/vec3-mat3x3/f16.wgsl:6:36 note: see declaration of variable
@group(0) @binding(0) var<uniform> data: S;
^^^^
diff --git a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
index 200be2b..8059407 100644
--- a/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-mat3x3/f32.wgsl.expected.glsl
@@ -1,12 +1,7 @@
#version 310 es
precision mediump float;
-struct S {
- mat3 matrix;
- vec3 vector;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
mat3 matrix;
vec3 vector;
} data;
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.glsl
index 4b075b5..367b08c 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-binary/mul/vec3-mat4x3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
+expressions/binary/mul/vec3-mat4x3/f16.wgsl:3:14 error: using f16 types in 'uniform' storage class is not implemented yet
matrix : mat4x3<f16>,
^^^^^^^^^^^
-binary/mul/vec3-mat4x3/f16.wgsl:2:1 note: see layout of struct:
+expressions/binary/mul/vec3-mat4x3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(40) */ struct S {
/* offset( 0) align(8) size(32) */ matrix : mat4x3<f16>;
/* offset(32) align(8) size( 6) */ vector : vec3<f16>;
@@ -13,7 +13,7 @@
struct S {
^^^^^^
-binary/mul/vec3-mat4x3/f16.wgsl:6:36 note: see declaration of variable
+expressions/binary/mul/vec3-mat4x3/f16.wgsl:6:36 note: see declaration of variable
@group(0) @binding(0) var<uniform> data: S;
^^^^
diff --git a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
index 0cd32b8..26960f6 100644
--- a/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/binary/mul/vec3-mat4x3/f32.wgsl.expected.glsl
@@ -1,12 +1,7 @@
#version 310 es
precision mediump float;
-struct S {
- mat4x3 matrix;
- vec3 vector;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
mat4x3 matrix;
vec3 vector;
} data;
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.glsl b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.glsl
index 77452b8..713d1a6 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-swizzle/read/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'uniform' storage class is not implemented yet
+expressions/swizzle/read/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'uniform' storage class is not implemented yet
v: vec3<f16>,
^^^^^^^^^
-swizzle/read/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
+expressions/swizzle/read/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(8) */ struct S {
/* offset(0) align(8) size(6) */ v : vec3<f16>;
/* offset(6) align(1) size(2) */ // -- implicit struct size padding --;
@@ -12,7 +12,7 @@
struct S {
^^^^^^
-swizzle/read/packed_vec3/f16.wgsl:6:36 note: see declaration of variable
+expressions/swizzle/read/packed_vec3/f16.wgsl:6:36 note: see declaration of variable
@group(0) @binding(0) var<uniform> U : S;
^
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
index f71e8a0..9f4cd7d 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/f32.wgsl.expected.glsl
@@ -4,11 +4,7 @@
void unused_entry_point() {
return;
}
-struct S {
- vec3 v;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
vec3 v;
} U;
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
index fe7dd72..ce0631d 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/i32.wgsl.expected.glsl
@@ -4,11 +4,7 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec3 v;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
ivec3 v;
} U;
diff --git a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
index 7725962..435e001 100644
--- a/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/read/packed_vec3/u32.wgsl.expected.glsl
@@ -4,11 +4,7 @@
void unused_entry_point() {
return;
}
-struct S {
- uvec3 v;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
uvec3 v;
} U;
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.glsl b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.glsl
index f7fb998..03372ef 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f16.wgsl.expected.glsl
@@ -1,10 +1,10 @@
SKIP: FAILED
-swizzle/write/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'storage' storage class is not implemented yet
+expressions/swizzle/write/packed_vec3/f16.wgsl:3:8 error: using f16 types in 'storage' storage class is not implemented yet
v: vec3<f16>,
^^^^^^^^^
-swizzle/write/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
+expressions/swizzle/write/packed_vec3/f16.wgsl:2:1 note: see layout of struct:
/* align(8) size(8) */ struct S {
/* offset(0) align(8) size(6) */ v : vec3<f16>;
/* offset(6) align(1) size(2) */ // -- implicit struct size padding --;
@@ -12,7 +12,7 @@
struct S {
^^^^^^
-swizzle/write/packed_vec3/f16.wgsl:6:48 note: see declaration of variable
+expressions/swizzle/write/packed_vec3/f16.wgsl:6:48 note: see declaration of variable
@group(0) @binding(0) var<storage, read_write> U : S;
^
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
index b4cdda6..5bec520b 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/f32.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec3 v;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec3 v;
} U;
+
void f() {
U.v = vec3(1.0f, 2.0f, 3.0f);
U.v.x = 1.0f;
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
index bde8b4c..ab987b2 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/i32.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec3 v;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec3 v;
} U;
+
void f() {
U.v = ivec3(1, 2, 3);
U.v.x = 1;
diff --git a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
index a5e6745..6481d65 100644
--- a/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
+++ b/test/tint/expressions/swizzle/write/packed_vec3/u32.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- uvec3 v;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
uvec3 v;
} U;
+
void f() {
U.v = uvec3(1u, 2u, 3u);
U.v.x = 1u;
diff --git a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.glsl b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.glsl
index 8f6ff79..0a32bed 100644
--- a/test/tint/layout/storage/mat2x2/f32.wgsl.expected.glsl
+++ b/test/tint/layout/storage/mat2x2/f32.wgsl.expected.glsl
@@ -1,12 +1,9 @@
#version 310 es
-struct SSBO {
- mat2 m;
-};
-
-layout(binding = 0, std430) buffer SSBO_1 {
+layout(binding = 0, std430) buffer SSBO_ssbo {
mat2 m;
} ssbo;
+
void f() {
mat2 v = ssbo.m;
ssbo.m = v;
diff --git a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.glsl b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
index f6b03dc..b439134 100644
--- a/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
+++ b/test/tint/layout/storage/mat2x2/stride/16.spvasm.expected.glsl
@@ -4,13 +4,10 @@
vec2 el;
};
-struct SSBO {
- strided_arr m[2];
-};
-
-layout(binding = 0, std430) buffer SSBO_1 {
+layout(binding = 0, std430) buffer SSBO_ssbo {
strided_arr m[2];
} ssbo;
+
mat2 arr_to_mat2x2_stride_16(strided_arr arr[2]) {
return mat2(arr[0u].el, arr[1u].el);
}
diff --git a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
index bd0575d..2a20e0f 100644
--- a/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
+++ b/test/tint/ptr_ref/load/local/ptr_storage.wgsl.expected.glsl
@@ -1,12 +1,9 @@
#version 310 es
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void tint_symbol() {
int u = (v.a + 1);
}
diff --git a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
index 89067aa..b259bfb 100644
--- a/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
+++ b/test/tint/ptr_ref/load/local/ptr_uniform.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct S {
- int a;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
int a;
} v;
diff --git a/test/tint/samples/compute_boids.wgsl.expected.glsl b/test/tint/samples/compute_boids.wgsl.expected.glsl
index 6a110ff..408cf55 100644
--- a/test/tint/samples/compute_boids.wgsl.expected.glsl
+++ b/test/tint/samples/compute_boids.wgsl.expected.glsl
@@ -75,21 +75,7 @@
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 {
+layout(binding = 0) uniform SimParams_ubo {
float deltaT;
float rule1Distance;
float rule2Distance;
@@ -99,12 +85,14 @@
float rule3Scale;
} params;
-layout(binding = 1, std430) buffer Particles_1 {
+layout(binding = 1, std430) buffer Particles_ssbo {
Particle particles[5];
} particlesA;
-layout(binding = 2, std430) buffer Particles_2 {
+
+layout(binding = 2, std430) buffer Particles_ssbo_1 {
Particle particles[5];
} particlesB;
+
void comp_main(uvec3 tint_symbol) {
uint index = tint_symbol.x;
if ((index >= 5u)) {
diff --git a/test/tint/samples/cube.wgsl.expected.glsl b/test/tint/samples/cube.wgsl.expected.glsl
index ff3748b..442e404 100644
--- a/test/tint/samples/cube.wgsl.expected.glsl
+++ b/test/tint/samples/cube.wgsl.expected.glsl
@@ -3,11 +3,7 @@
layout(location = 0) in vec4 cur_position_1;
layout(location = 1) in vec4 color_1;
layout(location = 0) out vec4 vtxFragColor_1;
-struct Uniforms {
- mat4 modelViewProjectionMatrix;
-};
-
-layout(binding = 0) uniform Uniforms_1 {
+layout(binding = 0) uniform Uniforms_ubo {
mat4 modelViewProjectionMatrix;
} uniforms;
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl b/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
index 321e231..325570b 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
+++ b/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.glsl
@@ -1,5 +1,3 @@
-SKIP: FAILED
-
#version 310 es
precision mediump float;
@@ -11,16 +9,15 @@
vec4 v;
};
-layout(binding = 0, std430) buffer S_1 {
- float f;
- uint u;
- vec4 v;
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
+ S inner;
} tint_symbol;
+
void frag_main(S tint_symbol_1) {
float f = tint_symbol_1.f;
uint u = tint_symbol_1.u;
vec4 v = tint_symbol_1.v;
- tint_symbol = tint_symbol_1;
+ tint_symbol.inner = tint_symbol_1;
}
void main() {
@@ -28,10 +25,3 @@
frag_main(tint_symbol_2);
return;
}
-Error parsing GLSL shader:
-ERROR: 0:21: 'assign' : cannot convert from ' in structure{ global mediump float f, global mediump uint u, global mediump 4-component vector of float v}' to 'layout( binding=0 column_major std430) buffer block{layout( column_major std430 offset=0) buffer mediump float f, layout( column_major std430 offset=4) buffer mediump uint u, layout( column_major std430 offset=16) buffer mediump 4-component vector of float v}'
-ERROR: 0:21: '' : compilation terminated
-ERROR: 2 compilation errors. No code generated.
-
-
-
diff --git a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm b/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
index e2748bd..ebec6c8 100644
--- a/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
+++ b/test/tint/shader_io/shared_struct_storage_buffer.wgsl.expected.spvasm
@@ -1,7 +1,7 @@
; SPIR-V
; Version: 1.3
; Generator: Google Tint Compiler; 0
-; Bound: 29
+; Bound: 33
; Schema: 0
OpCapability Shader
OpMemoryModel Logical GLSL450
@@ -10,6 +10,8 @@
OpName %f_1 "f_1"
OpName %u_1 "u_1"
OpName %v_1 "v_1"
+ OpName %output_block "output_block"
+ OpMemberName %output_block 0 "inner"
OpName %S "S"
OpMemberName %S 0 "f"
OpMemberName %S 1 "u"
@@ -22,7 +24,8 @@
OpDecorate %u_1 Location 1
OpDecorate %u_1 Flat
OpDecorate %v_1 BuiltIn FragCoord
- OpDecorate %S Block
+ OpDecorate %output_block Block
+ OpMemberDecorate %output_block 0 Offset 0
OpMemberDecorate %S 0 Offset 0
OpMemberDecorate %S 1 Offset 4
OpMemberDecorate %S 2 Offset 128
@@ -38,26 +41,30 @@
%_ptr_Input_v4float = OpTypePointer Input %v4float
%v_1 = OpVariable %_ptr_Input_v4float Input
%S = OpTypeStruct %float %uint %v4float
-%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
- %output = OpVariable %_ptr_StorageBuffer_S StorageBuffer
+%output_block = OpTypeStruct %S
+%_ptr_StorageBuffer_output_block = OpTypePointer StorageBuffer %output_block
+ %output = OpVariable %_ptr_StorageBuffer_output_block StorageBuffer
%void = OpTypeVoid
- %13 = OpTypeFunction %void %S
- %21 = OpTypeFunction %void
-%frag_main_inner = OpFunction %void None %13
+ %14 = OpTypeFunction %void %S
+ %uint_0 = OpConstant %uint 0
+%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
+ %25 = OpTypeFunction %void
+%frag_main_inner = OpFunction %void None %14
%input = OpFunctionParameter %S
- %17 = OpLabel
- %18 = OpCompositeExtract %float %input 0
- %19 = OpCompositeExtract %uint %input 1
- %20 = OpCompositeExtract %v4float %input 2
- OpStore %output %input
+ %18 = OpLabel
+ %19 = OpCompositeExtract %float %input 0
+ %20 = OpCompositeExtract %uint %input 1
+ %21 = OpCompositeExtract %v4float %input 2
+ %24 = OpAccessChain %_ptr_StorageBuffer_S %output %uint_0
+ OpStore %24 %input
OpReturn
OpFunctionEnd
- %frag_main = OpFunction %void None %21
- %23 = OpLabel
- %25 = OpLoad %float %f_1
- %26 = OpLoad %uint %u_1
- %27 = OpLoad %v4float %v_1
- %28 = OpCompositeConstruct %S %25 %26 %27
- %24 = OpFunctionCall %void %frag_main_inner %28
+ %frag_main = OpFunction %void None %25
+ %27 = OpLabel
+ %29 = OpLoad %float %f_1
+ %30 = OpLoad %uint %u_1
+ %31 = OpLoad %v4float %v_1
+ %32 = OpCompositeConstruct %S %29 %30 %31
+ %28 = OpFunctionCall %void %frag_main_inner %32
OpReturn
OpFunctionEnd
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
index eb95861..359938c 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_body.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
index 9f5f5e6..9ef360b 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_continuing.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
index c8afc86..49aff5d 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/in_for_loop_init.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
index 80072a8..4505b85 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/indexing_with_side_effect_func.wgsl.expected.glsl
@@ -1,10 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
struct InnerS {
int v;
};
@@ -23,7 +18,7 @@
return nextIndex;
}
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
index 404b14e..1b59df8 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
index 9bb2f42..01c4ad2 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_array.wgsl.expected.glsl
@@ -1,10 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
struct InnerS {
int v;
};
@@ -13,7 +8,7 @@
InnerS a1[8][8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
index 5ce3d5d..af08fd8 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -16,7 +12,7 @@
S1 a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
index 5e12367..2951c8f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_array_struct_array.wgsl.expected.glsl
@@ -1,10 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
struct InnerS {
int v;
};
@@ -17,7 +12,7 @@
S1 a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
index 6f4afcd..23b760d 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array.wgsl.expected.glsl
@@ -1,20 +1,17 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
-layout(binding = 0, std430) buffer OuterS_1 {
+layout(binding = 0, std430) buffer OuterS_ssbo {
InnerS a1[];
} s1;
+
void tint_symbol() {
InnerS v = InnerS(0);
s1.a1[uniforms.i] = v;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
index 10bd162..2416194 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_dynamic_array_struct_array.wgsl.expected.glsl
@@ -1,10 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
- uint j;
-};
-
struct InnerS {
int v;
};
@@ -13,14 +8,15 @@
InnerS a2[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
uint j;
} uniforms;
-layout(binding = 0, std430) buffer OuterS_1 {
+layout(binding = 0, std430) buffer OuterS_ssbo {
S1 a1[];
} s;
+
void tint_symbol() {
InnerS v = InnerS(0);
s.a1[uniforms.i].a2[uniforms.j] = v;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
index 2cad6f6..9211926 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_matrix.wgsl.expected.glsl
@@ -1,14 +1,10 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct OuterS {
mat2x4 m1;
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
index afb7d80..6334c1f 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_multiple_arrays.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -13,7 +9,7 @@
InnerS a2[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
index 00bb1bb..c33dcc4 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_struct_array.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -16,7 +12,7 @@
S1 s2;
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
index 87dad14..fb6df14 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/struct_vector.wgsl.expected.glsl
@@ -1,14 +1,10 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct OuterS {
vec3 v1;
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
index c7f713e..35c1d85 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/vector_assign.wgsl.expected.glsl
@@ -1,14 +1,10 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct OuterS {
uint a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
index 8f46ee8..08a5f16 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
index addb30c..dd49ae7 100644
--- a/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
+++ b/test/tint/statements/assign/indexed_assign_to_array_in_struct/via_pointer_arg.wgsl.expected.glsl
@@ -1,9 +1,5 @@
#version 310 es
-struct Uniforms {
- uint i;
-};
-
struct InnerS {
int v;
};
@@ -12,7 +8,7 @@
InnerS a1[8];
};
-layout(binding = 4) uniform Uniforms_1 {
+layout(binding = 4) uniform Uniforms_ubo {
uint i;
} uniforms;
diff --git a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
index 4017ce7..765da01 100644
--- a/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
+++ b/test/tint/statements/assign/phony/addr_of_non_constructable.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int arr[];
} s;
+
void tint_symbol() {
}
diff --git a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
index 4017ce7..765da01 100644
--- a/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
+++ b/test/tint/statements/assign/phony/addr_of_runtime_array.wgsl.expected.glsl
@@ -1,8 +1,9 @@
#version 310 es
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int arr[];
} s;
+
void tint_symbol() {
}
diff --git a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.glsl b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.glsl
index 521f510..be246a1 100644
--- a/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.glsl
+++ b/test/tint/statements/assign/phony/storage_buffer.wgsl.expected.glsl
@@ -1,12 +1,9 @@
#version 310 es
-struct S {
- int i;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int i;
} s;
+
void tint_symbol() {
}
diff --git a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.glsl b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
index 44dd6cd..15769ce 100644
--- a/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
+++ b/test/tint/statements/assign/phony/uniform_buffer.wgsl.expected.glsl
@@ -1,10 +1,6 @@
#version 310 es
-struct S {
- int i;
-};
-
-layout(binding = 0) uniform S_1 {
+layout(binding = 0) uniform S_ubo {
int i;
} u;
diff --git a/test/tint/statements/compound_assign/for_loop.wgsl.expected.glsl b/test/tint/statements/compound_assign/for_loop.wgsl.expected.glsl
index 6a42cd8..daad909 100644
--- a/test/tint/statements/compound_assign/for_loop.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/for_loop.wgsl.expected.glsl
@@ -4,17 +4,12 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
- vec4 b;
- mat2 c;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
vec4 b;
mat2 c;
} v;
+
uint i = 0u;
int idx1() {
i = (i + 1u);
diff --git a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
index bee2488..4bc4484 100644
--- a/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/minus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- mat4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
mat4 a;
} v;
+
void foo() {
v.a = (v.a - mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
}
diff --git a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
index 86dbf9b..2731dc5 100644
--- a/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/plus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- mat4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
mat4 a;
} v;
+
void foo() {
v.a = (v.a + mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
}
diff --git a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.glsl
index ee61689..6454531 100644
--- a/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/times-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- mat4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
mat4 a;
} v;
+
void foo() {
v.a = (v.a * 2.0f);
}
diff --git a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
index 4d224ea..d0cf2da 100644
--- a/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/matrix/times.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- mat4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
mat4 a;
} v;
+
void foo() {
v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
}
diff --git a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.glsl
index 1d7d94d..cf037cf 100644
--- a/test/tint/statements/compound_assign/scalar/and.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/and.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a & 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.glsl
index 44ec9a9..da4bd07 100644
--- a/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/divide.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a / 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.glsl
index 4f4b5c9..78334e5 100644
--- a/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/minus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a - 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.glsl
index 03bed63..bee2c0d 100644
--- a/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/modulo.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a % 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.glsl
index aa760e6..474cb2a 100644
--- a/test/tint/statements/compound_assign/scalar/or.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/or.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a | 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.glsl
index ef8e7e9..fb89b16 100644
--- a/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/plus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a + 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.glsl
index 0d42f56..632e2d8 100644
--- a/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/shift_left.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a << 2u);
}
diff --git a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.glsl
index c443ba0..3734f7b 100644
--- a/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/shift_right.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a >> 2u);
}
diff --git a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.glsl
index c588bcc..87692a2 100644
--- a/test/tint/statements/compound_assign/scalar/times.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/times.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a * 2);
}
diff --git a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.glsl b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.glsl
index d4f926b..4e25c10 100644
--- a/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/scalar/xor.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- int a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
int a;
} v;
+
void foo() {
v.a = (v.a ^ 2);
}
diff --git a/test/tint/statements/compound_assign/vector/and.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/and.wgsl.expected.glsl
index b600392..35e6116 100644
--- a/test/tint/statements/compound_assign/vector/and.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/and.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a & ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.glsl
index be28e43..418c57b 100644
--- a/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/divide-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec4 a;
} v;
+
void foo() {
v.a = (v.a / 2.0f);
}
diff --git a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.glsl
index 35bbadd..ffb013a 100644
--- a/test/tint/statements/compound_assign/vector/divide.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/divide.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a / ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.glsl
index 7ed578a..90fae2d 100644
--- a/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/minus-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec4 a;
} v;
+
void foo() {
v.a = (v.a - 2.0f);
}
diff --git a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.glsl
index e260139..4a40bac 100644
--- a/test/tint/statements/compound_assign/vector/minus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/minus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a - ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.glsl
index 6e7ee01..ded8188 100644
--- a/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/modulo-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a % 2);
}
diff --git a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.glsl
index 85ab141..5e9d6ac 100644
--- a/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/modulo.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a % ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/or.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/or.wgsl.expected.glsl
index ae695a1..83eda7c 100644
--- a/test/tint/statements/compound_assign/vector/or.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/or.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a | ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.glsl
index 43c8ae5..ce64d6f 100644
--- a/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/plus-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec4 a;
} v;
+
void foo() {
v.a = (v.a + 2.0f);
}
diff --git a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.glsl
index 05b68e4..7860e8d 100644
--- a/test/tint/statements/compound_assign/vector/plus.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/plus.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a + ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.glsl
index 4a53ae3..003db48 100644
--- a/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/shift_left.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a << uvec4(2u));
}
diff --git a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.glsl
index 51bb554..ce65ca7 100644
--- a/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/shift_right.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a >> uvec4(2u));
}
diff --git a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
index ee226d2..5063090 100644
--- a/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/times-matrix.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec4 a;
} v;
+
void foo() {
v.a = (v.a * mat4(vec4(0.0f), vec4(0.0f), vec4(0.0f), vec4(0.0f)));
}
diff --git a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.glsl
index e40bb86..7e46389 100644
--- a/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/times-scalar.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- vec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
vec4 a;
} v;
+
void foo() {
v.a = (v.a * 2.0f);
}
diff --git a/test/tint/statements/compound_assign/vector/times.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/times.wgsl.expected.glsl
index b22e63b..6961897 100644
--- a/test/tint/statements/compound_assign/vector/times.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/times.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a * ivec4(2));
}
diff --git a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.glsl b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.glsl
index d06e06c..7a74217 100644
--- a/test/tint/statements/compound_assign/vector/xor.wgsl.expected.glsl
+++ b/test/tint/statements/compound_assign/vector/xor.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct S {
- ivec4 a;
-};
-
-layout(binding = 0, std430) buffer S_1 {
+layout(binding = 0, std430) buffer S_ssbo {
ivec4 a;
} v;
+
void foo() {
v.a = (v.a ^ ivec4(2));
}
diff --git a/test/tint/statements/decrement/array_element.wgsl.expected.glsl b/test/tint/statements/decrement/array_element.wgsl.expected.glsl
index 74f7390..4c9aa9c 100644
--- a/test/tint/statements/decrement/array_element.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/array_element.wgsl.expected.glsl
@@ -4,9 +4,10 @@
void unused_entry_point() {
return;
}
-layout(binding = 0, std430) buffer a_block_1 {
+layout(binding = 0, std430) buffer a_block_ssbo {
uint inner[];
} a;
+
void tint_symbol() {
a.inner[1] = (a.inner[1] - 1u);
}
diff --git a/test/tint/statements/decrement/complex.wgsl.expected.glsl b/test/tint/statements/decrement/complex.wgsl.expected.glsl
index a04fd4e..e98dc1e 100644
--- a/test/tint/statements/decrement/complex.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/complex.wgsl.expected.glsl
@@ -8,9 +8,10 @@
ivec4 a[4];
};
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
S inner[];
} tint_symbol;
+
uint v = 0u;
int idx1() {
v = (v - 1u);
diff --git a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.glsl b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.glsl
index 21a7950..5c48d8f 100644
--- a/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/for_loop_continuing.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
{
for(; (i.inner < 10u); i.inner = (i.inner - 1u)) {
diff --git a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.glsl b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.glsl
index 12ce515..c0f6fbf 100644
--- a/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/for_loop_initializer.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
{
for(i.inner = (i.inner - 1u); (i.inner < 10u); ) {
diff --git a/test/tint/statements/decrement/storage.wgsl.expected.glsl b/test/tint/statements/decrement/storage.wgsl.expected.glsl
index 88579d1..a9833d7 100644
--- a/test/tint/statements/decrement/storage.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/storage.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
i.inner = (i.inner - 1u);
}
diff --git a/test/tint/statements/decrement/vector_component.wgsl.expected.glsl b/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
index 908643e..38bf1e1 100644
--- a/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
+++ b/test/tint/statements/decrement/vector_component.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct a_block {
- uvec4 inner;
-};
-
-layout(binding = 0, std430) buffer a_block_1 {
+layout(binding = 0, std430) buffer a_block_ssbo {
uvec4 inner;
} a;
+
void tint_symbol() {
int tint_symbol_2 = 1;
a.inner[tint_symbol_2] = (a.inner[tint_symbol_2] - 1u);
diff --git a/test/tint/statements/increment/array_element.wgsl.expected.glsl b/test/tint/statements/increment/array_element.wgsl.expected.glsl
index 8c4b54b..d5b11d4 100644
--- a/test/tint/statements/increment/array_element.wgsl.expected.glsl
+++ b/test/tint/statements/increment/array_element.wgsl.expected.glsl
@@ -4,9 +4,10 @@
void unused_entry_point() {
return;
}
-layout(binding = 0, std430) buffer a_block_1 {
+layout(binding = 0, std430) buffer a_block_ssbo {
uint inner[];
} a;
+
void tint_symbol() {
a.inner[1] = (a.inner[1] + 1u);
}
diff --git a/test/tint/statements/increment/complex.wgsl.expected.glsl b/test/tint/statements/increment/complex.wgsl.expected.glsl
index 26c1c10..ba161e5 100644
--- a/test/tint/statements/increment/complex.wgsl.expected.glsl
+++ b/test/tint/statements/increment/complex.wgsl.expected.glsl
@@ -8,9 +8,10 @@
ivec4 a[4];
};
-layout(binding = 0, std430) buffer tint_symbol_block_1 {
+layout(binding = 0, std430) buffer tint_symbol_block_ssbo {
S inner[];
} tint_symbol;
+
uint v = 0u;
int idx1() {
v = (v + 1u);
diff --git a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.glsl b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.glsl
index 50eb494..ee11178 100644
--- a/test/tint/statements/increment/for_loop_continuing.wgsl.expected.glsl
+++ b/test/tint/statements/increment/for_loop_continuing.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
{
for(; (i.inner < 10u); i.inner = (i.inner + 1u)) {
diff --git a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.glsl b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.glsl
index 77942ca..b4e940b 100644
--- a/test/tint/statements/increment/for_loop_initializer.wgsl.expected.glsl
+++ b/test/tint/statements/increment/for_loop_initializer.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
{
for(i.inner = (i.inner + 1u); (i.inner < 10u); ) {
diff --git a/test/tint/statements/increment/storage.wgsl.expected.glsl b/test/tint/statements/increment/storage.wgsl.expected.glsl
index 3a8266d..5dc6ea6 100644
--- a/test/tint/statements/increment/storage.wgsl.expected.glsl
+++ b/test/tint/statements/increment/storage.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct i_block {
- uint inner;
-};
-
-layout(binding = 0, std430) buffer i_block_1 {
+layout(binding = 0, std430) buffer i_block_ssbo {
uint inner;
} i;
+
void tint_symbol() {
i.inner = (i.inner + 1u);
}
diff --git a/test/tint/statements/increment/vector_component.wgsl.expected.glsl b/test/tint/statements/increment/vector_component.wgsl.expected.glsl
index a502a86..c66efba 100644
--- a/test/tint/statements/increment/vector_component.wgsl.expected.glsl
+++ b/test/tint/statements/increment/vector_component.wgsl.expected.glsl
@@ -4,13 +4,10 @@
void unused_entry_point() {
return;
}
-struct a_block {
- uvec4 inner;
-};
-
-layout(binding = 0, std430) buffer a_block_1 {
+layout(binding = 0, std430) buffer a_block_ssbo {
uvec4 inner;
} a;
+
void tint_symbol() {
int tint_symbol_2 = 1;
a.inner[tint_symbol_2] = (a.inner[tint_symbol_2] + 1u);
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
index e7e10ee..cca5043 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.spvasm.expected.glsl
@@ -8,23 +8,15 @@
float el;
};
-struct buf1 {
- strided_arr x_GLF_uniform_float_values[3];
-};
-
struct strided_arr_1 {
int el;
};
-struct buf0 {
- strided_arr_1 x_GLF_uniform_int_values[4];
-};
-
-layout(binding = 1) uniform buf1_1 {
+layout(binding = 1) uniform buf1_ubo {
strided_arr x_GLF_uniform_float_values[3];
} x_6;
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
strided_arr_1 x_GLF_uniform_int_values[4];
} x_8;
@@ -115,9 +107,9 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:77: '[' : matrix index out of range '4'
-ERROR: 0:77: '=' : cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
-ERROR: 0:77: '' : compilation terminated
+ERROR: 0:69: '[' : matrix index out of range '4'
+ERROR: 0:69: '=' : cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
+ERROR: 0:69: '' : compilation terminated
ERROR: 3 compilation errors. No code generated.
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
index e7e10ee..cca5043 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-unused-access-past-matrix-elements/0-opt.wgsl.expected.glsl
@@ -8,23 +8,15 @@
float el;
};
-struct buf1 {
- strided_arr x_GLF_uniform_float_values[3];
-};
-
struct strided_arr_1 {
int el;
};
-struct buf0 {
- strided_arr_1 x_GLF_uniform_int_values[4];
-};
-
-layout(binding = 1) uniform buf1_1 {
+layout(binding = 1) uniform buf1_ubo {
strided_arr x_GLF_uniform_float_values[3];
} x_6;
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
strided_arr_1 x_GLF_uniform_int_values[4];
} x_8;
@@ -115,9 +107,9 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:77: '[' : matrix index out of range '4'
-ERROR: 0:77: '=' : cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
-ERROR: 0:77: '' : compilation terminated
+ERROR: 0:69: '[' : matrix index out of range '4'
+ERROR: 0:69: '=' : cannot convert from ' temp mediump 3-component vector of float' to ' temp mediump float'
+ERROR: 0:69: '' : compilation terminated
ERROR: 3 compilation errors. No code generated.
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
index cfdb6b1..76ec7b3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.spvasm.expected.glsl
@@ -8,23 +8,15 @@
float el;
};
-struct buf1 {
- strided_arr x_GLF_uniform_float_values[2];
-};
-
struct strided_arr_1 {
int el;
};
-struct buf0 {
- strided_arr_1 x_GLF_uniform_int_values[3];
-};
-
-layout(binding = 1) uniform buf1_1 {
+layout(binding = 1) uniform buf1_ubo {
strided_arr x_GLF_uniform_float_values[2];
} x_6;
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
strided_arr_1 x_GLF_uniform_int_values[3];
} x_8;
@@ -83,8 +75,8 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:38: '[' : matrix index out of range '3'
-ERROR: 0:38: '' : compilation terminated
+ERROR: 0:30: '[' : matrix index out of range '3'
+ERROR: 0:30: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.
diff --git a/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl b/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
index cfdb6b1..76ec7b3 100644
--- a/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
+++ b/test/tint/vk-gl-cts/graphicsfuzz/cov-write-past-matrix-elements-unused/0.wgsl.expected.glsl
@@ -8,23 +8,15 @@
float el;
};
-struct buf1 {
- strided_arr x_GLF_uniform_float_values[2];
-};
-
struct strided_arr_1 {
int el;
};
-struct buf0 {
- strided_arr_1 x_GLF_uniform_int_values[3];
-};
-
-layout(binding = 1) uniform buf1_1 {
+layout(binding = 1) uniform buf1_ubo {
strided_arr x_GLF_uniform_float_values[2];
} x_6;
-layout(binding = 0) uniform buf0_1 {
+layout(binding = 0) uniform buf0_ubo {
strided_arr_1 x_GLF_uniform_int_values[3];
} x_8;
@@ -83,8 +75,8 @@
return;
}
Error parsing GLSL shader:
-ERROR: 0:38: '[' : matrix index out of range '3'
-ERROR: 0:38: '' : compilation terminated
+ERROR: 0:30: '[' : matrix index out of range '3'
+ERROR: 0:30: '' : compilation terminated
ERROR: 2 compilation errors. No code generated.