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..4f11212d3b 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 47564aef..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 47564aef..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..5bec520 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.