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 <amaiorano@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
Commit-Queue: Brandon1 Jones <brandon1.jones@intel.com>
This commit is contained in:
Brandon Jones 2022-02-25 20:14:52 +00:00 committed by Tint LUCI CQ
parent dbf75bc217
commit 6661b28d1e
25 changed files with 258 additions and 1075 deletions

View File

@ -450,8 +450,6 @@ libtint_source_set("libtint_core_all_src") {
"transform/decompose_strided_array.h", "transform/decompose_strided_array.h",
"transform/decompose_strided_matrix.cc", "transform/decompose_strided_matrix.cc",
"transform/decompose_strided_matrix.h", "transform/decompose_strided_matrix.h",
"transform/external_texture_transform.cc",
"transform/external_texture_transform.h",
"transform/first_index_offset.cc", "transform/first_index_offset.cc",
"transform/first_index_offset.h", "transform/first_index_offset.h",
"transform/fold_constants.cc", "transform/fold_constants.cc",

View File

@ -326,8 +326,6 @@ set(TINT_LIB_SRCS
transform/decompose_strided_array.h transform/decompose_strided_array.h
transform/decompose_strided_matrix.cc transform/decompose_strided_matrix.cc
transform/decompose_strided_matrix.h transform/decompose_strided_matrix.h
transform/external_texture_transform.cc
transform/external_texture_transform.h
transform/first_index_offset.cc transform/first_index_offset.cc
transform/first_index_offset.h transform/first_index_offset.h
transform/fold_constants.cc transform/fold_constants.cc
@ -1015,7 +1013,6 @@ if(TINT_BUILD_TESTS)
transform/decompose_memory_access_test.cc transform/decompose_memory_access_test.cc
transform/decompose_strided_array_test.cc transform/decompose_strided_array_test.cc
transform/decompose_strided_matrix_test.cc transform/decompose_strided_matrix_test.cc
transform/external_texture_transform_test.cc
transform/first_index_offset_test.cc transform/first_index_offset_test.cc
transform/fold_constants_test.cc transform/fold_constants_test.cc
transform/fold_trivial_single_use_lets_test.cc transform/fold_trivial_single_use_lets_test.cc

View File

@ -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<f32>, 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<f32> we must
// also modify calls to the texture_external overloads of textureLoad and
// textureSampleLevel, which unlike their texture_2d<f32> 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<ast::CallExpression>()) {
if (auto* builtin = sem.Get(call_expr)->Target()->As<sem::Builtin>()) {
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<sem::VariableUser>()) {
if (var->Variable()
->Type()
->UnwrapRef()
->Is<sem::ExternalTexture>()) {
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<ast::CallExpression>(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<ast::Variable>()) {
if (::tint::Is<ast::ExternalTexture>(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<ast::Variable>(
clonedSrc, clonedSym, var->declared_storage_class,
var->declared_access, newType, false, false, clonedConstructor,
clonedAttributes);
ctx.Replace(var, newVar);
}
}
}
ctx.Clone();
}
} // namespace transform
} // namespace tint

View File

@ -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 <utility>
#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<ExternalTextureTransform, Transform> {
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_

View File

@ -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<f32>) -> @location(0) vec4<f32> {
return textureSampleLevel(t, s, (coord.xy / vec2<f32>(4.0, 4.0)));
}
)";
auto* expect = R"(
@group(0) @binding(0) var s : sampler;
@group(0) @binding(1) var t : texture_2d<f32>;
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
return textureSampleLevel(t, s, (coord.xy / vec2<f32>(4.0, 4.0)), 0.0);
}
)";
auto got = Run<ExternalTextureTransform>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(ExternalTextureTransformTest, SampleLevelSinglePlane_OutOfOrder) {
auto* src = R"(
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
return textureSampleLevel(t, s, (coord.xy / vec2<f32>(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<f32>) -> @location(0) vec4<f32> {
return textureSampleLevel(t, s, (coord.xy / vec2<f32>(4.0, 4.0)), 0.0);
}
@group(0) @binding(1) var t : texture_2d<f32>;
@group(0) @binding(0) var s : sampler;
)";
auto got = Run<ExternalTextureTransform>(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<f32>) -> @location(0) vec4<f32> {
return textureLoad(t, vec2<i32>(1, 1));
}
)";
auto* expect = R"(
@group(0) @binding(0) var t : texture_2d<f32>;
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
return textureLoad(t, vec2<i32>(1, 1), 0);
}
)";
auto got = Run<ExternalTextureTransform>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(ExternalTextureTransformTest, LoadSinglePlane_OutOfOrder) {
auto* src = R"(
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
return textureLoad(t, vec2<i32>(1, 1));
}
@group(0) @binding(0) var t : texture_external;
)";
auto* expect = R"(
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
return textureLoad(t, vec2<i32>(1, 1), 0);
}
@group(0) @binding(0) var t : texture_2d<f32>;
)";
auto got = Run<ExternalTextureTransform>(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<f32>) -> @location(0) vec4<f32> {
var dim : vec2<i32>;
dim = textureDimensions(t);
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
)";
auto* expect = R"(
@group(0) @binding(0) var t : texture_2d<f32>;
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
var dim : vec2<i32>;
dim = textureDimensions(t);
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
)";
auto got = Run<ExternalTextureTransform>(src);
EXPECT_EQ(expect, str(got));
}
TEST_F(ExternalTextureTransformTest, DimensionsSinglePlane_OutOfOrder) {
auto* src = R"(
@stage(fragment)
fn main(@builtin(position) coord : vec4<f32>) -> @location(0) vec4<f32> {
var dim : vec2<i32>;
dim = textureDimensions(t);
return vec4<f32>(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<f32>) -> @location(0) vec4<f32> {
var dim : vec2<i32>;
dim = textureDimensions(t);
return vec4<f32>(0.0, 0.0, 0.0, 0.0);
}
@group(0) @binding(0) var t : texture_2d<f32>;
)";
auto got = Run<ExternalTextureTransform>(src);
EXPECT_EQ(expect, str(got));
}
} // namespace
} // namespace transform
} // namespace tint

View File

@ -24,7 +24,6 @@
#include "src/tint/transform/canonicalize_entry_point_io.h" #include "src/tint/transform/canonicalize_entry_point_io.h"
#include "src/tint/transform/combine_samplers.h" #include "src/tint/transform/combine_samplers.h"
#include "src/tint/transform/decompose_memory_access.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/fold_trivial_single_use_lets.h"
#include "src/tint/transform/loop_to_for_loop.h" #include "src/tint/transform/loop_to_for_loop.h"
#include "src/tint/transform/manager.h" #include "src/tint/transform/manager.h"
@ -102,7 +101,6 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) const {
BindingRemapper::AccessControls ac; BindingRemapper::AccessControls ac;
data.Add<BindingRemapper::Remappings>(bp, ac, /* mayCollide */ true); data.Add<BindingRemapper::Remappings>(bp, ac, /* mayCollide */ true);
} }
manager.Add<ExternalTextureTransform>();
manager.Add<PromoteInitializersToConstVar>(); manager.Add<PromoteInitializersToConstVar>();
manager.Add<PadArrayElements>(); manager.Add<PadArrayElements>();

View File

@ -2552,6 +2552,12 @@ bool GeneratorImpl::EmitType(std::ostream& out,
} else if (auto* str = type->As<sem::Struct>()) { } else if (auto* str = type->As<sem::Struct>()) {
out << StructName(str); out << StructName(str);
} else if (auto* tex = type->As<sem::Texture>()) { } else if (auto* tex = type->As<sem::Texture>()) {
if (tex->Is<sem::ExternalTexture>()) {
TINT_ICE(Writer, diagnostics_)
<< "Multiplanar external texture transform was not run.";
return false;
}
auto* storage = tex->As<sem::StorageTexture>(); auto* storage = tex->As<sem::StorageTexture>();
auto* ms = tex->As<sem::MultisampledTexture>(); auto* ms = tex->As<sem::MultisampledTexture>();
auto* depth_ms = tex->As<sem::DepthMultisampledTexture>(); auto* depth_ms = tex->As<sem::DepthMultisampledTexture>();

View File

@ -52,7 +52,6 @@
#include "src/tint/transform/calculate_array_length.h" #include "src/tint/transform/calculate_array_length.h"
#include "src/tint/transform/canonicalize_entry_point_io.h" #include "src/tint/transform/canonicalize_entry_point_io.h"
#include "src/tint/transform/decompose_memory_access.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/fold_trivial_single_use_lets.h"
#include "src/tint/transform/localize_struct_array_assignment.h" #include "src/tint/transform/localize_struct_array_assignment.h"
#include "src/tint/transform/loop_to_for_loop.h" #include "src/tint/transform/loop_to_for_loop.h"
@ -206,7 +205,6 @@ SanitizedResult Sanitize(
// DecomposeMemoryAccess special-cases the arrayLength() intrinsic, which // DecomposeMemoryAccess special-cases the arrayLength() intrinsic, which
// will be transformed by CalculateArrayLength // will be transformed by CalculateArrayLength
manager.Add<transform::CalculateArrayLength>(); manager.Add<transform::CalculateArrayLength>();
manager.Add<transform::ExternalTextureTransform>();
manager.Add<transform::PromoteInitializersToConstVar>(); manager.Add<transform::PromoteInitializersToConstVar>();
manager.Add<transform::PadArrayElements>(); manager.Add<transform::PadArrayElements>();
@ -3645,6 +3643,12 @@ bool GeneratorImpl::EmitType(std::ostream& out,
return true; return true;
}, },
[&](const sem::Texture* tex) { [&](const sem::Texture* tex) {
if (tex->Is<sem::ExternalTexture>()) {
TINT_ICE(Writer, diagnostics_)
<< "Multiplanar external texture transform was not run.";
return false;
}
auto* storage = tex->As<sem::StorageTexture>(); auto* storage = tex->As<sem::StorageTexture>();
auto* ms = tex->As<sem::MultisampledTexture>(); auto* ms = tex->As<sem::MultisampledTexture>();
auto* depth_ms = tex->As<sem::DepthMultisampledTexture>(); auto* depth_ms = tex->As<sem::DepthMultisampledTexture>();

View File

@ -61,7 +61,6 @@
#include "src/tint/transform/array_length_from_uniform.h" #include "src/tint/transform/array_length_from_uniform.h"
#include "src/tint/transform/builtin_polyfill.h" #include "src/tint/transform/builtin_polyfill.h"
#include "src/tint/transform/canonicalize_entry_point_io.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/manager.h"
#include "src/tint/transform/module_scope_var_to_entry_point_param.h" #include "src/tint/transform/module_scope_var_to_entry_point_param.h"
#include "src/tint/transform/pad_array_elements.h" #include "src/tint/transform/pad_array_elements.h"
@ -174,7 +173,6 @@ SanitizedResult Sanitize(
manager.Add<transform::ZeroInitWorkgroupMemory>(); manager.Add<transform::ZeroInitWorkgroupMemory>();
} }
manager.Add<transform::CanonicalizeEntryPointIO>(); manager.Add<transform::CanonicalizeEntryPointIO>();
manager.Add<transform::ExternalTextureTransform>();
manager.Add<transform::PromoteInitializersToConstVar>(); manager.Add<transform::PromoteInitializersToConstVar>();
manager.Add<transform::VectorizeScalarMatrixConstructors>(); manager.Add<transform::VectorizeScalarMatrixConstructors>();
@ -2366,6 +2364,12 @@ bool GeneratorImpl::EmitType(std::ostream& out,
return true; return true;
}, },
[&](const sem::Texture* tex) { [&](const sem::Texture* tex) {
if (tex->Is<sem::ExternalTexture>()) {
TINT_ICE(Writer, diagnostics_)
<< "Multiplanar external texture transform was not run.";
return false;
}
if (tex->IsAnyOf<sem::DepthTexture, sem::DepthMultisampledTexture>()) { if (tex->IsAnyOf<sem::DepthTexture, sem::DepthMultisampledTexture>()) {
out << "depth"; out << "depth";
} else { } else {

View File

@ -45,7 +45,6 @@
#include "src/tint/transform/add_spirv_block_attribute.h" #include "src/tint/transform/add_spirv_block_attribute.h"
#include "src/tint/transform/builtin_polyfill.h" #include "src/tint/transform/builtin_polyfill.h"
#include "src/tint/transform/canonicalize_entry_point_io.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/fold_constants.h"
#include "src/tint/transform/for_loop_to_loop.h" #include "src/tint/transform/for_loop_to_loop.h"
#include "src/tint/transform/manager.h" #include "src/tint/transform/manager.h"
@ -279,7 +278,6 @@ SanitizedResult Sanitize(const Program* in,
manager.Add<transform::RemoveUnreachableStatements>(); manager.Add<transform::RemoveUnreachableStatements>();
manager.Add<transform::SimplifyPointers>(); // Required for arrayLength() manager.Add<transform::SimplifyPointers>(); // Required for arrayLength()
manager.Add<transform::FoldConstants>(); manager.Add<transform::FoldConstants>();
manager.Add<transform::ExternalTextureTransform>();
manager.Add<transform::VectorizeScalarMatrixConstructors>(); manager.Add<transform::VectorizeScalarMatrixConstructors>();
manager.Add<transform::ForLoopToLoop>(); // Must come after manager.Add<transform::ForLoopToLoop>(); // Must come after
// ZeroInitWorkgroupMemory // ZeroInitWorkgroupMemory
@ -4033,6 +4031,12 @@ uint32_t Builder::GenerateTypeIfNeeded(const sem::Type* type) {
bool Builder::GenerateTextureType(const sem::Texture* texture, bool Builder::GenerateTextureType(const sem::Texture* texture,
const Operand& result) { const Operand& result) {
if (texture->Is<sem::ExternalTexture>()) {
TINT_ICE(Writer, builder_.Diagnostics())
<< "Multiplanar external texture transform was not run.";
return false;
}
uint32_t array_literal = 0u; uint32_t array_literal = 0u;
const auto dim = texture->dim(); const auto dim = texture->dim();
if (dim == ast::TextureDimension::k2dArray || if (dim == ast::TextureDimension::k2dArray ||

View File

@ -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_empty_entry_point_test.cc",
"../../src/tint/transform/add_spirv_block_attribute_test.cc", "../../src/tint/transform/add_spirv_block_attribute_test.cc",
"../../src/tint/transform/array_length_from_uniform_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/binding_remapper_test.cc",
"../../src/tint/transform/builtin_polyfill_test.cc",
"../../src/tint/transform/calculate_array_length_test.cc", "../../src/tint/transform/calculate_array_length_test.cc",
"../../src/tint/transform/canonicalize_entry_point_io_test.cc", "../../src/tint/transform/canonicalize_entry_point_io_test.cc",
"../../src/tint/transform/combine_samplers_test.cc", "../../src/tint/transform/combine_samplers_test.cc",
"../../src/tint/transform/decompose_memory_access_test.cc", "../../src/tint/transform/decompose_memory_access_test.cc",
"../../src/tint/transform/decompose_strided_array_test.cc", "../../src/tint/transform/decompose_strided_array_test.cc",
"../../src/tint/transform/decompose_strided_matrix_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/first_index_offset_test.cc",
"../../src/tint/transform/fold_constants_test.cc", "../../src/tint/transform/fold_constants_test.cc",
"../../src/tint/transform/fold_trivial_single_use_lets_test.cc", "../../src/tint/transform/fold_trivial_single_use_lets_test.cc",

View File

@ -20,13 +20,13 @@ FragIn tint_symbol_inner(FragIn in, float b) {
if ((in.mask == 0u)) { if ((in.mask == 0u)) {
return in; return in;
} }
FragIn const tint_symbol_4 = {.a=b, .mask=1u}; FragIn const tint_symbol_5 = {.a=b, .mask=1u};
return tint_symbol_4; return tint_symbol_5;
} }
fragment tint_symbol_3 tint_symbol(uint mask [[sample_mask]], tint_symbol_2 tint_symbol_1 [[stage_in]]) { 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 tint_symbol_4 = {.a=tint_symbol_1.a, .mask=mask};
FragIn const inner_result = tint_symbol_inner(tint_symbol_5, tint_symbol_1.b); FragIn const inner_result = tint_symbol_inner(tint_symbol_4, tint_symbol_1.b);
tint_symbol_3 wrapper_result = {}; tint_symbol_3 wrapper_result = {};
wrapper_result.a = inner_result.a; wrapper_result.a = inner_result.a;
wrapper_result.mask = inner_result.mask; wrapper_result.mask = inner_result.mask;

View File

@ -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_34_save = x_33;
int const x_35 = (*(tint_symbol_81)).numbers.arr[x_34_save]; int const x_35 = (*(tint_symbol_81)).numbers.arr[x_34_save];
QuicksortObject const x_943 = *(tint_symbol_81); 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}}; tint_array_wrapper const tint_symbol_3 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_3 = {.numbers=tint_symbol_2}; QuicksortObject const tint_symbol_4 = {.numbers=tint_symbol_3};
*(tint_symbol_81) = tint_symbol_3; *(tint_symbol_81) = tint_symbol_4;
*(tint_symbol_81) = x_943; *(tint_symbol_81) = x_943;
float2 const x_527 = float2(x_526[0], x_526[0]); float2 const x_527 = float2(x_526[0], x_526[0]);
int const x_36_save = x_32; int const x_36_save = x_32;
float3 const x_528 = float3(x_524[0], x_524[2], x_524[0]); float3 const x_528 = float3(x_524[0], x_524[2], x_524[0]);
(*(tint_symbol_81)).numbers.arr[x_36_save] = x_35; (*(tint_symbol_81)).numbers.arr[x_36_save] = x_35;
QuicksortObject const x_944 = *(tint_symbol_81); 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}}; tint_array_wrapper const tint_symbol_5 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_5 = {.numbers=tint_symbol_4}; QuicksortObject const tint_symbol_6 = {.numbers=tint_symbol_5};
*(tint_symbol_81) = tint_symbol_5; *(tint_symbol_81) = tint_symbol_6;
*(tint_symbol_81) = x_944; *(tint_symbol_81) = x_944;
float3 const x_529 = float3(x_526[1], x_526[2], x_526[0]); float3 const x_529 = float3(x_526[1], x_526[2], x_526[0]);
int const x_945 = *(i); 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] = 0;
(*(tint_symbol_81)).numbers.arr[x_36_save] = x_949; (*(tint_symbol_81)).numbers.arr[x_36_save] = x_949;
QuicksortObject const x_950 = *(tint_symbol_81); 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}}; tint_array_wrapper const tint_symbol_7 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_7 = {.numbers=tint_symbol_6}; QuicksortObject const tint_symbol_8 = {.numbers=tint_symbol_7};
*(tint_symbol_81) = tint_symbol_7; *(tint_symbol_81) = tint_symbol_8;
*(tint_symbol_81) = x_950; *(tint_symbol_81) = x_950;
float3 const x_532 = float3(x_528[0], x_528[1], x_528[0]); 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]; 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]); float3 const x_536 = float3(x_534[0], x_534[2], x_535[0]);
j_1 = 10; j_1 = 10;
QuicksortObject const x_960 = *(tint_symbol_82); 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}}; tint_array_wrapper const tint_symbol_9 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_9 = {.numbers=tint_symbol_8}; QuicksortObject const tint_symbol_10 = {.numbers=tint_symbol_9};
*(tint_symbol_82) = tint_symbol_9; *(tint_symbol_82) = tint_symbol_10;
*(tint_symbol_82) = x_960; *(tint_symbol_82) = x_960;
while (true) { while (true) {
int const x_961 = pivot; 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; pivot = x_963;
x_537 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]); 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); 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}}; tint_array_wrapper const tint_symbol_11 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10}; QuicksortObject const tint_symbol_12 = {.numbers=tint_symbol_11};
*(tint_symbol_82) = tint_symbol_11; *(tint_symbol_82) = tint_symbol_12;
*(tint_symbol_82) = x_964; *(tint_symbol_82) = x_964;
int const x_56 = *(h); int const x_56 = *(h);
int const x_965 = *(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; param_1 = x_971;
int const x_62 = (*(tint_symbol_82)).numbers.arr[x_61_save]; int const x_62 = (*(tint_symbol_82)).numbers.arr[x_61_save];
QuicksortObject const x_972 = *(tint_symbol_82); 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}}; tint_array_wrapper const tint_symbol_13 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_13 = {.numbers=tint_symbol_12}; QuicksortObject const tint_symbol_14 = {.numbers=tint_symbol_13};
*(tint_symbol_82) = tint_symbol_13; *(tint_symbol_82) = tint_symbol_14;
*(tint_symbol_82) = x_972; *(tint_symbol_82) = x_972;
int const x_63 = pivot; int const x_63 = pivot;
float2 const x_540 = float2(float3(1.0f, 2.0f, 3.0f)[1], x_534[2]); 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; param_1 = x_985;
} }
QuicksortObject const x_986 = *(tint_symbol_82); 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}}; tint_array_wrapper const tint_symbol_15 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_15 = {.numbers=tint_symbol_14}; QuicksortObject const tint_symbol_16 = {.numbers=tint_symbol_15};
*(tint_symbol_82) = tint_symbol_15; *(tint_symbol_82) = tint_symbol_16;
*(tint_symbol_82) = x_986; *(tint_symbol_82) = x_986;
{ {
int const x_987 = *(h); 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; (*(tint_symbol_82)).numbers.arr[x_42_save] = x_993;
float2 const x_549 = float2(x_534[0], x_534[1]); float2 const x_549 = float2(x_534[0], x_534[1]);
QuicksortObject const x_994 = *(tint_symbol_82); 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}}; tint_array_wrapper const tint_symbol_17 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_17 = {.numbers=tint_symbol_16}; QuicksortObject const tint_symbol_18 = {.numbers=tint_symbol_17};
*(tint_symbol_82) = tint_symbol_17; *(tint_symbol_82) = tint_symbol_18;
*(tint_symbol_82) = x_994; *(tint_symbol_82) = x_994;
int const x_995 = *(h); int const x_995 = *(h);
*(h) = 0; *(h) = 0;
@ -372,8 +372,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
param_5 = x_1007; param_5 = x_1007;
h_1 = 9; h_1 = 9;
tint_array_wrapper const x_1008 = stack; 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}}; tint_array_wrapper const tint_symbol_19 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_18; stack = tint_symbol_19;
stack = x_1008; stack = x_1008;
float2 const x_556 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[1]); 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; int const x_1009 = param_5;
@ -406,15 +406,15 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
param_4 = x_1015; param_4 = x_1015;
int const x_95 = l_1; int const x_95 = l_1;
QuicksortObject const x_1016 = *(tint_symbol_83); 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}}; tint_array_wrapper const tint_symbol_20 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_20 = {.numbers=tint_symbol_19}; QuicksortObject const tint_symbol_21 = {.numbers=tint_symbol_20};
*(tint_symbol_83) = tint_symbol_20; *(tint_symbol_83) = tint_symbol_21;
*(tint_symbol_83) = x_1016; *(tint_symbol_83) = x_1016;
float3 const x_560 = float3(x_559[1], x_559[0], x_557[0]); float3 const x_560 = float3(x_559[1], x_559[0], x_557[0]);
int const x_96_save = x_94; int const x_96_save = x_94;
tint_array_wrapper const x_1017 = stack; 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}}; tint_array_wrapper const tint_symbol_22 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_21; stack = tint_symbol_22;
stack = x_1017; stack = x_1017;
float3 const x_561 = float3(x_556[1], x_556[1], x_556[1]); float3 const x_561 = float3(x_556[1], x_556[1], x_556[1]);
int const x_1018 = l_1; int const x_1018 = l_1;
@ -464,13 +464,13 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
h_1 = 0; h_1 = 0;
h_1 = x_1028; h_1 = x_1028;
tint_array_wrapper const x_1029 = stack; 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}}; tint_array_wrapper const tint_symbol_23 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_22; stack = tint_symbol_23;
stack = x_1029; stack = x_1029;
int const x_106 = top; int const x_106 = top;
tint_array_wrapper const x_1030 = stack; 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}}; tint_array_wrapper const tint_symbol_24 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_23; stack = tint_symbol_24;
stack = x_1030; stack = x_1030;
float2 const x_567 = float2(x_558[0], x_564[2]); float2 const x_567 = float2(x_558[0], x_564[2]);
int const x_1031 = param_4; int const x_1031 = param_4;
@ -481,9 +481,9 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
break; break;
} }
QuicksortObject const x_1032 = *(tint_symbol_83); 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}}; tint_array_wrapper const tint_symbol_25 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_25 = {.numbers=tint_symbol_24}; QuicksortObject const tint_symbol_26 = {.numbers=tint_symbol_25};
*(tint_symbol_83) = tint_symbol_25; *(tint_symbol_83) = tint_symbol_26;
*(tint_symbol_83) = x_1032; *(tint_symbol_83) = x_1032;
float3 const x_568 = float3(x_559[1], x_559[0], x_563[1]); float3 const x_568 = float3(x_559[1], x_559[0], x_563[1]);
int const x_1033 = param_4; 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; stack.arr[x_96_save] = x_1037;
int const x_111 = stack.arr[x_110_save]; int const x_111 = stack.arr[x_110_save];
tint_array_wrapper const x_1038 = stack; 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}}; tint_array_wrapper const tint_symbol_27 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_26; stack = tint_symbol_27;
stack = x_1038; stack = x_1038;
float3 const x_571 = float3(x_559[1], x_559[0], x_564[1]); float3 const x_571 = float3(x_559[1], x_559[0], x_564[1]);
int const x_1039 = l_1; int const x_1039 = l_1;
@ -517,8 +517,8 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
l_1 = x_1039; l_1 = x_1039;
h_1 = x_111; h_1 = x_111;
tint_array_wrapper const x_1040 = stack; 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}}; tint_array_wrapper const tint_symbol_28 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_27; stack = tint_symbol_28;
stack = x_1040; stack = x_1040;
float2 const x_572 = float2(x_562[1], x_561[1]); float2 const x_572 = float2(x_562[1], x_561[1]);
int const x_1041 = p; 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] = 0;
stack.arr[x_100_save] = x_1061; stack.arr[x_100_save] = x_1061;
tint_array_wrapper const x_1062 = stack; 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}}; tint_array_wrapper const tint_symbol_29 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_28; stack = tint_symbol_29;
stack = x_1062; stack = x_1062;
float2 const x_584 = float2(x_569[2], x_569[1]); 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]); 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; h_1 = x_1070;
top = x_133; top = x_133;
tint_array_wrapper const x_1071 = stack; 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}}; tint_array_wrapper const tint_symbol_30 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_29; stack = tint_symbol_30;
stack = x_1071; stack = x_1071;
int const x_134 = p; int const x_134 = p;
float2 const x_590 = float2(x_576[0], x_573[1]); 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; 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]); 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); 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}}; tint_array_wrapper const tint_symbol_31 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_31 = {.numbers=tint_symbol_30}; QuicksortObject const tint_symbol_32 = {.numbers=tint_symbol_31};
*(tint_symbol_83) = tint_symbol_31; *(tint_symbol_83) = tint_symbol_32;
*(tint_symbol_83) = x_1077; *(tint_symbol_83) = x_1077;
int const x_137 = p; int const x_137 = p;
int const x_1078 = stack.arr[x_114_save]; 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]); float2 const x_601 = float2(x_563[0], x_563[1]);
stack.arr[x_147_save] = as_type<int>((1u + as_type<uint>(x_145))); stack.arr[x_147_save] = as_type<int>((1u + as_type<uint>(x_145)));
tint_array_wrapper const x_1093 = stack; 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}}; tint_array_wrapper const tint_symbol_33 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_32; stack = tint_symbol_33;
stack = x_1093; stack = x_1093;
int const x_148 = top; int const x_148 = top;
int const x_1094 = stack.arr[x_114_save]; 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; stack.arr[x_114_save] = x_1094;
float2 const x_602 = float2(x_565[1], x_599[1]); float2 const x_602 = float2(x_565[1], x_599[1]);
tint_array_wrapper const x_1095 = stack; 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}}; tint_array_wrapper const tint_symbol_34 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
stack = tint_symbol_33; stack = tint_symbol_34;
stack = x_1095; stack = x_1095;
int const x_149 = as_type<int>((as_type<uint>(x_148) + as_type<uint>(as_type<int>(1u)))); int const x_149 = as_type<int>((as_type<uint>(x_148) + as_type<uint>(as_type<int>(1u))));
int const x_1096 = stack.arr[x_147_save]; 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; l_1 = x_1103;
float2 const x_604 = float2(x_563[2], x_564[0]); float2 const x_604 = float2(x_563[2], x_564[0]);
QuicksortObject const x_1104 = *(tint_symbol_83); 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}}; tint_array_wrapper const tint_symbol_35 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_35 = {.numbers=tint_symbol_34}; QuicksortObject const tint_symbol_36 = {.numbers=tint_symbol_35};
*(tint_symbol_83) = tint_symbol_35; *(tint_symbol_83) = tint_symbol_36;
*(tint_symbol_83) = x_1104; *(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; uv = x_717;
i_2 = 0; i_2 = 0;
QuicksortObject const x_721 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_37 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_37 = {.numbers=tint_symbol_36}; QuicksortObject const tint_symbol_38 = {.numbers=tint_symbol_37};
*(tint_symbol_84) = tint_symbol_37; *(tint_symbol_84) = tint_symbol_38;
*(tint_symbol_84) = x_721; *(tint_symbol_84) = x_721;
if (true) { if (true) {
QuicksortObject const x_722 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_39 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38}; QuicksortObject const tint_symbol_40 = {.numbers=tint_symbol_39};
*(tint_symbol_84) = tint_symbol_39; *(tint_symbol_84) = tint_symbol_40;
*(tint_symbol_84) = x_722; *(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]); 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; 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; color = x_725;
float2 const x_432 = float2(x_431[1], x_431[1]); float2 const x_432 = float2(x_431[1], x_431[1]);
QuicksortObject const x_726 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_41 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_41 = {.numbers=tint_symbol_40}; QuicksortObject const tint_symbol_42 = {.numbers=tint_symbol_41};
*(tint_symbol_84) = tint_symbol_41; *(tint_symbol_84) = tint_symbol_42;
*(tint_symbol_84) = x_726; *(tint_symbol_84) = x_726;
} }
QuicksortObject const x_756 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_43 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42}; QuicksortObject const tint_symbol_44 = {.numbers=tint_symbol_43};
*(tint_symbol_84) = tint_symbol_43; *(tint_symbol_84) = tint_symbol_44;
*(tint_symbol_84) = x_756; *(tint_symbol_84) = x_756;
float2 const x_446 = float2(float2()[0], float2()[0]); float2 const x_446 = float2(float2()[0], float2()[0]);
int const x_757 = i_2; 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; i_2 = x_757;
quicksort_(tint_symbol_84); quicksort_(tint_symbol_84);
QuicksortObject const x_758 = *(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}}; tint_array_wrapper const tint_symbol_45 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_45 = {.numbers=tint_symbol_44}; QuicksortObject const tint_symbol_46 = {.numbers=tint_symbol_45};
*(tint_symbol_84) = tint_symbol_45; *(tint_symbol_84) = tint_symbol_46;
*(tint_symbol_84) = x_758; *(tint_symbol_84) = x_758;
float4 const x_184 = *(tint_symbol_85); float4 const x_184 = *(tint_symbol_85);
float2 const x_759 = uv; 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]); 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]); float3 const x_448 = float3(x_185[1], x_446[1], x_446[1]);
QuicksortObject const x_761 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_47 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_47 = {.numbers=tint_symbol_46}; QuicksortObject const tint_symbol_48 = {.numbers=tint_symbol_47};
*(tint_symbol_84) = tint_symbol_47; *(tint_symbol_84) = tint_symbol_48;
*(tint_symbol_84) = x_761; *(tint_symbol_84) = x_761;
float2 const x_762 = uv; float2 const x_762 = uv;
uv = float2(0.0f, 0.0f); uv = float2(0.0f, 0.0f);
uv = x_762; uv = x_762;
float2 const x_191 = (*(tint_symbol_86)).resolution; float2 const x_191 = (*(tint_symbol_86)).resolution;
QuicksortObject const x_763 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_49 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48}; QuicksortObject const tint_symbol_50 = {.numbers=tint_symbol_49};
*(tint_symbol_84) = tint_symbol_49; *(tint_symbol_84) = tint_symbol_50;
*(tint_symbol_84) = x_763; *(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_449 = float3(x_184[1], float3(1.0f, 2.0f, 3.0f)[2], x_184[3]);
float3 const x_764 = color; 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; color = x_764;
float2 const x_192 = (x_185 / x_191); float2 const x_192 = (x_185 / x_191);
QuicksortObject const x_765 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_51 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_51 = {.numbers=tint_symbol_50}; QuicksortObject const tint_symbol_52 = {.numbers=tint_symbol_51};
*(tint_symbol_84) = tint_symbol_51; *(tint_symbol_84) = tint_symbol_52;
*(tint_symbol_84) = x_765; *(tint_symbol_84) = x_765;
float2 const x_450 = float2(x_447[0], x_185[1]); float2 const x_450 = float2(x_447[0], x_185[1]);
float3 const x_766 = color; 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; color = x_768;
float3 const x_451 = float3(x_185[0], x_185[1], x_446[1]); float3 const x_451 = float3(x_185[0], x_185[1], x_446[1]);
QuicksortObject const x_769 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_53 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_53 = {.numbers=tint_symbol_52}; QuicksortObject const tint_symbol_54 = {.numbers=tint_symbol_53};
*(tint_symbol_84) = tint_symbol_53; *(tint_symbol_84) = tint_symbol_54;
*(tint_symbol_84) = x_769; *(tint_symbol_84) = x_769;
int const x_770 = (*(tint_symbol_84)).numbers.arr[0u]; int const x_770 = (*(tint_symbol_84)).numbers.arr[0u];
(*(tint_symbol_84)).numbers.arr[0u] = 0; (*(tint_symbol_84)).numbers.arr[0u] = 0;
(*(tint_symbol_84)).numbers.arr[0u] = x_770; (*(tint_symbol_84)).numbers.arr[0u] = x_770;
int const x_201 = (*(tint_symbol_84)).numbers.arr[0u]; int const x_201 = (*(tint_symbol_84)).numbers.arr[0u];
QuicksortObject const x_771 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_55 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_55 = {.numbers=tint_symbol_54}; QuicksortObject const tint_symbol_56 = {.numbers=tint_symbol_55};
*(tint_symbol_84) = tint_symbol_55; *(tint_symbol_84) = tint_symbol_56;
*(tint_symbol_84) = x_771; *(tint_symbol_84) = x_771;
int const x_772 = (*(tint_symbol_84)).numbers.arr[0u]; int const x_772 = (*(tint_symbol_84)).numbers.arr[0u];
(*(tint_symbol_84)).numbers.arr[0u] = 0; (*(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 = 0;
i_2 = x_774; i_2 = x_774;
QuicksortObject const x_775 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_57 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_57 = {.numbers=tint_symbol_56}; QuicksortObject const tint_symbol_58 = {.numbers=tint_symbol_57};
*(tint_symbol_84) = tint_symbol_57; *(tint_symbol_84) = tint_symbol_58;
*(tint_symbol_84) = x_775; *(tint_symbol_84) = x_775;
float3 const x_453 = float3(x_451[0], x_450[0], x_450[1]); float3 const x_453 = float3(x_451[0], x_450[0], x_450[1]);
color[0] = (x_206 + float(x_201)); 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] = 0.0f;
uv[0] = x_778; uv[0] = x_778;
QuicksortObject const x_779 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_59 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_59 = {.numbers=tint_symbol_58}; QuicksortObject const tint_symbol_60 = {.numbers=tint_symbol_59};
*(tint_symbol_84) = tint_symbol_59; *(tint_symbol_84) = tint_symbol_60;
*(tint_symbol_84) = x_779; *(tint_symbol_84) = x_779;
if ((x_210 > 0.25f)) { if ((x_210 > 0.25f)) {
int const x_780 = i_2; 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; uv[0] = x_782;
int const x_216 = (*(tint_symbol_84)).numbers.arr[1]; int const x_216 = (*(tint_symbol_84)).numbers.arr[1];
QuicksortObject const x_783 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_61 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_61 = {.numbers=tint_symbol_60}; QuicksortObject const tint_symbol_62 = {.numbers=tint_symbol_61};
*(tint_symbol_84) = tint_symbol_61; *(tint_symbol_84) = tint_symbol_62;
*(tint_symbol_84) = x_783; *(tint_symbol_84) = x_783;
float2 const x_457 = float2(x_454[0], x_454[0]); float2 const x_457 = float2(x_454[0], x_454[0]);
float2 const x_784 = uv; float2 const x_784 = uv;
uv = float2(0.0f, 0.0f); uv = float2(0.0f, 0.0f);
uv = x_784; uv = x_784;
QuicksortObject const x_785 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_63 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62}; QuicksortObject const tint_symbol_64 = {.numbers=tint_symbol_63};
*(tint_symbol_84) = tint_symbol_63; *(tint_symbol_84) = tint_symbol_64;
*(tint_symbol_84) = x_785; *(tint_symbol_84) = x_785;
float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f)[2], float2()[1]); float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f)[2], float2()[1]);
int const x_786 = i_2; 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] = 0.0f;
color[0] = x_816; color[0] = x_816;
QuicksortObject const x_817 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_65 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_65 = {.numbers=tint_symbol_64}; QuicksortObject const tint_symbol_66 = {.numbers=tint_symbol_65};
*(tint_symbol_84) = tint_symbol_65; *(tint_symbol_84) = tint_symbol_66;
*(tint_symbol_84) = x_817; *(tint_symbol_84) = x_817;
float3 const x_468 = float3(x_467[0], x_467[0], x_467[0]); float3 const x_468 = float3(x_467[0], x_467[0], x_467[0]);
float const x_818 = uv[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; uv[0] = x_844;
float3 const x_482 = float3(x_455[0], x_475[1], x_455[1]); float3 const x_482 = float3(x_455[0], x_475[1], x_455[1]);
QuicksortObject const x_845 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_67 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_67 = {.numbers=tint_symbol_66}; QuicksortObject const tint_symbol_68 = {.numbers=tint_symbol_67};
*(tint_symbol_84) = tint_symbol_67; *(tint_symbol_84) = tint_symbol_68;
*(tint_symbol_84) = x_845; *(tint_symbol_84) = x_845;
float const x_846 = uv[1]; float const x_846 = uv[1];
uv[1] = 0.0f; 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; (*(tint_symbol_84)).numbers.arr[6u] = x_863;
float2 const x_490 = float2(x_480[2], x_480[2]); float2 const x_490 = float2(x_480[2], x_480[2]);
QuicksortObject const x_864 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_69 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_69 = {.numbers=tint_symbol_68}; QuicksortObject const tint_symbol_70 = {.numbers=tint_symbol_69};
*(tint_symbol_84) = tint_symbol_69; *(tint_symbol_84) = tint_symbol_70;
*(tint_symbol_84) = x_864; *(tint_symbol_84) = x_864;
color[1] = (float(x_280) + x_283); color[1] = (float(x_280) + x_283);
float const x_865 = color[0]; 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; color[0] = x_867;
float const x_287 = uv[1]; float const x_287 = uv[1];
QuicksortObject const x_868 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_71 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_71 = {.numbers=tint_symbol_70}; QuicksortObject const tint_symbol_72 = {.numbers=tint_symbol_71};
*(tint_symbol_84) = tint_symbol_71; *(tint_symbol_84) = tint_symbol_72;
*(tint_symbol_84) = x_868; *(tint_symbol_84) = x_868;
float2 const x_493 = float2(x_475[0], x_475[1]); float2 const x_493 = float2(x_475[0], x_475[1]);
float const x_869 = uv[0]; 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] = 0.0f;
uv[0] = x_910; uv[0] = x_910;
QuicksortObject const x_911 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_73 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_73 = {.numbers=tint_symbol_72}; QuicksortObject const tint_symbol_74 = {.numbers=tint_symbol_73};
*(tint_symbol_84) = tint_symbol_73; *(tint_symbol_84) = tint_symbol_74;
*(tint_symbol_84) = x_911; *(tint_symbol_84) = x_911;
float3 const x_513 = float3(x_505[2], x_505[0], x_448[0]); float3 const x_513 = float3(x_505[2], x_505[0], x_448[0]);
int const x_912 = (*(tint_symbol_84)).numbers.arr[8]; 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] = 0.0f;
uv[0] = x_923; uv[0] = x_923;
QuicksortObject const x_924 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_75 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_75 = {.numbers=tint_symbol_74}; QuicksortObject const tint_symbol_76 = {.numbers=tint_symbol_75};
*(tint_symbol_84) = tint_symbol_75; *(tint_symbol_84) = tint_symbol_76;
*(tint_symbol_84) = x_924; *(tint_symbol_84) = x_924;
QuicksortObject const x_925 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_77 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_77 = {.numbers=tint_symbol_76}; QuicksortObject const tint_symbol_78 = {.numbers=tint_symbol_77};
*(tint_symbol_84) = tint_symbol_77; *(tint_symbol_84) = tint_symbol_78;
*(tint_symbol_84) = x_925; *(tint_symbol_84) = x_925;
float const x_926 = color[1]; float const x_926 = color[1];
color[1] = 0.0f; 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; uv[0] = x_929;
*(tint_symbol_87) = x_330; *(tint_symbol_87) = x_330;
QuicksortObject const x_930 = *(tint_symbol_84); 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}}; tint_array_wrapper const tint_symbol_79 = {.arr={0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};
QuicksortObject const tint_symbol_79 = {.numbers=tint_symbol_78}; QuicksortObject const tint_symbol_80 = {.numbers=tint_symbol_79};
*(tint_symbol_84) = tint_symbol_79; *(tint_symbol_84) = tint_symbol_80;
*(tint_symbol_84) = x_930; *(tint_symbol_84) = x_930;
float3 const x_522 = float3(x_330[3], x_330[1], x_493[0]); float3 const x_522 = float3(x_330[3], x_330[1], x_493[0]);
float const x_931 = color[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) { 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; *(tint_symbol_88) = gl_FragCoord_param;
main_1(tint_symbol_89, tint_symbol_88, tint_symbol_90, tint_symbol_91); 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)}; main_out const tint_symbol_2 = {.x_GLF_color_1=*(tint_symbol_91)};
return tint_symbol_80; return tint_symbol_2;
} }
fragment tint_symbol_1 tint_symbol(const constant buf0* tint_symbol_94 [[buffer(0)]], float4 gl_FragCoord_param [[position]]) { fragment tint_symbol_1 tint_symbol(const constant buf0* tint_symbol_94 [[buffer(0)]], float4 gl_FragCoord_param [[position]]) {

View File

@ -1,51 +1,11 @@
#version 310 es SKIP: FAILED
uniform highp sampler2D arg_0_1; C:\src\tint2\src\writer\glsl\generator_impl.cc:2510 internal compiler error: Multiplanar external texture transform was not run.
void textureDimensions_ba1481() {
ivec2 res = textureSize(arg_0_1, 0);
}
vec4 vertex_main() {
textureDimensions_ba1481();
return vec4(0.0f, 0.0f, 0.0f, 0.0f);
}
void main() { ********************************************************************
vec4 inner_result = vertex_main(); * The tint shader compiler has encountered an unexpected error. *
gl_Position = inner_result; * *
gl_Position.y = -(gl_Position.y); * Please help us fix this issue by submitting a bug report at *
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); * crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,34 +1,11 @@
Texture2D<float4> arg_0 : register(t0, space1); SKIP: FAILED
void textureDimensions_ba1481() { C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run.
int2 tint_tmp;
arg_0.GetDimensions(tint_tmp.x, tint_tmp.y);
int2 res = tint_tmp;
}
struct tint_symbol {
float4 value : SV_Position;
};
float4 vertex_main_inner() { ********************************************************************
textureDimensions_ba1481(); * The tint shader compiler has encountered an unexpected error. *
return float4(0.0f, 0.0f, 0.0f, 0.0f); * *
} * Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,33 +1,11 @@
#include <metal_stdlib> SKIP: FAILED
using namespace metal; C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run.
void textureDimensions_ba1481(texture2d<float, access::sample> tint_symbol_1) {
int2 res = int2(tint_symbol_1.get_width(), tint_symbol_1.get_height());
}
struct tint_symbol {
float4 value [[position]];
};
float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
textureDimensions_ba1481(tint_symbol_2);
return float4();
}
vertex tint_symbol vertex_main(texture2d<float, access::sample> 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<float, access::sample> tint_symbol_4 [[texture(0)]]) {
textureDimensions_ba1481(tint_symbol_4);
return;
}
kernel void compute_main(texture2d<float, access::sample> 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. *
********************************************************************

View File

@ -1,76 +1,11 @@
; SPIR-V SKIP: FAILED
; Version: 1.3
; Generator: Google Tint Compiler; 0 C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run.
; Bound: 38
; Schema: 0
OpCapability Shader ********************************************************************
OpCapability ImageQuery * The tint shader compiler has encountered an unexpected error. *
OpMemoryModel Logical GLSL450 * *
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size * Please help us fix this issue by submitting a bug report at *
OpEntryPoint Fragment %fragment_main "fragment_main" * crbug.com/tint with the source program that triggered the bug. *
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

View File

@ -1,51 +1,11 @@
#version 310 es SKIP: FAILED
uniform highp sampler2D arg_0_1; C:\src\tint2\src\writer\glsl\generator_impl.cc:2510 internal compiler error: Multiplanar external texture transform was not run.
void textureLoad_8acf41() {
vec4 res = texelFetch(arg_0_1, ivec2(0, 0), 0);
}
vec4 vertex_main() {
textureLoad_8acf41();
return vec4(0.0f, 0.0f, 0.0f, 0.0f);
}
void main() { ********************************************************************
vec4 inner_result = vertex_main(); * The tint shader compiler has encountered an unexpected error. *
gl_Position = inner_result; * *
gl_Position.y = -(gl_Position.y); * Please help us fix this issue by submitting a bug report at *
gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); * crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,32 +1,11 @@
Texture2D<float4> arg_0 : register(t0, space1); SKIP: FAILED
void textureLoad_8acf41() { C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run.
float4 res = arg_0.Load(int3(0, 0, 0));
}
struct tint_symbol {
float4 value : SV_Position;
};
float4 vertex_main_inner() { ********************************************************************
textureLoad_8acf41(); * The tint shader compiler has encountered an unexpected error. *
return float4(0.0f, 0.0f, 0.0f, 0.0f); * *
} * Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,33 +1,11 @@
#include <metal_stdlib> SKIP: FAILED
using namespace metal; C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run.
void textureLoad_8acf41(texture2d<float, access::sample> tint_symbol_1) {
float4 res = tint_symbol_1.read(uint2(int2()), 0);
}
struct tint_symbol {
float4 value [[position]];
};
float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_2) {
textureLoad_8acf41(tint_symbol_2);
return float4();
}
vertex tint_symbol vertex_main(texture2d<float, access::sample> 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<float, access::sample> tint_symbol_4 [[texture(0)]]) {
textureLoad_8acf41(tint_symbol_4);
return;
}
kernel void compute_main(texture2d<float, access::sample> 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. *
********************************************************************

View File

@ -1,75 +1,11 @@
; SPIR-V SKIP: FAILED
; Version: 1.3
; Generator: Google Tint Compiler; 0 C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run.
; Bound: 38
; Schema: 0
OpCapability Shader ********************************************************************
OpMemoryModel Logical GLSL450 * The tint shader compiler has encountered an unexpected error. *
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size * *
OpEntryPoint Fragment %fragment_main "fragment_main" * Please help us fix this issue by submitting a bug report at *
OpEntryPoint GLCompute %compute_main "compute_main" * crbug.com/tint with the source program that triggered the bug. *
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

View File

@ -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(); * The tint shader compiler has encountered an unexpected error. *
return vec4(0.0f, 0.0f, 0.0f, 0.0f); * *
} * Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,33 +1,11 @@
Texture2D<float4> arg_0 : register(t0, space1); SKIP: FAILED
SamplerState arg_1 : register(s1, space1);
void textureSampleLevel_979816() { C:\src\tint2\src\writer\hlsl\generator_impl.cc:3632 internal compiler error: Multiplanar external texture transform was not run.
float4 res = arg_0.SampleLevel(arg_1, float2(0.0f, 0.0f), 0.0f);
}
struct tint_symbol {
float4 value : SV_Position;
};
float4 vertex_main_inner() { ********************************************************************
textureSampleLevel_979816(); * The tint shader compiler has encountered an unexpected error. *
return float4(0.0f, 0.0f, 0.0f, 0.0f); * *
} * Please help us fix this issue by submitting a bug report at *
* crbug.com/tint with the source program that triggered the bug. *
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;
}

View File

@ -1,33 +1,11 @@
#include <metal_stdlib> SKIP: FAILED
using namespace metal; C:\src\tint2\src\writer\msl\generator_impl.cc:2344 internal compiler error: Multiplanar external texture transform was not run.
void textureSampleLevel_979816(texture2d<float, access::sample> tint_symbol_1, sampler tint_symbol_2) {
float4 res = tint_symbol_1.sample(tint_symbol_2, float2(), level(0.0f));
}
struct tint_symbol {
float4 value [[position]];
};
float4 vertex_main_inner(texture2d<float, access::sample> tint_symbol_3, sampler tint_symbol_4) {
textureSampleLevel_979816(tint_symbol_3, tint_symbol_4);
return float4();
}
vertex tint_symbol vertex_main(texture2d<float, access::sample> 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<float, access::sample> 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<float, access::sample> 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. *
********************************************************************

View File

@ -1,83 +1,11 @@
; SPIR-V SKIP: FAILED
; Version: 1.3
; Generator: Google Tint Compiler; 0 C:\src\tint2\src\writer\spirv\builder.cc:4013 internal compiler error: Multiplanar external texture transform was not run.
; Bound: 43
; Schema: 0
OpCapability Shader ********************************************************************
OpMemoryModel Logical GLSL450 * The tint shader compiler has encountered an unexpected error. *
OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size * *
OpEntryPoint Fragment %fragment_main "fragment_main" * Please help us fix this issue by submitting a bug report at *
OpEntryPoint GLCompute %compute_main "compute_main" * crbug.com/tint with the source program that triggered the bug. *
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