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:
parent
dbf75bc217
commit
6661b28d1e
|
@ -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",
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
|
@ -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_
|
|
|
@ -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
|
|
|
@ -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>();
|
||||||
|
|
|
@ -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>();
|
||||||
|
|
|
@ -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>();
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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 ||
|
||||||
|
|
|
@ -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",
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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]]) {
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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. *
|
||||||
|
********************************************************************
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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. *
|
||||||
|
********************************************************************
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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;
|
|
||||||
}
|
|
||||||
|
|
|
@ -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. *
|
||||||
|
********************************************************************
|
||||||
|
|
|
@ -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
|
|
||||||
|
|
Loading…
Reference in New Issue