From 6661b28d1e0fa7654c51037dc4e1137df13b8e55 Mon Sep 17 00:00:00 2001 From: Brandon Jones Date: Fri, 25 Feb 2022 20:14:52 +0000 Subject: [PATCH] Delete Single-Plane External Texture Transform The multiplanar external texture transform has been integrated into Dawn, which means we have no use for the single plane transform - so it should be deleted. Bug: dawn:1082 Change-Id: Id8977d03839b76c90ae6e70400d048c13fbe85f4 Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/80120 Reviewed-by: Antonio Maiorano Kokoro: Kokoro Reviewed-by: Ben Clayton Commit-Queue: Brandon1 Jones --- src/tint/BUILD.gn | 2 - src/tint/CMakeLists.txt | 3 - .../transform/external_texture_transform.cc | 131 --------- .../transform/external_texture_transform.h | 53 ---- .../external_texture_transform_test.cc | 187 ------------- src/tint/transform/glsl.cc | 2 - src/tint/writer/glsl/generator_impl.cc | 6 + src/tint/writer/hlsl/generator_impl.cc | 8 +- src/tint/writer/msl/generator_impl.cc | 8 +- src/tint/writer/spirv/builder.cc | 8 +- test/tint/BUILD.gn | 3 +- test/tint/bug/tint/1076.wgsl.expected.msl | 8 +- test/tint/bug/tint/749.spvasm.expected.msl | 248 +++++++++--------- .../ba1481.wgsl.expected.glsl | 56 +--- .../ba1481.wgsl.expected.hlsl | 39 +-- .../ba1481.wgsl.expected.msl | 38 +-- .../ba1481.wgsl.expected.spvasm | 87 +----- .../gen/textureLoad/8acf41.wgsl.expected.glsl | 56 +--- .../gen/textureLoad/8acf41.wgsl.expected.hlsl | 37 +-- .../gen/textureLoad/8acf41.wgsl.expected.msl | 38 +-- .../textureLoad/8acf41.wgsl.expected.spvasm | 86 +----- .../979816.wgsl.expected.glsl | 59 +---- .../979816.wgsl.expected.hlsl | 38 +-- .../979816.wgsl.expected.msl | 38 +-- .../979816.wgsl.expected.spvasm | 94 +------ 25 files changed, 258 insertions(+), 1075 deletions(-) delete mode 100644 src/tint/transform/external_texture_transform.cc delete mode 100644 src/tint/transform/external_texture_transform.h delete mode 100644 src/tint/transform/external_texture_transform_test.cc diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn index 98ad682eaa..53f557a523 100644 --- a/src/tint/BUILD.gn +++ b/src/tint/BUILD.gn @@ -450,8 +450,6 @@ libtint_source_set("libtint_core_all_src") { "transform/decompose_strided_array.h", "transform/decompose_strided_matrix.cc", "transform/decompose_strided_matrix.h", - "transform/external_texture_transform.cc", - "transform/external_texture_transform.h", "transform/first_index_offset.cc", "transform/first_index_offset.h", "transform/fold_constants.cc", diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt index 1eba18faf4..8abbc93743 100644 --- a/src/tint/CMakeLists.txt +++ b/src/tint/CMakeLists.txt @@ -326,8 +326,6 @@ set(TINT_LIB_SRCS transform/decompose_strided_array.h transform/decompose_strided_matrix.cc transform/decompose_strided_matrix.h - transform/external_texture_transform.cc - transform/external_texture_transform.h transform/first_index_offset.cc transform/first_index_offset.h transform/fold_constants.cc @@ -1015,7 +1013,6 @@ if(TINT_BUILD_TESTS) transform/decompose_memory_access_test.cc transform/decompose_strided_array_test.cc transform/decompose_strided_matrix_test.cc - transform/external_texture_transform_test.cc transform/first_index_offset_test.cc transform/fold_constants_test.cc transform/fold_trivial_single_use_lets_test.cc diff --git a/src/tint/transform/external_texture_transform.cc b/src/tint/transform/external_texture_transform.cc deleted file mode 100644 index eefa4c062d..0000000000 --- a/src/tint/transform/external_texture_transform.cc +++ /dev/null @@ -1,131 +0,0 @@ -// Copyright 2021 The Tint Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/tint/transform/external_texture_transform.h" - -#include "src/tint/program_builder.h" -#include "src/tint/sem/call.h" -#include "src/tint/sem/variable.h" - -TINT_INSTANTIATE_TYPEINFO(tint::transform::ExternalTextureTransform); - -namespace tint { -namespace transform { - -ExternalTextureTransform::ExternalTextureTransform() = default; -ExternalTextureTransform::~ExternalTextureTransform() = default; - -void ExternalTextureTransform::Run(CloneContext& ctx, - const DataMap&, - DataMap&) const { - auto& sem = ctx.src->Sem(); - - // Within this transform, usages of texture_external are replaced with a - // texture_2d, which will allow us perform operations on a - // texture_external without maintaining texture_external-specific code - // generation paths in the backends. - - // When replacing instances of texture_external with texture_2d we must - // also modify calls to the texture_external overloads of textureLoad and - // textureSampleLevel, which unlike their texture_2d overloads do not - // require a level parameter. To do this we identify calls to textureLoad and - // textureSampleLevel that use texture_external as the first parameter and add - // a parameter for the level (which is always 0). - - // Scan the AST nodes for calls to textureLoad or textureSampleLevel. - for (auto* node : ctx.src->ASTNodes().Objects()) { - if (auto* call_expr = node->As()) { - if (auto* builtin = sem.Get(call_expr)->Target()->As()) { - if (builtin->Type() == sem::BuiltinType::kTextureLoad || - builtin->Type() == sem::BuiltinType::kTextureSampleLevel) { - // When a textureLoad or textureSampleLevel has been identified, check - // if the first parameter is an external texture. - if (auto* var = - sem.Get(call_expr->args[0])->As()) { - if (var->Variable() - ->Type() - ->UnwrapRef() - ->Is()) { - if (builtin->Type() == sem::BuiltinType::kTextureLoad && - call_expr->args.size() != 2) { - TINT_ICE(Transform, ctx.dst->Diagnostics()) - << "expected textureLoad call with a texture_external to " - "have 2 parameters, found " - << call_expr->args.size() << " parameters"; - } - - if (builtin->Type() == sem::BuiltinType::kTextureSampleLevel && - call_expr->args.size() != 3) { - TINT_ICE(Transform, ctx.dst->Diagnostics()) - << "expected textureSampleLevel call with a " - "texture_external to have 3 parameters, found " - << call_expr->args.size() << " parameters"; - } - - // Replace the call with another that has the same parameters in - // addition to a level parameter (always zero for external - // textures). - auto* exp = ctx.Clone(call_expr->target.name); - auto* externalTextureParam = ctx.Clone(call_expr->args[0]); - - ast::ExpressionList params; - if (builtin->Type() == sem::BuiltinType::kTextureLoad) { - auto* coordsParam = ctx.Clone(call_expr->args[1]); - auto* levelParam = ctx.dst->Expr(0); - params = {externalTextureParam, coordsParam, levelParam}; - } else if (builtin->Type() == - sem::BuiltinType::kTextureSampleLevel) { - auto* samplerParam = ctx.Clone(call_expr->args[1]); - auto* coordsParam = ctx.Clone(call_expr->args[2]); - auto* levelParam = ctx.dst->Expr(0.0f); - params = {externalTextureParam, samplerParam, coordsParam, - levelParam}; - } - - auto* newCall = ctx.dst->create(exp, params); - ctx.Replace(call_expr, newCall); - } - } - } - } - } - } - - // Scan the AST nodes for external texture declarations. - for (auto* node : ctx.src->ASTNodes().Objects()) { - if (auto* var = node->As()) { - if (::tint::Is(var->type)) { - // Replace a single-plane external texture with a 2D, f32 sampled - // texture. - auto* newType = ctx.dst->ty.sampled_texture(ast::TextureDimension::k2d, - ctx.dst->ty.f32()); - auto clonedSrc = ctx.Clone(var->source); - auto clonedSym = ctx.Clone(var->symbol); - auto* clonedConstructor = ctx.Clone(var->constructor); - auto clonedAttributes = ctx.Clone(var->attributes); - auto* newVar = ctx.dst->create( - clonedSrc, clonedSym, var->declared_storage_class, - var->declared_access, newType, false, false, clonedConstructor, - clonedAttributes); - - ctx.Replace(var, newVar); - } - } - } - - ctx.Clone(); -} - -} // namespace transform -} // namespace tint diff --git a/src/tint/transform/external_texture_transform.h b/src/tint/transform/external_texture_transform.h deleted file mode 100644 index f0669f40b4..0000000000 --- a/src/tint/transform/external_texture_transform.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2021 The Tint Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#ifndef SRC_TINT_TRANSFORM_EXTERNAL_TEXTURE_TRANSFORM_H_ -#define SRC_TINT_TRANSFORM_EXTERNAL_TEXTURE_TRANSFORM_H_ - -#include - -#include "src/tint/transform/transform.h" - -namespace tint { -namespace transform { - -/// Because an external texture is comprised of 1-3 texture views we can simply -/// transform external textures into the appropriate number of sampled textures. -/// This allows us to share SPIR-V/HLSL writer paths for sampled textures -/// instead of adding dedicated writer paths for external textures. -/// ExternalTextureTransform performs this transformation. -class ExternalTextureTransform - : public Castable { - public: - /// Constructor - ExternalTextureTransform(); - /// Destructor - ~ExternalTextureTransform() override; - - protected: - /// Runs the transform using the CloneContext built for transforming a - /// program. Run() is responsible for calling Clone() on the CloneContext. - /// @param ctx the CloneContext primed with the input program and - /// ProgramBuilder - /// @param inputs optional extra transform-specific input data - /// @param outputs optional extra transform-specific output data - void Run(CloneContext& ctx, - const DataMap& inputs, - DataMap& outputs) const override; -}; - -} // namespace transform -} // namespace tint - -#endif // SRC_TINT_TRANSFORM_EXTERNAL_TEXTURE_TRANSFORM_H_ diff --git a/src/tint/transform/external_texture_transform_test.cc b/src/tint/transform/external_texture_transform_test.cc deleted file mode 100644 index 5434039569..0000000000 --- a/src/tint/transform/external_texture_transform_test.cc +++ /dev/null @@ -1,187 +0,0 @@ -// Copyright 2021 The Tint Authors. -// -// Licensed under the Apache License, Version 2.0 (the "License"); -// you may not use this file except in compliance with the License. -// You may obtain a copy of the License at -// -// http://www.apache.org/licenses/LICENSE-2.0 -// -// Unless required by applicable law or agreed to in writing, software -// distributed under the License is distributed on an "AS IS" BASIS, -// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -// See the License for the specific language governing permissions and -// limitations under the License. - -#include "src/tint/transform/external_texture_transform.h" - -#include "src/tint/transform/test_helper.h" - -namespace tint { -namespace transform { -namespace { - -using ExternalTextureTransformTest = TransformTest; - -TEST_F(ExternalTextureTransformTest, SampleLevelSinglePlane) { - auto* src = R"( -@group(0) @binding(0) var s : sampler; - -@group(0) @binding(1) var t : texture_external; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureSampleLevel(t, s, (coord.xy / vec2(4.0, 4.0))); -} -)"; - - auto* expect = R"( -@group(0) @binding(0) var s : sampler; - -@group(0) @binding(1) var t : texture_2d; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureSampleLevel(t, s, (coord.xy / vec2(4.0, 4.0)), 0.0); -} -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -TEST_F(ExternalTextureTransformTest, SampleLevelSinglePlane_OutOfOrder) { - auto* src = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureSampleLevel(t, s, (coord.xy / vec2(4.0, 4.0))); -} - -@group(0) @binding(1) var t : texture_external; - -@group(0) @binding(0) var s : sampler; -)"; - - auto* expect = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureSampleLevel(t, s, (coord.xy / vec2(4.0, 4.0)), 0.0); -} - -@group(0) @binding(1) var t : texture_2d; - -@group(0) @binding(0) var s : sampler; -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -TEST_F(ExternalTextureTransformTest, LoadSinglePlane) { - auto* src = R"( -@group(0) @binding(0) var t : texture_external; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureLoad(t, vec2(1, 1)); -} -)"; - - auto* expect = R"( -@group(0) @binding(0) var t : texture_2d; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureLoad(t, vec2(1, 1), 0); -} -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -TEST_F(ExternalTextureTransformTest, LoadSinglePlane_OutOfOrder) { - auto* src = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureLoad(t, vec2(1, 1)); -} - -@group(0) @binding(0) var t : texture_external; -)"; - - auto* expect = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - return textureLoad(t, vec2(1, 1), 0); -} - -@group(0) @binding(0) var t : texture_2d; -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -TEST_F(ExternalTextureTransformTest, DimensionsSinglePlane) { - auto* src = R"( -@group(0) @binding(0) var t : texture_external; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - var dim : vec2; - dim = textureDimensions(t); - return vec4(0.0, 0.0, 0.0, 0.0); -} -)"; - - auto* expect = R"( -@group(0) @binding(0) var t : texture_2d; - -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - var dim : vec2; - dim = textureDimensions(t); - return vec4(0.0, 0.0, 0.0, 0.0); -} -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -TEST_F(ExternalTextureTransformTest, DimensionsSinglePlane_OutOfOrder) { - auto* src = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - var dim : vec2; - dim = textureDimensions(t); - return vec4(0.0, 0.0, 0.0, 0.0); -} - -@group(0) @binding(0) var t : texture_external; -)"; - - auto* expect = R"( -@stage(fragment) -fn main(@builtin(position) coord : vec4) -> @location(0) vec4 { - var dim : vec2; - dim = textureDimensions(t); - return vec4(0.0, 0.0, 0.0, 0.0); -} - -@group(0) @binding(0) var t : texture_2d; -)"; - - auto got = Run(src); - - EXPECT_EQ(expect, str(got)); -} - -} // namespace -} // namespace transform -} // namespace tint diff --git a/src/tint/transform/glsl.cc b/src/tint/transform/glsl.cc index 4eae5208ec..5a9b4d3559 100644 --- a/src/tint/transform/glsl.cc +++ b/src/tint/transform/glsl.cc @@ -24,7 +24,6 @@ #include "src/tint/transform/canonicalize_entry_point_io.h" #include "src/tint/transform/combine_samplers.h" #include "src/tint/transform/decompose_memory_access.h" -#include "src/tint/transform/external_texture_transform.h" #include "src/tint/transform/fold_trivial_single_use_lets.h" #include "src/tint/transform/loop_to_for_loop.h" #include "src/tint/transform/manager.h" @@ -102,7 +101,6 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) const { BindingRemapper::AccessControls ac; data.Add(bp, ac, /* mayCollide */ true); } - manager.Add(); manager.Add(); manager.Add(); diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc index 01c1d88009..58e564af30 100644 --- a/src/tint/writer/glsl/generator_impl.cc +++ b/src/tint/writer/glsl/generator_impl.cc @@ -2552,6 +2552,12 @@ bool GeneratorImpl::EmitType(std::ostream& out, } else if (auto* str = type->As()) { out << StructName(str); } else if (auto* tex = type->As()) { + if (tex->Is()) { + TINT_ICE(Writer, diagnostics_) + << "Multiplanar external texture transform was not run."; + return false; + } + auto* storage = tex->As(); auto* ms = tex->As(); auto* depth_ms = tex->As(); diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc index 79664ae7e2..0ddd07047d 100644 --- a/src/tint/writer/hlsl/generator_impl.cc +++ b/src/tint/writer/hlsl/generator_impl.cc @@ -52,7 +52,6 @@ #include "src/tint/transform/calculate_array_length.h" #include "src/tint/transform/canonicalize_entry_point_io.h" #include "src/tint/transform/decompose_memory_access.h" -#include "src/tint/transform/external_texture_transform.h" #include "src/tint/transform/fold_trivial_single_use_lets.h" #include "src/tint/transform/localize_struct_array_assignment.h" #include "src/tint/transform/loop_to_for_loop.h" @@ -206,7 +205,6 @@ SanitizedResult Sanitize( // DecomposeMemoryAccess special-cases the arrayLength() intrinsic, which // will be transformed by CalculateArrayLength manager.Add(); - manager.Add(); manager.Add(); manager.Add(); @@ -3645,6 +3643,12 @@ bool GeneratorImpl::EmitType(std::ostream& out, return true; }, [&](const sem::Texture* tex) { + if (tex->Is()) { + TINT_ICE(Writer, diagnostics_) + << "Multiplanar external texture transform was not run."; + return false; + } + auto* storage = tex->As(); auto* ms = tex->As(); auto* depth_ms = tex->As(); diff --git a/src/tint/writer/msl/generator_impl.cc b/src/tint/writer/msl/generator_impl.cc index 3a8c1dc058..f29675eee2 100644 --- a/src/tint/writer/msl/generator_impl.cc +++ b/src/tint/writer/msl/generator_impl.cc @@ -61,7 +61,6 @@ #include "src/tint/transform/array_length_from_uniform.h" #include "src/tint/transform/builtin_polyfill.h" #include "src/tint/transform/canonicalize_entry_point_io.h" -#include "src/tint/transform/external_texture_transform.h" #include "src/tint/transform/manager.h" #include "src/tint/transform/module_scope_var_to_entry_point_param.h" #include "src/tint/transform/pad_array_elements.h" @@ -174,7 +173,6 @@ SanitizedResult Sanitize( manager.Add(); } manager.Add(); - manager.Add(); manager.Add(); manager.Add(); @@ -2366,6 +2364,12 @@ bool GeneratorImpl::EmitType(std::ostream& out, return true; }, [&](const sem::Texture* tex) { + if (tex->Is()) { + TINT_ICE(Writer, diagnostics_) + << "Multiplanar external texture transform was not run."; + return false; + } + if (tex->IsAnyOf()) { out << "depth"; } else { diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc index f3eff71ba3..83f26661b7 100644 --- a/src/tint/writer/spirv/builder.cc +++ b/src/tint/writer/spirv/builder.cc @@ -45,7 +45,6 @@ #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/external_texture_transform.h" #include "src/tint/transform/fold_constants.h" #include "src/tint/transform/for_loop_to_loop.h" #include "src/tint/transform/manager.h" @@ -279,7 +278,6 @@ SanitizedResult Sanitize(const Program* in, manager.Add(); manager.Add(); // Required for arrayLength() manager.Add(); - manager.Add(); manager.Add(); manager.Add(); // Must come after // ZeroInitWorkgroupMemory @@ -4033,6 +4031,12 @@ uint32_t Builder::GenerateTypeIfNeeded(const sem::Type* type) { bool Builder::GenerateTextureType(const sem::Texture* texture, const Operand& result) { + if (texture->Is()) { + TINT_ICE(Writer, builder_.Diagnostics()) + << "Multiplanar external texture transform was not run."; + return false; + } + uint32_t array_literal = 0u; const auto dim = texture->dim(); if (dim == ast::TextureDimension::k2dArray || diff --git a/test/tint/BUILD.gn b/test/tint/BUILD.gn index d89fe88ebd..d34430d542 100644 --- a/test/tint/BUILD.gn +++ b/test/tint/BUILD.gn @@ -310,15 +310,14 @@ tint_unittests_source_set("tint_unittests_transform_src") { "../../src/tint/transform/add_empty_entry_point_test.cc", "../../src/tint/transform/add_spirv_block_attribute_test.cc", "../../src/tint/transform/array_length_from_uniform_test.cc", - "../../src/tint/transform/builtin_polyfill_test.cc", "../../src/tint/transform/binding_remapper_test.cc", + "../../src/tint/transform/builtin_polyfill_test.cc", "../../src/tint/transform/calculate_array_length_test.cc", "../../src/tint/transform/canonicalize_entry_point_io_test.cc", "../../src/tint/transform/combine_samplers_test.cc", "../../src/tint/transform/decompose_memory_access_test.cc", "../../src/tint/transform/decompose_strided_array_test.cc", "../../src/tint/transform/decompose_strided_matrix_test.cc", - "../../src/tint/transform/external_texture_transform_test.cc", "../../src/tint/transform/first_index_offset_test.cc", "../../src/tint/transform/fold_constants_test.cc", "../../src/tint/transform/fold_trivial_single_use_lets_test.cc", diff --git a/test/tint/bug/tint/1076.wgsl.expected.msl b/test/tint/bug/tint/1076.wgsl.expected.msl index 926bbcbdb0..b01d931e50 100644 --- a/test/tint/bug/tint/1076.wgsl.expected.msl +++ b/test/tint/bug/tint/1076.wgsl.expected.msl @@ -20,13 +20,13 @@ FragIn tint_symbol_inner(FragIn in, float b) { if ((in.mask == 0u)) { return in; } - FragIn const tint_symbol_4 = {.a=b, .mask=1u}; - return tint_symbol_4; + FragIn const tint_symbol_5 = {.a=b, .mask=1u}; + return tint_symbol_5; } fragment tint_symbol_3 tint_symbol(uint mask [[sample_mask]], tint_symbol_2 tint_symbol_1 [[stage_in]]) { - FragIn const tint_symbol_5 = {.a=tint_symbol_1.a, .mask=mask}; - FragIn const inner_result = tint_symbol_inner(tint_symbol_5, tint_symbol_1.b); + FragIn const tint_symbol_4 = {.a=tint_symbol_1.a, .mask=mask}; + FragIn const inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.b); tint_symbol_3 wrapper_result = {}; wrapper_result.a = inner_result.a; wrapper_result.mask = inner_result.mask; diff --git a/test/tint/bug/tint/749.spvasm.expected.msl b/test/tint/bug/tint/749.spvasm.expected.msl index 1349abdcd2..b2c64c8772 100644 --- a/test/tint/bug/tint/749.spvasm.expected.msl +++ b/test/tint/bug/tint/749.spvasm.expected.msl @@ -61,18 +61,18 @@ void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObjec int const x_34_save = x_33; int const x_35 = (*(tint_symbol_81)).numbers.arr[x_34_save]; QuicksortObject const x_943 = *(tint_symbol_81); - tint_array_wrapper const tint_symbol_2 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_3 = {.numbers=tint_symbol_2}; - *(tint_symbol_81) = tint_symbol_3; + tint_array_wrapper const tint_symbol_3 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_4 = {.numbers=tint_symbol_3}; + *(tint_symbol_81) = tint_symbol_4; *(tint_symbol_81) = x_943; float2 const x_527 = float2(x_526[0], x_526[0]); int const x_36_save = x_32; float3 const x_528 = float3(x_524[0], x_524[2], x_524[0]); (*(tint_symbol_81)).numbers.arr[x_36_save] = x_35; QuicksortObject const x_944 = *(tint_symbol_81); - tint_array_wrapper const tint_symbol_4 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_5 = {.numbers=tint_symbol_4}; - *(tint_symbol_81) = tint_symbol_5; + tint_array_wrapper const tint_symbol_5 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_6 = {.numbers=tint_symbol_5}; + *(tint_symbol_81) = tint_symbol_6; *(tint_symbol_81) = x_944; float3 const x_529 = float3(x_526[1], x_526[2], x_526[0]); int const x_945 = *(i); @@ -95,9 +95,9 @@ void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObjec (*(tint_symbol_81)).numbers.arr[x_36_save] = 0; (*(tint_symbol_81)).numbers.arr[x_36_save] = x_949; QuicksortObject const x_950 = *(tint_symbol_81); - tint_array_wrapper const tint_symbol_6 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_7 = {.numbers=tint_symbol_6}; - *(tint_symbol_81) = tint_symbol_7; + tint_array_wrapper const tint_symbol_7 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_8 = {.numbers=tint_symbol_7}; + *(tint_symbol_81) = tint_symbol_8; *(tint_symbol_81) = x_950; float3 const x_532 = float3(x_528[0], x_528[1], x_528[0]); int const x_951 = (*(tint_symbol_81)).numbers.arr[x_34_save]; @@ -153,9 +153,9 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui float3 const x_536 = float3(x_534[0], x_534[2], x_535[0]); j_1 = 10; QuicksortObject const x_960 = *(tint_symbol_82); - tint_array_wrapper const tint_symbol_8 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_9 = {.numbers=tint_symbol_8}; - *(tint_symbol_82) = tint_symbol_9; + tint_array_wrapper const tint_symbol_9 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_10 = {.numbers=tint_symbol_9}; + *(tint_symbol_82) = tint_symbol_10; *(tint_symbol_82) = x_960; while (true) { int const x_961 = pivot; @@ -170,9 +170,9 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui pivot = x_963; x_537 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]); QuicksortObject const x_964 = *(tint_symbol_82); - tint_array_wrapper const tint_symbol_10 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10}; - *(tint_symbol_82) = tint_symbol_11; + tint_array_wrapper const tint_symbol_11 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_12 = {.numbers=tint_symbol_11}; + *(tint_symbol_82) = tint_symbol_12; *(tint_symbol_82) = x_964; int const x_56 = *(h); int const x_965 = *(h); @@ -206,9 +206,9 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui param_1 = x_971; int const x_62 = (*(tint_symbol_82)).numbers.arr[x_61_save]; QuicksortObject const x_972 = *(tint_symbol_82); - tint_array_wrapper const tint_symbol_12 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_13 = {.numbers=tint_symbol_12}; - *(tint_symbol_82) = tint_symbol_13; + tint_array_wrapper const tint_symbol_13 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_14 = {.numbers=tint_symbol_13}; + *(tint_symbol_82) = tint_symbol_14; *(tint_symbol_82) = x_972; int const x_63 = pivot; float2 const x_540 = float2(float3(1.0f, 2.0f, 3.0f)[1], x_534[2]); @@ -267,9 +267,9 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui param_1 = x_985; } QuicksortObject const x_986 = *(tint_symbol_82); - tint_array_wrapper const tint_symbol_14 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_15 = {.numbers=tint_symbol_14}; - *(tint_symbol_82) = tint_symbol_15; + tint_array_wrapper const tint_symbol_15 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_16 = {.numbers=tint_symbol_15}; + *(tint_symbol_82) = tint_symbol_16; *(tint_symbol_82) = x_986; { int const x_987 = *(h); @@ -302,9 +302,9 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui (*(tint_symbol_82)).numbers.arr[x_42_save] = x_993; float2 const x_549 = float2(x_534[0], x_534[1]); QuicksortObject const x_994 = *(tint_symbol_82); - tint_array_wrapper const tint_symbol_16 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_17 = {.numbers=tint_symbol_16}; - *(tint_symbol_82) = tint_symbol_17; + tint_array_wrapper const tint_symbol_17 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_18 = {.numbers=tint_symbol_17}; + *(tint_symbol_82) = tint_symbol_18; *(tint_symbol_82) = x_994; int const x_995 = *(h); *(h) = 0; @@ -372,8 +372,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { param_5 = x_1007; h_1 = 9; tint_array_wrapper const x_1008 = stack; - tint_array_wrapper const tint_symbol_18 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_18; + tint_array_wrapper const tint_symbol_19 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_19; stack = x_1008; float2 const x_556 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[1]); int const x_1009 = param_5; @@ -406,15 +406,15 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { param_4 = x_1015; int const x_95 = l_1; QuicksortObject const x_1016 = *(tint_symbol_83); - tint_array_wrapper const tint_symbol_19 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_20 = {.numbers=tint_symbol_19}; - *(tint_symbol_83) = tint_symbol_20; + tint_array_wrapper const tint_symbol_20 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_21 = {.numbers=tint_symbol_20}; + *(tint_symbol_83) = tint_symbol_21; *(tint_symbol_83) = x_1016; float3 const x_560 = float3(x_559[1], x_559[0], x_557[0]); int const x_96_save = x_94; tint_array_wrapper const x_1017 = stack; - tint_array_wrapper const tint_symbol_21 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_21; + tint_array_wrapper const tint_symbol_22 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_22; stack = x_1017; float3 const x_561 = float3(x_556[1], x_556[1], x_556[1]); int const x_1018 = l_1; @@ -464,13 +464,13 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { h_1 = 0; h_1 = x_1028; tint_array_wrapper const x_1029 = stack; - tint_array_wrapper const tint_symbol_22 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_22; + tint_array_wrapper const tint_symbol_23 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_23; stack = x_1029; int const x_106 = top; tint_array_wrapper const x_1030 = stack; - tint_array_wrapper const tint_symbol_23 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_23; + tint_array_wrapper const tint_symbol_24 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_24; stack = x_1030; float2 const x_567 = float2(x_558[0], x_564[2]); int const x_1031 = param_4; @@ -481,9 +481,9 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { break; } QuicksortObject const x_1032 = *(tint_symbol_83); - tint_array_wrapper const tint_symbol_24 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_25 = {.numbers=tint_symbol_24}; - *(tint_symbol_83) = tint_symbol_25; + tint_array_wrapper const tint_symbol_25 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_26 = {.numbers=tint_symbol_25}; + *(tint_symbol_83) = tint_symbol_26; *(tint_symbol_83) = x_1032; float3 const x_568 = float3(x_559[1], x_559[0], x_563[1]); int const x_1033 = param_4; @@ -508,8 +508,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { stack.arr[x_96_save] = x_1037; int const x_111 = stack.arr[x_110_save]; tint_array_wrapper const x_1038 = stack; - tint_array_wrapper const tint_symbol_26 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_26; + tint_array_wrapper const tint_symbol_27 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_27; stack = x_1038; float3 const x_571 = float3(x_559[1], x_559[0], x_564[1]); int const x_1039 = l_1; @@ -517,8 +517,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { l_1 = x_1039; h_1 = x_111; tint_array_wrapper const x_1040 = stack; - tint_array_wrapper const tint_symbol_27 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_27; + tint_array_wrapper const tint_symbol_28 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_28; stack = x_1040; float2 const x_572 = float2(x_562[1], x_561[1]); int const x_1041 = p; @@ -610,8 +610,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { stack.arr[x_100_save] = 0; stack.arr[x_100_save] = x_1061; tint_array_wrapper const x_1062 = stack; - tint_array_wrapper const tint_symbol_28 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_28; + tint_array_wrapper const tint_symbol_29 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_29; stack = x_1062; float2 const x_584 = float2(x_569[2], x_569[1]); float3 const x_585 = float3(x_580[1], x_577[0], x_577[0]); @@ -650,8 +650,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { h_1 = x_1070; top = x_133; tint_array_wrapper const x_1071 = stack; - tint_array_wrapper const tint_symbol_29 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_29; + tint_array_wrapper const tint_symbol_30 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_30; stack = x_1071; int const x_134 = p; float2 const x_590 = float2(x_576[0], x_573[1]); @@ -676,9 +676,9 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { stack.arr[x_96_save] = x_1076; float2 const x_592 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[1]); QuicksortObject const x_1077 = *(tint_symbol_83); - tint_array_wrapper const tint_symbol_30 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_31 = {.numbers=tint_symbol_30}; - *(tint_symbol_83) = tint_symbol_31; + tint_array_wrapper const tint_symbol_31 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_32 = {.numbers=tint_symbol_31}; + *(tint_symbol_83) = tint_symbol_32; *(tint_symbol_83) = x_1077; int const x_137 = p; int const x_1078 = stack.arr[x_114_save]; @@ -743,8 +743,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { float2 const x_601 = float2(x_563[0], x_563[1]); stack.arr[x_147_save] = as_type((1u + as_type(x_145))); tint_array_wrapper const x_1093 = stack; - tint_array_wrapper const tint_symbol_32 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_32; + tint_array_wrapper const tint_symbol_33 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_33; stack = x_1093; int const x_148 = top; int const x_1094 = stack.arr[x_114_save]; @@ -752,8 +752,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { stack.arr[x_114_save] = x_1094; float2 const x_602 = float2(x_565[1], x_599[1]); tint_array_wrapper const x_1095 = stack; - tint_array_wrapper const tint_symbol_33 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - stack = tint_symbol_33; + tint_array_wrapper const tint_symbol_34 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + stack = tint_symbol_34; stack = x_1095; int const x_149 = as_type((as_type(x_148) + as_type(as_type(1u)))); int const x_1096 = stack.arr[x_147_save]; @@ -788,9 +788,9 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) { l_1 = x_1103; float2 const x_604 = float2(x_563[2], x_564[0]); QuicksortObject const x_1104 = *(tint_symbol_83); - tint_array_wrapper const tint_symbol_34 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_35 = {.numbers=tint_symbol_34}; - *(tint_symbol_83) = tint_symbol_35; + tint_array_wrapper const tint_symbol_35 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_36 = {.numbers=tint_symbol_35}; + *(tint_symbol_83) = tint_symbol_36; *(tint_symbol_83) = x_1104; } } @@ -809,15 +809,15 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv = x_717; i_2 = 0; QuicksortObject const x_721 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_36 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_37 = {.numbers=tint_symbol_36}; - *(tint_symbol_84) = tint_symbol_37; + tint_array_wrapper const tint_symbol_37 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_38 = {.numbers=tint_symbol_37}; + *(tint_symbol_84) = tint_symbol_38; *(tint_symbol_84) = x_721; if (true) { QuicksortObject const x_722 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_38 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38}; - *(tint_symbol_84) = tint_symbol_39; + tint_array_wrapper const tint_symbol_39 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_40 = {.numbers=tint_symbol_39}; + *(tint_symbol_84) = tint_symbol_40; *(tint_symbol_84) = x_722; float2 const x_431 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[0]); int const x_158 = i_2; @@ -829,15 +829,15 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t color = x_725; float2 const x_432 = float2(x_431[1], x_431[1]); QuicksortObject const x_726 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_40 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_41 = {.numbers=tint_symbol_40}; - *(tint_symbol_84) = tint_symbol_41; + tint_array_wrapper const tint_symbol_41 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_42 = {.numbers=tint_symbol_41}; + *(tint_symbol_84) = tint_symbol_42; *(tint_symbol_84) = x_726; } QuicksortObject const x_756 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_42 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42}; - *(tint_symbol_84) = tint_symbol_43; + tint_array_wrapper const tint_symbol_43 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_44 = {.numbers=tint_symbol_43}; + *(tint_symbol_84) = tint_symbol_44; *(tint_symbol_84) = x_756; float2 const x_446 = float2(float2()[0], float2()[0]); int const x_757 = i_2; @@ -845,9 +845,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t i_2 = x_757; quicksort_(tint_symbol_84); QuicksortObject const x_758 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_44 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_45 = {.numbers=tint_symbol_44}; - *(tint_symbol_84) = tint_symbol_45; + tint_array_wrapper const tint_symbol_45 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_46 = {.numbers=tint_symbol_45}; + *(tint_symbol_84) = tint_symbol_46; *(tint_symbol_84) = x_758; float4 const x_184 = *(tint_symbol_85); float2 const x_759 = uv; @@ -860,18 +860,18 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t float2 const x_185 = float2(x_184[0], x_184[1]); float3 const x_448 = float3(x_185[1], x_446[1], x_446[1]); QuicksortObject const x_761 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_46 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_47 = {.numbers=tint_symbol_46}; - *(tint_symbol_84) = tint_symbol_47; + tint_array_wrapper const tint_symbol_47 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_48 = {.numbers=tint_symbol_47}; + *(tint_symbol_84) = tint_symbol_48; *(tint_symbol_84) = x_761; float2 const x_762 = uv; uv = float2(0.0f, 0.0f); uv = x_762; float2 const x_191 = (*(tint_symbol_86)).resolution; QuicksortObject const x_763 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_48 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48}; - *(tint_symbol_84) = tint_symbol_49; + tint_array_wrapper const tint_symbol_49 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_50 = {.numbers=tint_symbol_49}; + *(tint_symbol_84) = tint_symbol_50; *(tint_symbol_84) = x_763; float3 const x_449 = float3(x_184[1], float3(1.0f, 2.0f, 3.0f)[2], x_184[3]); float3 const x_764 = color; @@ -879,9 +879,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t color = x_764; float2 const x_192 = (x_185 / x_191); QuicksortObject const x_765 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_50 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_51 = {.numbers=tint_symbol_50}; - *(tint_symbol_84) = tint_symbol_51; + tint_array_wrapper const tint_symbol_51 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_52 = {.numbers=tint_symbol_51}; + *(tint_symbol_84) = tint_symbol_52; *(tint_symbol_84) = x_765; float2 const x_450 = float2(x_447[0], x_185[1]); float3 const x_766 = color; @@ -897,18 +897,18 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t color = x_768; float3 const x_451 = float3(x_185[0], x_185[1], x_446[1]); QuicksortObject const x_769 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_52 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_53 = {.numbers=tint_symbol_52}; - *(tint_symbol_84) = tint_symbol_53; + tint_array_wrapper const tint_symbol_53 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_54 = {.numbers=tint_symbol_53}; + *(tint_symbol_84) = tint_symbol_54; *(tint_symbol_84) = x_769; int const x_770 = (*(tint_symbol_84)).numbers.arr[0u]; (*(tint_symbol_84)).numbers.arr[0u] = 0; (*(tint_symbol_84)).numbers.arr[0u] = x_770; int const x_201 = (*(tint_symbol_84)).numbers.arr[0u]; QuicksortObject const x_771 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_54 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_55 = {.numbers=tint_symbol_54}; - *(tint_symbol_84) = tint_symbol_55; + tint_array_wrapper const tint_symbol_55 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_56 = {.numbers=tint_symbol_55}; + *(tint_symbol_84) = tint_symbol_56; *(tint_symbol_84) = x_771; int const x_772 = (*(tint_symbol_84)).numbers.arr[0u]; (*(tint_symbol_84)).numbers.arr[0u] = 0; @@ -922,9 +922,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t i_2 = 0; i_2 = x_774; QuicksortObject const x_775 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_56 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_57 = {.numbers=tint_symbol_56}; - *(tint_symbol_84) = tint_symbol_57; + tint_array_wrapper const tint_symbol_57 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_58 = {.numbers=tint_symbol_57}; + *(tint_symbol_84) = tint_symbol_58; *(tint_symbol_84) = x_775; float3 const x_453 = float3(x_451[0], x_450[0], x_450[1]); color[0] = (x_206 + float(x_201)); @@ -941,9 +941,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = 0.0f; uv[0] = x_778; QuicksortObject const x_779 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_58 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_59 = {.numbers=tint_symbol_58}; - *(tint_symbol_84) = tint_symbol_59; + tint_array_wrapper const tint_symbol_59 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_60 = {.numbers=tint_symbol_59}; + *(tint_symbol_84) = tint_symbol_60; *(tint_symbol_84) = x_779; if ((x_210 > 0.25f)) { int const x_780 = i_2; @@ -958,18 +958,18 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = x_782; int const x_216 = (*(tint_symbol_84)).numbers.arr[1]; QuicksortObject const x_783 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_60 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_61 = {.numbers=tint_symbol_60}; - *(tint_symbol_84) = tint_symbol_61; + tint_array_wrapper const tint_symbol_61 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_62 = {.numbers=tint_symbol_61}; + *(tint_symbol_84) = tint_symbol_62; *(tint_symbol_84) = x_783; float2 const x_457 = float2(x_454[0], x_454[0]); float2 const x_784 = uv; uv = float2(0.0f, 0.0f); uv = x_784; QuicksortObject const x_785 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_62 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62}; - *(tint_symbol_84) = tint_symbol_63; + tint_array_wrapper const tint_symbol_63 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_64 = {.numbers=tint_symbol_63}; + *(tint_symbol_84) = tint_symbol_64; *(tint_symbol_84) = x_785; float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f)[2], float2()[1]); int const x_786 = i_2; @@ -1087,9 +1087,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t color[0] = 0.0f; color[0] = x_816; QuicksortObject const x_817 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_64 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_65 = {.numbers=tint_symbol_64}; - *(tint_symbol_84) = tint_symbol_65; + tint_array_wrapper const tint_symbol_65 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_66 = {.numbers=tint_symbol_65}; + *(tint_symbol_84) = tint_symbol_66; *(tint_symbol_84) = x_817; float3 const x_468 = float3(x_467[0], x_467[0], x_467[0]); float const x_818 = uv[0]; @@ -1198,9 +1198,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = x_844; float3 const x_482 = float3(x_455[0], x_475[1], x_455[1]); QuicksortObject const x_845 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_66 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_67 = {.numbers=tint_symbol_66}; - *(tint_symbol_84) = tint_symbol_67; + tint_array_wrapper const tint_symbol_67 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_68 = {.numbers=tint_symbol_67}; + *(tint_symbol_84) = tint_symbol_68; *(tint_symbol_84) = x_845; float const x_846 = uv[1]; uv[1] = 0.0f; @@ -1271,9 +1271,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t (*(tint_symbol_84)).numbers.arr[6u] = x_863; float2 const x_490 = float2(x_480[2], x_480[2]); QuicksortObject const x_864 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_68 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_69 = {.numbers=tint_symbol_68}; - *(tint_symbol_84) = tint_symbol_69; + tint_array_wrapper const tint_symbol_69 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_70 = {.numbers=tint_symbol_69}; + *(tint_symbol_84) = tint_symbol_70; *(tint_symbol_84) = x_864; color[1] = (float(x_280) + x_283); float const x_865 = color[0]; @@ -1290,9 +1290,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t color[0] = x_867; float const x_287 = uv[1]; QuicksortObject const x_868 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_70 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_71 = {.numbers=tint_symbol_70}; - *(tint_symbol_84) = tint_symbol_71; + tint_array_wrapper const tint_symbol_71 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_72 = {.numbers=tint_symbol_71}; + *(tint_symbol_84) = tint_symbol_72; *(tint_symbol_84) = x_868; float2 const x_493 = float2(x_475[0], x_475[1]); float const x_869 = uv[0]; @@ -1452,9 +1452,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = 0.0f; uv[0] = x_910; QuicksortObject const x_911 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_72 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_73 = {.numbers=tint_symbol_72}; - *(tint_symbol_84) = tint_symbol_73; + tint_array_wrapper const tint_symbol_73 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_74 = {.numbers=tint_symbol_73}; + *(tint_symbol_84) = tint_symbol_74; *(tint_symbol_84) = x_911; float3 const x_513 = float3(x_505[2], x_505[0], x_448[0]); int const x_912 = (*(tint_symbol_84)).numbers.arr[8]; @@ -1506,14 +1506,14 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = 0.0f; uv[0] = x_923; QuicksortObject const x_924 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_74 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_75 = {.numbers=tint_symbol_74}; - *(tint_symbol_84) = tint_symbol_75; + tint_array_wrapper const tint_symbol_75 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_76 = {.numbers=tint_symbol_75}; + *(tint_symbol_84) = tint_symbol_76; *(tint_symbol_84) = x_924; QuicksortObject const x_925 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_76 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_77 = {.numbers=tint_symbol_76}; - *(tint_symbol_84) = tint_symbol_77; + tint_array_wrapper const tint_symbol_77 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_78 = {.numbers=tint_symbol_77}; + *(tint_symbol_84) = tint_symbol_78; *(tint_symbol_84) = x_925; float const x_926 = color[1]; color[1] = 0.0f; @@ -1532,9 +1532,9 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t uv[0] = x_929; *(tint_symbol_87) = x_330; QuicksortObject const x_930 = *(tint_symbol_84); - tint_array_wrapper const tint_symbol_78 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; - QuicksortObject const tint_symbol_79 = {.numbers=tint_symbol_78}; - *(tint_symbol_84) = tint_symbol_79; + tint_array_wrapper const tint_symbol_79 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}}; + QuicksortObject const tint_symbol_80 = {.numbers=tint_symbol_79}; + *(tint_symbol_84) = tint_symbol_80; *(tint_symbol_84) = x_930; float3 const x_522 = float3(x_330[3], x_330[1], x_493[0]); float const x_931 = color[0]; @@ -1554,8 +1554,8 @@ struct tint_symbol_1 { main_out tint_symbol_inner(float4 gl_FragCoord_param, thread float4* const tint_symbol_88, thread QuicksortObject* const tint_symbol_89, const constant buf0* const tint_symbol_90, thread float4* const tint_symbol_91) { *(tint_symbol_88) = gl_FragCoord_param; main_1(tint_symbol_89, tint_symbol_88, tint_symbol_90, tint_symbol_91); - main_out const tint_symbol_80 = {.x_GLF_color_1=*(tint_symbol_91)}; - return tint_symbol_80; + main_out const tint_symbol_2 = {.x_GLF_color_1=*(tint_symbol_91)}; + return tint_symbol_2; } fragment tint_symbol_1 tint_symbol(const constant buf0* tint_symbol_94 [[buffer(0)]], float4 gl_FragCoord_param [[position]]) { diff --git a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl index 707e474c79..c0f864eb43 100644 --- a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl +++ b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.glsl @@ -1,51 +1,11 @@ -#version 310 es +SKIP: FAILED -uniform highp sampler2D arg_0_1; -void textureDimensions_ba1481() { - ivec2 res = textureSize(arg_0_1, 0); -} +C:\src\tint2\src\writer\glsl\generator_impl.cc:2510 internal compiler error: Multiplanar external texture transform was not run. -vec4 vertex_main() { - textureDimensions_ba1481(); - return vec4(0.0f, 0.0f, 0.0f, 0.0f); -} -void main() { - vec4 inner_result = vertex_main(); - gl_Position = inner_result; - gl_Position.y = -(gl_Position.y); - gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); - return; -} -#version 310 es -precision mediump float; - -uniform highp sampler2D arg_0_1; -void textureDimensions_ba1481() { - ivec2 res = textureSize(arg_0_1, 0); -} - -void fragment_main() { - textureDimensions_ba1481(); -} - -void main() { - fragment_main(); - return; -} -#version 310 es - -uniform highp sampler2D arg_0_1; -void textureDimensions_ba1481() { - ivec2 res = textureSize(arg_0_1, 0); -} - -void compute_main() { - textureDimensions_ba1481(); -} - -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -void main() { - compute_main(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl index ef89299177..b3cea20776 100644 --- a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl +++ b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.hlsl @@ -1,34 +1,11 @@ -Texture2D arg_0 : register(t0, space1); +SKIP: FAILED -void textureDimensions_ba1481() { - int2 tint_tmp; - arg_0.GetDimensions(tint_tmp.x, tint_tmp.y); - int2 res = tint_tmp; -} +C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value : SV_Position; -}; -float4 vertex_main_inner() { - textureDimensions_ba1481(); - return float4(0.0f, 0.0f, 0.0f, 0.0f); -} - -tint_symbol vertex_main() { - const float4 inner_result = vertex_main_inner(); - tint_symbol wrapper_result = (tint_symbol)0; - wrapper_result.value = inner_result; - return wrapper_result; -} - -void fragment_main() { - textureDimensions_ba1481(); - return; -} - -[numthreads(1, 1, 1)] -void compute_main() { - textureDimensions_ba1481(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl index 5162685ad3..21d485b7ec 100644 --- a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl +++ b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.msl @@ -1,33 +1,11 @@ -#include +SKIP: FAILED -using namespace metal; -void textureDimensions_ba1481(texture2d tint_symbol_1) { - int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height()); -} +C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value [[position]]; -}; - -float4 vertex_main_inner(texture2d tint_symbol_2) { - textureDimensions_ba1481(tint_symbol_2); - return float4(); -} - -vertex tint_symbol vertex_main(texture2d tint_symbol_3 [[texture(0)]]) { - float4 const inner_result = vertex_main_inner(tint_symbol_3); - tint_symbol wrapper_result = {}; - wrapper_result.value = inner_result; - return wrapper_result; -} - -fragment void fragment_main(texture2d tint_symbol_4 [[texture(0)]]) { - textureDimensions_ba1481(tint_symbol_4); - return; -} - -kernel void compute_main(texture2d tint_symbol_5 [[texture(0)]]) { - textureDimensions_ba1481(tint_symbol_5); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm index 9d157ae6ac..87554bb606 100644 --- a/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/textureDimensions/ba1481.wgsl.expected.spvasm @@ -1,76 +1,11 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Tint Compiler; 0 -; Bound: 38 -; Schema: 0 - OpCapability Shader - OpCapability ImageQuery - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size - OpEntryPoint Fragment %fragment_main "fragment_main" - OpEntryPoint GLCompute %compute_main "compute_main" - OpExecutionMode %fragment_main OriginUpperLeft - OpExecutionMode %compute_main LocalSize 1 1 1 - OpName %value "value" - OpName %vertex_point_size "vertex_point_size" - OpName %arg_0 "arg_0" - OpName %textureDimensions_ba1481 "textureDimensions_ba1481" - OpName %res "res" - OpName %vertex_main_inner "vertex_main_inner" - OpName %vertex_main "vertex_main" - OpName %fragment_main "fragment_main" - OpName %compute_main "compute_main" - OpDecorate %value BuiltIn Position - OpDecorate %vertex_point_size BuiltIn PointSize - OpDecorate %arg_0 DescriptorSet 1 - OpDecorate %arg_0 Binding 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %5 = OpConstantNull %v4float - %value = OpVariable %_ptr_Output_v4float Output %5 -%_ptr_Output_float = OpTypePointer Output %float - %8 = OpConstantNull %float -%vertex_point_size = OpVariable %_ptr_Output_float Output %8 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant - %void = OpTypeVoid - %12 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %int_0 = OpConstant %int 0 -%_ptr_Function_v2int = OpTypePointer Function %v2int - %23 = OpConstantNull %v2int - %24 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 -%textureDimensions_ba1481 = OpFunction %void None %12 - %15 = OpLabel - %res = OpVariable %_ptr_Function_v2int Function %23 - %19 = OpLoad %11 %arg_0 - %16 = OpImageQuerySizeLod %v2int %19 %int_0 - OpStore %res %16 - OpReturn - OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %24 - %26 = OpLabel - %27 = OpFunctionCall %void %textureDimensions_ba1481 - OpReturnValue %5 - OpFunctionEnd -%vertex_main = OpFunction %void None %12 - %29 = OpLabel - %30 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %30 - OpStore %vertex_point_size %float_1 - OpReturn - OpFunctionEnd -%fragment_main = OpFunction %void None %12 - %33 = OpLabel - %34 = OpFunctionCall %void %textureDimensions_ba1481 - OpReturn - OpFunctionEnd -%compute_main = OpFunction %void None %12 - %36 = OpLabel - %37 = OpFunctionCall %void %textureDimensions_ba1481 - OpReturn - OpFunctionEnd +SKIP: FAILED + +C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run. + + +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl index 3e78a01ba4..c0f864eb43 100644 --- a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl +++ b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.glsl @@ -1,51 +1,11 @@ -#version 310 es +SKIP: FAILED -uniform highp sampler2D arg_0_1; -void textureLoad_8acf41() { - vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0); -} +C:\src\tint2\src\writer\glsl\generator_impl.cc:2510 internal compiler error: Multiplanar external texture transform was not run. -vec4 vertex_main() { - textureLoad_8acf41(); - return vec4(0.0f, 0.0f, 0.0f, 0.0f); -} -void main() { - vec4 inner_result = vertex_main(); - gl_Position = inner_result; - gl_Position.y = -(gl_Position.y); - gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); - return; -} -#version 310 es -precision mediump float; - -uniform highp sampler2D arg_0_1; -void textureLoad_8acf41() { - vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0); -} - -void fragment_main() { - textureLoad_8acf41(); -} - -void main() { - fragment_main(); - return; -} -#version 310 es - -uniform highp sampler2D arg_0_1; -void textureLoad_8acf41() { - vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0); -} - -void compute_main() { - textureLoad_8acf41(); -} - -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -void main() { - compute_main(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl index 4bfd217758..b3cea20776 100644 --- a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl +++ b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.hlsl @@ -1,32 +1,11 @@ -Texture2D arg_0 : register(t0, space1); +SKIP: FAILED -void textureLoad_8acf41() { - float4 res = arg_0.Load(int3(0, 0, 0)); -} +C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value : SV_Position; -}; -float4 vertex_main_inner() { - textureLoad_8acf41(); - return float4(0.0f, 0.0f, 0.0f, 0.0f); -} - -tint_symbol vertex_main() { - const float4 inner_result = vertex_main_inner(); - tint_symbol wrapper_result = (tint_symbol)0; - wrapper_result.value = inner_result; - return wrapper_result; -} - -void fragment_main() { - textureLoad_8acf41(); - return; -} - -[numthreads(1, 1, 1)] -void compute_main() { - textureLoad_8acf41(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.msl b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.msl index 994e6eb8b2..21d485b7ec 100644 --- a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.msl +++ b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.msl @@ -1,33 +1,11 @@ -#include +SKIP: FAILED -using namespace metal; -void textureLoad_8acf41(texture2d tint_symbol_1) { - float4 res = tint_symbol_1.read(uint2(int2()), 0); -} +C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value [[position]]; -}; - -float4 vertex_main_inner(texture2d tint_symbol_2) { - textureLoad_8acf41(tint_symbol_2); - return float4(); -} - -vertex tint_symbol vertex_main(texture2d tint_symbol_3 [[texture(0)]]) { - float4 const inner_result = vertex_main_inner(tint_symbol_3); - tint_symbol wrapper_result = {}; - wrapper_result.value = inner_result; - return wrapper_result; -} - -fragment void fragment_main(texture2d tint_symbol_4 [[texture(0)]]) { - textureLoad_8acf41(tint_symbol_4); - return; -} - -kernel void compute_main(texture2d tint_symbol_5 [[texture(0)]]) { - textureLoad_8acf41(tint_symbol_5); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm index 17ac507ff0..87554bb606 100644 --- a/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/textureLoad/8acf41.wgsl.expected.spvasm @@ -1,75 +1,11 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Tint Compiler; 0 -; Bound: 38 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size - OpEntryPoint Fragment %fragment_main "fragment_main" - OpEntryPoint GLCompute %compute_main "compute_main" - OpExecutionMode %fragment_main OriginUpperLeft - OpExecutionMode %compute_main LocalSize 1 1 1 - OpName %value "value" - OpName %vertex_point_size "vertex_point_size" - OpName %arg_0 "arg_0" - OpName %textureLoad_8acf41 "textureLoad_8acf41" - OpName %res "res" - OpName %vertex_main_inner "vertex_main_inner" - OpName %vertex_main "vertex_main" - OpName %fragment_main "fragment_main" - OpName %compute_main "compute_main" - OpDecorate %value BuiltIn Position - OpDecorate %vertex_point_size BuiltIn PointSize - OpDecorate %arg_0 DescriptorSet 1 - OpDecorate %arg_0 Binding 0 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %5 = OpConstantNull %v4float - %value = OpVariable %_ptr_Output_v4float Output %5 -%_ptr_Output_float = OpTypePointer Output %float - %8 = OpConstantNull %float -%vertex_point_size = OpVariable %_ptr_Output_float Output %8 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant - %void = OpTypeVoid - %12 = OpTypeFunction %void - %int = OpTypeInt 32 1 - %v2int = OpTypeVector %int 2 - %20 = OpConstantNull %v2int - %int_0 = OpConstant %int 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %24 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 -%textureLoad_8acf41 = OpFunction %void None %12 - %15 = OpLabel - %res = OpVariable %_ptr_Function_v4float Function %5 - %17 = OpLoad %11 %arg_0 - %16 = OpImageFetch %v4float %17 %20 Lod %int_0 - OpStore %res %16 - OpReturn - OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %24 - %26 = OpLabel - %27 = OpFunctionCall %void %textureLoad_8acf41 - OpReturnValue %5 - OpFunctionEnd -%vertex_main = OpFunction %void None %12 - %29 = OpLabel - %30 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %30 - OpStore %vertex_point_size %float_1 - OpReturn - OpFunctionEnd -%fragment_main = OpFunction %void None %12 - %33 = OpLabel - %34 = OpFunctionCall %void %textureLoad_8acf41 - OpReturn - OpFunctionEnd -%compute_main = OpFunction %void None %12 - %36 = OpLabel - %37 = OpFunctionCall %void %textureLoad_8acf41 - OpReturn - OpFunctionEnd +SKIP: FAILED + +C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run. + + +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl index 0f3fecc9a2..c0f864eb43 100644 --- a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl +++ b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.glsl @@ -1,54 +1,11 @@ -#version 310 es +SKIP: FAILED -uniform highp sampler2D arg_0_arg_1; +C:\src\tint2\src\writer\glsl\generator_impl.cc:2510 internal compiler error: Multiplanar external texture transform was not run. -void textureSampleLevel_979816() { - vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f); -} -vec4 vertex_main() { - textureSampleLevel_979816(); - return vec4(0.0f, 0.0f, 0.0f, 0.0f); -} - -void main() { - vec4 inner_result = vertex_main(); - gl_Position = inner_result; - gl_Position.y = -(gl_Position.y); - gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); - return; -} -#version 310 es -precision mediump float; - -uniform highp sampler2D arg_0_arg_1; - -void textureSampleLevel_979816() { - vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f); -} - -void fragment_main() { - textureSampleLevel_979816(); -} - -void main() { - fragment_main(); - return; -} -#version 310 es - -uniform highp sampler2D arg_0_arg_1; - -void textureSampleLevel_979816() { - vec4 res = textureLod(arg_0_arg_1, vec2(0.0f, 0.0f), 0.0f); -} - -void compute_main() { - textureSampleLevel_979816(); -} - -layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; -void main() { - compute_main(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl index 9a039f3cb8..b3cea20776 100644 --- a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl +++ b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.hlsl @@ -1,33 +1,11 @@ -Texture2D arg_0 : register(t0, space1); -SamplerState arg_1 : register(s1, space1); +SKIP: FAILED -void textureSampleLevel_979816() { - float4 res = arg_0.SampleLevel(arg_1, float2(0.0f, 0.0f), 0.0f); -} +C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value : SV_Position; -}; -float4 vertex_main_inner() { - textureSampleLevel_979816(); - return float4(0.0f, 0.0f, 0.0f, 0.0f); -} - -tint_symbol vertex_main() { - const float4 inner_result = vertex_main_inner(); - tint_symbol wrapper_result = (tint_symbol)0; - wrapper_result.value = inner_result; - return wrapper_result; -} - -void fragment_main() { - textureSampleLevel_979816(); - return; -} - -[numthreads(1, 1, 1)] -void compute_main() { - textureSampleLevel_979816(); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl index 47e2da142f..21d485b7ec 100644 --- a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl +++ b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.msl @@ -1,33 +1,11 @@ -#include +SKIP: FAILED -using namespace metal; -void textureSampleLevel_979816(texture2d tint_symbol_1, sampler tint_symbol_2) { - float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), level(0.0f)); -} +C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run. -struct tint_symbol { - float4 value [[position]]; -}; - -float4 vertex_main_inner(texture2d tint_symbol_3, sampler tint_symbol_4) { - textureSampleLevel_979816(tint_symbol_3, tint_symbol_4); - return float4(); -} - -vertex tint_symbol vertex_main(texture2d tint_symbol_5 [[texture(0)]], sampler tint_symbol_6 [[sampler(0)]]) { - float4 const inner_result = vertex_main_inner(tint_symbol_5, tint_symbol_6); - tint_symbol wrapper_result = {}; - wrapper_result.value = inner_result; - return wrapper_result; -} - -fragment void fragment_main(texture2d tint_symbol_7 [[texture(0)]], sampler tint_symbol_8 [[sampler(0)]]) { - textureSampleLevel_979816(tint_symbol_7, tint_symbol_8); - return; -} - -kernel void compute_main(texture2d tint_symbol_9 [[texture(0)]], sampler tint_symbol_10 [[sampler(0)]]) { - textureSampleLevel_979816(tint_symbol_9, tint_symbol_10); - return; -} +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +******************************************************************** diff --git a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm index 6420fc9399..87554bb606 100644 --- a/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm +++ b/test/tint/builtins/gen/textureSampleLevel/979816.wgsl.expected.spvasm @@ -1,83 +1,11 @@ -; SPIR-V -; Version: 1.3 -; Generator: Google Tint Compiler; 0 -; Bound: 43 -; Schema: 0 - OpCapability Shader - OpMemoryModel Logical GLSL450 - OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size - OpEntryPoint Fragment %fragment_main "fragment_main" - OpEntryPoint GLCompute %compute_main "compute_main" - OpExecutionMode %fragment_main OriginUpperLeft - OpExecutionMode %compute_main LocalSize 1 1 1 - OpName %value "value" - OpName %vertex_point_size "vertex_point_size" - OpName %arg_0 "arg_0" - OpName %arg_1 "arg_1" - OpName %textureSampleLevel_979816 "textureSampleLevel_979816" - OpName %res "res" - OpName %vertex_main_inner "vertex_main_inner" - OpName %vertex_main "vertex_main" - OpName %fragment_main "fragment_main" - OpName %compute_main "compute_main" - OpDecorate %value BuiltIn Position - OpDecorate %vertex_point_size BuiltIn PointSize - OpDecorate %arg_0 DescriptorSet 1 - OpDecorate %arg_0 Binding 0 - OpDecorate %arg_1 DescriptorSet 1 - OpDecorate %arg_1 Binding 1 - %float = OpTypeFloat 32 - %v4float = OpTypeVector %float 4 -%_ptr_Output_v4float = OpTypePointer Output %v4float - %5 = OpConstantNull %v4float - %value = OpVariable %_ptr_Output_v4float Output %5 -%_ptr_Output_float = OpTypePointer Output %float - %8 = OpConstantNull %float -%vertex_point_size = OpVariable %_ptr_Output_float Output %8 - %11 = OpTypeImage %float 2D 0 0 0 1 Unknown -%_ptr_UniformConstant_11 = OpTypePointer UniformConstant %11 - %arg_0 = OpVariable %_ptr_UniformConstant_11 UniformConstant - %14 = OpTypeSampler -%_ptr_UniformConstant_14 = OpTypePointer UniformConstant %14 - %arg_1 = OpVariable %_ptr_UniformConstant_14 UniformConstant - %void = OpTypeVoid - %15 = OpTypeFunction %void - %22 = OpTypeSampledImage %11 - %v2float = OpTypeVector %float 2 - %25 = OpConstantNull %v2float - %float_0 = OpConstant %float 0 -%_ptr_Function_v4float = OpTypePointer Function %v4float - %29 = OpTypeFunction %v4float - %float_1 = OpConstant %float 1 -%textureSampleLevel_979816 = OpFunction %void None %15 - %18 = OpLabel - %res = OpVariable %_ptr_Function_v4float Function %5 - %20 = OpLoad %14 %arg_1 - %21 = OpLoad %11 %arg_0 - %23 = OpSampledImage %22 %21 %20 - %19 = OpImageSampleExplicitLod %v4float %23 %25 Lod %float_0 - OpStore %res %19 - OpReturn - OpFunctionEnd -%vertex_main_inner = OpFunction %v4float None %29 - %31 = OpLabel - %32 = OpFunctionCall %void %textureSampleLevel_979816 - OpReturnValue %5 - OpFunctionEnd -%vertex_main = OpFunction %void None %15 - %34 = OpLabel - %35 = OpFunctionCall %v4float %vertex_main_inner - OpStore %value %35 - OpStore %vertex_point_size %float_1 - OpReturn - OpFunctionEnd -%fragment_main = OpFunction %void None %15 - %38 = OpLabel - %39 = OpFunctionCall %void %textureSampleLevel_979816 - OpReturn - OpFunctionEnd -%compute_main = OpFunction %void None %15 - %41 = OpLabel - %42 = OpFunctionCall %void %textureSampleLevel_979816 - OpReturn - OpFunctionEnd +SKIP: FAILED + +C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run. + + +******************************************************************** +* The tint shader compiler has encountered an unexpected error. * +* * +* Please help us fix this issue by submitting a bug report at * +* crbug.com/tint with the source program that triggered the bug. * +********************************************************************