mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-13 00:26:00 +00:00
tint/resolver: Evaluate const-expr swizzles
Bug: chromium:1341475 Change-Id: I2ac44824b08c460df759a96d0ba96f6045b60f74 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/95765 Reviewed-by: Dan Sinclair <dsinclair@chromium.org> Commit-Queue: Ben Clayton <bclayton@google.com>
This commit is contained in:
parent
d5f53ab580
commit
63e6f820d8
@ -1976,7 +1976,8 @@ sem::Expression* Resolver::MemberAccessor(const ast::MemberAccessorExpression* e
|
|||||||
ret = builder_->create<sem::Reference>(ret, ref->StorageClass(), ref->Access());
|
ret = builder_->create<sem::Reference>(ret, ref->StorageClass(), ref->Access());
|
||||||
}
|
}
|
||||||
|
|
||||||
return builder_->create<sem::StructMemberAccess>(expr, ret, current_statement_, object,
|
sem::Constant* val = nullptr; // TODO(crbug.com/tint/1611): Add structure support.
|
||||||
|
return builder_->create<sem::StructMemberAccess>(expr, ret, current_statement_, val, object,
|
||||||
member, has_side_effects, source_var);
|
member, has_side_effects, source_var);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2043,7 +2044,8 @@ sem::Expression* Resolver::MemberAccessor(const ast::MemberAccessorExpression* e
|
|||||||
// the swizzle.
|
// the swizzle.
|
||||||
ret = builder_->create<sem::Vector>(vec->type(), static_cast<uint32_t>(size));
|
ret = builder_->create<sem::Vector>(vec->type(), static_cast<uint32_t>(size));
|
||||||
}
|
}
|
||||||
return builder_->create<sem::Swizzle>(expr, ret, current_statement_, object,
|
auto* val = EvaluateSwizzleValue(object, ret, swizzle);
|
||||||
|
return builder_->create<sem::Swizzle>(expr, ret, current_statement_, val, object,
|
||||||
std::move(swizzle), has_side_effects, source_var);
|
std::move(swizzle), has_side_effects, source_var);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -218,6 +218,9 @@ class Resolver {
|
|||||||
const sem::Type* ty); // Note: ty is not an array or structure
|
const sem::Type* ty); // Note: ty is not an array or structure
|
||||||
const sem::Constant* EvaluateIndexValue(const sem::Expression* obj, const sem::Expression* idx);
|
const sem::Constant* EvaluateIndexValue(const sem::Expression* obj, const sem::Expression* idx);
|
||||||
const sem::Constant* EvaluateLiteralValue(const ast::LiteralExpression*, const sem::Type*);
|
const sem::Constant* EvaluateLiteralValue(const ast::LiteralExpression*, const sem::Type*);
|
||||||
|
const sem::Constant* EvaluateSwizzleValue(const sem::Expression* vector,
|
||||||
|
const sem::Type* type,
|
||||||
|
const std::vector<uint32_t>& indices);
|
||||||
const sem::Constant* EvaluateUnaryValue(const sem::Expression*,
|
const sem::Constant* EvaluateUnaryValue(const sem::Expression*,
|
||||||
const IntrinsicTable::UnaryOperator&);
|
const IntrinsicTable::UnaryOperator&);
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "src/tint/sem/abstract_float.h"
|
#include "src/tint/sem/abstract_float.h"
|
||||||
#include "src/tint/sem/abstract_int.h"
|
#include "src/tint/sem/abstract_int.h"
|
||||||
#include "src/tint/sem/constant.h"
|
#include "src/tint/sem/constant.h"
|
||||||
|
#include "src/tint/sem/member_accessor_expression.h"
|
||||||
#include "src/tint/sem/type_constructor.h"
|
#include "src/tint/sem/type_constructor.h"
|
||||||
#include "src/tint/utils/compiler_macros.h"
|
#include "src/tint/utils/compiler_macros.h"
|
||||||
#include "src/tint/utils/transform.h"
|
#include "src/tint/utils/transform.h"
|
||||||
@ -537,6 +538,22 @@ const sem::Constant* Resolver::EvaluateIndexValue(const sem::Expression* obj_exp
|
|||||||
return obj_val->Index(static_cast<size_t>(idx));
|
return obj_val->Index(static_cast<size_t>(idx));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const sem::Constant* Resolver::EvaluateSwizzleValue(const sem::Expression* vec_expr,
|
||||||
|
const sem::Type* type,
|
||||||
|
const std::vector<uint32_t>& indices) {
|
||||||
|
auto* vec_val = vec_expr->ConstantValue();
|
||||||
|
if (!vec_val) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
if (indices.size() == 1) {
|
||||||
|
return static_cast<const Constant*>(vec_val->Index(indices[0]));
|
||||||
|
} else {
|
||||||
|
auto values = utils::Transform(
|
||||||
|
indices, [&](uint32_t i) { return static_cast<const Constant*>(vec_val->Index(i)); });
|
||||||
|
return CreateComposite(*builder_, type, std::move(values));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
const sem::Constant* Resolver::EvaluateBitcastValue(const sem::Expression*, const sem::Type*) {
|
const sem::Constant* Resolver::EvaluateBitcastValue(const sem::Expression*, const sem::Type*) {
|
||||||
// TODO(crbug.com/tint/1581): Implement @const intrinsics
|
// TODO(crbug.com/tint/1581): Implement @const intrinsics
|
||||||
return nullptr;
|
return nullptr;
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "src/tint/resolver/resolver_test_helper.h"
|
#include "src/tint/resolver/resolver_test_helper.h"
|
||||||
#include "src/tint/sem/expression.h"
|
#include "src/tint/sem/expression.h"
|
||||||
#include "src/tint/sem/index_accessor_expression.h"
|
#include "src/tint/sem/index_accessor_expression.h"
|
||||||
|
#include "src/tint/sem/member_accessor_expression.h"
|
||||||
#include "src/tint/sem/test_helper.h"
|
#include "src/tint/sem/test_helper.h"
|
||||||
|
|
||||||
using namespace tint::number_suffixes; // NOLINT
|
using namespace tint::number_suffixes; // NOLINT
|
||||||
@ -1869,6 +1870,63 @@ TEST_F(ResolverConstantsTest, Vec3_Index_OOB_Low) {
|
|||||||
EXPECT_EQ(sem->ConstantValue()->As<i32>(), 1_i);
|
EXPECT_EQ(sem->ConstantValue()->As<i32>(), 1_i);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(ResolverConstantsTest, Vec3_Swizzle_Scalar) {
|
||||||
|
auto* expr = MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "y");
|
||||||
|
WrapInFunction(expr);
|
||||||
|
|
||||||
|
EXPECT_TRUE(r()->Resolve()) << r()->error();
|
||||||
|
|
||||||
|
auto* sem = Sem().Get(expr);
|
||||||
|
ASSERT_NE(sem, nullptr);
|
||||||
|
ASSERT_TRUE(sem->Type()->Is<sem::I32>());
|
||||||
|
EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
|
||||||
|
EXPECT_TRUE(sem->ConstantValue()->AllEqual());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->AnyZero());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->AllZero());
|
||||||
|
EXPECT_EQ(sem->ConstantValue()->As<i32>(), 2_i);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ResolverConstantsTest, Vec3_Swizzle_Vector) {
|
||||||
|
auto* expr = MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "zx");
|
||||||
|
WrapInFunction(expr);
|
||||||
|
|
||||||
|
EXPECT_TRUE(r()->Resolve()) << r()->error();
|
||||||
|
|
||||||
|
auto* sem = Sem().Get(expr);
|
||||||
|
ASSERT_NE(sem, nullptr);
|
||||||
|
auto* vec = sem->Type()->As<sem::Vector>();
|
||||||
|
ASSERT_NE(vec, nullptr);
|
||||||
|
EXPECT_EQ(vec->Width(), 2u);
|
||||||
|
EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
|
||||||
|
|
||||||
|
EXPECT_TRUE(sem->ConstantValue()->Index(0)->AllEqual());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->Index(0)->AnyZero());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->Index(0)->AllZero());
|
||||||
|
EXPECT_EQ(sem->ConstantValue()->Index(0)->As<f32>(), 3._a);
|
||||||
|
|
||||||
|
EXPECT_TRUE(sem->ConstantValue()->Index(1)->AllEqual());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->Index(1)->AnyZero());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->Index(1)->AllZero());
|
||||||
|
EXPECT_EQ(sem->ConstantValue()->Index(1)->As<f32>(), 1._a);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(ResolverConstantsTest, Vec3_Swizzle_Chain) {
|
||||||
|
auto* expr = // (1, 2, 3) -> (2, 3, 1) -> (3, 2) -> 2
|
||||||
|
MemberAccessor(MemberAccessor(MemberAccessor(vec3<i32>(1_i, 2_i, 3_i), "gbr"), "yx"), "y");
|
||||||
|
WrapInFunction(expr);
|
||||||
|
|
||||||
|
EXPECT_TRUE(r()->Resolve()) << r()->error();
|
||||||
|
|
||||||
|
auto* sem = Sem().Get(expr);
|
||||||
|
ASSERT_NE(sem, nullptr);
|
||||||
|
ASSERT_TRUE(sem->Type()->Is<sem::I32>());
|
||||||
|
EXPECT_TYPE(sem->ConstantValue()->Type(), sem->Type());
|
||||||
|
EXPECT_TRUE(sem->ConstantValue()->AllEqual());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->AnyZero());
|
||||||
|
EXPECT_FALSE(sem->ConstantValue()->AllZero());
|
||||||
|
EXPECT_EQ(sem->ConstantValue()->As<i32>(), 2_i);
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(ResolverConstantsTest, Mat3x2_Index) {
|
TEST_F(ResolverConstantsTest, Mat3x2_Index) {
|
||||||
auto* expr = IndexAccessor(
|
auto* expr = IndexAccessor(
|
||||||
mat3x2<f32>(vec2<f32>(1._a, 2._a), vec2<f32>(3._a, 4._a), vec2<f32>(5._a, 6._a)), 2_i);
|
mat3x2<f32>(vec2<f32>(1._a, 2._a), vec2<f32>(3._a, 4._a), vec2<f32>(5._a, 6._a)), 2_i);
|
||||||
|
@ -35,7 +35,7 @@ class Expression : public Castable<Expression, Node> {
|
|||||||
/// @param declaration the AST node
|
/// @param declaration the AST node
|
||||||
/// @param type the resolved type of the expression
|
/// @param type the resolved type of the expression
|
||||||
/// @param statement the statement that owns this expression
|
/// @param statement the statement that owns this expression
|
||||||
/// @param constant the constant value of the expression. May be invalid
|
/// @param constant the constant value of the expression. May be null
|
||||||
/// @param has_side_effects true if this expression may have side-effects
|
/// @param has_side_effects true if this expression may have side-effects
|
||||||
/// @param source_var the (optional) source variable for this expression
|
/// @param source_var the (optional) source variable for this expression
|
||||||
Expression(const ast::Expression* declaration,
|
Expression(const ast::Expression* declaration,
|
||||||
|
@ -35,7 +35,7 @@ class IndexAccessorExpression final : public Castable<IndexAccessorExpression, E
|
|||||||
/// @param object the object expression that is being indexed
|
/// @param object the object expression that is being indexed
|
||||||
/// @param index the index expression
|
/// @param index the index expression
|
||||||
/// @param statement the statement that owns this expression
|
/// @param statement the statement that owns this expression
|
||||||
/// @param constant the constant value of the expression. May be invalid
|
/// @param constant the constant value of the expression. May be null
|
||||||
/// @param has_side_effects whether this expression may have side effects
|
/// @param has_side_effects whether this expression may have side effects
|
||||||
/// @param source_var the (optional) source variable for this expression
|
/// @param source_var the (optional) source variable for this expression
|
||||||
IndexAccessorExpression(const ast::IndexAccessorExpression* declaration,
|
IndexAccessorExpression(const ast::IndexAccessorExpression* declaration,
|
||||||
|
@ -26,32 +26,36 @@ namespace tint::sem {
|
|||||||
MemberAccessorExpression::MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
|
MemberAccessorExpression::MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
const Variable* source_var /* = nullptr */)
|
const Variable* source_var /* = nullptr */)
|
||||||
: Base(declaration, type, statement, nullptr, has_side_effects, source_var), object_(object) {}
|
: Base(declaration, type, statement, constant, has_side_effects, source_var), object_(object) {}
|
||||||
|
|
||||||
MemberAccessorExpression::~MemberAccessorExpression() = default;
|
MemberAccessorExpression::~MemberAccessorExpression() = default;
|
||||||
|
|
||||||
StructMemberAccess::StructMemberAccess(const ast::MemberAccessorExpression* declaration,
|
StructMemberAccess::StructMemberAccess(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
const StructMember* member,
|
const StructMember* member,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
const Variable* source_var /* = nullptr */)
|
const Variable* source_var /* = nullptr */)
|
||||||
: Base(declaration, type, statement, object, has_side_effects, source_var), member_(member) {}
|
: Base(declaration, type, statement, constant, object, has_side_effects, source_var),
|
||||||
|
member_(member) {}
|
||||||
|
|
||||||
StructMemberAccess::~StructMemberAccess() = default;
|
StructMemberAccess::~StructMemberAccess() = default;
|
||||||
|
|
||||||
Swizzle::Swizzle(const ast::MemberAccessorExpression* declaration,
|
Swizzle::Swizzle(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
std::vector<uint32_t> indices,
|
std::vector<uint32_t> indices,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
const Variable* source_var /* = nullptr */)
|
const Variable* source_var /* = nullptr */)
|
||||||
: Base(declaration, type, statement, object, has_side_effects, source_var),
|
: Base(declaration, type, statement, constant, object, has_side_effects, source_var),
|
||||||
indices_(std::move(indices)) {}
|
indices_(std::move(indices)) {}
|
||||||
|
|
||||||
Swizzle::~Swizzle() = default;
|
Swizzle::~Swizzle() = default;
|
||||||
|
@ -38,12 +38,14 @@ class MemberAccessorExpression : public Castable<MemberAccessorExpression, Expre
|
|||||||
/// @param declaration the AST node
|
/// @param declaration the AST node
|
||||||
/// @param type the resolved type of the expression
|
/// @param type the resolved type of the expression
|
||||||
/// @param statement the statement that owns this expression
|
/// @param statement the statement that owns this expression
|
||||||
|
/// @param constant the constant value of the expression. May be null.
|
||||||
/// @param object the object that holds the member being accessed
|
/// @param object the object that holds the member being accessed
|
||||||
/// @param has_side_effects whether this expression may have side effects
|
/// @param has_side_effects whether this expression may have side effects
|
||||||
/// @param source_var the (optional) source variable for this expression
|
/// @param source_var the (optional) source variable for this expression
|
||||||
MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
|
MemberAccessorExpression(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
const Variable* source_var = nullptr);
|
const Variable* source_var = nullptr);
|
||||||
@ -67,6 +69,7 @@ class StructMemberAccess final : public Castable<StructMemberAccess, MemberAcces
|
|||||||
/// @param declaration the AST node
|
/// @param declaration the AST node
|
||||||
/// @param type the resolved type of the expression
|
/// @param type the resolved type of the expression
|
||||||
/// @param statement the statement that owns this expression
|
/// @param statement the statement that owns this expression
|
||||||
|
/// @param constant the constant value of the expression. May be null
|
||||||
/// @param object the object that holds the member being accessed
|
/// @param object the object that holds the member being accessed
|
||||||
/// @param member the structure member
|
/// @param member the structure member
|
||||||
/// @param has_side_effects whether this expression may have side effects
|
/// @param has_side_effects whether this expression may have side effects
|
||||||
@ -74,6 +77,7 @@ class StructMemberAccess final : public Castable<StructMemberAccess, MemberAcces
|
|||||||
StructMemberAccess(const ast::MemberAccessorExpression* declaration,
|
StructMemberAccess(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
const StructMember* member,
|
const StructMember* member,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
@ -97,6 +101,7 @@ class Swizzle final : public Castable<Swizzle, MemberAccessorExpression> {
|
|||||||
/// @param declaration the AST node
|
/// @param declaration the AST node
|
||||||
/// @param type the resolved type of the expression
|
/// @param type the resolved type of the expression
|
||||||
/// @param statement the statement that owns this expression
|
/// @param statement the statement that owns this expression
|
||||||
|
/// @param constant the constant value of the expression. May be null
|
||||||
/// @param object the object that holds the member being accessed
|
/// @param object the object that holds the member being accessed
|
||||||
/// @param indices the swizzle indices
|
/// @param indices the swizzle indices
|
||||||
/// @param has_side_effects whether this expression may have side effects
|
/// @param has_side_effects whether this expression may have side effects
|
||||||
@ -104,6 +109,7 @@ class Swizzle final : public Castable<Swizzle, MemberAccessorExpression> {
|
|||||||
Swizzle(const ast::MemberAccessorExpression* declaration,
|
Swizzle(const ast::MemberAccessorExpression* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
const Statement* statement,
|
const Statement* statement,
|
||||||
|
const Constant* constant,
|
||||||
const Expression* object,
|
const Expression* object,
|
||||||
std::vector<uint32_t> indices,
|
std::vector<uint32_t> indices,
|
||||||
bool has_side_effects,
|
bool has_side_effects,
|
||||||
|
@ -47,7 +47,7 @@ class Variable : public Castable<Variable, Node> {
|
|||||||
/// @param type the variable type
|
/// @param type the variable type
|
||||||
/// @param storage_class the variable storage class
|
/// @param storage_class the variable storage class
|
||||||
/// @param access the variable access control type
|
/// @param access the variable access control type
|
||||||
/// @param constant_value the constant value for the variable. May be invalid
|
/// @param constant_value the constant value for the variable. May be null
|
||||||
Variable(const ast::Variable* declaration,
|
Variable(const ast::Variable* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
ast::StorageClass storage_class,
|
ast::StorageClass storage_class,
|
||||||
@ -105,7 +105,7 @@ class LocalVariable final : public Castable<LocalVariable, Variable> {
|
|||||||
/// @param storage_class the variable storage class
|
/// @param storage_class the variable storage class
|
||||||
/// @param access the variable access control type
|
/// @param access the variable access control type
|
||||||
/// @param statement the statement that declared this local variable
|
/// @param statement the statement that declared this local variable
|
||||||
/// @param constant_value the constant value for the variable. May be invalid
|
/// @param constant_value the constant value for the variable. May be null
|
||||||
LocalVariable(const ast::Variable* declaration,
|
LocalVariable(const ast::Variable* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
ast::StorageClass storage_class,
|
ast::StorageClass storage_class,
|
||||||
@ -139,7 +139,7 @@ class GlobalVariable final : public Castable<GlobalVariable, Variable> {
|
|||||||
/// @param type the variable type
|
/// @param type the variable type
|
||||||
/// @param storage_class the variable storage class
|
/// @param storage_class the variable storage class
|
||||||
/// @param access the variable access control type
|
/// @param access the variable access control type
|
||||||
/// @param constant_value the constant value for the variable. May be invalid
|
/// @param constant_value the constant value for the variable. May be null
|
||||||
/// @param binding_point the optional resource binding point of the variable
|
/// @param binding_point the optional resource binding point of the variable
|
||||||
GlobalVariable(const ast::Variable* declaration,
|
GlobalVariable(const ast::Variable* declaration,
|
||||||
const sem::Type* type,
|
const sem::Type* type,
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float x_24 = vec3(4.0f, 5.0f, 6.0f).y;
|
float x_24 = 5.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
void main_1() {
|
void main_1() {
|
||||||
const float x_24 = float3(4.0f, 5.0f, 6.0f).y;
|
const float x_24 = 5.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float const x_24 = float3(4.0f, 5.0f, 6.0f)[1];
|
float const x_24 = 5.0f;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 28
|
; Bound: 10
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -12,31 +12,13 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%float = OpTypeFloat 32
|
%float = OpTypeFloat 32
|
||||||
%v3float = OpTypeVector %float 3
|
|
||||||
%mat3v3float = OpTypeMatrix %v3float 3
|
|
||||||
%float_1 = OpConstant %float 1
|
|
||||||
%float_2 = OpConstant %float 2
|
|
||||||
%float_3 = OpConstant %float 3
|
|
||||||
%11 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
|
||||||
%float_4 = OpConstant %float 4
|
|
||||||
%float_5 = OpConstant %float 5
|
%float_5 = OpConstant %float 5
|
||||||
%float_6 = OpConstant %float 6
|
|
||||||
%15 = OpConstantComposite %v3float %float_4 %float_5 %float_6
|
|
||||||
%float_7 = OpConstant %float 7
|
|
||||||
%float_8 = OpConstant %float 8
|
|
||||||
%float_9 = OpConstant %float 9
|
|
||||||
%19 = OpConstantComposite %v3float %float_7 %float_8 %float_9
|
|
||||||
%20 = OpConstantComposite %mat3v3float %11 %15 %19
|
|
||||||
%uint = OpTypeInt 32 0
|
|
||||||
%uint_1 = OpConstant %uint 1
|
|
||||||
%main_1 = OpFunction %void None %1
|
%main_1 = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
%23 = OpCompositeExtract %v3float %20 1
|
|
||||||
%24 = OpCompositeExtract %float %23 1
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %1
|
%main = OpFunction %void None %1
|
||||||
%26 = OpLabel
|
%8 = OpLabel
|
||||||
%27 = OpFunctionCall %void %main_1
|
%9 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
#version 310 es
|
#version 310 es
|
||||||
|
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float x_11 = vec3(1.0f, 2.0f, 3.0f).y;
|
float x_11 = 2.0f;
|
||||||
vec2 x_13 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
|
vec2 x_13 = vec2(1.0f, 3.0f);
|
||||||
vec3 x_14 = vec3(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
|
vec3 x_14 = vec3(1.0f, 3.0f, 2.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
void main_1() {
|
void main_1() {
|
||||||
const float x_11 = float3(1.0f, 2.0f, 3.0f).y;
|
const float x_11 = 2.0f;
|
||||||
const float2 x_13 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z);
|
const float2 x_13 = float2(1.0f, 3.0f);
|
||||||
const float3 x_14 = float3(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y);
|
const float3 x_14 = float3(1.0f, 3.0f, 2.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void main_1() {
|
void main_1() {
|
||||||
float const x_11 = float3(1.0f, 2.0f, 3.0f)[1];
|
float const x_11 = 2.0f;
|
||||||
float2 const x_13 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2]);
|
float2 const x_13 = float2(1.0f, 3.0f);
|
||||||
float3 const x_14 = float3(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1]);
|
float3 const x_14 = float3(1.0f, 3.0f, 2.0f);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 23
|
; Bound: 16
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -12,26 +12,19 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%float = OpTypeFloat 32
|
%float = OpTypeFloat 32
|
||||||
%v3float = OpTypeVector %float 3
|
|
||||||
%float_1 = OpConstant %float 1
|
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%float_3 = OpConstant %float 3
|
|
||||||
%10 = OpConstantComposite %v3float %float_1 %float_2 %float_3
|
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
|
%float_1 = OpConstant %float 1
|
||||||
|
%float_3 = OpConstant %float 3
|
||||||
|
%10 = OpConstantComposite %v2float %float_1 %float_3
|
||||||
|
%v3float = OpTypeVector %float 3
|
||||||
|
%12 = OpConstantComposite %v3float %float_1 %float_3 %float_2
|
||||||
%main_1 = OpFunction %void None %1
|
%main_1 = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
%11 = OpCompositeExtract %float %10 1
|
|
||||||
%13 = OpCompositeExtract %float %10 0
|
|
||||||
%14 = OpCompositeExtract %float %10 2
|
|
||||||
%15 = OpCompositeConstruct %v2float %13 %14
|
|
||||||
%16 = OpCompositeExtract %float %10 0
|
|
||||||
%17 = OpCompositeExtract %float %10 2
|
|
||||||
%18 = OpCompositeExtract %float %10 1
|
|
||||||
%19 = OpCompositeConstruct %v3float %16 %17 %18
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %1
|
%main = OpFunction %void None %1
|
||||||
%21 = OpLabel
|
%14 = OpLabel
|
||||||
%22 = OpFunctionCall %void %main_1
|
%15 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
4
test/tint/bug/chromium/1341475.wgsl
Normal file
4
test/tint/bug/chromium/1341475.wgsl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
@compute @workgroup_size(1)
|
||||||
|
fn main() {
|
||||||
|
_ = mix(1.0, vec2(1.0).y, 1.0);
|
||||||
|
}
|
11
test/tint/bug/chromium/1341475.wgsl.expected.glsl
Normal file
11
test/tint/bug/chromium/1341475.wgsl.expected.glsl
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
#version 310 es
|
||||||
|
|
||||||
|
void tint_symbol() {
|
||||||
|
mix(1.0f, 1.0f, 1.0f);
|
||||||
|
}
|
||||||
|
|
||||||
|
layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
|
||||||
|
void main() {
|
||||||
|
tint_symbol();
|
||||||
|
return;
|
||||||
|
}
|
5
test/tint/bug/chromium/1341475.wgsl.expected.hlsl
Normal file
5
test/tint/bug/chromium/1341475.wgsl.expected.hlsl
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
[numthreads(1, 1, 1)]
|
||||||
|
void main() {
|
||||||
|
lerp(1.0f, 1.0f, 1.0f);
|
||||||
|
return;
|
||||||
|
}
|
8
test/tint/bug/chromium/1341475.wgsl.expected.msl
Normal file
8
test/tint/bug/chromium/1341475.wgsl.expected.msl
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
#include <metal_stdlib>
|
||||||
|
|
||||||
|
using namespace metal;
|
||||||
|
kernel void tint_symbol() {
|
||||||
|
mix(1.0f, 1.0f, 1.0f);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
20
test/tint/bug/chromium/1341475.wgsl.expected.spvasm
Normal file
20
test/tint/bug/chromium/1341475.wgsl.expected.spvasm
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
; SPIR-V
|
||||||
|
; Version: 1.3
|
||||||
|
; Generator: Google Tint Compiler; 0
|
||||||
|
; Bound: 9
|
||||||
|
; Schema: 0
|
||||||
|
OpCapability Shader
|
||||||
|
%7 = OpExtInstImport "GLSL.std.450"
|
||||||
|
OpMemoryModel Logical GLSL450
|
||||||
|
OpEntryPoint GLCompute %main "main"
|
||||||
|
OpExecutionMode %main LocalSize 1 1 1
|
||||||
|
OpName %main "main"
|
||||||
|
%void = OpTypeVoid
|
||||||
|
%1 = OpTypeFunction %void
|
||||||
|
%float = OpTypeFloat 32
|
||||||
|
%float_1 = OpConstant %float 1
|
||||||
|
%main = OpFunction %void None %1
|
||||||
|
%4 = OpLabel
|
||||||
|
%5 = OpExtInst %float %7 FMix %float_1 %float_1 %float_1
|
||||||
|
OpReturn
|
||||||
|
OpFunctionEnd
|
4
test/tint/bug/chromium/1341475.wgsl.expected.wgsl
Normal file
4
test/tint/bug/chromium/1341475.wgsl.expected.wgsl
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
@compute @workgroup_size(1)
|
||||||
|
fn main() {
|
||||||
|
_ = mix(1.0, vec2(1.0).y, 1.0);
|
||||||
|
}
|
@ -22,7 +22,7 @@ void swap_i1_i1_(inout int i, inout int j) {
|
|||||||
int x_932 = temp;
|
int x_932 = temp;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
temp = x_932;
|
temp = x_932;
|
||||||
vec3 x_523 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
|
vec3 x_523 = vec3(3.0f, 2.0f, 3.0f);
|
||||||
int x_933 = i;
|
int x_933 = i;
|
||||||
i = 0;
|
i = 0;
|
||||||
i = x_933;
|
i = x_933;
|
||||||
@ -46,7 +46,7 @@ void swap_i1_i1_(inout int i, inout int j) {
|
|||||||
int x_938 = j;
|
int x_938 = j;
|
||||||
j = 0;
|
j = 0;
|
||||||
j = x_938;
|
j = x_938;
|
||||||
vec3 x_525 = vec3(x_523.z, vec3(1.0f, 2.0f, 3.0f).x, x_523.y);
|
vec3 x_525 = vec3(x_523.z, 1.0f, x_523.y);
|
||||||
int x_939 = i;
|
int x_939 = i;
|
||||||
i = 0;
|
i = 0;
|
||||||
i = x_939;
|
i = x_939;
|
||||||
@ -136,7 +136,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
int x_955 = param_3;
|
int x_955 = param_3;
|
||||||
param_3 = 0;
|
param_3 = 0;
|
||||||
param_3 = x_955;
|
param_3 = x_955;
|
||||||
vec3 x_534 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).z);
|
vec3 x_534 = vec3(3.0f, 1.0f, 3.0f);
|
||||||
int x_956 = param_1;
|
int x_956 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_956;
|
param_1 = x_956;
|
||||||
@ -172,7 +172,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
int x_963 = pivot;
|
int x_963 = pivot;
|
||||||
pivot = 0;
|
pivot = 0;
|
||||||
pivot = x_963;
|
pivot = x_963;
|
||||||
x_537 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
|
x_537 = vec2(2.0f, 3.0f);
|
||||||
QuicksortObject x_964 = obj;
|
QuicksortObject x_964 = obj;
|
||||||
int tint_symbol_11[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
int tint_symbol_11[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||||
QuicksortObject tint_symbol_12 = QuicksortObject(tint_symbol_11);
|
QuicksortObject tint_symbol_12 = QuicksortObject(tint_symbol_11);
|
||||||
@ -215,7 +215,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
obj = tint_symbol_14;
|
obj = tint_symbol_14;
|
||||||
obj = x_972;
|
obj = x_972;
|
||||||
int x_63 = pivot;
|
int x_63 = pivot;
|
||||||
vec2 x_540 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_534.z);
|
vec2 x_540 = vec2(2.0f, x_534.z);
|
||||||
int x_973 = i_1;
|
int x_973 = i_1;
|
||||||
i_1 = 0;
|
i_1 = 0;
|
||||||
i_1 = x_973;
|
i_1 = x_973;
|
||||||
@ -246,7 +246,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
int x_980 = l;
|
int x_980 = l;
|
||||||
l = 0;
|
l = 0;
|
||||||
l = x_980;
|
l = x_980;
|
||||||
vec3 x_544 = vec3(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y, x_540.x);
|
vec3 x_544 = vec3(3.0f, 2.0f, x_540.x);
|
||||||
int x_70 = i_1;
|
int x_70 = i_1;
|
||||||
vec2 x_545 = vec2(x_537.y, x_538.x);
|
vec2 x_545 = vec2(x_537.y, x_538.x);
|
||||||
int x_981 = param;
|
int x_981 = param;
|
||||||
@ -346,7 +346,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
int x_1003 = l;
|
int x_1003 = l;
|
||||||
l = 0;
|
l = 0;
|
||||||
l = x_1003;
|
l = x_1003;
|
||||||
vec2 x_554 = vec2(x_536.z, vec3(1.0f, 2.0f, 3.0f).y);
|
vec2 x_554 = vec2(x_536.z, 2.0f);
|
||||||
int x_1004 = param_1;
|
int x_1004 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_1004;
|
param_1 = x_1004;
|
||||||
@ -378,7 +378,7 @@ void quicksort_() {
|
|||||||
int tint_symbol_19[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
int tint_symbol_19[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||||
stack = tint_symbol_19;
|
stack = tint_symbol_19;
|
||||||
stack = x_1008;
|
stack = x_1008;
|
||||||
vec2 x_556 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y);
|
vec2 x_556 = vec2(2.0f);
|
||||||
int x_1009 = param_5;
|
int x_1009 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
param_5 = x_1009;
|
param_5 = x_1009;
|
||||||
@ -387,7 +387,7 @@ void quicksort_() {
|
|||||||
p = 0;
|
p = 0;
|
||||||
p = x_1010;
|
p = x_1010;
|
||||||
int x_93 = top;
|
int x_93 = top;
|
||||||
vec2 x_557 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
|
vec2 x_557 = vec2(1.0f);
|
||||||
int x_1011 = p;
|
int x_1011 = p;
|
||||||
p = 0;
|
p = 0;
|
||||||
p = x_1011;
|
p = x_1011;
|
||||||
@ -431,7 +431,7 @@ void quicksort_() {
|
|||||||
int x_1020 = param_4;
|
int x_1020 = param_4;
|
||||||
param_4 = 0;
|
param_4 = 0;
|
||||||
param_4 = x_1020;
|
param_4 = x_1020;
|
||||||
vec3 x_562 = vec3(vec3(1.0f, 2.0f, 3.0f).z, x_558.y, vec3(1.0f, 2.0f, 3.0f).y);
|
vec3 x_562 = vec3(3.0f, x_558.y, 2.0f);
|
||||||
int x_1021 = stack[x_96_save];
|
int x_1021 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1021;
|
stack[x_96_save] = x_1021;
|
||||||
@ -534,7 +534,7 @@ void quicksort_() {
|
|||||||
int x_1043 = stack[x_100_save];
|
int x_1043 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
stack[x_100_save] = x_1043;
|
stack[x_100_save] = x_1043;
|
||||||
vec2 x_573 = vec2(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).z);
|
vec2 x_573 = vec2(2.0f, 3.0f);
|
||||||
top = (x_112 - 1);
|
top = (x_112 - 1);
|
||||||
int x_1044 = param_5;
|
int x_1044 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
@ -566,7 +566,7 @@ void quicksort_() {
|
|||||||
stack[x_110_save] = x_1050;
|
stack[x_110_save] = x_1050;
|
||||||
vec2 x_577 = vec2(x_569.y, x_569.z);
|
vec2 x_577 = vec2(x_569.y, x_569.z);
|
||||||
int x_120 = h_1;
|
int x_120 = h_1;
|
||||||
vec2 x_578 = vec2(x_558.x, vec3(1.0f, 2.0f, 3.0f).y);
|
vec2 x_578 = vec2(x_558.x, 2.0f);
|
||||||
param_5 = x_120;
|
param_5 = x_120;
|
||||||
int x_1051 = stack[x_100_save];
|
int x_1051 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
@ -676,7 +676,7 @@ void quicksort_() {
|
|||||||
int x_1076 = stack[x_96_save];
|
int x_1076 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1076;
|
stack[x_96_save] = x_1076;
|
||||||
vec2 x_592 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).y);
|
vec2 x_592 = vec2(1.0f, 2.0f);
|
||||||
QuicksortObject x_1077 = obj;
|
QuicksortObject x_1077 = obj;
|
||||||
int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
int tint_symbol_31[10] = int[10](0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
|
||||||
QuicksortObject tint_symbol_32 = QuicksortObject(tint_symbol_31);
|
QuicksortObject tint_symbol_32 = QuicksortObject(tint_symbol_31);
|
||||||
@ -821,7 +821,7 @@ void main_1() {
|
|||||||
QuicksortObject tint_symbol_40 = QuicksortObject(tint_symbol_39);
|
QuicksortObject tint_symbol_40 = QuicksortObject(tint_symbol_39);
|
||||||
obj = tint_symbol_40;
|
obj = tint_symbol_40;
|
||||||
obj = x_722;
|
obj = x_722;
|
||||||
vec2 x_431 = vec2(vec3(1.0f, 2.0f, 3.0f).x, vec3(1.0f, 2.0f, 3.0f).x);
|
vec2 x_431 = vec2(1.0f);
|
||||||
int x_158 = i_2;
|
int x_158 = i_2;
|
||||||
vec2 x_723 = uv;
|
vec2 x_723 = uv;
|
||||||
uv = vec2(0.0f);
|
uv = vec2(0.0f);
|
||||||
@ -841,7 +841,7 @@ void main_1() {
|
|||||||
QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
|
QuicksortObject tint_symbol_44 = QuicksortObject(tint_symbol_43);
|
||||||
obj = tint_symbol_44;
|
obj = tint_symbol_44;
|
||||||
obj = x_756;
|
obj = x_756;
|
||||||
vec2 x_446 = vec2(vec2(0.0f).x, vec2(0.0f).x);
|
vec2 x_446 = vec2(0.0f);
|
||||||
int x_757 = i_2;
|
int x_757 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_757;
|
i_2 = x_757;
|
||||||
@ -855,7 +855,7 @@ void main_1() {
|
|||||||
vec2 x_759 = uv;
|
vec2 x_759 = uv;
|
||||||
uv = vec2(0.0f);
|
uv = vec2(0.0f);
|
||||||
uv = x_759;
|
uv = x_759;
|
||||||
vec2 x_447 = vec2(vec2(0.0f).y, vec2(0.0f).y);
|
vec2 x_447 = vec2(0.0f);
|
||||||
vec2 x_760 = uv;
|
vec2 x_760 = uv;
|
||||||
uv = vec2(0.0f);
|
uv = vec2(0.0f);
|
||||||
uv = x_760;
|
uv = x_760;
|
||||||
@ -875,7 +875,7 @@ void main_1() {
|
|||||||
QuicksortObject tint_symbol_50 = QuicksortObject(tint_symbol_49);
|
QuicksortObject tint_symbol_50 = QuicksortObject(tint_symbol_49);
|
||||||
obj = tint_symbol_50;
|
obj = tint_symbol_50;
|
||||||
obj = x_763;
|
obj = x_763;
|
||||||
vec3 x_449 = vec3(x_184.y, vec3(1.0f, 2.0f, 3.0f).z, x_184.w);
|
vec3 x_449 = vec3(x_184.y, 3.0f, x_184.w);
|
||||||
vec3 x_764 = color;
|
vec3 x_764 = color;
|
||||||
color = vec3(0.0f);
|
color = vec3(0.0f);
|
||||||
color = x_764;
|
color = x_764;
|
||||||
@ -919,7 +919,7 @@ void main_1() {
|
|||||||
float x_773 = color.x;
|
float x_773 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_773;
|
color.x = x_773;
|
||||||
vec2 x_452 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec3(1.0f, 2.0f, 3.0f).y);
|
vec2 x_452 = vec2(3.0f, 2.0f);
|
||||||
int x_774 = i_2;
|
int x_774 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_774;
|
i_2 = x_774;
|
||||||
@ -954,7 +954,7 @@ void main_1() {
|
|||||||
int x_781 = obj.numbers[0u];
|
int x_781 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_781;
|
obj.numbers[0u] = x_781;
|
||||||
vec3 x_456 = vec3(vec2(0.0f).y, x_448.y, x_448.y);
|
vec3 x_456 = vec3(0.0f, x_448.y, x_448.y);
|
||||||
float x_782 = uv.x;
|
float x_782 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_782;
|
uv.x = x_782;
|
||||||
@ -973,7 +973,7 @@ void main_1() {
|
|||||||
QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
|
QuicksortObject tint_symbol_64 = QuicksortObject(tint_symbol_63);
|
||||||
obj = tint_symbol_64;
|
obj = tint_symbol_64;
|
||||||
obj = x_785;
|
obj = x_785;
|
||||||
vec2 x_458 = vec2(vec3(1.0f, 2.0f, 3.0f).z, vec2(0.0f).y);
|
vec2 x_458 = vec2(3.0f, 0.0f);
|
||||||
int x_786 = i_2;
|
int x_786 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_786;
|
i_2 = x_786;
|
||||||
@ -1013,7 +1013,7 @@ void main_1() {
|
|||||||
float x_796 = uv.x;
|
float x_796 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_796;
|
uv.x = x_796;
|
||||||
vec2 x_461 = vec2(vec2(0.0f).y, vec2(0.0f).y);
|
vec2 x_461 = vec2(0.0f);
|
||||||
float x_797 = uv.x;
|
float x_797 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_797;
|
uv.x = x_797;
|
||||||
@ -1057,7 +1057,7 @@ void main_1() {
|
|||||||
int x_808 = i_2;
|
int x_808 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_808;
|
i_2 = x_808;
|
||||||
vec2 x_466 = vec2(x_455.y, vec2(0.0f).y);
|
vec2 x_466 = vec2(x_455.y, 0.0f);
|
||||||
int x_809 = i_2;
|
int x_809 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_809;
|
i_2 = x_809;
|
||||||
@ -1111,7 +1111,7 @@ void main_1() {
|
|||||||
int x_822 = obj.numbers[0u];
|
int x_822 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_822;
|
obj.numbers[0u] = x_822;
|
||||||
vec2 x_470 = vec2(vec2(0.0f).x, vec2(0.0f).y);
|
vec2 x_470 = vec2(0.0f);
|
||||||
float x_823 = color.z;
|
float x_823 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_823;
|
color.z = x_823;
|
||||||
@ -1153,7 +1153,7 @@ void main_1() {
|
|||||||
color.x = x_832;
|
color.x = x_832;
|
||||||
vec2 x_476 = vec2(x_451.z, x_460.y);
|
vec2 x_476 = vec2(x_451.z, x_460.y);
|
||||||
color.y = (x_257 + float(x_254));
|
color.y = (x_257 + float(x_254));
|
||||||
vec3 x_477 = vec3(vec2(0.0f).x, x_472.x, vec2(0.0f).y);
|
vec3 x_477 = vec3(0.0f, x_472.x, 0.0f);
|
||||||
float x_833 = uv.x;
|
float x_833 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_833;
|
uv.x = x_833;
|
||||||
@ -1168,14 +1168,14 @@ void main_1() {
|
|||||||
int x_836 = i_2;
|
int x_836 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_836;
|
i_2 = x_836;
|
||||||
vec3 x_479 = vec3(vec2(0.0f).y, x_454.y, vec2(0.0f).x);
|
vec3 x_479 = vec3(0.0f, x_454.y, 0.0f);
|
||||||
int x_837 = obj.numbers[0u];
|
int x_837 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_837;
|
obj.numbers[0u] = x_837;
|
||||||
float x_838 = color.y;
|
float x_838 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_838;
|
color.y = x_838;
|
||||||
vec3 x_480 = vec3(x_446.x, x_446.x, vec2(0.0f).y);
|
vec3 x_480 = vec3(x_446.x, x_446.x, 0.0f);
|
||||||
float x_839 = uv.x;
|
float x_839 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_839;
|
uv.x = x_839;
|
||||||
@ -1281,7 +1281,7 @@ void main_1() {
|
|||||||
float x_865 = color.x;
|
float x_865 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_865;
|
color.x = x_865;
|
||||||
vec2 x_491 = vec2(vec3(1.0f, 2.0f, 3.0f).y, x_454.x);
|
vec2 x_491 = vec2(2.0f, x_454.x);
|
||||||
float x_866 = color.y;
|
float x_866 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_866;
|
color.y = x_866;
|
||||||
@ -1382,7 +1382,7 @@ void main_1() {
|
|||||||
float x_891 = color.y;
|
float x_891 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_891;
|
color.y = x_891;
|
||||||
vec2 x_504 = vec2(x_453.y, vec2(0.0f).x);
|
vec2 x_504 = vec2(x_453.y, 0.0f);
|
||||||
float x_892 = color.x;
|
float x_892 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_892;
|
color.x = x_892;
|
||||||
@ -1431,7 +1431,7 @@ void main_1() {
|
|||||||
float x_904 = color.z;
|
float x_904 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_904;
|
color.z = x_904;
|
||||||
vec3 x_510 = vec3(vec3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
|
vec3 x_510 = vec3(2.0f, x_485.y, x_485.z);
|
||||||
float x_905 = color.z;
|
float x_905 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_905;
|
color.z = x_905;
|
||||||
@ -1485,7 +1485,7 @@ void main_1() {
|
|||||||
float x_918 = uv.x;
|
float x_918 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_918;
|
uv.x = x_918;
|
||||||
vec3 x_517 = vec3(vec2(0.0f).x, vec2(0.0f).x, vec2(0.0f).y);
|
vec3 x_517 = vec3(0.0f);
|
||||||
color.x = (float(x_317) + x_320);
|
color.x = (float(x_317) + x_320);
|
||||||
float x_919 = color.x;
|
float x_919 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
@ -1528,7 +1528,7 @@ void main_1() {
|
|||||||
float x_928 = uv.y;
|
float x_928 = uv.y;
|
||||||
uv.y = 0.0f;
|
uv.y = 0.0f;
|
||||||
uv.y = x_928;
|
uv.y = x_928;
|
||||||
vec3 x_521 = vec3(vec3(1.0f, 2.0f, 3.0f).y, vec3(1.0f, 2.0f, 3.0f).y, x_520.y);
|
vec3 x_521 = vec3(2.0f, 2.0f, x_520.y);
|
||||||
float x_929 = uv.x;
|
float x_929 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_929;
|
uv.x = x_929;
|
||||||
|
@ -14,7 +14,7 @@ void swap_i1_i1_(inout int i, inout int j) {
|
|||||||
const int x_932 = temp;
|
const int x_932 = temp;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
temp = x_932;
|
temp = x_932;
|
||||||
const float3 x_523 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
|
const float3 x_523 = float3(3.0f, 2.0f, 3.0f);
|
||||||
const int x_933 = i;
|
const int x_933 = i;
|
||||||
i = 0;
|
i = 0;
|
||||||
i = x_933;
|
i = x_933;
|
||||||
@ -46,7 +46,7 @@ void swap_i1_i1_(inout int i, inout int j) {
|
|||||||
const int x_938 = j;
|
const int x_938 = j;
|
||||||
j = 0;
|
j = 0;
|
||||||
j = x_938;
|
j = x_938;
|
||||||
const float3 x_525 = float3(x_523.z, float3(1.0f, 2.0f, 3.0f).x, x_523.y);
|
const float3 x_525 = float3(x_523.z, 1.0f, x_523.y);
|
||||||
const int x_939 = i;
|
const int x_939 = i;
|
||||||
i = 0;
|
i = 0;
|
||||||
i = x_939;
|
i = x_939;
|
||||||
@ -192,7 +192,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
const int x_955 = param_3;
|
const int x_955 = param_3;
|
||||||
param_3 = 0;
|
param_3 = 0;
|
||||||
param_3 = x_955;
|
param_3 = x_955;
|
||||||
const float3 x_534 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).z);
|
const float3 x_534 = float3(3.0f, 1.0f, 3.0f);
|
||||||
const int x_956 = param_1;
|
const int x_956 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_956;
|
param_1 = x_956;
|
||||||
@ -228,7 +228,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
const int x_963 = pivot;
|
const int x_963 = pivot;
|
||||||
pivot = 0;
|
pivot = 0;
|
||||||
pivot = x_963;
|
pivot = x_963;
|
||||||
x_537 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
|
x_537 = float2(2.0f, 3.0f);
|
||||||
const QuicksortObject x_964 = obj;
|
const QuicksortObject x_964 = obj;
|
||||||
const int tint_symbol_60[10] = (int[10])0;
|
const int tint_symbol_60[10] = (int[10])0;
|
||||||
const QuicksortObject tint_symbol_61 = {tint_symbol_60};
|
const QuicksortObject tint_symbol_61 = {tint_symbol_60};
|
||||||
@ -279,7 +279,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
obj = tint_symbol_63;
|
obj = tint_symbol_63;
|
||||||
obj = x_972;
|
obj = x_972;
|
||||||
const int x_63 = pivot;
|
const int x_63 = pivot;
|
||||||
const float2 x_540 = float2(float3(1.0f, 2.0f, 3.0f).y, x_534.z);
|
const float2 x_540 = float2(2.0f, x_534.z);
|
||||||
const int x_973 = i_1;
|
const int x_973 = i_1;
|
||||||
i_1 = 0;
|
i_1 = 0;
|
||||||
i_1 = x_973;
|
i_1 = x_973;
|
||||||
@ -310,7 +310,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
const int x_980 = l;
|
const int x_980 = l;
|
||||||
l = 0;
|
l = 0;
|
||||||
l = x_980;
|
l = x_980;
|
||||||
const float3 x_544 = float3(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y, x_540.x);
|
const float3 x_544 = float3(3.0f, 2.0f, x_540.x);
|
||||||
const int x_70 = i_1;
|
const int x_70 = i_1;
|
||||||
const float2 x_545 = float2(x_537.y, x_538.x);
|
const float2 x_545 = float2(x_537.y, x_538.x);
|
||||||
const int x_981 = param;
|
const int x_981 = param;
|
||||||
@ -434,7 +434,7 @@ int performPartition_i1_i1_(inout int l, inout int h) {
|
|||||||
const int x_1003 = l;
|
const int x_1003 = l;
|
||||||
l = 0;
|
l = 0;
|
||||||
l = x_1003;
|
l = x_1003;
|
||||||
const float2 x_554 = float2(x_536.z, float3(1.0f, 2.0f, 3.0f).y);
|
const float2 x_554 = float2(x_536.z, 2.0f);
|
||||||
const int x_1004 = param_1;
|
const int x_1004 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_1004;
|
param_1 = x_1004;
|
||||||
@ -466,7 +466,7 @@ void quicksort_() {
|
|||||||
const int tint_symbol_68[10] = (int[10])0;
|
const int tint_symbol_68[10] = (int[10])0;
|
||||||
stack = tint_symbol_68;
|
stack = tint_symbol_68;
|
||||||
stack = x_1008;
|
stack = x_1008;
|
||||||
const float2 x_556 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y);
|
const float2 x_556 = (2.0f).xx;
|
||||||
const int x_1009 = param_5;
|
const int x_1009 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
param_5 = x_1009;
|
param_5 = x_1009;
|
||||||
@ -475,7 +475,7 @@ void quicksort_() {
|
|||||||
p = 0;
|
p = 0;
|
||||||
p = x_1010;
|
p = x_1010;
|
||||||
const int x_93 = top;
|
const int x_93 = top;
|
||||||
const float2 x_557 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x);
|
const float2 x_557 = (1.0f).xx;
|
||||||
const int x_1011 = p;
|
const int x_1011 = p;
|
||||||
p = 0;
|
p = 0;
|
||||||
p = x_1011;
|
p = x_1011;
|
||||||
@ -519,7 +519,7 @@ void quicksort_() {
|
|||||||
const int x_1020 = param_4;
|
const int x_1020 = param_4;
|
||||||
param_4 = 0;
|
param_4 = 0;
|
||||||
param_4 = x_1020;
|
param_4 = x_1020;
|
||||||
const float3 x_562 = float3(float3(1.0f, 2.0f, 3.0f).z, x_558.y, float3(1.0f, 2.0f, 3.0f).y);
|
const float3 x_562 = float3(3.0f, x_558.y, 2.0f);
|
||||||
const int x_1021 = stack[x_96_save];
|
const int x_1021 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1021;
|
stack[x_96_save] = x_1021;
|
||||||
@ -622,7 +622,7 @@ void quicksort_() {
|
|||||||
const int x_1043 = stack[x_100_save];
|
const int x_1043 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
stack[x_100_save] = x_1043;
|
stack[x_100_save] = x_1043;
|
||||||
const float2 x_573 = float2(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).z);
|
const float2 x_573 = float2(2.0f, 3.0f);
|
||||||
top = (x_112 - 1);
|
top = (x_112 - 1);
|
||||||
const int x_1044 = param_5;
|
const int x_1044 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
@ -654,7 +654,7 @@ void quicksort_() {
|
|||||||
stack[x_110_save] = x_1050;
|
stack[x_110_save] = x_1050;
|
||||||
const float2 x_577 = float2(x_569.y, x_569.z);
|
const float2 x_577 = float2(x_569.y, x_569.z);
|
||||||
const int x_120 = h_1;
|
const int x_120 = h_1;
|
||||||
const float2 x_578 = float2(x_558.x, float3(1.0f, 2.0f, 3.0f).y);
|
const float2 x_578 = float2(x_558.x, 2.0f);
|
||||||
param_5 = x_120;
|
param_5 = x_120;
|
||||||
const int x_1051 = stack[x_100_save];
|
const int x_1051 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
@ -764,7 +764,7 @@ void quicksort_() {
|
|||||||
const int x_1076 = stack[x_96_save];
|
const int x_1076 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1076;
|
stack[x_96_save] = x_1076;
|
||||||
const float2 x_592 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).y);
|
const float2 x_592 = float2(1.0f, 2.0f);
|
||||||
const QuicksortObject x_1077 = obj;
|
const QuicksortObject x_1077 = obj;
|
||||||
const int tint_symbol_80[10] = (int[10])0;
|
const int tint_symbol_80[10] = (int[10])0;
|
||||||
const QuicksortObject tint_symbol_81 = {tint_symbol_80};
|
const QuicksortObject tint_symbol_81 = {tint_symbol_80};
|
||||||
@ -909,7 +909,7 @@ void main_1() {
|
|||||||
const QuicksortObject tint_symbol_89 = {tint_symbol_88};
|
const QuicksortObject tint_symbol_89 = {tint_symbol_88};
|
||||||
obj = tint_symbol_89;
|
obj = tint_symbol_89;
|
||||||
obj = x_722;
|
obj = x_722;
|
||||||
const float2 x_431 = float2(float3(1.0f, 2.0f, 3.0f).x, float3(1.0f, 2.0f, 3.0f).x);
|
const float2 x_431 = (1.0f).xx;
|
||||||
const int x_158 = i_2;
|
const int x_158 = i_2;
|
||||||
const float2 x_723 = uv;
|
const float2 x_723 = uv;
|
||||||
uv = (0.0f).xx;
|
uv = (0.0f).xx;
|
||||||
@ -929,7 +929,7 @@ void main_1() {
|
|||||||
const QuicksortObject tint_symbol_93 = {tint_symbol_92};
|
const QuicksortObject tint_symbol_93 = {tint_symbol_92};
|
||||||
obj = tint_symbol_93;
|
obj = tint_symbol_93;
|
||||||
obj = x_756;
|
obj = x_756;
|
||||||
const float2 x_446 = float2((0.0f).xx.x, (0.0f).xx.x);
|
const float2 x_446 = (0.0f).xx;
|
||||||
const int x_757 = i_2;
|
const int x_757 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_757;
|
i_2 = x_757;
|
||||||
@ -943,7 +943,7 @@ void main_1() {
|
|||||||
const float2 x_759 = uv;
|
const float2 x_759 = uv;
|
||||||
uv = (0.0f).xx;
|
uv = (0.0f).xx;
|
||||||
uv = x_759;
|
uv = x_759;
|
||||||
const float2 x_447 = float2((0.0f).xx.y, (0.0f).xx.y);
|
const float2 x_447 = (0.0f).xx;
|
||||||
const float2 x_760 = uv;
|
const float2 x_760 = uv;
|
||||||
uv = (0.0f).xx;
|
uv = (0.0f).xx;
|
||||||
uv = x_760;
|
uv = x_760;
|
||||||
@ -963,7 +963,7 @@ void main_1() {
|
|||||||
const QuicksortObject tint_symbol_99 = {tint_symbol_98};
|
const QuicksortObject tint_symbol_99 = {tint_symbol_98};
|
||||||
obj = tint_symbol_99;
|
obj = tint_symbol_99;
|
||||||
obj = x_763;
|
obj = x_763;
|
||||||
const float3 x_449 = float3(x_184.y, float3(1.0f, 2.0f, 3.0f).z, x_184.w);
|
const float3 x_449 = float3(x_184.y, 3.0f, x_184.w);
|
||||||
const float3 x_764 = color;
|
const float3 x_764 = color;
|
||||||
color = (0.0f).xxx;
|
color = (0.0f).xxx;
|
||||||
color = x_764;
|
color = x_764;
|
||||||
@ -1007,7 +1007,7 @@ void main_1() {
|
|||||||
const float x_773 = color.x;
|
const float x_773 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_773;
|
color.x = x_773;
|
||||||
const float2 x_452 = float2(float3(1.0f, 2.0f, 3.0f).z, float3(1.0f, 2.0f, 3.0f).y);
|
const float2 x_452 = float2(3.0f, 2.0f);
|
||||||
const int x_774 = i_2;
|
const int x_774 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_774;
|
i_2 = x_774;
|
||||||
@ -1042,7 +1042,7 @@ void main_1() {
|
|||||||
const int x_781 = obj.numbers[0u];
|
const int x_781 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_781;
|
obj.numbers[0u] = x_781;
|
||||||
const float3 x_456 = float3((0.0f).xx.y, x_448.y, x_448.y);
|
const float3 x_456 = float3(0.0f, x_448.y, x_448.y);
|
||||||
const float x_782 = uv.x;
|
const float x_782 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_782;
|
uv.x = x_782;
|
||||||
@ -1061,7 +1061,7 @@ void main_1() {
|
|||||||
const QuicksortObject tint_symbol_113 = {tint_symbol_112};
|
const QuicksortObject tint_symbol_113 = {tint_symbol_112};
|
||||||
obj = tint_symbol_113;
|
obj = tint_symbol_113;
|
||||||
obj = x_785;
|
obj = x_785;
|
||||||
const float2 x_458 = float2(float3(1.0f, 2.0f, 3.0f).z, (0.0f).xx.y);
|
const float2 x_458 = float2(3.0f, 0.0f);
|
||||||
const int x_786 = i_2;
|
const int x_786 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_786;
|
i_2 = x_786;
|
||||||
@ -1101,7 +1101,7 @@ void main_1() {
|
|||||||
const float x_796 = uv.x;
|
const float x_796 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_796;
|
uv.x = x_796;
|
||||||
const float2 x_461 = float2((0.0f).xx.y, (0.0f).xx.y);
|
const float2 x_461 = (0.0f).xx;
|
||||||
const float x_797 = uv.x;
|
const float x_797 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_797;
|
uv.x = x_797;
|
||||||
@ -1145,7 +1145,7 @@ void main_1() {
|
|||||||
const int x_808 = i_2;
|
const int x_808 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_808;
|
i_2 = x_808;
|
||||||
const float2 x_466 = float2(x_455.y, (0.0f).xx.y);
|
const float2 x_466 = float2(x_455.y, 0.0f);
|
||||||
const int x_809 = i_2;
|
const int x_809 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_809;
|
i_2 = x_809;
|
||||||
@ -1199,7 +1199,7 @@ void main_1() {
|
|||||||
const int x_822 = obj.numbers[0u];
|
const int x_822 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_822;
|
obj.numbers[0u] = x_822;
|
||||||
const float2 x_470 = float2((0.0f).xx.x, (0.0f).xx.y);
|
const float2 x_470 = (0.0f).xx;
|
||||||
const float x_823 = color.z;
|
const float x_823 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_823;
|
color.z = x_823;
|
||||||
@ -1241,7 +1241,7 @@ void main_1() {
|
|||||||
color.x = x_832;
|
color.x = x_832;
|
||||||
const float2 x_476 = float2(x_451.z, x_460.y);
|
const float2 x_476 = float2(x_451.z, x_460.y);
|
||||||
color.y = (x_257 + float(x_254));
|
color.y = (x_257 + float(x_254));
|
||||||
const float3 x_477 = float3((0.0f).xx.x, x_472.x, (0.0f).xx.y);
|
const float3 x_477 = float3(0.0f, x_472.x, 0.0f);
|
||||||
const float x_833 = uv.x;
|
const float x_833 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_833;
|
uv.x = x_833;
|
||||||
@ -1256,14 +1256,14 @@ void main_1() {
|
|||||||
const int x_836 = i_2;
|
const int x_836 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_836;
|
i_2 = x_836;
|
||||||
const float3 x_479 = float3((0.0f).xx.y, x_454.y, (0.0f).xx.x);
|
const float3 x_479 = float3(0.0f, x_454.y, 0.0f);
|
||||||
const int x_837 = obj.numbers[0u];
|
const int x_837 = obj.numbers[0u];
|
||||||
obj.numbers[0u] = 0;
|
obj.numbers[0u] = 0;
|
||||||
obj.numbers[0u] = x_837;
|
obj.numbers[0u] = x_837;
|
||||||
const float x_838 = color.y;
|
const float x_838 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_838;
|
color.y = x_838;
|
||||||
const float3 x_480 = float3(x_446.x, x_446.x, (0.0f).xx.y);
|
const float3 x_480 = float3(x_446.x, x_446.x, 0.0f);
|
||||||
const float x_839 = uv.x;
|
const float x_839 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_839;
|
uv.x = x_839;
|
||||||
@ -1369,7 +1369,7 @@ void main_1() {
|
|||||||
const float x_865 = color.x;
|
const float x_865 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_865;
|
color.x = x_865;
|
||||||
const float2 x_491 = float2(float3(1.0f, 2.0f, 3.0f).y, x_454.x);
|
const float2 x_491 = float2(2.0f, x_454.x);
|
||||||
const float x_866 = color.y;
|
const float x_866 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_866;
|
color.y = x_866;
|
||||||
@ -1470,7 +1470,7 @@ void main_1() {
|
|||||||
const float x_891 = color.y;
|
const float x_891 = color.y;
|
||||||
color.y = 0.0f;
|
color.y = 0.0f;
|
||||||
color.y = x_891;
|
color.y = x_891;
|
||||||
const float2 x_504 = float2(x_453.y, (0.0f).xx.x);
|
const float2 x_504 = float2(x_453.y, 0.0f);
|
||||||
const float x_892 = color.x;
|
const float x_892 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
color.x = x_892;
|
color.x = x_892;
|
||||||
@ -1519,7 +1519,7 @@ void main_1() {
|
|||||||
const float x_904 = color.z;
|
const float x_904 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_904;
|
color.z = x_904;
|
||||||
const float3 x_510 = float3(float3(1.0f, 2.0f, 3.0f).y, x_485.y, x_485.z);
|
const float3 x_510 = float3(2.0f, x_485.y, x_485.z);
|
||||||
const float x_905 = color.z;
|
const float x_905 = color.z;
|
||||||
color.z = 0.0f;
|
color.z = 0.0f;
|
||||||
color.z = x_905;
|
color.z = x_905;
|
||||||
@ -1573,7 +1573,7 @@ void main_1() {
|
|||||||
const float x_918 = uv.x;
|
const float x_918 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_918;
|
uv.x = x_918;
|
||||||
const float3 x_517 = float3((0.0f).xx.x, (0.0f).xx.x, (0.0f).xx.y);
|
const float3 x_517 = (0.0f).xxx;
|
||||||
color.x = (float(x_317) + x_320);
|
color.x = (float(x_317) + x_320);
|
||||||
const float x_919 = color.x;
|
const float x_919 = color.x;
|
||||||
color.x = 0.0f;
|
color.x = 0.0f;
|
||||||
@ -1616,7 +1616,7 @@ void main_1() {
|
|||||||
const float x_928 = uv.y;
|
const float x_928 = uv.y;
|
||||||
uv.y = 0.0f;
|
uv.y = 0.0f;
|
||||||
uv.y = x_928;
|
uv.y = x_928;
|
||||||
const float3 x_521 = float3(float3(1.0f, 2.0f, 3.0f).y, float3(1.0f, 2.0f, 3.0f).y, x_520.y);
|
const float3 x_521 = float3(2.0f, 2.0f, x_520.y);
|
||||||
const float x_929 = uv.x;
|
const float x_929 = uv.x;
|
||||||
uv.x = 0.0f;
|
uv.x = 0.0f;
|
||||||
uv.x = x_929;
|
uv.x = x_929;
|
||||||
|
@ -27,7 +27,7 @@ void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObjec
|
|||||||
int const x_932 = temp;
|
int const x_932 = temp;
|
||||||
temp = 0;
|
temp = 0;
|
||||||
temp = x_932;
|
temp = x_932;
|
||||||
float3 const x_523 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]);
|
float3 const x_523 = float3(3.0f, 2.0f, 3.0f);
|
||||||
int const x_933 = *(i);
|
int const x_933 = *(i);
|
||||||
*(i) = 0;
|
*(i) = 0;
|
||||||
*(i) = x_933;
|
*(i) = x_933;
|
||||||
@ -51,7 +51,7 @@ void swap_i1_i1_(thread int* const i, thread int* const j, thread QuicksortObjec
|
|||||||
int const x_938 = *(j);
|
int const x_938 = *(j);
|
||||||
*(j) = 0;
|
*(j) = 0;
|
||||||
*(j) = x_938;
|
*(j) = x_938;
|
||||||
float3 const x_525 = float3(x_523[2], float3(1.0f, 2.0f, 3.0f)[0], x_523[1]);
|
float3 const x_525 = float3(x_523[2], 1.0f, x_523[1]);
|
||||||
int const x_939 = *(i);
|
int const x_939 = *(i);
|
||||||
*(i) = 0;
|
*(i) = 0;
|
||||||
*(i) = x_939;
|
*(i) = x_939;
|
||||||
@ -141,7 +141,7 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui
|
|||||||
int const x_955 = param_3;
|
int const x_955 = param_3;
|
||||||
param_3 = 0;
|
param_3 = 0;
|
||||||
param_3 = x_955;
|
param_3 = x_955;
|
||||||
float3 const x_534 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[2]);
|
float3 const x_534 = float3(3.0f, 1.0f, 3.0f);
|
||||||
int const x_956 = param_1;
|
int const x_956 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_956;
|
param_1 = x_956;
|
||||||
@ -177,7 +177,7 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui
|
|||||||
int const x_963 = pivot;
|
int const x_963 = pivot;
|
||||||
pivot = 0;
|
pivot = 0;
|
||||||
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(2.0f, 3.0f);
|
||||||
QuicksortObject const x_964 = *(tint_symbol_82);
|
QuicksortObject const x_964 = *(tint_symbol_82);
|
||||||
tint_array<int, 10> const tint_symbol_10 = tint_array<int, 10>{};
|
tint_array<int, 10> const tint_symbol_10 = tint_array<int, 10>{};
|
||||||
QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10};
|
QuicksortObject const tint_symbol_11 = {.numbers=tint_symbol_10};
|
||||||
@ -220,7 +220,7 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui
|
|||||||
*(tint_symbol_82) = tint_symbol_13;
|
*(tint_symbol_82) = tint_symbol_13;
|
||||||
*(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(2.0f, x_534[2]);
|
||||||
int const x_973 = i_1;
|
int const x_973 = i_1;
|
||||||
i_1 = 0;
|
i_1 = 0;
|
||||||
i_1 = x_973;
|
i_1 = x_973;
|
||||||
@ -251,7 +251,7 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui
|
|||||||
int const x_980 = *(l);
|
int const x_980 = *(l);
|
||||||
*(l) = 0;
|
*(l) = 0;
|
||||||
*(l) = x_980;
|
*(l) = x_980;
|
||||||
float3 const x_544 = float3(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1], x_540[0]);
|
float3 const x_544 = float3(3.0f, 2.0f, x_540[0]);
|
||||||
int const x_70 = i_1;
|
int const x_70 = i_1;
|
||||||
float2 const x_545 = float2(x_537[1], x_538[0]);
|
float2 const x_545 = float2(x_537[1], x_538[0]);
|
||||||
int const x_981 = param;
|
int const x_981 = param;
|
||||||
@ -352,7 +352,7 @@ int performPartition_i1_i1_(thread int* const l, thread int* const h, thread Qui
|
|||||||
int const x_1003 = *(l);
|
int const x_1003 = *(l);
|
||||||
*(l) = 0;
|
*(l) = 0;
|
||||||
*(l) = x_1003;
|
*(l) = x_1003;
|
||||||
float2 const x_554 = float2(x_536[2], float3(1.0f, 2.0f, 3.0f)[1]);
|
float2 const x_554 = float2(x_536[2], 2.0f);
|
||||||
int const x_1004 = param_1;
|
int const x_1004 = param_1;
|
||||||
param_1 = 0;
|
param_1 = 0;
|
||||||
param_1 = x_1004;
|
param_1 = x_1004;
|
||||||
@ -384,7 +384,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
tint_array<int, 10> const tint_symbol_18 = tint_array<int, 10>{};
|
tint_array<int, 10> const tint_symbol_18 = tint_array<int, 10>{};
|
||||||
stack = tint_symbol_18;
|
stack = tint_symbol_18;
|
||||||
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(2.0f);
|
||||||
int const x_1009 = param_5;
|
int const x_1009 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
param_5 = x_1009;
|
param_5 = x_1009;
|
||||||
@ -393,7 +393,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
p = 0;
|
p = 0;
|
||||||
p = x_1010;
|
p = x_1010;
|
||||||
int const x_93 = top;
|
int const x_93 = top;
|
||||||
float2 const x_557 = float2(float3(1.0f, 2.0f, 3.0f)[0], float3(1.0f, 2.0f, 3.0f)[0]);
|
float2 const x_557 = float2(1.0f);
|
||||||
int const x_1011 = p;
|
int const x_1011 = p;
|
||||||
p = 0;
|
p = 0;
|
||||||
p = x_1011;
|
p = x_1011;
|
||||||
@ -437,7 +437,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
int const x_1020 = param_4;
|
int const x_1020 = param_4;
|
||||||
param_4 = 0;
|
param_4 = 0;
|
||||||
param_4 = x_1020;
|
param_4 = x_1020;
|
||||||
float3 const x_562 = float3(float3(1.0f, 2.0f, 3.0f)[2], x_558[1], float3(1.0f, 2.0f, 3.0f)[1]);
|
float3 const x_562 = float3(3.0f, x_558[1], 2.0f);
|
||||||
int const x_1021 = stack[x_96_save];
|
int const x_1021 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1021;
|
stack[x_96_save] = x_1021;
|
||||||
@ -540,7 +540,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
int const x_1043 = stack[x_100_save];
|
int const x_1043 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
stack[x_100_save] = x_1043;
|
stack[x_100_save] = x_1043;
|
||||||
float2 const x_573 = float2(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[2]);
|
float2 const x_573 = float2(2.0f, 3.0f);
|
||||||
top = as_type<int>((as_type<uint>(x_112) - as_type<uint>(1)));
|
top = as_type<int>((as_type<uint>(x_112) - as_type<uint>(1)));
|
||||||
int const x_1044 = param_5;
|
int const x_1044 = param_5;
|
||||||
param_5 = 0;
|
param_5 = 0;
|
||||||
@ -573,7 +573,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
stack[x_110_save] = x_1050;
|
stack[x_110_save] = x_1050;
|
||||||
float2 const x_577 = float2(x_569[1], x_569[2]);
|
float2 const x_577 = float2(x_569[1], x_569[2]);
|
||||||
int const x_120 = h_1;
|
int const x_120 = h_1;
|
||||||
float2 const x_578 = float2(x_558[0], float3(1.0f, 2.0f, 3.0f)[1]);
|
float2 const x_578 = float2(x_558[0], 2.0f);
|
||||||
param_5 = x_120;
|
param_5 = x_120;
|
||||||
int const x_1051 = stack[x_100_save];
|
int const x_1051 = stack[x_100_save];
|
||||||
stack[x_100_save] = 0;
|
stack[x_100_save] = 0;
|
||||||
@ -683,7 +683,7 @@ void quicksort_(thread QuicksortObject* const tint_symbol_83) {
|
|||||||
int const x_1076 = stack[x_96_save];
|
int const x_1076 = stack[x_96_save];
|
||||||
stack[x_96_save] = 0;
|
stack[x_96_save] = 0;
|
||||||
stack[x_96_save] = x_1076;
|
stack[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(1.0f, 2.0f);
|
||||||
QuicksortObject const x_1077 = *(tint_symbol_83);
|
QuicksortObject const x_1077 = *(tint_symbol_83);
|
||||||
tint_array<int, 10> const tint_symbol_30 = tint_array<int, 10>{};
|
tint_array<int, 10> const tint_symbol_30 = tint_array<int, 10>{};
|
||||||
QuicksortObject const tint_symbol_31 = {.numbers=tint_symbol_30};
|
QuicksortObject const tint_symbol_31 = {.numbers=tint_symbol_30};
|
||||||
@ -828,7 +828,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38};
|
QuicksortObject const tint_symbol_39 = {.numbers=tint_symbol_38};
|
||||||
*(tint_symbol_84) = tint_symbol_39;
|
*(tint_symbol_84) = tint_symbol_39;
|
||||||
*(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(1.0f);
|
||||||
int const x_158 = i_2;
|
int const x_158 = i_2;
|
||||||
float2 const x_723 = uv;
|
float2 const x_723 = uv;
|
||||||
uv = float2(0.0f);
|
uv = float2(0.0f);
|
||||||
@ -848,7 +848,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42};
|
QuicksortObject const tint_symbol_43 = {.numbers=tint_symbol_42};
|
||||||
*(tint_symbol_84) = tint_symbol_43;
|
*(tint_symbol_84) = tint_symbol_43;
|
||||||
*(tint_symbol_84) = x_756;
|
*(tint_symbol_84) = x_756;
|
||||||
float2 const x_446 = float2(float2(0.0f)[0], float2(0.0f)[0]);
|
float2 const x_446 = float2(0.0f);
|
||||||
int const x_757 = i_2;
|
int const x_757 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_757;
|
i_2 = x_757;
|
||||||
@ -862,7 +862,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float2 const x_759 = uv;
|
float2 const x_759 = uv;
|
||||||
uv = float2(0.0f);
|
uv = float2(0.0f);
|
||||||
uv = x_759;
|
uv = x_759;
|
||||||
float2 const x_447 = float2(float2(0.0f)[1], float2(0.0f)[1]);
|
float2 const x_447 = float2(0.0f);
|
||||||
float2 const x_760 = uv;
|
float2 const x_760 = uv;
|
||||||
uv = float2(0.0f);
|
uv = float2(0.0f);
|
||||||
uv = x_760;
|
uv = x_760;
|
||||||
@ -882,7 +882,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48};
|
QuicksortObject const tint_symbol_49 = {.numbers=tint_symbol_48};
|
||||||
*(tint_symbol_84) = tint_symbol_49;
|
*(tint_symbol_84) = tint_symbol_49;
|
||||||
*(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], 3.0f, x_184[3]);
|
||||||
float3 const x_764 = color;
|
float3 const x_764 = color;
|
||||||
color = float3(0.0f);
|
color = float3(0.0f);
|
||||||
color = x_764;
|
color = x_764;
|
||||||
@ -926,7 +926,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_773 = color[0];
|
float const x_773 = color[0];
|
||||||
color[0] = 0.0f;
|
color[0] = 0.0f;
|
||||||
color[0] = x_773;
|
color[0] = x_773;
|
||||||
float2 const x_452 = float2(float3(1.0f, 2.0f, 3.0f)[2], float3(1.0f, 2.0f, 3.0f)[1]);
|
float2 const x_452 = float2(3.0f, 2.0f);
|
||||||
int const x_774 = i_2;
|
int const x_774 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_774;
|
i_2 = x_774;
|
||||||
@ -961,7 +961,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
int const x_781 = (*(tint_symbol_84)).numbers[0u];
|
int const x_781 = (*(tint_symbol_84)).numbers[0u];
|
||||||
(*(tint_symbol_84)).numbers[0u] = 0;
|
(*(tint_symbol_84)).numbers[0u] = 0;
|
||||||
(*(tint_symbol_84)).numbers[0u] = x_781;
|
(*(tint_symbol_84)).numbers[0u] = x_781;
|
||||||
float3 const x_456 = float3(float2(0.0f)[1], x_448[1], x_448[1]);
|
float3 const x_456 = float3(0.0f, x_448[1], x_448[1]);
|
||||||
float const x_782 = uv[0];
|
float const x_782 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_782;
|
uv[0] = x_782;
|
||||||
@ -980,7 +980,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62};
|
QuicksortObject const tint_symbol_63 = {.numbers=tint_symbol_62};
|
||||||
*(tint_symbol_84) = tint_symbol_63;
|
*(tint_symbol_84) = tint_symbol_63;
|
||||||
*(tint_symbol_84) = x_785;
|
*(tint_symbol_84) = x_785;
|
||||||
float2 const x_458 = float2(float3(1.0f, 2.0f, 3.0f)[2], float2(0.0f)[1]);
|
float2 const x_458 = float2(3.0f, 0.0f);
|
||||||
int const x_786 = i_2;
|
int const x_786 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_786;
|
i_2 = x_786;
|
||||||
@ -1020,7 +1020,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_796 = uv[0];
|
float const x_796 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_796;
|
uv[0] = x_796;
|
||||||
float2 const x_461 = float2(float2(0.0f)[1], float2(0.0f)[1]);
|
float2 const x_461 = float2(0.0f);
|
||||||
float const x_797 = uv[0];
|
float const x_797 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_797;
|
uv[0] = x_797;
|
||||||
@ -1064,7 +1064,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
int const x_808 = i_2;
|
int const x_808 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_808;
|
i_2 = x_808;
|
||||||
float2 const x_466 = float2(x_455[1], float2(0.0f)[1]);
|
float2 const x_466 = float2(x_455[1], 0.0f);
|
||||||
int const x_809 = i_2;
|
int const x_809 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_809;
|
i_2 = x_809;
|
||||||
@ -1118,7 +1118,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
int const x_822 = (*(tint_symbol_84)).numbers[0u];
|
int const x_822 = (*(tint_symbol_84)).numbers[0u];
|
||||||
(*(tint_symbol_84)).numbers[0u] = 0;
|
(*(tint_symbol_84)).numbers[0u] = 0;
|
||||||
(*(tint_symbol_84)).numbers[0u] = x_822;
|
(*(tint_symbol_84)).numbers[0u] = x_822;
|
||||||
float2 const x_470 = float2(float2(0.0f)[0], float2(0.0f)[1]);
|
float2 const x_470 = float2(0.0f);
|
||||||
float const x_823 = color[2];
|
float const x_823 = color[2];
|
||||||
color[2] = 0.0f;
|
color[2] = 0.0f;
|
||||||
color[2] = x_823;
|
color[2] = x_823;
|
||||||
@ -1160,7 +1160,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
color[0] = x_832;
|
color[0] = x_832;
|
||||||
float2 const x_476 = float2(x_451[2], x_460[1]);
|
float2 const x_476 = float2(x_451[2], x_460[1]);
|
||||||
color[1] = (x_257 + float(x_254));
|
color[1] = (x_257 + float(x_254));
|
||||||
float3 const x_477 = float3(float2(0.0f)[0], x_472[0], float2(0.0f)[1]);
|
float3 const x_477 = float3(0.0f, x_472[0], 0.0f);
|
||||||
float const x_833 = uv[0];
|
float const x_833 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_833;
|
uv[0] = x_833;
|
||||||
@ -1175,14 +1175,14 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
int const x_836 = i_2;
|
int const x_836 = i_2;
|
||||||
i_2 = 0;
|
i_2 = 0;
|
||||||
i_2 = x_836;
|
i_2 = x_836;
|
||||||
float3 const x_479 = float3(float2(0.0f)[1], x_454[1], float2(0.0f)[0]);
|
float3 const x_479 = float3(0.0f, x_454[1], 0.0f);
|
||||||
int const x_837 = (*(tint_symbol_84)).numbers[0u];
|
int const x_837 = (*(tint_symbol_84)).numbers[0u];
|
||||||
(*(tint_symbol_84)).numbers[0u] = 0;
|
(*(tint_symbol_84)).numbers[0u] = 0;
|
||||||
(*(tint_symbol_84)).numbers[0u] = x_837;
|
(*(tint_symbol_84)).numbers[0u] = x_837;
|
||||||
float const x_838 = color[1];
|
float const x_838 = color[1];
|
||||||
color[1] = 0.0f;
|
color[1] = 0.0f;
|
||||||
color[1] = x_838;
|
color[1] = x_838;
|
||||||
float3 const x_480 = float3(x_446[0], x_446[0], float2(0.0f)[1]);
|
float3 const x_480 = float3(x_446[0], x_446[0], 0.0f);
|
||||||
float const x_839 = uv[0];
|
float const x_839 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_839;
|
uv[0] = x_839;
|
||||||
@ -1288,7 +1288,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_865 = color[0];
|
float const x_865 = color[0];
|
||||||
color[0] = 0.0f;
|
color[0] = 0.0f;
|
||||||
color[0] = x_865;
|
color[0] = x_865;
|
||||||
float2 const x_491 = float2(float3(1.0f, 2.0f, 3.0f)[1], x_454[0]);
|
float2 const x_491 = float2(2.0f, x_454[0]);
|
||||||
float const x_866 = color[1];
|
float const x_866 = color[1];
|
||||||
color[1] = 0.0f;
|
color[1] = 0.0f;
|
||||||
color[1] = x_866;
|
color[1] = x_866;
|
||||||
@ -1389,7 +1389,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_891 = color[1];
|
float const x_891 = color[1];
|
||||||
color[1] = 0.0f;
|
color[1] = 0.0f;
|
||||||
color[1] = x_891;
|
color[1] = x_891;
|
||||||
float2 const x_504 = float2(x_453[1], float2(0.0f)[0]);
|
float2 const x_504 = float2(x_453[1], 0.0f);
|
||||||
float const x_892 = color[0];
|
float const x_892 = color[0];
|
||||||
color[0] = 0.0f;
|
color[0] = 0.0f;
|
||||||
color[0] = x_892;
|
color[0] = x_892;
|
||||||
@ -1438,7 +1438,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_904 = color[2];
|
float const x_904 = color[2];
|
||||||
color[2] = 0.0f;
|
color[2] = 0.0f;
|
||||||
color[2] = x_904;
|
color[2] = x_904;
|
||||||
float3 const x_510 = float3(float3(1.0f, 2.0f, 3.0f)[1], x_485[1], x_485[2]);
|
float3 const x_510 = float3(2.0f, x_485[1], x_485[2]);
|
||||||
float const x_905 = color[2];
|
float const x_905 = color[2];
|
||||||
color[2] = 0.0f;
|
color[2] = 0.0f;
|
||||||
color[2] = x_905;
|
color[2] = x_905;
|
||||||
@ -1492,7 +1492,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_918 = uv[0];
|
float const x_918 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_918;
|
uv[0] = x_918;
|
||||||
float3 const x_517 = float3(float2(0.0f)[0], float2(0.0f)[0], float2(0.0f)[1]);
|
float3 const x_517 = float3(0.0f);
|
||||||
color[0] = (float(x_317) + x_320);
|
color[0] = (float(x_317) + x_320);
|
||||||
float const x_919 = color[0];
|
float const x_919 = color[0];
|
||||||
color[0] = 0.0f;
|
color[0] = 0.0f;
|
||||||
@ -1535,7 +1535,7 @@ void main_1(thread QuicksortObject* const tint_symbol_84, thread float4* const t
|
|||||||
float const x_928 = uv[1];
|
float const x_928 = uv[1];
|
||||||
uv[1] = 0.0f;
|
uv[1] = 0.0f;
|
||||||
uv[1] = x_928;
|
uv[1] = x_928;
|
||||||
float3 const x_521 = float3(float3(1.0f, 2.0f, 3.0f)[1], float3(1.0f, 2.0f, 3.0f)[1], x_520[1]);
|
float3 const x_521 = float3(2.0f, 2.0f, x_520[1]);
|
||||||
float const x_929 = uv[0];
|
float const x_929 = uv[0];
|
||||||
uv[0] = 0.0f;
|
uv[0] = 0.0f;
|
||||||
uv[0] = x_929;
|
uv[0] = x_929;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -67,7 +67,7 @@ mat4 getFrameData_f1_(inout float frameID) {
|
|||||||
vec4 x_40 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.0f), 0.0f);
|
vec4 x_40 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.0f), 0.0f);
|
||||||
vec4 x_47 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.25f), 0.0f);
|
vec4 x_47 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.25f), 0.0f);
|
||||||
vec4 x_54 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.5f), 0.0f);
|
vec4 x_54 = texture(frameMapTexture_frameMapSampler, vec2(fX, 0.5f), 0.0f);
|
||||||
return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0f).x, vec4(0.0f).y, vec4(0.0f).z, vec4(0.0f).w));
|
return mat4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
uniform highp sampler2D tileMapsTexture1_tileMapsSampler;
|
uniform highp sampler2D tileMapsTexture1_tileMapsSampler;
|
||||||
|
@ -39,7 +39,7 @@ float4x4 getFrameData_f1_(inout float frameID) {
|
|||||||
const float4 x_40 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.0f), 0.0f);
|
const float4 x_40 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.0f), 0.0f);
|
||||||
const float4 x_47 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.25f), 0.0f);
|
const float4 x_47 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.25f), 0.0f);
|
||||||
const float4 x_54 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.5f), 0.0f);
|
const float4 x_54 = frameMapTexture.SampleBias(frameMapSampler, float2(fX, 0.5f), 0.0f);
|
||||||
return float4x4(float4(x_40.x, x_40.y, x_40.z, x_40.w), float4(x_47.x, x_47.y, x_47.z, x_47.w), float4(x_54.x, x_54.y, x_54.z, x_54.w), float4((0.0f).xxxx.x, (0.0f).xxxx.y, (0.0f).xxxx.z, (0.0f).xxxx.w));
|
return float4x4(float4(x_40.x, x_40.y, x_40.z, x_40.w), float4(x_47.x, x_47.y, x_47.z, x_47.w), float4(x_54.x, x_54.y, x_54.z, x_54.w), (0.0f).xxxx);
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_1() {
|
void main_1() {
|
||||||
|
@ -61,7 +61,7 @@ float4x4 getFrameData_f1_(thread float* const frameID, const constant LeftOver*
|
|||||||
float4 const x_47 = tint_symbol_6.sample(tint_symbol_7, float2(x_44, 0.25f), bias(0.0f));
|
float4 const x_47 = tint_symbol_6.sample(tint_symbol_7, float2(x_44, 0.25f), bias(0.0f));
|
||||||
float const x_51 = fX;
|
float const x_51 = fX;
|
||||||
float4 const x_54 = tint_symbol_6.sample(tint_symbol_7, float2(x_51, 0.5f), bias(0.0f));
|
float4 const x_54 = tint_symbol_6.sample(tint_symbol_7, float2(x_51, 0.5f), bias(0.0f));
|
||||||
return float4x4(float4(x_40[0], x_40[1], x_40[2], x_40[3]), float4(x_47[0], x_47[1], x_47[2], x_47[3]), float4(x_54[0], x_54[1], x_54[2], x_54[3]), float4(float4(0.0f)[0], float4(0.0f)[1], float4(0.0f)[2], float4(0.0f)[3]));
|
return float4x4(float4(x_40[0], x_40[1], x_40[2], x_40[3]), float4(x_47[0], x_47[1], x_47[2], x_47[3]), float4(x_54[0], x_54[1], x_54[2], x_54[3]), float4(0.0f));
|
||||||
}
|
}
|
||||||
|
|
||||||
void main_1(thread float2* const tint_symbol_8, const constant LeftOver* const tint_symbol_9, texture2d<float, access::sample> tint_symbol_10, sampler tint_symbol_11, texture2d<float, access::sample> tint_symbol_12, texture2d<float, access::sample> tint_symbol_13, sampler tint_symbol_14, texture2d<float, access::sample> tint_symbol_16, sampler tint_symbol_17, texture2d<float, access::sample> tint_symbol_18, sampler tint_symbol_19, thread float4* const tint_symbol_20) {
|
void main_1(thread float2* const tint_symbol_8, const constant LeftOver* const tint_symbol_9, texture2d<float, access::sample> tint_symbol_10, sampler tint_symbol_11, texture2d<float, access::sample> tint_symbol_12, texture2d<float, access::sample> tint_symbol_13, sampler tint_symbol_14, texture2d<float, access::sample> tint_symbol_16, sampler tint_symbol_17, texture2d<float, access::sample> tint_symbol_18, sampler tint_symbol_19, thread float4* const tint_symbol_20) {
|
||||||
|
@ -13,10 +13,10 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 383
|
; Bound: 378
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%136 = OpExtInstImport "GLSL.std.450"
|
%131 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Fragment %main "main" %tUV_param_1 %tileID_1_param_1 %levelUnits_param_1 %stageUnits_1_param_1 %vPosition_param_1 %vUV_param_1 %glFragColor_1_1
|
OpEntryPoint Fragment %main "main" %tUV_param_1 %tileID_1_param_1 %levelUnits_param_1 %stageUnits_1_param_1 %vPosition_param_1 %vUV_param_1 %glFragColor_1_1
|
||||||
OpExecutionMode %main OriginUpperLeft
|
OpExecutionMode %main OriginUpperLeft
|
||||||
@ -184,24 +184,24 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
|||||||
%float_0_25 = OpConstant %float 0.25
|
%float_0_25 = OpConstant %float 0.25
|
||||||
%float_0_5 = OpConstant %float 0.5
|
%float_0_5 = OpConstant %float 0.5
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%104 = OpTypeFunction %void
|
%99 = OpTypeFunction %void
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%119 = OpConstantNull %int
|
%114 = OpConstantNull %int
|
||||||
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
||||||
%125 = OpConstantNull %mat4v4float
|
%120 = OpConstantNull %mat4v4float
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%uint_5 = OpConstant %uint 5
|
%uint_5 = OpConstant %uint 5
|
||||||
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
||||||
%149 = OpConstantComposite %v2float %float_1 %float_1
|
%144 = OpConstantComposite %v2float %float_1 %float_1
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%181 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
%176 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%float_8 = OpConstant %float 8
|
%float_8 = OpConstant %float 8
|
||||||
@ -211,7 +211,7 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
|||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
||||||
%main_out = OpTypeStruct %v4float
|
%main_out = OpTypeStruct %v4float
|
||||||
%360 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
|
%355 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
|
||||||
%getFrameData_f1_ = OpFunction %mat4v4float None %49
|
%getFrameData_f1_ = OpFunction %mat4v4float None %49
|
||||||
%frameID = OpFunctionParameter %_ptr_Function_float
|
%frameID = OpFunctionParameter %_ptr_Function_float
|
||||||
%53 = OpLabel
|
%53 = OpLabel
|
||||||
@ -254,27 +254,22 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
|||||||
%95 = OpCompositeExtract %float %77 2
|
%95 = OpCompositeExtract %float %77 2
|
||||||
%96 = OpCompositeExtract %float %77 3
|
%96 = OpCompositeExtract %float %77 3
|
||||||
%97 = OpCompositeConstruct %v4float %93 %94 %95 %96
|
%97 = OpCompositeConstruct %v4float %93 %94 %95 %96
|
||||||
%98 = OpCompositeExtract %float %15 0
|
%98 = OpCompositeConstruct %mat4v4float %87 %92 %97 %15
|
||||||
%99 = OpCompositeExtract %float %15 1
|
OpReturnValue %98
|
||||||
%100 = OpCompositeExtract %float %15 2
|
|
||||||
%101 = OpCompositeExtract %float %15 3
|
|
||||||
%102 = OpCompositeConstruct %v4float %98 %99 %100 %101
|
|
||||||
%103 = OpCompositeConstruct %mat4v4float %87 %92 %97 %102
|
|
||||||
OpReturnValue %103
|
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %104
|
%main_1 = OpFunction %void None %99
|
||||||
%107 = OpLabel
|
%102 = OpLabel
|
||||||
%color = OpVariable %_ptr_Function_v4float Function %15
|
%color = OpVariable %_ptr_Function_v4float Function %15
|
||||||
%tileUV = OpVariable %_ptr_Function_v2float Function %29
|
%tileUV = OpVariable %_ptr_Function_v2float Function %29
|
||||||
%tileID = OpVariable %_ptr_Function_v2float Function %29
|
%tileID = OpVariable %_ptr_Function_v2float Function %29
|
||||||
%sheetUnits = OpVariable %_ptr_Function_v2float Function %29
|
%sheetUnits = OpVariable %_ptr_Function_v2float Function %29
|
||||||
%spriteUnits = OpVariable %_ptr_Function_float Function %37
|
%spriteUnits = OpVariable %_ptr_Function_float Function %37
|
||||||
%stageUnits = OpVariable %_ptr_Function_v2float Function %29
|
%stageUnits = OpVariable %_ptr_Function_v2float Function %29
|
||||||
%i = OpVariable %_ptr_Function_int Function %119
|
%i = OpVariable %_ptr_Function_int Function %114
|
||||||
%frameID_1 = OpVariable %_ptr_Function_float Function %37
|
%frameID_1 = OpVariable %_ptr_Function_float Function %37
|
||||||
%animationData = OpVariable %_ptr_Function_v4float Function %15
|
%animationData = OpVariable %_ptr_Function_v4float Function %15
|
||||||
%f = OpVariable %_ptr_Function_float Function %37
|
%f = OpVariable %_ptr_Function_float Function %37
|
||||||
%frameData = OpVariable %_ptr_Function_mat4v4float Function %125
|
%frameData = OpVariable %_ptr_Function_mat4v4float Function %120
|
||||||
%param = OpVariable %_ptr_Function_float Function %37
|
%param = OpVariable %_ptr_Function_float Function %37
|
||||||
%frameSize = OpVariable %_ptr_Function_v2float Function %29
|
%frameSize = OpVariable %_ptr_Function_v2float Function %29
|
||||||
%offset_1 = OpVariable %_ptr_Function_v2float Function %29
|
%offset_1 = OpVariable %_ptr_Function_v2float Function %29
|
||||||
@ -283,309 +278,309 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
|||||||
%alpha = OpVariable %_ptr_Function_float Function %37
|
%alpha = OpVariable %_ptr_Function_float Function %37
|
||||||
%mixed = OpVariable %_ptr_Function_v3float Function %47
|
%mixed = OpVariable %_ptr_Function_v3float Function %47
|
||||||
OpStore %color %15
|
OpStore %color %15
|
||||||
%134 = OpLoad %v2float %tUV
|
%129 = OpLoad %v2float %tUV
|
||||||
%135 = OpExtInst %v2float %136 Fract %134
|
%130 = OpExtInst %v2float %131 Fract %129
|
||||||
OpStore %tileUV %135
|
OpStore %tileUV %130
|
||||||
%138 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
%133 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
||||||
%139 = OpLoad %float %138
|
%134 = OpLoad %float %133
|
||||||
%140 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
%135 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
||||||
%142 = OpFSub %float %float_1 %139
|
%137 = OpFSub %float %float_1 %134
|
||||||
OpStore %140 %142
|
OpStore %135 %137
|
||||||
%143 = OpLoad %v2float %tUV
|
%138 = OpLoad %v2float %tUV
|
||||||
%144 = OpExtInst %v2float %136 Floor %143
|
%139 = OpExtInst %v2float %131 Floor %138
|
||||||
OpStore %tileID %144
|
OpStore %tileID %139
|
||||||
%147 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
%142 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
||||||
%148 = OpLoad %v2float %147
|
%143 = OpLoad %v2float %142
|
||||||
%150 = OpFDiv %v2float %149 %148
|
%145 = OpFDiv %v2float %144 %143
|
||||||
OpStore %sheetUnits %150
|
OpStore %sheetUnits %145
|
||||||
%151 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
%146 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
%152 = OpLoad %float %151
|
%147 = OpLoad %float %146
|
||||||
%153 = OpFDiv %float %float_1 %152
|
%148 = OpFDiv %float %float_1 %147
|
||||||
OpStore %spriteUnits %153
|
OpStore %spriteUnits %148
|
||||||
%155 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
%150 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
%156 = OpLoad %v2float %155
|
%151 = OpLoad %v2float %150
|
||||||
%157 = OpFDiv %v2float %149 %156
|
%152 = OpFDiv %v2float %144 %151
|
||||||
OpStore %stageUnits %157
|
OpStore %stageUnits %152
|
||||||
OpStore %i %119
|
OpStore %i %114
|
||||||
OpBranch %158
|
OpBranch %153
|
||||||
%158 = OpLabel
|
%153 = OpLabel
|
||||||
OpLoopMerge %159 %160 None
|
OpLoopMerge %154 %155 None
|
||||||
|
OpBranch %156
|
||||||
|
%156 = OpLabel
|
||||||
|
%157 = OpLoad %int %i
|
||||||
|
%159 = OpSLessThan %bool %157 %int_2
|
||||||
|
OpSelectionMerge %161 None
|
||||||
|
OpBranchConditional %159 %162 %163
|
||||||
|
%162 = OpLabel
|
||||||
OpBranch %161
|
OpBranch %161
|
||||||
|
%163 = OpLabel
|
||||||
|
OpBranch %154
|
||||||
%161 = OpLabel
|
%161 = OpLabel
|
||||||
%162 = OpLoad %int %i
|
%164 = OpLoad %int %i
|
||||||
%164 = OpSLessThan %bool %162 %int_2
|
OpSelectionMerge %165 None
|
||||||
OpSelectionMerge %166 None
|
OpSwitch %164 %166 1 %167 0 %168
|
||||||
OpBranchConditional %164 %167 %168
|
|
||||||
%167 = OpLabel
|
%167 = OpLabel
|
||||||
OpBranch %166
|
%169 = OpLoad %v2float %tileID
|
||||||
|
%170 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
|
%171 = OpLoad %v2float %170
|
||||||
|
%173 = OpLoad %26 %tileMapsSampler
|
||||||
|
%174 = OpLoad %23 %tileMapsTexture1
|
||||||
|
%175 = OpSampledImage %66 %174 %173
|
||||||
|
%177 = OpFAdd %v2float %169 %176
|
||||||
|
%178 = OpFDiv %v2float %177 %171
|
||||||
|
%172 = OpImageSampleImplicitLod %v4float %175 %178 Bias %37
|
||||||
|
%179 = OpCompositeExtract %float %172 0
|
||||||
|
OpStore %frameID_1 %179
|
||||||
|
OpBranch %165
|
||||||
%168 = OpLabel
|
%168 = OpLabel
|
||||||
OpBranch %159
|
%180 = OpLoad %v2float %tileID
|
||||||
|
%181 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
|
%182 = OpLoad %v2float %181
|
||||||
|
%184 = OpLoad %26 %tileMapsSampler
|
||||||
|
%185 = OpLoad %23 %tileMapsTexture0
|
||||||
|
%186 = OpSampledImage %66 %185 %184
|
||||||
|
%187 = OpFAdd %v2float %180 %176
|
||||||
|
%188 = OpFDiv %v2float %187 %182
|
||||||
|
%183 = OpImageSampleImplicitLod %v4float %186 %188 Bias %37
|
||||||
|
%189 = OpCompositeExtract %float %183 0
|
||||||
|
OpStore %frameID_1 %189
|
||||||
|
OpBranch %165
|
||||||
%166 = OpLabel
|
%166 = OpLabel
|
||||||
%169 = OpLoad %int %i
|
OpBranch %165
|
||||||
OpSelectionMerge %170 None
|
%165 = OpLabel
|
||||||
OpSwitch %169 %171 1 %172 0 %173
|
%190 = OpLoad %float %frameID_1
|
||||||
%172 = OpLabel
|
%191 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
%174 = OpLoad %v2float %tileID
|
%192 = OpLoad %float %191
|
||||||
%175 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
%194 = OpLoad %26 %animationMapSampler
|
||||||
%176 = OpLoad %v2float %175
|
%195 = OpLoad %23 %animationMapTexture
|
||||||
%178 = OpLoad %26 %tileMapsSampler
|
%196 = OpSampledImage %66 %195 %194
|
||||||
%179 = OpLoad %23 %tileMapsTexture1
|
%197 = OpFAdd %float %190 %float_0_5
|
||||||
%180 = OpSampledImage %66 %179 %178
|
%198 = OpFDiv %float %197 %192
|
||||||
%182 = OpFAdd %v2float %174 %181
|
%199 = OpCompositeConstruct %v2float %198 %37
|
||||||
%183 = OpFDiv %v2float %182 %176
|
%193 = OpImageSampleImplicitLod %v4float %196 %199 Bias %37
|
||||||
%177 = OpImageSampleImplicitLod %v4float %180 %183 Bias %37
|
OpStore %animationData %193
|
||||||
%184 = OpCompositeExtract %float %177 0
|
%200 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
||||||
OpStore %frameID_1 %184
|
%201 = OpLoad %float %200
|
||||||
OpBranch %170
|
%202 = OpFOrdGreaterThan %bool %201 %37
|
||||||
%173 = OpLabel
|
OpSelectionMerge %203 None
|
||||||
%185 = OpLoad %v2float %tileID
|
OpBranchConditional %202 %204 %203
|
||||||
%186 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
%204 = OpLabel
|
||||||
%187 = OpLoad %v2float %186
|
%206 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0
|
||||||
%189 = OpLoad %26 %tileMapsSampler
|
%207 = OpLoad %float %206
|
||||||
%190 = OpLoad %23 %tileMapsTexture0
|
%209 = OpAccessChain %_ptr_Function_float %animationData %uint_2
|
||||||
%191 = OpSampledImage %66 %190 %189
|
%210 = OpLoad %float %209
|
||||||
%192 = OpFAdd %v2float %185 %181
|
%211 = OpFMul %float %207 %210
|
||||||
%193 = OpFDiv %v2float %192 %187
|
%212 = OpFRem %float %211 %float_1
|
||||||
%188 = OpImageSampleImplicitLod %v4float %191 %193 Bias %37
|
OpStore %mt %212
|
||||||
%194 = OpCompositeExtract %float %188 0
|
|
||||||
OpStore %frameID_1 %194
|
|
||||||
OpBranch %170
|
|
||||||
%171 = OpLabel
|
|
||||||
OpBranch %170
|
|
||||||
%170 = OpLabel
|
|
||||||
%195 = OpLoad %float %frameID_1
|
|
||||||
%196 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
|
||||||
%197 = OpLoad %float %196
|
|
||||||
%199 = OpLoad %26 %animationMapSampler
|
|
||||||
%200 = OpLoad %23 %animationMapTexture
|
|
||||||
%201 = OpSampledImage %66 %200 %199
|
|
||||||
%202 = OpFAdd %float %195 %float_0_5
|
|
||||||
%203 = OpFDiv %float %202 %197
|
|
||||||
%204 = OpCompositeConstruct %v2float %203 %37
|
|
||||||
%198 = OpImageSampleImplicitLod %v4float %201 %204 Bias %37
|
|
||||||
OpStore %animationData %198
|
|
||||||
%205 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
|
||||||
%206 = OpLoad %float %205
|
|
||||||
%207 = OpFOrdGreaterThan %bool %206 %37
|
|
||||||
OpSelectionMerge %208 None
|
|
||||||
OpBranchConditional %207 %209 %208
|
|
||||||
%209 = OpLabel
|
|
||||||
%211 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0
|
|
||||||
%212 = OpLoad %float %211
|
|
||||||
%214 = OpAccessChain %_ptr_Function_float %animationData %uint_2
|
|
||||||
%215 = OpLoad %float %214
|
|
||||||
%216 = OpFMul %float %212 %215
|
|
||||||
%217 = OpFRem %float %216 %float_1
|
|
||||||
OpStore %mt %217
|
|
||||||
OpStore %f %37
|
OpStore %f %37
|
||||||
OpBranch %218
|
OpBranch %213
|
||||||
%218 = OpLabel
|
%213 = OpLabel
|
||||||
OpLoopMerge %219 %220 None
|
OpLoopMerge %214 %215 None
|
||||||
OpBranch %221
|
OpBranch %216
|
||||||
|
%216 = OpLabel
|
||||||
|
%217 = OpLoad %float %f
|
||||||
|
%219 = OpFOrdLessThan %bool %217 %float_8
|
||||||
|
OpSelectionMerge %220 None
|
||||||
|
OpBranchConditional %219 %221 %222
|
||||||
%221 = OpLabel
|
%221 = OpLabel
|
||||||
%222 = OpLoad %float %f
|
|
||||||
%224 = OpFOrdLessThan %bool %222 %float_8
|
|
||||||
OpSelectionMerge %225 None
|
|
||||||
OpBranchConditional %224 %226 %227
|
|
||||||
%226 = OpLabel
|
|
||||||
OpBranch %225
|
|
||||||
%227 = OpLabel
|
|
||||||
OpBranch %219
|
|
||||||
%225 = OpLabel
|
|
||||||
%228 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
|
||||||
%229 = OpLoad %float %228
|
|
||||||
%230 = OpLoad %float %mt
|
|
||||||
%231 = OpFOrdGreaterThan %bool %229 %230
|
|
||||||
OpSelectionMerge %232 None
|
|
||||||
OpBranchConditional %231 %233 %232
|
|
||||||
%233 = OpLabel
|
|
||||||
%234 = OpAccessChain %_ptr_Function_float %animationData %uint_0
|
|
||||||
%235 = OpLoad %float %234
|
|
||||||
OpStore %frameID_1 %235
|
|
||||||
OpBranch %219
|
|
||||||
%232 = OpLabel
|
|
||||||
%236 = OpLoad %float %frameID_1
|
|
||||||
%237 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
|
||||||
%238 = OpLoad %float %237
|
|
||||||
%239 = OpLoad %float %f
|
|
||||||
%241 = OpLoad %26 %animationMapSampler
|
|
||||||
%242 = OpLoad %23 %animationMapTexture
|
|
||||||
%243 = OpSampledImage %66 %242 %241
|
|
||||||
%244 = OpFAdd %float %236 %float_0_5
|
|
||||||
%245 = OpFDiv %float %244 %238
|
|
||||||
%247 = OpFMul %float %float_0_125 %239
|
|
||||||
%248 = OpCompositeConstruct %v2float %245 %247
|
|
||||||
%240 = OpImageSampleImplicitLod %v4float %243 %248 Bias %37
|
|
||||||
OpStore %animationData %240
|
|
||||||
OpBranch %220
|
OpBranch %220
|
||||||
|
%222 = OpLabel
|
||||||
|
OpBranch %214
|
||||||
%220 = OpLabel
|
%220 = OpLabel
|
||||||
%249 = OpLoad %float %f
|
%223 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
||||||
%250 = OpFAdd %float %249 %float_1
|
%224 = OpLoad %float %223
|
||||||
OpStore %f %250
|
%225 = OpLoad %float %mt
|
||||||
OpBranch %218
|
%226 = OpFOrdGreaterThan %bool %224 %225
|
||||||
%219 = OpLabel
|
OpSelectionMerge %227 None
|
||||||
OpBranch %208
|
OpBranchConditional %226 %228 %227
|
||||||
%208 = OpLabel
|
%228 = OpLabel
|
||||||
%251 = OpLoad %float %frameID_1
|
%229 = OpAccessChain %_ptr_Function_float %animationData %uint_0
|
||||||
%252 = OpFAdd %float %251 %float_0_5
|
%230 = OpLoad %float %229
|
||||||
OpStore %param %252
|
OpStore %frameID_1 %230
|
||||||
%253 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
|
OpBranch %214
|
||||||
OpStore %frameData %253
|
%227 = OpLabel
|
||||||
%255 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
%231 = OpLoad %float %frameID_1
|
||||||
%256 = OpLoad %v4float %255
|
%232 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
%257 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
%233 = OpLoad %float %232
|
||||||
%258 = OpLoad %v2float %257
|
%234 = OpLoad %float %f
|
||||||
%259 = OpCompositeExtract %float %256 3
|
%236 = OpLoad %26 %animationMapSampler
|
||||||
%260 = OpCompositeExtract %float %256 2
|
%237 = OpLoad %23 %animationMapTexture
|
||||||
%261 = OpCompositeConstruct %v2float %259 %260
|
%238 = OpSampledImage %66 %237 %236
|
||||||
%262 = OpFDiv %v2float %261 %258
|
%239 = OpFAdd %float %231 %float_0_5
|
||||||
OpStore %frameSize %262
|
%240 = OpFDiv %float %239 %233
|
||||||
%263 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
%242 = OpFMul %float %float_0_125 %234
|
||||||
%264 = OpLoad %v4float %263
|
%243 = OpCompositeConstruct %v2float %240 %242
|
||||||
%265 = OpLoad %v2float %sheetUnits
|
%235 = OpImageSampleImplicitLod %v4float %238 %243 Bias %37
|
||||||
%266 = OpCompositeExtract %float %264 0
|
OpStore %animationData %235
|
||||||
%267 = OpCompositeExtract %float %264 1
|
OpBranch %215
|
||||||
%268 = OpCompositeConstruct %v2float %266 %267
|
%215 = OpLabel
|
||||||
%269 = OpFMul %v2float %268 %265
|
%244 = OpLoad %float %f
|
||||||
OpStore %offset_1 %269
|
%245 = OpFAdd %float %244 %float_1
|
||||||
%270 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
|
OpStore %f %245
|
||||||
%271 = OpLoad %v4float %270
|
OpBranch %213
|
||||||
%272 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
%214 = OpLabel
|
||||||
%273 = OpLoad %v4float %272
|
OpBranch %203
|
||||||
%274 = OpCompositeExtract %float %271 0
|
%203 = OpLabel
|
||||||
%275 = OpCompositeExtract %float %271 1
|
%246 = OpLoad %float %frameID_1
|
||||||
%276 = OpCompositeConstruct %v2float %274 %275
|
%247 = OpFAdd %float %246 %float_0_5
|
||||||
%277 = OpCompositeExtract %float %273 3
|
OpStore %param %247
|
||||||
%278 = OpCompositeExtract %float %273 2
|
%248 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
|
||||||
%279 = OpCompositeConstruct %v2float %277 %278
|
OpStore %frameData %248
|
||||||
%280 = OpFDiv %v2float %276 %279
|
%250 = OpAccessChain %_ptr_Function_v4float %frameData %114
|
||||||
OpStore %ratio %280
|
%251 = OpLoad %v4float %250
|
||||||
%281 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
|
%252 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
||||||
%282 = OpLoad %float %281
|
%253 = OpLoad %v2float %252
|
||||||
%283 = OpFOrdEqual %bool %282 %float_1
|
%254 = OpCompositeExtract %float %251 3
|
||||||
OpSelectionMerge %284 None
|
%255 = OpCompositeExtract %float %251 2
|
||||||
OpBranchConditional %283 %285 %284
|
%256 = OpCompositeConstruct %v2float %254 %255
|
||||||
%285 = OpLabel
|
%257 = OpFDiv %v2float %256 %253
|
||||||
%286 = OpLoad %v2float %tileUV
|
OpStore %frameSize %257
|
||||||
%287 = OpCompositeExtract %float %286 1
|
%258 = OpAccessChain %_ptr_Function_v4float %frameData %114
|
||||||
%288 = OpCompositeExtract %float %286 0
|
%259 = OpLoad %v4float %258
|
||||||
%289 = OpCompositeConstruct %v2float %287 %288
|
%260 = OpLoad %v2float %sheetUnits
|
||||||
OpStore %tileUV %289
|
%261 = OpCompositeExtract %float %259 0
|
||||||
OpBranch %284
|
%262 = OpCompositeExtract %float %259 1
|
||||||
%284 = OpLabel
|
%263 = OpCompositeConstruct %v2float %261 %262
|
||||||
%290 = OpLoad %int %i
|
%264 = OpFMul %v2float %263 %260
|
||||||
%291 = OpIEqual %bool %290 %119
|
OpStore %offset_1 %264
|
||||||
OpSelectionMerge %292 None
|
%265 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
|
||||||
OpBranchConditional %291 %293 %294
|
%266 = OpLoad %v4float %265
|
||||||
%293 = OpLabel
|
%267 = OpAccessChain %_ptr_Function_v4float %frameData %114
|
||||||
%295 = OpLoad %v2float %tileUV
|
%268 = OpLoad %v4float %267
|
||||||
%296 = OpLoad %v2float %frameSize
|
%269 = OpCompositeExtract %float %266 0
|
||||||
%297 = OpLoad %v2float %offset_1
|
%270 = OpCompositeExtract %float %266 1
|
||||||
%299 = OpLoad %26 %spriteSheetSampler
|
%271 = OpCompositeConstruct %v2float %269 %270
|
||||||
%300 = OpLoad %23 %spriteSheetTexture
|
%272 = OpCompositeExtract %float %268 3
|
||||||
%301 = OpSampledImage %66 %300 %299
|
%273 = OpCompositeExtract %float %268 2
|
||||||
%302 = OpFMul %v2float %295 %296
|
%274 = OpCompositeConstruct %v2float %272 %273
|
||||||
%303 = OpFAdd %v2float %302 %297
|
%275 = OpFDiv %v2float %271 %274
|
||||||
%298 = OpImageSampleImplicitLod %v4float %301 %303
|
OpStore %ratio %275
|
||||||
OpStore %color %298
|
%276 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
|
||||||
OpBranch %292
|
%277 = OpLoad %float %276
|
||||||
%294 = OpLabel
|
%278 = OpFOrdEqual %bool %277 %float_1
|
||||||
%304 = OpLoad %v2float %tileUV
|
OpSelectionMerge %279 None
|
||||||
%305 = OpLoad %v2float %frameSize
|
OpBranchConditional %278 %280 %279
|
||||||
%306 = OpLoad %v2float %offset_1
|
%280 = OpLabel
|
||||||
%308 = OpLoad %26 %spriteSheetSampler
|
%281 = OpLoad %v2float %tileUV
|
||||||
%309 = OpLoad %23 %spriteSheetTexture
|
%282 = OpCompositeExtract %float %281 1
|
||||||
%310 = OpSampledImage %66 %309 %308
|
%283 = OpCompositeExtract %float %281 0
|
||||||
%311 = OpFMul %v2float %304 %305
|
%284 = OpCompositeConstruct %v2float %282 %283
|
||||||
%312 = OpFAdd %v2float %311 %306
|
OpStore %tileUV %284
|
||||||
%307 = OpImageSampleImplicitLod %v4float %310 %312
|
OpBranch %279
|
||||||
OpStore %nc %307
|
%279 = OpLabel
|
||||||
%314 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%285 = OpLoad %int %i
|
||||||
%315 = OpLoad %float %314
|
%286 = OpIEqual %bool %285 %114
|
||||||
%316 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
OpSelectionMerge %287 None
|
||||||
%317 = OpLoad %float %316
|
OpBranchConditional %286 %288 %289
|
||||||
%319 = OpFAdd %float %315 %317
|
%288 = OpLabel
|
||||||
%318 = OpExtInst %float %136 NMin %319 %float_1
|
%290 = OpLoad %v2float %tileUV
|
||||||
OpStore %alpha %318
|
%291 = OpLoad %v2float %frameSize
|
||||||
%320 = OpLoad %v4float %color
|
%292 = OpLoad %v2float %offset_1
|
||||||
%321 = OpLoad %v4float %nc
|
%294 = OpLoad %26 %spriteSheetSampler
|
||||||
%322 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
%295 = OpLoad %23 %spriteSheetTexture
|
||||||
%323 = OpLoad %float %322
|
%296 = OpSampledImage %66 %295 %294
|
||||||
%325 = OpCompositeExtract %float %320 0
|
%297 = OpFMul %v2float %290 %291
|
||||||
%326 = OpCompositeExtract %float %320 1
|
%298 = OpFAdd %v2float %297 %292
|
||||||
%327 = OpCompositeExtract %float %320 2
|
%293 = OpImageSampleImplicitLod %v4float %296 %298
|
||||||
%328 = OpCompositeConstruct %v3float %325 %326 %327
|
OpStore %color %293
|
||||||
%329 = OpCompositeExtract %float %321 0
|
OpBranch %287
|
||||||
%330 = OpCompositeExtract %float %321 1
|
%289 = OpLabel
|
||||||
%331 = OpCompositeExtract %float %321 2
|
%299 = OpLoad %v2float %tileUV
|
||||||
%332 = OpCompositeConstruct %v3float %329 %330 %331
|
%300 = OpLoad %v2float %frameSize
|
||||||
%333 = OpCompositeConstruct %v3float %323 %323 %323
|
%301 = OpLoad %v2float %offset_1
|
||||||
%324 = OpExtInst %v3float %136 FMix %328 %332 %333
|
%303 = OpLoad %26 %spriteSheetSampler
|
||||||
OpStore %mixed %324
|
%304 = OpLoad %23 %spriteSheetTexture
|
||||||
%334 = OpLoad %v3float %mixed
|
%305 = OpSampledImage %66 %304 %303
|
||||||
%335 = OpLoad %float %alpha
|
%306 = OpFMul %v2float %299 %300
|
||||||
%336 = OpCompositeExtract %float %334 0
|
%307 = OpFAdd %v2float %306 %301
|
||||||
%337 = OpCompositeExtract %float %334 1
|
%302 = OpImageSampleImplicitLod %v4float %305 %307
|
||||||
%338 = OpCompositeExtract %float %334 2
|
OpStore %nc %302
|
||||||
%339 = OpCompositeConstruct %v4float %336 %337 %338 %335
|
%309 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
OpStore %color %339
|
%310 = OpLoad %float %309
|
||||||
OpBranch %292
|
%311 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
||||||
%292 = OpLabel
|
%312 = OpLoad %float %311
|
||||||
OpBranch %160
|
%314 = OpFAdd %float %310 %312
|
||||||
%160 = OpLabel
|
%313 = OpExtInst %float %131 NMin %314 %float_1
|
||||||
%340 = OpLoad %int %i
|
OpStore %alpha %313
|
||||||
%342 = OpIAdd %int %340 %int_1
|
%315 = OpLoad %v4float %color
|
||||||
OpStore %i %342
|
%316 = OpLoad %v4float %nc
|
||||||
OpBranch %158
|
%317 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
||||||
%159 = OpLabel
|
%318 = OpLoad %float %317
|
||||||
%345 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
|
%320 = OpCompositeExtract %float %315 0
|
||||||
%346 = OpLoad %v3float %345
|
%321 = OpCompositeExtract %float %315 1
|
||||||
%347 = OpLoad %v4float %color
|
%322 = OpCompositeExtract %float %315 2
|
||||||
%348 = OpCompositeExtract %float %347 0
|
%323 = OpCompositeConstruct %v3float %320 %321 %322
|
||||||
%349 = OpCompositeExtract %float %347 1
|
%324 = OpCompositeExtract %float %316 0
|
||||||
%350 = OpCompositeExtract %float %347 2
|
%325 = OpCompositeExtract %float %316 1
|
||||||
%351 = OpCompositeConstruct %v3float %348 %349 %350
|
%326 = OpCompositeExtract %float %316 2
|
||||||
%352 = OpFMul %v3float %351 %346
|
%327 = OpCompositeConstruct %v3float %324 %325 %326
|
||||||
%353 = OpLoad %v4float %color
|
%328 = OpCompositeConstruct %v3float %318 %318 %318
|
||||||
%354 = OpCompositeExtract %float %352 0
|
%319 = OpExtInst %v3float %131 FMix %323 %327 %328
|
||||||
%355 = OpCompositeExtract %float %352 1
|
OpStore %mixed %319
|
||||||
%356 = OpCompositeExtract %float %352 2
|
%329 = OpLoad %v3float %mixed
|
||||||
%357 = OpCompositeExtract %float %353 3
|
%330 = OpLoad %float %alpha
|
||||||
%358 = OpCompositeConstruct %v4float %354 %355 %356 %357
|
%331 = OpCompositeExtract %float %329 0
|
||||||
OpStore %color %358
|
%332 = OpCompositeExtract %float %329 1
|
||||||
%359 = OpLoad %v4float %color
|
%333 = OpCompositeExtract %float %329 2
|
||||||
OpStore %glFragColor %359
|
%334 = OpCompositeConstruct %v4float %331 %332 %333 %330
|
||||||
|
OpStore %color %334
|
||||||
|
OpBranch %287
|
||||||
|
%287 = OpLabel
|
||||||
|
OpBranch %155
|
||||||
|
%155 = OpLabel
|
||||||
|
%335 = OpLoad %int %i
|
||||||
|
%337 = OpIAdd %int %335 %int_1
|
||||||
|
OpStore %i %337
|
||||||
|
OpBranch %153
|
||||||
|
%154 = OpLabel
|
||||||
|
%340 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
|
||||||
|
%341 = OpLoad %v3float %340
|
||||||
|
%342 = OpLoad %v4float %color
|
||||||
|
%343 = OpCompositeExtract %float %342 0
|
||||||
|
%344 = OpCompositeExtract %float %342 1
|
||||||
|
%345 = OpCompositeExtract %float %342 2
|
||||||
|
%346 = OpCompositeConstruct %v3float %343 %344 %345
|
||||||
|
%347 = OpFMul %v3float %346 %341
|
||||||
|
%348 = OpLoad %v4float %color
|
||||||
|
%349 = OpCompositeExtract %float %347 0
|
||||||
|
%350 = OpCompositeExtract %float %347 1
|
||||||
|
%351 = OpCompositeExtract %float %347 2
|
||||||
|
%352 = OpCompositeExtract %float %348 3
|
||||||
|
%353 = OpCompositeConstruct %v4float %349 %350 %351 %352
|
||||||
|
OpStore %color %353
|
||||||
|
%354 = OpLoad %v4float %color
|
||||||
|
OpStore %glFragColor %354
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %360
|
%main_inner = OpFunction %main_out None %355
|
||||||
%tUV_param = OpFunctionParameter %v2float
|
%tUV_param = OpFunctionParameter %v2float
|
||||||
%tileID_1_param = OpFunctionParameter %v2float
|
%tileID_1_param = OpFunctionParameter %v2float
|
||||||
%levelUnits_param = OpFunctionParameter %v2float
|
%levelUnits_param = OpFunctionParameter %v2float
|
||||||
%stageUnits_1_param = OpFunctionParameter %v2float
|
%stageUnits_1_param = OpFunctionParameter %v2float
|
||||||
%vPosition_param = OpFunctionParameter %v3float
|
%vPosition_param = OpFunctionParameter %v3float
|
||||||
%vUV_param = OpFunctionParameter %v2float
|
%vUV_param = OpFunctionParameter %v2float
|
||||||
%369 = OpLabel
|
%364 = OpLabel
|
||||||
OpStore %tUV %tUV_param
|
OpStore %tUV %tUV_param
|
||||||
OpStore %tileID_1 %tileID_1_param
|
OpStore %tileID_1 %tileID_1_param
|
||||||
OpStore %levelUnits %levelUnits_param
|
OpStore %levelUnits %levelUnits_param
|
||||||
OpStore %stageUnits_1 %stageUnits_1_param
|
OpStore %stageUnits_1 %stageUnits_1_param
|
||||||
OpStore %vPosition %vPosition_param
|
OpStore %vPosition %vPosition_param
|
||||||
OpStore %vUV %vUV_param
|
OpStore %vUV %vUV_param
|
||||||
%370 = OpFunctionCall %void %main_1
|
%365 = OpFunctionCall %void %main_1
|
||||||
%371 = OpLoad %v4float %glFragColor
|
%366 = OpLoad %v4float %glFragColor
|
||||||
%372 = OpCompositeConstruct %main_out %371
|
%367 = OpCompositeConstruct %main_out %366
|
||||||
OpReturnValue %372
|
OpReturnValue %367
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %104
|
%main = OpFunction %void None %99
|
||||||
%374 = OpLabel
|
%369 = OpLabel
|
||||||
%376 = OpLoad %v2float %tUV_param_1
|
%371 = OpLoad %v2float %tUV_param_1
|
||||||
%377 = OpLoad %v2float %tileID_1_param_1
|
%372 = OpLoad %v2float %tileID_1_param_1
|
||||||
%378 = OpLoad %v2float %levelUnits_param_1
|
%373 = OpLoad %v2float %levelUnits_param_1
|
||||||
%379 = OpLoad %v2float %stageUnits_1_param_1
|
%374 = OpLoad %v2float %stageUnits_1_param_1
|
||||||
%380 = OpLoad %v3float %vPosition_param_1
|
%375 = OpLoad %v3float %vPosition_param_1
|
||||||
%381 = OpLoad %v2float %vUV_param_1
|
%376 = OpLoad %v2float %vUV_param_1
|
||||||
%375 = OpFunctionCall %main_out %main_inner %376 %377 %378 %379 %380 %381
|
%370 = OpFunctionCall %main_out %main_inner %371 %372 %373 %374 %375 %376
|
||||||
%382 = OpCompositeExtract %v4float %375 0
|
%377 = OpCompositeExtract %v4float %370 0
|
||||||
OpStore %glFragColor_1_1 %382
|
OpStore %glFragColor_1_1 %377
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
@ -5,8 +5,8 @@ void unused_entry_point() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
void f() {
|
void f() {
|
||||||
float a = vec2(1.0f).y;
|
float a = 1.0f;
|
||||||
float b = vec3(1.0f).z;
|
float b = 1.0f;
|
||||||
float c = vec4(1.0f).w;
|
float c = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ void unused_entry_point() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void f() {
|
void f() {
|
||||||
float a = (1.0f).xx.y;
|
float a = 1.0f;
|
||||||
float b = (1.0f).xxx.z;
|
float b = 1.0f;
|
||||||
float c = (1.0f).xxxx.w;
|
float c = 1.0f;
|
||||||
}
|
}
|
||||||
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
using namespace metal;
|
using namespace metal;
|
||||||
void f() {
|
void f() {
|
||||||
float a = float2(1.0f)[1];
|
float a = 1.0f;
|
||||||
float b = float3(1.0f)[2];
|
float b = 1.0f;
|
||||||
float c = float4(1.0f)[3];
|
float c = 1.0f;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 23
|
; Bound: 14
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
@ -15,29 +15,20 @@
|
|||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%float = OpTypeFloat 32
|
%float = OpTypeFloat 32
|
||||||
%v2float = OpTypeVector %float 2
|
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%10 = OpConstantComposite %v2float %float_1 %float_1
|
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%14 = OpConstantNull %float
|
%11 = OpConstantNull %float
|
||||||
%v3float = OpTypeVector %float 3
|
|
||||||
%16 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
|
||||||
%v4float = OpTypeVector %float 4
|
|
||||||
%20 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %1
|
%f = OpFunction %void None %1
|
||||||
%6 = OpLabel
|
%6 = OpLabel
|
||||||
%a = OpVariable %_ptr_Function_float Function %14
|
%a = OpVariable %_ptr_Function_float Function %11
|
||||||
%b = OpVariable %_ptr_Function_float Function %14
|
%b = OpVariable %_ptr_Function_float Function %11
|
||||||
%c = OpVariable %_ptr_Function_float Function %14
|
%c = OpVariable %_ptr_Function_float Function %11
|
||||||
%11 = OpCompositeExtract %float %10 1
|
OpStore %a %float_1
|
||||||
OpStore %a %11
|
OpStore %b %float_1
|
||||||
%17 = OpCompositeExtract %float %16 2
|
OpStore %c %float_1
|
||||||
OpStore %b %17
|
|
||||||
%21 = OpCompositeExtract %float %20 3
|
|
||||||
OpStore %c %21
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
Loading…
x
Reference in New Issue
Block a user