tint/writer/spirv: Inline constant expressions
This is required to handle materialized values, and for constant expressions. Bug: tint:1504 Change-Id: If0a49e9b03566c06aa6e4e4c284fc427e1541e91 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/92082 Reviewed-by: Dan Sinclair <dsinclair@chromium.org> Kokoro: Kokoro <noreply+kokoro@google.com> Commit-Queue: Ben Clayton <bclayton@chromium.org>
This commit is contained in:
parent
609ce6de8d
commit
8e3485248e
|
@ -27,6 +27,7 @@
|
||||||
#include "src/tint/sem/atomic.h"
|
#include "src/tint/sem/atomic.h"
|
||||||
#include "src/tint/sem/builtin.h"
|
#include "src/tint/sem/builtin.h"
|
||||||
#include "src/tint/sem/call.h"
|
#include "src/tint/sem/call.h"
|
||||||
|
#include "src/tint/sem/constant.h"
|
||||||
#include "src/tint/sem/depth_multisampled_texture.h"
|
#include "src/tint/sem/depth_multisampled_texture.h"
|
||||||
#include "src/tint/sem/depth_texture.h"
|
#include "src/tint/sem/depth_texture.h"
|
||||||
#include "src/tint/sem/function.h"
|
#include "src/tint/sem/function.h"
|
||||||
|
@ -406,6 +407,11 @@ bool Builder::GenerateLabel(uint32_t id) {
|
||||||
|
|
||||||
bool Builder::GenerateAssignStatement(const ast::AssignmentStatement* assign) {
|
bool Builder::GenerateAssignStatement(const ast::AssignmentStatement* assign) {
|
||||||
if (assign->lhs->Is<ast::PhonyExpression>()) {
|
if (assign->lhs->Is<ast::PhonyExpression>()) {
|
||||||
|
if (builder_.Sem().Get(assign->rhs)->ConstantValue()) {
|
||||||
|
// RHS of phony assignment is constant.
|
||||||
|
// Constants can't have side-effects, so just drop this.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
auto rhs_id = GenerateExpression(assign->rhs);
|
auto rhs_id = GenerateExpression(assign->rhs);
|
||||||
if (rhs_id == 0) {
|
if (rhs_id == 0) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -566,8 +572,14 @@ bool Builder::GenerateExecutionModes(const ast::Function* func, uint32_t id) {
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Builder::GenerateExpression(const ast::Expression* expr) {
|
uint32_t Builder::GenerateExpression(const ast::Expression* expr) {
|
||||||
|
if (auto* sem = builder_.Sem().Get(expr)) {
|
||||||
|
if (auto constant = sem->ConstantValue()) {
|
||||||
|
return GenerateConstantIfNeeded(constant);
|
||||||
|
}
|
||||||
|
}
|
||||||
return Switch(
|
return Switch(
|
||||||
expr, [&](const ast::IndexAccessorExpression* a) { return GenerateAccessorExpression(a); },
|
expr, //
|
||||||
|
[&](const ast::IndexAccessorExpression* a) { return GenerateAccessorExpression(a); },
|
||||||
[&](const ast::BinaryExpression* b) { return GenerateBinaryExpression(b); },
|
[&](const ast::BinaryExpression* b) { return GenerateBinaryExpression(b); },
|
||||||
[&](const ast::BitcastExpression* b) { return GenerateBitcastExpression(b); },
|
[&](const ast::BitcastExpression* b) { return GenerateBitcastExpression(b); },
|
||||||
[&](const ast::CallExpression* c) { return GenerateCallExpression(c); },
|
[&](const ast::CallExpression* c) { return GenerateCallExpression(c); },
|
||||||
|
@ -743,7 +755,15 @@ bool Builder::GenerateGlobalVariable(const ast::Variable* var) {
|
||||||
|
|
||||||
uint32_t init_id = 0;
|
uint32_t init_id = 0;
|
||||||
if (var->constructor) {
|
if (var->constructor) {
|
||||||
init_id = GenerateConstructorExpression(var, var->constructor);
|
if (!var->is_overridable) {
|
||||||
|
auto* ctor = builder_.Sem().Get(var->constructor);
|
||||||
|
if (auto constant = ctor->ConstantValue()) {
|
||||||
|
init_id = GenerateConstantIfNeeded(std::move(constant));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (init_id == 0) {
|
||||||
|
init_id = GenerateConstructorExpression(var, var->constructor);
|
||||||
|
}
|
||||||
if (init_id == 0) {
|
if (init_id == 0) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -1662,6 +1682,116 @@ uint32_t Builder::GenerateLiteralIfNeeded(const ast::Variable* var,
|
||||||
return GenerateConstantIfNeeded(constant);
|
return GenerateConstantIfNeeded(constant);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
uint32_t Builder::GenerateConstantIfNeeded(const sem::Constant& constant) {
|
||||||
|
if (constant.AllZero()) {
|
||||||
|
return GenerateConstantNullIfNeeded(constant.Type());
|
||||||
|
}
|
||||||
|
|
||||||
|
static constexpr size_t kOpsResultIdx = 1; // operand index of the result
|
||||||
|
auto& global_scope = scope_stack_[0];
|
||||||
|
|
||||||
|
auto gen_bool = [&](size_t element_idx) {
|
||||||
|
bool val = constant.Element<AInt>(element_idx);
|
||||||
|
return GenerateConstantIfNeeded(ScalarConstant::Bool(val));
|
||||||
|
};
|
||||||
|
auto gen_f32 = [&](size_t element_idx) {
|
||||||
|
auto val = f32(constant.Element<AFloat>(element_idx));
|
||||||
|
return GenerateConstantIfNeeded(ScalarConstant::F32(val.value));
|
||||||
|
};
|
||||||
|
auto gen_i32 = [&](size_t element_idx) {
|
||||||
|
auto val = i32(constant.Element<AInt>(element_idx));
|
||||||
|
return GenerateConstantIfNeeded(ScalarConstant::I32(val.value));
|
||||||
|
};
|
||||||
|
auto gen_u32 = [&](size_t element_idx) {
|
||||||
|
auto val = u32(constant.Element<AInt>(element_idx));
|
||||||
|
return GenerateConstantIfNeeded(ScalarConstant::U32(val.value));
|
||||||
|
};
|
||||||
|
auto gen_els = [&](std::vector<Operand>& ids, size_t start, size_t end, auto gen_el) {
|
||||||
|
for (size_t i = start; i < end; i++) {
|
||||||
|
auto id = gen_el(i);
|
||||||
|
if (!id) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
ids.emplace_back(id);
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
};
|
||||||
|
auto gen_vector = [&](const sem::Vector* ty, size_t start, size_t end) -> uint32_t {
|
||||||
|
auto type_id = GenerateTypeIfNeeded(ty);
|
||||||
|
if (!type_id) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Operand> ops;
|
||||||
|
ops.reserve(end - start + 2);
|
||||||
|
ops.emplace_back(type_id);
|
||||||
|
ops.push_back(Operand(0u)); // Placeholder for the result ID
|
||||||
|
auto ok = Switch(
|
||||||
|
constant.ElementType(), //
|
||||||
|
[&](const sem::Bool*) { return gen_els(ops, start, end, gen_bool); }, //
|
||||||
|
[&](const sem::F32*) { return gen_els(ops, start, end, gen_f32); }, //
|
||||||
|
[&](const sem::I32*) { return gen_els(ops, start, end, gen_i32); }, //
|
||||||
|
[&](const sem::U32*) { return gen_els(ops, start, end, gen_u32); }, //
|
||||||
|
[&](Default) {
|
||||||
|
error_ = "unhandled constant element type: " + builder_.FriendlyName(ty);
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
if (!ok) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils::GetOrCreate(global_scope.type_ctor_to_id_, OperandListKey{ops},
|
||||||
|
[&]() -> uint32_t {
|
||||||
|
auto result = result_op();
|
||||||
|
ops[kOpsResultIdx] = result;
|
||||||
|
push_type(spv::Op::OpConstantComposite, std::move(ops));
|
||||||
|
return std::get<uint32_t>(result);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
auto gen_matrix = [&](const sem::Matrix* m) -> uint32_t {
|
||||||
|
auto mat_type_id = GenerateTypeIfNeeded(m);
|
||||||
|
if (!mat_type_id) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<Operand> ops;
|
||||||
|
ops.reserve(m->columns() + 2);
|
||||||
|
ops.emplace_back(mat_type_id);
|
||||||
|
ops.push_back(Operand(0u)); // Placeholder for the result ID
|
||||||
|
|
||||||
|
for (size_t column_idx = 0; column_idx < m->columns(); column_idx++) {
|
||||||
|
size_t start = m->rows() * column_idx;
|
||||||
|
size_t end = m->rows() * (column_idx + 1);
|
||||||
|
auto column_id = gen_vector(m->ColumnType(), start, end);
|
||||||
|
if (!column_id) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
ops.emplace_back(column_id);
|
||||||
|
}
|
||||||
|
|
||||||
|
return utils::GetOrCreate(global_scope.type_ctor_to_id_, OperandListKey{ops},
|
||||||
|
[&]() -> uint32_t {
|
||||||
|
auto result = result_op();
|
||||||
|
ops[kOpsResultIdx] = result;
|
||||||
|
push_type(spv::Op::OpConstantComposite, std::move(ops));
|
||||||
|
return std::get<uint32_t>(result);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
return Switch(
|
||||||
|
constant.Type(), //
|
||||||
|
[&](const sem::Bool*) { return gen_bool(0); }, //
|
||||||
|
[&](const sem::F32*) { return gen_f32(0); }, //
|
||||||
|
[&](const sem::I32*) { return gen_i32(0); }, //
|
||||||
|
[&](const sem::U32*) { return gen_u32(0); }, //
|
||||||
|
[&](const sem::Vector* v) { return gen_vector(v, 0, constant.ElementCount()); }, //
|
||||||
|
[&](const sem::Matrix* m) { return gen_matrix(m); }, //
|
||||||
|
[&](Default) {
|
||||||
|
error_ = "unhandled constant type: " + builder_.FriendlyName(constant.Type());
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
uint32_t Builder::GenerateConstantIfNeeded(const ScalarConstant& constant) {
|
uint32_t Builder::GenerateConstantIfNeeded(const ScalarConstant& constant) {
|
||||||
auto it = const_to_id_.find(constant);
|
auto it = const_to_id_.find(constant);
|
||||||
if (it != const_to_id_.end()) {
|
if (it != const_to_id_.end()) {
|
||||||
|
@ -2174,12 +2304,7 @@ bool Builder::GenerateBlockStatementWithoutScoping(const ast::BlockStatement* st
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t Builder::GenerateCallExpression(const ast::CallExpression* expr) {
|
uint32_t Builder::GenerateCallExpression(const ast::CallExpression* expr) {
|
||||||
auto* sem = builder_.Sem().Get(expr);
|
auto* call = builder_.Sem().Get<sem::Call>(expr);
|
||||||
if (auto* m = sem->As<sem::Materialize>()) {
|
|
||||||
// TODO(crbug.com/tint/1504): Just emit the constant value.
|
|
||||||
sem = m->Expr();
|
|
||||||
}
|
|
||||||
auto* call = sem->As<sem::Call>();
|
|
||||||
auto* target = call->Target();
|
auto* target = call->Target();
|
||||||
return Switch(
|
return Switch(
|
||||||
target, [&](const sem::Function* func) { return GenerateFunctionCall(call, func); },
|
target, [&](const sem::Function* func) { return GenerateFunctionCall(call, func); },
|
||||||
|
@ -2936,10 +3061,9 @@ bool Builder::GenerateTextureBuiltin(const sem::Call* call,
|
||||||
}
|
}
|
||||||
spirv_params.emplace_back(gen_arg(Usage::kDepthRef));
|
spirv_params.emplace_back(gen_arg(Usage::kDepthRef));
|
||||||
|
|
||||||
ast::FloatLiteralExpression float_0(ProgramID(), Source{}, 0.0,
|
image_operands.emplace_back(
|
||||||
ast::FloatLiteralExpression::Suffix::kF);
|
ImageOperand{SpvImageOperandsLodMask,
|
||||||
image_operands.emplace_back(ImageOperand{
|
Operand(GenerateConstantIfNeeded(ScalarConstant::F32(0.0)))});
|
||||||
SpvImageOperandsLodMask, Operand(GenerateLiteralIfNeeded(nullptr, &float_0))});
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
// Forward declarations
|
// Forward declarations
|
||||||
namespace tint::sem {
|
namespace tint::sem {
|
||||||
class Call;
|
class Call;
|
||||||
|
class Constant;
|
||||||
class Reference;
|
class Reference;
|
||||||
class TypeConstructor;
|
class TypeConstructor;
|
||||||
class TypeConversion;
|
class TypeConversion;
|
||||||
|
@ -550,6 +551,11 @@ class Builder {
|
||||||
/// @param expr the expression
|
/// @param expr the expression
|
||||||
const sem::Type* TypeOf(const ast::Expression* expr) const { return builder_.TypeOf(expr); }
|
const sem::Type* TypeOf(const ast::Expression* expr) const { return builder_.TypeOf(expr); }
|
||||||
|
|
||||||
|
/// Generates a constant value if needed
|
||||||
|
/// @param constant the constant to generate.
|
||||||
|
/// @returns the ID on success or 0 on failure
|
||||||
|
uint32_t GenerateConstantIfNeeded(const sem::Constant& constant);
|
||||||
|
|
||||||
/// Generates a scalar constant if needed
|
/// Generates a scalar constant if needed
|
||||||
/// @param constant the constant to generate.
|
/// @param constant the constant to generate.
|
||||||
/// @returns the ID on success or 0 on failure
|
/// @returns the ID on success or 0 on failure
|
||||||
|
|
|
@ -326,7 +326,7 @@ TEST_F(BuilderTest, MemberAccessor_NonPointer) {
|
||||||
|
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32
|
||||||
%1 = OpTypeStruct %2 %2
|
%1 = OpTypeStruct %2 %2
|
||||||
%3 = OpConstant %2 0
|
%3 = OpConstantNull %2
|
||||||
%4 = OpConstantComposite %1 %3 %3
|
%4 = OpConstantComposite %1 %3 %3
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
|
@ -367,7 +367,7 @@ TEST_F(BuilderTest, MemberAccessor_Nested_NonPointer) {
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%3 = OpTypeFloat 32
|
||||||
%2 = OpTypeStruct %3 %3
|
%2 = OpTypeStruct %3 %3
|
||||||
%1 = OpTypeStruct %2
|
%1 = OpTypeStruct %2
|
||||||
%4 = OpConstant %3 0
|
%4 = OpConstantNull %3
|
||||||
%5 = OpConstantComposite %2 %4 %4
|
%5 = OpConstantComposite %2 %4 %4
|
||||||
%6 = OpConstantComposite %1 %5
|
%6 = OpConstantComposite %1 %5
|
||||||
)");
|
)");
|
||||||
|
@ -729,7 +729,7 @@ TEST_F(BuilderTest, IndexAccessor_Mixed_ArrayAndMember) {
|
||||||
%2 = OpTypePointer Function %3
|
%2 = OpTypePointer Function %3
|
||||||
%13 = OpConstantNull %3
|
%13 = OpConstantNull %3
|
||||||
%14 = OpTypeInt 32 1
|
%14 = OpTypeInt 32 1
|
||||||
%15 = OpConstant %14 0
|
%15 = OpConstantNull %14
|
||||||
%16 = OpConstant %10 0
|
%16 = OpConstant %10 0
|
||||||
%17 = OpConstant %14 2
|
%17 = OpConstant %14 2
|
||||||
%18 = OpTypePointer Function %8
|
%18 = OpTypePointer Function %8
|
||||||
|
@ -916,7 +916,7 @@ TEST_F(BuilderTest, IndexAccessor_Array_Literal) {
|
||||||
%7 = OpTypeInt 32 0
|
%7 = OpTypeInt 32 0
|
||||||
%8 = OpConstant %7 3
|
%8 = OpConstant %7 3
|
||||||
%5 = OpTypeArray %6 %8
|
%5 = OpTypeArray %6 %8
|
||||||
%9 = OpConstant %6 0
|
%9 = OpConstantNull %6
|
||||||
%10 = OpConstant %6 0.5
|
%10 = OpConstant %6 0.5
|
||||||
%11 = OpConstant %6 1
|
%11 = OpConstant %6 1
|
||||||
%12 = OpConstantComposite %5 %9 %10 %11
|
%12 = OpConstantComposite %5 %9 %10 %11
|
||||||
|
@ -954,7 +954,7 @@ TEST_F(BuilderTest, IndexAccessor_Array_Dynamic) {
|
||||||
%7 = OpTypeInt 32 0
|
%7 = OpTypeInt 32 0
|
||||||
%8 = OpConstant %7 3
|
%8 = OpConstant %7 3
|
||||||
%5 = OpTypeArray %6 %8
|
%5 = OpTypeArray %6 %8
|
||||||
%9 = OpConstant %6 0
|
%9 = OpConstantNull %6
|
||||||
%10 = OpConstant %6 0.5
|
%10 = OpConstant %6 0.5
|
||||||
%11 = OpConstant %6 1
|
%11 = OpConstant %6 1
|
||||||
%12 = OpConstantComposite %5 %9 %10 %11
|
%12 = OpConstantComposite %5 %9 %10 %11
|
||||||
|
|
|
@ -98,7 +98,7 @@ TEST_F(BuilderTest, Assign_Var_ZeroConstructor) {
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(BuilderTest, Assign_Var_Complex_ConstructorWithExtract) {
|
TEST_F(BuilderTest, Assign_Var_Complex_ConstructorNestedVector) {
|
||||||
auto* init = vec3<f32>(vec2<f32>(1_f, 2_f), 3_f);
|
auto* init = vec3<f32>(vec2<f32>(1_f, 2_f), 3_f);
|
||||||
|
|
||||||
auto* v = Global("var", ty.vec3<f32>(), ast::StorageClass::kPrivate);
|
auto* v = Global("var", ty.vec3<f32>(), ast::StorageClass::kPrivate);
|
||||||
|
@ -121,17 +121,13 @@ TEST_F(BuilderTest, Assign_Var_Complex_ConstructorWithExtract) {
|
||||||
%2 = OpTypePointer Private %3
|
%2 = OpTypePointer Private %3
|
||||||
%5 = OpConstantNull %3
|
%5 = OpConstantNull %3
|
||||||
%1 = OpVariable %2 Private %5
|
%1 = OpVariable %2 Private %5
|
||||||
%6 = OpTypeVector %4 2
|
%6 = OpConstant %4 1
|
||||||
%7 = OpConstant %4 1
|
%7 = OpConstant %4 2
|
||||||
%8 = OpConstant %4 2
|
%8 = OpConstant %4 3
|
||||||
%9 = OpConstantComposite %6 %7 %8
|
%9 = OpConstantComposite %3 %6 %7 %8
|
||||||
%12 = OpConstant %4 3
|
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(%10 = OpCompositeExtract %4 %9 0
|
R"(OpStore %1 %9
|
||||||
%11 = OpCompositeExtract %4 %9 1
|
|
||||||
%13 = OpCompositeConstruct %3 %10 %11 %12
|
|
||||||
OpStore %1 %13
|
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -264,7 +264,7 @@ TEST_P(BinaryOperatorBoolTest, Scalar) {
|
||||||
EXPECT_EQ(b.GenerateBinaryExpression(expr), 4u) << b.error();
|
EXPECT_EQ(b.GenerateBinaryExpression(expr), 4u) << b.error();
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeBool
|
||||||
%2 = OpConstantTrue %1
|
%2 = OpConstantTrue %1
|
||||||
%3 = OpConstantFalse %1
|
%3 = OpConstantNull %1
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
"%4 = " + param.name + " %1 %2 %3\n");
|
"%4 = " + param.name + " %1 %2 %3\n");
|
||||||
|
@ -724,7 +724,7 @@ TEST_F(BuilderTest, Binary_LogicalAnd_WithLoads) {
|
||||||
%3 = OpConstantTrue %2
|
%3 = OpConstantTrue %2
|
||||||
%5 = OpTypePointer Private %2
|
%5 = OpTypePointer Private %2
|
||||||
%4 = OpVariable %5 Private %3
|
%4 = OpVariable %5 Private %3
|
||||||
%6 = OpConstantFalse %2
|
%6 = OpConstantNull %2
|
||||||
%7 = OpVariable %5 Private %6
|
%7 = OpVariable %5 Private %6
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
|
@ -761,7 +761,7 @@ TEST_F(BuilderTest, Binary_logicalOr_Nested_LogicalAnd) {
|
||||||
EXPECT_EQ(b.GenerateBinaryExpression(expr), 10u) << b.error();
|
EXPECT_EQ(b.GenerateBinaryExpression(expr), 10u) << b.error();
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
||||||
%3 = OpConstantTrue %2
|
%3 = OpConstantTrue %2
|
||||||
%8 = OpConstantFalse %2
|
%8 = OpConstantNull %2
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(%1 = OpLabel
|
R"(%1 = OpLabel
|
||||||
|
@ -801,7 +801,7 @@ TEST_F(BuilderTest, Binary_logicalAnd_Nested_LogicalOr) {
|
||||||
EXPECT_EQ(b.GenerateBinaryExpression(expr), 10u) << b.error();
|
EXPECT_EQ(b.GenerateBinaryExpression(expr), 10u) << b.error();
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
||||||
%3 = OpConstantTrue %2
|
%3 = OpConstantTrue %2
|
||||||
%8 = OpConstantFalse %2
|
%8 = OpConstantNull %2
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(%1 = OpLabel
|
R"(%1 = OpLabel
|
||||||
|
@ -877,7 +877,7 @@ TEST_F(BuilderTest, Binary_LogicalOr_WithLoads) {
|
||||||
%3 = OpConstantTrue %2
|
%3 = OpConstantTrue %2
|
||||||
%5 = OpTypePointer Private %2
|
%5 = OpTypePointer Private %2
|
||||||
%4 = OpVariable %5 Private %3
|
%4 = OpVariable %5 Private %3
|
||||||
%6 = OpConstantFalse %2
|
%6 = OpConstantNull %2
|
||||||
%7 = OpVariable %5 Private %6
|
%7 = OpVariable %5 Private %6
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
|
|
|
@ -589,7 +589,7 @@ OpCapability ImageQuery
|
||||||
%16 = OpConstant %4 2
|
%16 = OpConstant %4 2
|
||||||
%17 = OpConstantComposite %14 %15 %16
|
%17 = OpConstantComposite %14 %15 %16
|
||||||
%18 = OpTypeInt 32 1
|
%18 = OpTypeInt 32 1
|
||||||
%19 = OpConstant %18 0
|
%19 = OpConstantNull %18
|
||||||
)",
|
)",
|
||||||
R"(
|
R"(
|
||||||
%10 = OpLoad %7 %5
|
%10 = OpLoad %7 %5
|
||||||
|
@ -615,7 +615,7 @@ OpCapability ImageQuery
|
||||||
%16 = OpConstant %4 2
|
%16 = OpConstant %4 2
|
||||||
%17 = OpConstantComposite %14 %15 %16
|
%17 = OpConstantComposite %14 %15 %16
|
||||||
%18 = OpTypeInt 32 1
|
%18 = OpTypeInt 32 1
|
||||||
%19 = OpConstant %18 0
|
%19 = OpConstantNull %18
|
||||||
%20 = OpTypeVector %18 2
|
%20 = OpTypeVector %18 2
|
||||||
%21 = OpConstant %18 3
|
%21 = OpConstant %18 3
|
||||||
%22 = OpConstant %18 4
|
%22 = OpConstant %18 4
|
||||||
|
@ -645,7 +645,7 @@ OpCapability ImageQuery
|
||||||
%16 = OpConstant %4 2
|
%16 = OpConstant %4 2
|
||||||
%18 = OpTypeInt 32 1
|
%18 = OpTypeInt 32 1
|
||||||
%19 = OpConstant %18 3
|
%19 = OpConstant %18 3
|
||||||
%21 = OpConstant %18 0
|
%21 = OpConstantNull %18
|
||||||
)",
|
)",
|
||||||
R"(
|
R"(
|
||||||
%10 = OpLoad %7 %5
|
%10 = OpLoad %7 %5
|
||||||
|
@ -673,7 +673,7 @@ OpCapability ImageQuery
|
||||||
%16 = OpConstant %4 2
|
%16 = OpConstant %4 2
|
||||||
%18 = OpTypeInt 32 1
|
%18 = OpTypeInt 32 1
|
||||||
%19 = OpConstant %18 3
|
%19 = OpConstant %18 3
|
||||||
%21 = OpConstant %18 0
|
%21 = OpConstantNull %18
|
||||||
%22 = OpTypeVector %18 2
|
%22 = OpTypeVector %18 2
|
||||||
%23 = OpConstant %18 4
|
%23 = OpConstant %18 4
|
||||||
%24 = OpConstant %18 5
|
%24 = OpConstant %18 5
|
||||||
|
@ -706,7 +706,7 @@ OpCapability ImageQuery
|
||||||
%17 = OpConstant %4 3
|
%17 = OpConstant %4 3
|
||||||
%18 = OpConstantComposite %14 %15 %16 %17
|
%18 = OpConstantComposite %14 %15 %16 %17
|
||||||
%19 = OpTypeInt 32 1
|
%19 = OpTypeInt 32 1
|
||||||
%20 = OpConstant %19 0
|
%20 = OpConstantNull %19
|
||||||
)",
|
)",
|
||||||
R"(
|
R"(
|
||||||
%10 = OpLoad %7 %5
|
%10 = OpLoad %7 %5
|
||||||
|
@ -732,7 +732,7 @@ OpCapability ImageQuery
|
||||||
%16 = OpConstant %4 3
|
%16 = OpConstant %4 3
|
||||||
%18 = OpTypeInt 32 1
|
%18 = OpTypeInt 32 1
|
||||||
%19 = OpConstant %18 4
|
%19 = OpConstant %18 4
|
||||||
%21 = OpConstant %18 0
|
%21 = OpConstantNull %18
|
||||||
)",
|
)",
|
||||||
R"(
|
R"(
|
||||||
%10 = OpLoad %7 %5
|
%10 = OpLoad %7 %5
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -100,7 +100,7 @@ TEST_F(BuilderTest, GlobalVar_Complex_Constructor) {
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
TEST_F(BuilderTest, GlobalVar_Complex_ConstructorWithExtract) {
|
TEST_F(BuilderTest, GlobalVar_Complex_ConstructorNestedVector) {
|
||||||
auto* init = vec3<f32>(vec2<f32>(1_f, 2_f), 3_f);
|
auto* init = vec3<f32>(vec2<f32>(1_f, 2_f), 3_f);
|
||||||
|
|
||||||
auto* v = GlobalConst("var", ty.vec3<f32>(), init);
|
auto* v = GlobalConst("var", ty.vec3<f32>(), init);
|
||||||
|
@ -112,17 +112,10 @@ TEST_F(BuilderTest, GlobalVar_Complex_ConstructorWithExtract) {
|
||||||
|
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 32
|
||||||
%1 = OpTypeVector %2 3
|
%1 = OpTypeVector %2 3
|
||||||
%3 = OpTypeVector %2 2
|
%3 = OpConstant %2 1
|
||||||
%4 = OpConstant %2 1
|
%4 = OpConstant %2 2
|
||||||
%5 = OpConstant %2 2
|
%5 = OpConstant %2 3
|
||||||
%6 = OpConstantComposite %3 %4 %5
|
%6 = OpConstantComposite %1 %3 %4 %5
|
||||||
%8 = OpTypeInt 32 0
|
|
||||||
%9 = OpConstant %8 0
|
|
||||||
%7 = OpSpecConstantOp %2 CompositeExtract %6 9
|
|
||||||
%11 = OpConstant %8 1
|
|
||||||
%10 = OpSpecConstantOp %2 CompositeExtract %6 11
|
|
||||||
%12 = OpConstant %2 3
|
|
||||||
%13 = OpSpecConstantComposite %1 %7 %10 %12
|
|
||||||
)");
|
)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -223,7 +223,7 @@ TEST_F(BuilderTest, If_WithMultiple) {
|
||||||
%6 = OpConstantTrue %5
|
%6 = OpConstantTrue %5
|
||||||
%10 = OpConstant %3 2
|
%10 = OpConstant %3 2
|
||||||
%14 = OpConstant %3 3
|
%14 = OpConstant %3 3
|
||||||
%15 = OpConstantFalse %5
|
%15 = OpConstantNull %5
|
||||||
%19 = OpConstant %3 4
|
%19 = OpConstant %3 4
|
||||||
%20 = OpConstant %3 5
|
%20 = OpConstant %3 5
|
||||||
)");
|
)");
|
||||||
|
@ -472,7 +472,7 @@ TEST_F(BuilderTest, If_WithReturnValue) {
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
||||||
%1 = OpTypeFunction %2
|
%1 = OpTypeFunction %2
|
||||||
%5 = OpConstantTrue %2
|
%5 = OpConstantTrue %2
|
||||||
%8 = OpConstantFalse %2
|
%8 = OpConstantNull %2
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(OpSelectionMerge %6 None
|
R"(OpSelectionMerge %6 None
|
||||||
|
@ -542,7 +542,7 @@ TEST_F(BuilderTest, If_WithNestedBlockReturnValue) {
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
||||||
%1 = OpTypeFunction %2
|
%1 = OpTypeFunction %2
|
||||||
%5 = OpConstantTrue %2
|
%5 = OpConstantTrue %2
|
||||||
%8 = OpConstantFalse %2
|
%8 = OpConstantNull %2
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(OpSelectionMerge %6 None
|
R"(OpSelectionMerge %6 None
|
||||||
|
@ -600,7 +600,7 @@ TEST_F(BuilderTest, If_ElseIf_WithReturn) {
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeVoid
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeVoid
|
||||||
%1 = OpTypeFunction %2
|
%1 = OpTypeFunction %2
|
||||||
%5 = OpTypeBool
|
%5 = OpTypeBool
|
||||||
%6 = OpConstantFalse %5
|
%6 = OpConstantNull %5
|
||||||
%10 = OpConstantTrue %5
|
%10 = OpConstantTrue %5
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
|
@ -638,7 +638,7 @@ TEST_F(BuilderTest, Loop_If_ElseIf_WithBreak) {
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeVoid
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeVoid
|
||||||
%1 = OpTypeFunction %2
|
%1 = OpTypeFunction %2
|
||||||
%9 = OpTypeBool
|
%9 = OpTypeBool
|
||||||
%10 = OpConstantFalse %9
|
%10 = OpConstantNull %9
|
||||||
%14 = OpConstantTrue %9
|
%14 = OpConstantTrue %9
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
|
|
|
@ -79,7 +79,7 @@ TEST_F(BuilderTest, UnaryOp_Not) {
|
||||||
b.push_function(Function{});
|
b.push_function(Function{});
|
||||||
EXPECT_EQ(b.GenerateUnaryOpExpression(expr), 1u) << b.error();
|
EXPECT_EQ(b.GenerateUnaryOpExpression(expr), 1u) << b.error();
|
||||||
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeBool
|
||||||
%3 = OpConstantFalse %2
|
%3 = OpConstantNull %2
|
||||||
)");
|
)");
|
||||||
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
|
||||||
R"(%1 = OpLogicalNot %2 %3
|
R"(%1 = OpLogicalNot %2 %3
|
||||||
|
|
|
@ -23,7 +23,6 @@
|
||||||
#include "src/tint/transform/canonicalize_entry_point_io.h"
|
#include "src/tint/transform/canonicalize_entry_point_io.h"
|
||||||
#include "src/tint/transform/disable_uniformity_analysis.h"
|
#include "src/tint/transform/disable_uniformity_analysis.h"
|
||||||
#include "src/tint/transform/expand_compound_assignment.h"
|
#include "src/tint/transform/expand_compound_assignment.h"
|
||||||
#include "src/tint/transform/fold_constants.h"
|
|
||||||
#include "src/tint/transform/for_loop_to_loop.h"
|
#include "src/tint/transform/for_loop_to_loop.h"
|
||||||
#include "src/tint/transform/manager.h"
|
#include "src/tint/transform/manager.h"
|
||||||
#include "src/tint/transform/promote_side_effects_to_decl.h"
|
#include "src/tint/transform/promote_side_effects_to_decl.h"
|
||||||
|
@ -73,7 +72,6 @@ SanitizedResult Sanitize(const Program* in, const Options& options) {
|
||||||
manager.Add<transform::PromoteSideEffectsToDecl>();
|
manager.Add<transform::PromoteSideEffectsToDecl>();
|
||||||
manager.Add<transform::UnwindDiscardFunctions>();
|
manager.Add<transform::UnwindDiscardFunctions>();
|
||||||
manager.Add<transform::SimplifyPointers>(); // Required for arrayLength()
|
manager.Add<transform::SimplifyPointers>(); // Required for arrayLength()
|
||||||
manager.Add<transform::FoldConstants>();
|
|
||||||
manager.Add<transform::VectorizeScalarMatrixConstructors>();
|
manager.Add<transform::VectorizeScalarMatrixConstructors>();
|
||||||
manager.Add<transform::ForLoopToLoop>(); // Must come after
|
manager.Add<transform::ForLoopToLoop>(); // Must come after
|
||||||
// ZeroInitWorkgroupMemory
|
// ZeroInitWorkgroupMemory
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
%22 = OpConstantNull %_arr__arr_int_uint_4_uint_2
|
%22 = OpConstantNull %_arr__arr_int_uint_4_uint_2
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_0 = OpConstant %int 0
|
%28 = OpConstantNull %int
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
|
@ -51,7 +51,7 @@
|
||||||
OpStore %dst %11
|
OpStore %dst %11
|
||||||
%27 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_struct %uint_0
|
%27 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_struct %uint_0
|
||||||
OpStore %27 %11
|
OpStore %27 %11
|
||||||
%29 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %int_0
|
%29 = OpAccessChain %_ptr_Function__arr_int_uint_4 %dst_array %28
|
||||||
OpStore %29 %11
|
OpStore %29 %11
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -35,12 +35,12 @@
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%15 = OpConstantNull %int
|
||||||
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
||||||
%main = OpFunction %void None %8
|
%main = OpFunction %void None %8
|
||||||
%11 = OpLabel
|
%11 = OpLabel
|
||||||
%17 = OpAccessChain %_ptr_StorageBuffer_S %out %uint_0 %int_0
|
%17 = OpAccessChain %_ptr_StorageBuffer_S %out %uint_0 %15
|
||||||
%18 = OpAccessChain %_ptr_StorageBuffer_S %in %uint_0 %int_0
|
%18 = OpAccessChain %_ptr_StorageBuffer_S %in %uint_0 %15
|
||||||
%19 = OpLoad %S %18
|
%19 = OpLoad %S %18
|
||||||
OpStore %17 %19
|
OpStore %17 %19
|
||||||
OpReturn
|
OpReturn
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 277
|
; Bound: 273
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%71 = OpExtInstImport "GLSL.std.450"
|
%67 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint GLCompute %main_count "main_count" %GlobalInvocationID_1
|
OpEntryPoint GLCompute %main_count "main_count" %GlobalInvocationID_1
|
||||||
OpExecutionMode %main_count LocalSize 128 1 1
|
OpExecutionMode %main_count LocalSize 128 1 1
|
||||||
|
@ -165,37 +165,33 @@
|
||||||
%dbg = OpVariable %_ptr_StorageBuffer_Dbg StorageBuffer
|
%dbg = OpVariable %_ptr_StorageBuffer_Dbg StorageBuffer
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%30 = OpTypeFunction %void
|
%30 = OpTypeFunction %void
|
||||||
%int_0 = OpConstant %int 0
|
%34 = OpTypeFunction %v3float %v3float
|
||||||
%v4float = OpTypeVector %float 4
|
|
||||||
%float_2 = OpConstant %float 2
|
|
||||||
%37 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
|
||||||
%38 = OpTypeFunction %v3float %v3float
|
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%56 = OpConstantNull %v3float
|
%52 = OpConstantNull %v3float
|
||||||
%uint_5 = OpConstant %uint 5
|
%uint_5 = OpConstant %uint 5
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%81 = OpConstantNull %float
|
%77 = OpConstantNull %float
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%118 = OpTypeFunction %uint %uint %v3float
|
%114 = OpTypeFunction %uint %uint %v3float
|
||||||
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
||||||
%126 = OpConstantNull %v3uint
|
%122 = OpConstantNull %v3uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%139 = OpTypeFunction %v3uint %uint %uint
|
%135 = OpTypeFunction %v3uint %uint %uint
|
||||||
%147 = OpConstantNull %uint
|
%143 = OpConstantNull %uint
|
||||||
%160 = OpTypeFunction %v3float %uint
|
%156 = OpTypeFunction %v3float %uint
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
|
%188 = OpConstantNull %int
|
||||||
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
||||||
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%207 = OpConstantNull %int
|
%204 = OpTypeFunction %void %v3uint
|
||||||
%208 = OpTypeFunction %void %v3uint
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%float_3 = OpConstant %float 3
|
%float_3 = OpConstant %float 3
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
|
@ -203,255 +199,255 @@
|
||||||
%33 = OpLabel
|
%33 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%toVoxelPos = OpFunction %v3float None %38
|
%toVoxelPos = OpFunction %v3float None %34
|
||||||
%position = OpFunctionParameter %v3float
|
%position = OpFunctionParameter %v3float
|
||||||
%41 = OpLabel
|
%37 = OpLabel
|
||||||
%bbMin = OpVariable %_ptr_Function_v3float Function %56
|
%bbMin = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%bbMax = OpVariable %_ptr_Function_v3float Function %56
|
%bbMax = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%bbSize = OpVariable %_ptr_Function_v3float Function %56
|
%bbSize = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%cubeSize = OpVariable %_ptr_Function_float Function %81
|
%cubeSize = OpVariable %_ptr_Function_float Function %77
|
||||||
%gridSize = OpVariable %_ptr_Function_float Function %81
|
%gridSize = OpVariable %_ptr_Function_float Function %77
|
||||||
%gx = OpVariable %_ptr_Function_float Function %81
|
%gx = OpVariable %_ptr_Function_float Function %77
|
||||||
%gy = OpVariable %_ptr_Function_float Function %81
|
%gy = OpVariable %_ptr_Function_float Function %77
|
||||||
%gz = OpVariable %_ptr_Function_float Function %81
|
%gz = OpVariable %_ptr_Function_float Function %77
|
||||||
%45 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_0
|
%41 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_0
|
||||||
%46 = OpLoad %float %45
|
%42 = OpLoad %float %41
|
||||||
%48 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_1
|
%44 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_1
|
||||||
%49 = OpLoad %float %48
|
%45 = OpLoad %float %44
|
||||||
%51 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_2
|
%47 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_2
|
||||||
%52 = OpLoad %float %51
|
%48 = OpLoad %float %47
|
||||||
%53 = OpCompositeConstruct %v3float %46 %49 %52
|
%49 = OpCompositeConstruct %v3float %42 %45 %48
|
||||||
OpStore %bbMin %53
|
OpStore %bbMin %49
|
||||||
%58 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_0
|
%54 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_0
|
||||||
|
%55 = OpLoad %float %54
|
||||||
|
%56 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_1
|
||||||
|
%57 = OpLoad %float %56
|
||||||
|
%58 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_2
|
||||||
%59 = OpLoad %float %58
|
%59 = OpLoad %float %58
|
||||||
%60 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_1
|
%60 = OpCompositeConstruct %v3float %55 %57 %59
|
||||||
%61 = OpLoad %float %60
|
OpStore %bbMax %60
|
||||||
%62 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_5 %uint_2
|
%62 = OpLoad %v3float %bbMin
|
||||||
%63 = OpLoad %float %62
|
%63 = OpLoad %v3float %bbMin
|
||||||
%64 = OpCompositeConstruct %v3float %59 %61 %63
|
%64 = OpFSub %v3float %62 %63
|
||||||
OpStore %bbMax %64
|
OpStore %bbSize %64
|
||||||
%66 = OpLoad %v3float %bbMin
|
%70 = OpAccessChain %_ptr_Function_float %bbMax %uint_0
|
||||||
%67 = OpLoad %v3float %bbMin
|
%71 = OpLoad %float %70
|
||||||
%68 = OpFSub %v3float %66 %67
|
%72 = OpAccessChain %_ptr_Function_float %bbMax %uint_1
|
||||||
OpStore %bbSize %68
|
%73 = OpLoad %float %72
|
||||||
%74 = OpAccessChain %_ptr_Function_float %bbMax %uint_0
|
%68 = OpExtInst %float %67 NMax %71 %73
|
||||||
|
%74 = OpAccessChain %_ptr_Function_float %bbSize %uint_2
|
||||||
%75 = OpLoad %float %74
|
%75 = OpLoad %float %74
|
||||||
%76 = OpAccessChain %_ptr_Function_float %bbMax %uint_1
|
%66 = OpExtInst %float %67 NMax %68 %75
|
||||||
%77 = OpLoad %float %76
|
OpStore %cubeSize %66
|
||||||
%72 = OpExtInst %float %71 NMax %75 %77
|
%80 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%78 = OpAccessChain %_ptr_Function_float %bbSize %uint_2
|
%81 = OpLoad %uint %80
|
||||||
%79 = OpLoad %float %78
|
%78 = OpConvertUToF %float %81
|
||||||
%70 = OpExtInst %float %71 NMax %72 %79
|
OpStore %gridSize %78
|
||||||
OpStore %cubeSize %70
|
%83 = OpLoad %float %cubeSize
|
||||||
%84 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%84 = OpCompositeExtract %float %position 0
|
||||||
%85 = OpLoad %uint %84
|
%85 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_0
|
||||||
%82 = OpConvertUToF %float %85
|
%86 = OpLoad %float %85
|
||||||
OpStore %gridSize %82
|
%87 = OpFSub %float %84 %86
|
||||||
%87 = OpLoad %float %cubeSize
|
%88 = OpFMul %float %83 %87
|
||||||
%88 = OpCompositeExtract %float %position 0
|
%89 = OpLoad %float %cubeSize
|
||||||
%89 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_0
|
%90 = OpFDiv %float %88 %89
|
||||||
%90 = OpLoad %float %89
|
OpStore %gx %90
|
||||||
%91 = OpFSub %float %88 %90
|
%92 = OpLoad %float %gx
|
||||||
%92 = OpFMul %float %87 %91
|
%93 = OpCompositeExtract %float %position 1
|
||||||
%93 = OpLoad %float %cubeSize
|
%94 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_1
|
||||||
%94 = OpFDiv %float %92 %93
|
%95 = OpLoad %float %94
|
||||||
OpStore %gx %94
|
%96 = OpFSub %float %93 %95
|
||||||
%96 = OpLoad %float %gx
|
%97 = OpFMul %float %92 %96
|
||||||
%97 = OpCompositeExtract %float %position 1
|
%98 = OpLoad %float %gridSize
|
||||||
%98 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_1
|
%99 = OpFDiv %float %97 %98
|
||||||
%99 = OpLoad %float %98
|
OpStore %gy %99
|
||||||
%100 = OpFSub %float %97 %99
|
%101 = OpLoad %float %gridSize
|
||||||
%101 = OpFMul %float %96 %100
|
%102 = OpCompositeExtract %float %position 2
|
||||||
%102 = OpLoad %float %gridSize
|
%103 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_2
|
||||||
%103 = OpFDiv %float %101 %102
|
%104 = OpLoad %float %103
|
||||||
OpStore %gy %103
|
%105 = OpFSub %float %102 %104
|
||||||
%105 = OpLoad %float %gridSize
|
%106 = OpFMul %float %101 %105
|
||||||
%106 = OpCompositeExtract %float %position 2
|
%107 = OpLoad %float %gridSize
|
||||||
%107 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_4 %uint_2
|
%108 = OpFDiv %float %106 %107
|
||||||
%108 = OpLoad %float %107
|
OpStore %gz %108
|
||||||
%109 = OpFSub %float %106 %108
|
%110 = OpLoad %float %gz
|
||||||
%110 = OpFMul %float %105 %109
|
%111 = OpLoad %float %gz
|
||||||
%111 = OpLoad %float %gridSize
|
%112 = OpLoad %float %gz
|
||||||
%112 = OpFDiv %float %110 %111
|
%113 = OpCompositeConstruct %v3float %110 %111 %112
|
||||||
OpStore %gz %112
|
OpReturnValue %113
|
||||||
%114 = OpLoad %float %gz
|
|
||||||
%115 = OpLoad %float %gz
|
|
||||||
%116 = OpLoad %float %gz
|
|
||||||
%117 = OpCompositeConstruct %v3float %114 %115 %116
|
|
||||||
OpReturnValue %117
|
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%toIndex1D = OpFunction %uint None %118
|
%toIndex1D = OpFunction %uint None %114
|
||||||
%gridSize_0 = OpFunctionParameter %uint
|
%gridSize_0 = OpFunctionParameter %uint
|
||||||
%voxelPos = OpFunctionParameter %v3float
|
%voxelPos = OpFunctionParameter %v3float
|
||||||
%122 = OpLabel
|
%118 = OpLabel
|
||||||
%icoord = OpVariable %_ptr_Function_v3uint Function %126
|
%icoord = OpVariable %_ptr_Function_v3uint Function %122
|
||||||
%123 = OpConvertFToU %v3uint %voxelPos
|
%119 = OpConvertFToU %v3uint %voxelPos
|
||||||
OpStore %icoord %123
|
OpStore %icoord %119
|
||||||
%128 = OpAccessChain %_ptr_Function_uint %icoord %uint_0
|
%124 = OpAccessChain %_ptr_Function_uint %icoord %uint_0
|
||||||
%129 = OpLoad %uint %128
|
%125 = OpLoad %uint %124
|
||||||
%130 = OpAccessChain %_ptr_Function_uint %icoord %uint_1
|
%126 = OpAccessChain %_ptr_Function_uint %icoord %uint_1
|
||||||
%131 = OpLoad %uint %130
|
%127 = OpLoad %uint %126
|
||||||
%132 = OpIMul %uint %gridSize_0 %131
|
%128 = OpIMul %uint %gridSize_0 %127
|
||||||
%133 = OpIAdd %uint %129 %132
|
%129 = OpIAdd %uint %125 %128
|
||||||
%134 = OpIMul %uint %gridSize_0 %gridSize_0
|
%130 = OpIMul %uint %gridSize_0 %gridSize_0
|
||||||
%135 = OpAccessChain %_ptr_Function_uint %icoord %uint_2
|
%131 = OpAccessChain %_ptr_Function_uint %icoord %uint_2
|
||||||
%136 = OpLoad %uint %135
|
%132 = OpLoad %uint %131
|
||||||
%137 = OpIMul %uint %134 %136
|
%133 = OpIMul %uint %130 %132
|
||||||
%138 = OpIAdd %uint %133 %137
|
%134 = OpIAdd %uint %129 %133
|
||||||
OpReturnValue %138
|
OpReturnValue %134
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%toIndex4D = OpFunction %v3uint None %139
|
%toIndex4D = OpFunction %v3uint None %135
|
||||||
%gridSize_1 = OpFunctionParameter %uint
|
%gridSize_1 = OpFunctionParameter %uint
|
||||||
%index = OpFunctionParameter %uint
|
%index = OpFunctionParameter %uint
|
||||||
%143 = OpLabel
|
%139 = OpLabel
|
||||||
%z = OpVariable %_ptr_Function_uint Function %147
|
%z = OpVariable %_ptr_Function_uint Function %143
|
||||||
%y = OpVariable %_ptr_Function_uint Function %147
|
%y = OpVariable %_ptr_Function_uint Function %143
|
||||||
%x = OpVariable %_ptr_Function_uint Function %147
|
%x = OpVariable %_ptr_Function_uint Function %143
|
||||||
%144 = OpIMul %uint %index %index
|
%140 = OpIMul %uint %index %index
|
||||||
%145 = OpUDiv %uint %gridSize_1 %144
|
%141 = OpUDiv %uint %gridSize_1 %140
|
||||||
OpStore %z %145
|
OpStore %z %141
|
||||||
%148 = OpIMul %uint %gridSize_1 %gridSize_1
|
%144 = OpIMul %uint %gridSize_1 %gridSize_1
|
||||||
%149 = OpLoad %uint %z
|
%145 = OpLoad %uint %z
|
||||||
%150 = OpIMul %uint %148 %149
|
%146 = OpIMul %uint %144 %145
|
||||||
%151 = OpISub %uint %gridSize_1 %150
|
%147 = OpISub %uint %gridSize_1 %146
|
||||||
%152 = OpUDiv %uint %151 %gridSize_1
|
%148 = OpUDiv %uint %147 %gridSize_1
|
||||||
OpStore %y %152
|
OpStore %y %148
|
||||||
%154 = OpUMod %uint %index %gridSize_1
|
%150 = OpUMod %uint %index %gridSize_1
|
||||||
OpStore %x %154
|
OpStore %x %150
|
||||||
%156 = OpLoad %uint %z
|
%152 = OpLoad %uint %z
|
||||||
%157 = OpLoad %uint %y
|
%153 = OpLoad %uint %y
|
||||||
%158 = OpLoad %uint %y
|
%154 = OpLoad %uint %y
|
||||||
%159 = OpCompositeConstruct %v3uint %156 %157 %158
|
%155 = OpCompositeConstruct %v3uint %152 %153 %154
|
||||||
OpReturnValue %159
|
OpReturnValue %155
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%loadPosition = OpFunction %v3float None %160
|
%loadPosition = OpFunction %v3float None %156
|
||||||
%vertexIndex = OpFunctionParameter %uint
|
%vertexIndex = OpFunctionParameter %uint
|
||||||
%163 = OpLabel
|
%159 = OpLabel
|
||||||
%position_0 = OpVariable %_ptr_Function_v3float Function %56
|
%position_0 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%165 = OpIMul %uint %uint_3 %vertexIndex
|
%161 = OpIMul %uint %uint_3 %vertexIndex
|
||||||
%166 = OpIAdd %uint %165 %uint_0
|
%162 = OpIAdd %uint %161 %143
|
||||||
%168 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %166
|
%164 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %162
|
||||||
|
%165 = OpLoad %float %164
|
||||||
|
%166 = OpIMul %uint %uint_3 %vertexIndex
|
||||||
|
%167 = OpIAdd %uint %166 %uint_1
|
||||||
|
%168 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %167
|
||||||
%169 = OpLoad %float %168
|
%169 = OpLoad %float %168
|
||||||
%170 = OpIMul %uint %uint_3 %vertexIndex
|
%170 = OpIMul %uint %uint_3 %vertexIndex
|
||||||
%171 = OpIAdd %uint %170 %uint_1
|
%171 = OpIAdd %uint %170 %uint_2
|
||||||
%172 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %171
|
%172 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %171
|
||||||
%173 = OpLoad %float %172
|
%173 = OpLoad %float %172
|
||||||
%174 = OpIMul %uint %uint_3 %vertexIndex
|
%174 = OpCompositeConstruct %v3float %165 %169 %173
|
||||||
%175 = OpIAdd %uint %174 %uint_2
|
OpStore %position_0 %174
|
||||||
%176 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %175
|
%176 = OpLoad %v3float %position_0
|
||||||
%177 = OpLoad %float %176
|
OpReturnValue %176
|
||||||
%178 = OpCompositeConstruct %v3float %169 %173 %177
|
|
||||||
OpStore %position_0 %178
|
|
||||||
%180 = OpLoad %v3float %position_0
|
|
||||||
OpReturnValue %180
|
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%doIgnore = OpFunction %void None %30
|
%doIgnore = OpFunction %void None %30
|
||||||
%182 = OpLabel
|
%178 = OpLabel
|
||||||
%g43 = OpVariable %_ptr_Function_uint Function %147
|
%g43 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%kj6 = OpVariable %_ptr_Function_uint Function %147
|
%kj6 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%b53 = OpVariable %_ptr_Function_uint Function %147
|
%b53 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%rwg = OpVariable %_ptr_Function_uint Function %147
|
%rwg = OpVariable %_ptr_Function_uint Function %143
|
||||||
%rb5 = OpVariable %_ptr_Function_float Function %81
|
%rb5 = OpVariable %_ptr_Function_float Function %77
|
||||||
%g55 = OpVariable %_ptr_Function_int Function %207
|
%g55 = OpVariable %_ptr_Function_int Function %188
|
||||||
%183 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%179 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
|
%180 = OpLoad %uint %179
|
||||||
|
OpStore %g43 %180
|
||||||
|
%183 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_5
|
||||||
%184 = OpLoad %uint %183
|
%184 = OpLoad %uint %183
|
||||||
OpStore %g43 %184
|
OpStore %kj6 %184
|
||||||
%187 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_5
|
%190 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %188
|
||||||
%188 = OpLoad %uint %187
|
%186 = OpAtomicLoad %uint %190 %uint_1 %uint_0
|
||||||
OpStore %kj6 %188
|
OpStore %b53 %186
|
||||||
%193 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %int_0
|
%192 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %188
|
||||||
%190 = OpAtomicLoad %uint %193 %uint_1 %uint_0
|
%193 = OpLoad %uint %192
|
||||||
OpStore %b53 %190
|
OpStore %rwg %193
|
||||||
%195 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %int_0
|
%195 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %188
|
||||||
%196 = OpLoad %uint %195
|
%196 = OpLoad %float %195
|
||||||
OpStore %rwg %196
|
OpStore %rb5 %196
|
||||||
%198 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %int_0
|
%201 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %188
|
||||||
%199 = OpLoad %float %198
|
%198 = OpAtomicLoad %int %201 %uint_1 %uint_0
|
||||||
OpStore %rb5 %199
|
OpStore %g55 %198
|
||||||
%204 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %int_0
|
|
||||||
%201 = OpAtomicLoad %int %204 %uint_1 %uint_0
|
|
||||||
OpStore %g55 %201
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_count_inner = OpFunction %void None %208
|
%main_count_inner = OpFunction %void None %204
|
||||||
%GlobalInvocationID = OpFunctionParameter %v3uint
|
%GlobalInvocationID = OpFunctionParameter %v3uint
|
||||||
%211 = OpLabel
|
%207 = OpLabel
|
||||||
%triangleIndex = OpVariable %_ptr_Function_uint Function %147
|
%triangleIndex = OpVariable %_ptr_Function_uint Function %143
|
||||||
%i0 = OpVariable %_ptr_Function_uint Function %147
|
%i0 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%i1 = OpVariable %_ptr_Function_uint Function %147
|
%i1 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%i2 = OpVariable %_ptr_Function_uint Function %147
|
%i2 = OpVariable %_ptr_Function_uint Function %143
|
||||||
%p0 = OpVariable %_ptr_Function_v3float Function %56
|
%p0 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%p1 = OpVariable %_ptr_Function_v3float Function %56
|
%p1 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%p2 = OpVariable %_ptr_Function_v3float Function %56
|
%p2 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%256 = OpVariable %_ptr_Function_v3float Function %56
|
%252 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%center = OpVariable %_ptr_Function_v3float Function %56
|
%center = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%voxelPos_0 = OpVariable %_ptr_Function_v3float Function %56
|
%voxelPos_0 = OpVariable %_ptr_Function_v3float Function %52
|
||||||
%lIndex = OpVariable %_ptr_Function_uint Function %147
|
%lIndex = OpVariable %_ptr_Function_uint Function %143
|
||||||
%triangleOffset = OpVariable %_ptr_Function_int Function %207
|
%triangleOffset = OpVariable %_ptr_Function_int Function %188
|
||||||
%212 = OpCompositeExtract %uint %GlobalInvocationID 0
|
%208 = OpCompositeExtract %uint %GlobalInvocationID 0
|
||||||
OpStore %triangleIndex %212
|
OpStore %triangleIndex %208
|
||||||
%214 = OpLoad %uint %triangleIndex
|
%210 = OpLoad %uint %triangleIndex
|
||||||
%215 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%211 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%216 = OpLoad %uint %215
|
%212 = OpLoad %uint %211
|
||||||
%217 = OpUGreaterThanEqual %bool %214 %216
|
%213 = OpUGreaterThanEqual %bool %210 %212
|
||||||
OpSelectionMerge %219 None
|
OpSelectionMerge %215 None
|
||||||
OpBranchConditional %217 %220 %219
|
OpBranchConditional %213 %216 %215
|
||||||
%220 = OpLabel
|
%216 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
%219 = OpLabel
|
%215 = OpLabel
|
||||||
%221 = OpFunctionCall %void %doIgnore
|
%217 = OpFunctionCall %void %doIgnore
|
||||||
%222 = OpLoad %uint %triangleIndex
|
%218 = OpLoad %uint %triangleIndex
|
||||||
%223 = OpIMul %uint %uint_3 %222
|
%219 = OpIMul %uint %uint_3 %218
|
||||||
%224 = OpIAdd %uint %223 %uint_0
|
%220 = OpIAdd %uint %219 %143
|
||||||
%225 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %224
|
%221 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %220
|
||||||
%226 = OpLoad %uint %225
|
%222 = OpLoad %uint %221
|
||||||
OpStore %i0 %226
|
OpStore %i0 %222
|
||||||
%228 = OpLoad %uint %i0
|
%224 = OpLoad %uint %i0
|
||||||
%229 = OpIMul %uint %uint_3 %228
|
%225 = OpIMul %uint %uint_3 %224
|
||||||
%230 = OpIAdd %uint %229 %uint_1
|
%226 = OpIAdd %uint %225 %uint_1
|
||||||
%231 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %230
|
%227 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %226
|
||||||
%232 = OpLoad %uint %231
|
%228 = OpLoad %uint %227
|
||||||
OpStore %i1 %232
|
OpStore %i1 %228
|
||||||
%234 = OpLoad %uint %i0
|
%230 = OpLoad %uint %i0
|
||||||
%235 = OpIMul %uint %uint_3 %234
|
%231 = OpIMul %uint %uint_3 %230
|
||||||
%236 = OpIAdd %uint %235 %uint_2
|
%232 = OpIAdd %uint %231 %uint_2
|
||||||
%237 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %236
|
%233 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %232
|
||||||
%238 = OpLoad %uint %237
|
%234 = OpLoad %uint %233
|
||||||
OpStore %i2 %238
|
OpStore %i2 %234
|
||||||
%241 = OpLoad %uint %i0
|
%237 = OpLoad %uint %i0
|
||||||
%240 = OpFunctionCall %v3float %loadPosition %241
|
%236 = OpFunctionCall %v3float %loadPosition %237
|
||||||
OpStore %p0 %240
|
OpStore %p0 %236
|
||||||
%244 = OpLoad %uint %i0
|
%240 = OpLoad %uint %i0
|
||||||
%243 = OpFunctionCall %v3float %loadPosition %244
|
%239 = OpFunctionCall %v3float %loadPosition %240
|
||||||
OpStore %p1 %243
|
OpStore %p1 %239
|
||||||
%247 = OpLoad %uint %i2
|
%243 = OpLoad %uint %i2
|
||||||
%246 = OpFunctionCall %v3float %loadPosition %247
|
%242 = OpFunctionCall %v3float %loadPosition %243
|
||||||
OpStore %p2 %246
|
OpStore %p2 %242
|
||||||
%249 = OpLoad %v3float %p0
|
%245 = OpLoad %v3float %p0
|
||||||
%250 = OpLoad %v3float %p2
|
%246 = OpLoad %v3float %p2
|
||||||
%251 = OpFAdd %v3float %249 %250
|
%247 = OpFAdd %v3float %245 %246
|
||||||
%252 = OpLoad %v3float %p1
|
%248 = OpLoad %v3float %p1
|
||||||
%253 = OpFAdd %v3float %251 %252
|
%249 = OpFAdd %v3float %247 %248
|
||||||
%257 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
%253 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
||||||
%255 = OpFDiv %v3float %253 %257
|
%251 = OpFDiv %v3float %249 %253
|
||||||
OpStore %center %255
|
OpStore %center %251
|
||||||
%260 = OpLoad %v3float %p1
|
%256 = OpLoad %v3float %p1
|
||||||
%259 = OpFunctionCall %v3float %toVoxelPos %260
|
%255 = OpFunctionCall %v3float %toVoxelPos %256
|
||||||
OpStore %voxelPos_0 %259
|
OpStore %voxelPos_0 %255
|
||||||
%263 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%259 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%264 = OpLoad %uint %263
|
%260 = OpLoad %uint %259
|
||||||
%265 = OpLoad %v3float %p0
|
%261 = OpLoad %v3float %p0
|
||||||
%262 = OpFunctionCall %uint %toIndex1D %264 %265
|
%258 = OpFunctionCall %uint %toIndex1D %260 %261
|
||||||
OpStore %lIndex %262
|
OpStore %lIndex %258
|
||||||
%269 = OpLoad %uint %i1
|
%265 = OpLoad %uint %i1
|
||||||
%270 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %269
|
%266 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %265
|
||||||
%267 = OpAtomicIAdd %int %270 %uint_1 %uint_0 %int_1
|
%263 = OpAtomicIAdd %int %266 %uint_1 %uint_0 %int_1
|
||||||
OpStore %triangleOffset %267
|
OpStore %triangleOffset %263
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_count = OpFunction %void None %30
|
%main_count = OpFunction %void None %30
|
||||||
%274 = OpLabel
|
%270 = OpLabel
|
||||||
%276 = OpLoad %v3uint %GlobalInvocationID_1
|
%272 = OpLoad %v3uint %GlobalInvocationID_1
|
||||||
%275 = OpFunctionCall %void %main_count_inner %276
|
%271 = OpFunctionCall %void %main_count_inner %272
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -13,7 +13,7 @@ bug/dawn/947.wgsl:55:33 note: reading from user-defined input 'texcoord' may res
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 140
|
; Bound: 139
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%118 = OpExtInstImport "GLSL.std.450"
|
%118 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -128,9 +128,8 @@ bug/dawn/947.wgsl:55:33 note: reading from user-defined input 'texcoord' may res
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%103 = OpTypeFunction %void
|
%103 = OpTypeFunction %void
|
||||||
%113 = OpTypeFunction %v4float %v2float
|
%113 = OpTypeFunction %v4float %v2float
|
||||||
%119 = OpConstantComposite %v2float %float_0 %float_0
|
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%132 = OpTypeSampledImage %27
|
%131 = OpTypeSampledImage %27
|
||||||
%vs_main_inner = OpFunction %VertexOutputs None %28
|
%vs_main_inner = OpFunction %VertexOutputs None %28
|
||||||
%VertexIndex = OpFunctionParameter %uint
|
%VertexIndex = OpFunctionParameter %uint
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
|
@ -145,11 +144,11 @@ bug/dawn/947.wgsl:55:33 note: reading from user-defined input 'texcoord' may res
|
||||||
%59 = OpFSub %v2float %56 %58
|
%59 = OpFSub %v2float %56 %58
|
||||||
%60 = OpCompositeExtract %float %59 0
|
%60 = OpCompositeExtract %float %59 0
|
||||||
%61 = OpCompositeExtract %float %59 1
|
%61 = OpCompositeExtract %float %59 1
|
||||||
%62 = OpCompositeConstruct %v4float %60 %61 %float_0 %float_1
|
%62 = OpCompositeConstruct %v4float %60 %61 %15 %float_1
|
||||||
OpStore %52 %62
|
OpStore %52 %62
|
||||||
%65 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
|
%65 = OpAccessChain %_ptr_Uniform_float %uniforms %uint_0 %uint_1
|
||||||
%66 = OpLoad %float %65
|
%66 = OpLoad %float %65
|
||||||
%67 = OpFOrdLessThan %bool %66 %float_0
|
%67 = OpFOrdLessThan %bool %66 %15
|
||||||
OpStore %flipY %67
|
OpStore %flipY %67
|
||||||
%72 = OpLoad %bool %flipY
|
%72 = OpLoad %bool %flipY
|
||||||
OpSelectionMerge %73 None
|
OpSelectionMerge %73 None
|
||||||
|
@ -206,30 +205,30 @@ bug/dawn/947.wgsl:55:33 note: reading from user-defined input 'texcoord' may res
|
||||||
%116 = OpLabel
|
%116 = OpLabel
|
||||||
%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %8
|
%clampedTexcoord = OpVariable %_ptr_Function_v2float Function %8
|
||||||
%srcColor = OpVariable %_ptr_Function_v4float Function %12
|
%srcColor = OpVariable %_ptr_Function_v4float Function %12
|
||||||
%117 = OpExtInst %v2float %118 NClamp %texcoord_0 %119 %58
|
%117 = OpExtInst %v2float %118 NClamp %texcoord_0 %8 %58
|
||||||
OpStore %clampedTexcoord %117
|
OpStore %clampedTexcoord %117
|
||||||
%123 = OpLoad %v2float %clampedTexcoord
|
%122 = OpLoad %v2float %clampedTexcoord
|
||||||
%124 = OpFOrdEqual %v2bool %123 %texcoord_0
|
%123 = OpFOrdEqual %v2bool %122 %texcoord_0
|
||||||
%122 = OpAll %bool %124
|
%121 = OpAll %bool %123
|
||||||
%121 = OpLogicalNot %bool %122
|
%120 = OpLogicalNot %bool %121
|
||||||
OpSelectionMerge %126 None
|
OpSelectionMerge %125 None
|
||||||
OpBranchConditional %121 %127 %126
|
OpBranchConditional %120 %126 %125
|
||||||
%127 = OpLabel
|
|
||||||
%128 = OpFunctionCall %void %tint_discard_func
|
|
||||||
OpReturnValue %12
|
|
||||||
%126 = OpLabel
|
%126 = OpLabel
|
||||||
%130 = OpLoad %24 %mySampler
|
%127 = OpFunctionCall %void %tint_discard_func
|
||||||
%131 = OpLoad %27 %myTexture
|
OpReturnValue %12
|
||||||
%133 = OpSampledImage %132 %131 %130
|
%125 = OpLabel
|
||||||
%129 = OpImageSampleImplicitLod %v4float %133 %texcoord_0
|
%129 = OpLoad %24 %mySampler
|
||||||
OpStore %srcColor %129
|
%130 = OpLoad %27 %myTexture
|
||||||
%135 = OpLoad %v4float %srcColor
|
%132 = OpSampledImage %131 %130 %129
|
||||||
OpReturnValue %135
|
%128 = OpImageSampleImplicitLod %v4float %132 %texcoord_0
|
||||||
|
OpStore %srcColor %128
|
||||||
|
%134 = OpLoad %v4float %srcColor
|
||||||
|
OpReturnValue %134
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fs_main = OpFunction %void None %103
|
%fs_main = OpFunction %void None %103
|
||||||
%137 = OpLabel
|
%136 = OpLabel
|
||||||
%139 = OpLoad %v2float %texcoord_1
|
%138 = OpLoad %v2float %texcoord_1
|
||||||
%138 = OpFunctionCall %v4float %fs_main_inner %139
|
%137 = OpFunctionCall %v4float %fs_main_inner %138
|
||||||
OpStore %value %138
|
OpStore %value %137
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -13,7 +13,7 @@ bug/fxc/gradient_in_varying_loop/1112.wgsl:8:29 note: return value of 'textureSa
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 83
|
; Bound: 82
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -55,95 +55,94 @@ bug/fxc/gradient_in_varying_loop/1112.wgsl:8:29 note: return value of 'textureSa
|
||||||
%23 = OpTypeSampledImage %14
|
%23 = OpTypeSampledImage %14
|
||||||
%v3float = OpTypeVector %float 3
|
%v3float = OpTypeVector %float 3
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%28 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%31 = OpConstantNull %int
|
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%float_0 = OpConstant %float 0
|
%45 = OpConstantNull %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%76 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
%75 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%77 = OpTypeFunction %void
|
%76 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %v4float None %16
|
%main_inner = OpFunction %v4float None %16
|
||||||
%vUV = OpFunctionParameter %v2float
|
%vUV = OpFunctionParameter %v2float
|
||||||
%19 = OpLabel
|
%19 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %31
|
%i = OpVariable %_ptr_Function_int Function %28
|
||||||
%21 = OpLoad %11 %Sampler
|
%21 = OpLoad %11 %Sampler
|
||||||
%22 = OpLoad %14 %randomTexture
|
%22 = OpLoad %14 %randomTexture
|
||||||
%24 = OpSampledImage %23 %22 %21
|
%24 = OpSampledImage %23 %22 %21
|
||||||
%20 = OpImageSampleImplicitLod %v4float %24 %vUV
|
%20 = OpImageSampleImplicitLod %v4float %24 %vUV
|
||||||
%26 = OpVectorShuffle %v3float %20 %20 0 1 2
|
%26 = OpVectorShuffle %v3float %20 %20 0 1 2
|
||||||
OpStore %i %int_0
|
OpStore %i %28
|
||||||
OpBranch %32
|
OpBranch %31
|
||||||
%32 = OpLabel
|
%31 = OpLabel
|
||||||
OpLoopMerge %33 %34 None
|
OpLoopMerge %32 %33 None
|
||||||
OpBranch %35
|
|
||||||
%35 = OpLabel
|
|
||||||
%36 = OpLoad %int %i
|
|
||||||
%38 = OpSLessThan %bool %36 %int_1
|
|
||||||
OpSelectionMerge %40 None
|
|
||||||
OpBranchConditional %38 %41 %42
|
|
||||||
%41 = OpLabel
|
|
||||||
OpBranch %40
|
|
||||||
%42 = OpLabel
|
|
||||||
OpBranch %33
|
|
||||||
%40 = OpLabel
|
|
||||||
%43 = OpCompositeExtract %float %26 0
|
|
||||||
%44 = OpCompositeConstruct %v3float %43 %43 %43
|
|
||||||
%45 = OpCompositeExtract %float %44 0
|
|
||||||
%47 = OpFOrdLessThan %bool %45 %float_0
|
|
||||||
OpSelectionMerge %48 None
|
|
||||||
OpBranchConditional %47 %48 %49
|
|
||||||
%49 = OpLabel
|
|
||||||
%50 = OpCompositeExtract %float %44 1
|
|
||||||
%51 = OpFOrdLessThan %bool %50 %float_0
|
|
||||||
OpBranch %48
|
|
||||||
%48 = OpLabel
|
|
||||||
%52 = OpPhi %bool %47 %40 %51 %49
|
|
||||||
OpSelectionMerge %53 None
|
|
||||||
OpBranchConditional %52 %53 %54
|
|
||||||
%54 = OpLabel
|
|
||||||
%55 = OpCompositeExtract %float %44 0
|
|
||||||
%57 = OpFOrdGreaterThan %bool %55 %float_1
|
|
||||||
OpBranch %53
|
|
||||||
%53 = OpLabel
|
|
||||||
%58 = OpPhi %bool %52 %48 %57 %54
|
|
||||||
OpSelectionMerge %59 None
|
|
||||||
OpBranchConditional %58 %59 %60
|
|
||||||
%60 = OpLabel
|
|
||||||
%61 = OpCompositeExtract %float %44 1
|
|
||||||
%62 = OpFOrdGreaterThan %bool %61 %float_1
|
|
||||||
OpBranch %59
|
|
||||||
%59 = OpLabel
|
|
||||||
%63 = OpPhi %bool %58 %53 %62 %60
|
|
||||||
OpSelectionMerge %64 None
|
|
||||||
OpBranchConditional %63 %65 %64
|
|
||||||
%65 = OpLabel
|
|
||||||
%66 = OpLoad %int %i
|
|
||||||
%67 = OpIAdd %int %66 %int_1
|
|
||||||
OpStore %i %67
|
|
||||||
OpBranch %34
|
|
||||||
%64 = OpLabel
|
|
||||||
%69 = OpLoad %11 %Sampler
|
|
||||||
%70 = OpLoad %14 %depthTexture
|
|
||||||
%71 = OpSampledImage %23 %70 %69
|
|
||||||
%72 = OpVectorShuffle %v2float %44 %44 0 1
|
|
||||||
%68 = OpImageSampleImplicitLod %v4float %71 %72
|
|
||||||
%73 = OpCompositeExtract %float %68 0
|
|
||||||
%74 = OpLoad %int %i
|
|
||||||
%75 = OpIAdd %int %74 %int_1
|
|
||||||
OpStore %i %75
|
|
||||||
OpBranch %34
|
OpBranch %34
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
|
%35 = OpLoad %int %i
|
||||||
|
%37 = OpSLessThan %bool %35 %int_1
|
||||||
|
OpSelectionMerge %39 None
|
||||||
|
OpBranchConditional %37 %40 %41
|
||||||
|
%40 = OpLabel
|
||||||
|
OpBranch %39
|
||||||
|
%41 = OpLabel
|
||||||
OpBranch %32
|
OpBranch %32
|
||||||
|
%39 = OpLabel
|
||||||
|
%42 = OpCompositeExtract %float %26 0
|
||||||
|
%43 = OpCompositeConstruct %v3float %42 %42 %42
|
||||||
|
%44 = OpCompositeExtract %float %43 0
|
||||||
|
%46 = OpFOrdLessThan %bool %44 %45
|
||||||
|
OpSelectionMerge %47 None
|
||||||
|
OpBranchConditional %46 %47 %48
|
||||||
|
%48 = OpLabel
|
||||||
|
%49 = OpCompositeExtract %float %43 1
|
||||||
|
%50 = OpFOrdLessThan %bool %49 %45
|
||||||
|
OpBranch %47
|
||||||
|
%47 = OpLabel
|
||||||
|
%51 = OpPhi %bool %46 %39 %50 %48
|
||||||
|
OpSelectionMerge %52 None
|
||||||
|
OpBranchConditional %51 %52 %53
|
||||||
|
%53 = OpLabel
|
||||||
|
%54 = OpCompositeExtract %float %43 0
|
||||||
|
%56 = OpFOrdGreaterThan %bool %54 %float_1
|
||||||
|
OpBranch %52
|
||||||
|
%52 = OpLabel
|
||||||
|
%57 = OpPhi %bool %51 %47 %56 %53
|
||||||
|
OpSelectionMerge %58 None
|
||||||
|
OpBranchConditional %57 %58 %59
|
||||||
|
%59 = OpLabel
|
||||||
|
%60 = OpCompositeExtract %float %43 1
|
||||||
|
%61 = OpFOrdGreaterThan %bool %60 %float_1
|
||||||
|
OpBranch %58
|
||||||
|
%58 = OpLabel
|
||||||
|
%62 = OpPhi %bool %57 %52 %61 %59
|
||||||
|
OpSelectionMerge %63 None
|
||||||
|
OpBranchConditional %62 %64 %63
|
||||||
|
%64 = OpLabel
|
||||||
|
%65 = OpLoad %int %i
|
||||||
|
%66 = OpIAdd %int %65 %int_1
|
||||||
|
OpStore %i %66
|
||||||
|
OpBranch %33
|
||||||
|
%63 = OpLabel
|
||||||
|
%68 = OpLoad %11 %Sampler
|
||||||
|
%69 = OpLoad %14 %depthTexture
|
||||||
|
%70 = OpSampledImage %23 %69 %68
|
||||||
|
%71 = OpVectorShuffle %v2float %43 %43 0 1
|
||||||
|
%67 = OpImageSampleImplicitLod %v4float %70 %71
|
||||||
|
%72 = OpCompositeExtract %float %67 0
|
||||||
|
%73 = OpLoad %int %i
|
||||||
|
%74 = OpIAdd %int %73 %int_1
|
||||||
|
OpStore %i %74
|
||||||
|
OpBranch %33
|
||||||
%33 = OpLabel
|
%33 = OpLabel
|
||||||
OpReturnValue %76
|
OpBranch %31
|
||||||
|
%32 = OpLabel
|
||||||
|
OpReturnValue %75
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %77
|
%main = OpFunction %void None %76
|
||||||
%80 = OpLabel
|
%79 = OpLabel
|
||||||
%82 = OpLoad %v2float %vUV_1
|
%81 = OpLoad %v2float %vUV_1
|
||||||
%81 = OpFunctionCall %v4float %main_inner %82
|
%80 = OpFunctionCall %v4float %main_inner %81
|
||||||
OpStore %value %81
|
OpStore %value %80
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
%15 = OpTypeFunction %void
|
%15 = OpTypeFunction %void
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%21 = OpConstantNull %int
|
||||||
%_ptr_StorageBuffer_Particle = OpTypePointer StorageBuffer %Particle
|
%_ptr_StorageBuffer_Particle = OpTypePointer StorageBuffer %Particle
|
||||||
%_ptr_Function_Particle = OpTypePointer Function %Particle
|
%_ptr_Function_Particle = OpTypePointer Function %Particle
|
||||||
%27 = OpConstantNull %Particle
|
%27 = OpConstantNull %Particle
|
||||||
|
@ -63,7 +63,7 @@
|
||||||
%main = OpFunction %void None %15
|
%main = OpFunction %void None %15
|
||||||
%18 = OpLabel
|
%18 = OpLabel
|
||||||
%particle = OpVariable %_ptr_Function_Particle Function %27
|
%particle = OpVariable %_ptr_Function_Particle Function %27
|
||||||
%23 = OpAccessChain %_ptr_StorageBuffer_Particle %particles %uint_0 %int_0
|
%23 = OpAccessChain %_ptr_StorageBuffer_Particle %particles %uint_0 %21
|
||||||
%24 = OpLoad %Particle %23
|
%24 = OpLoad %Particle %23
|
||||||
OpStore %particle %24
|
OpStore %particle %24
|
||||||
%29 = OpAccessChain %_ptr_Uniform_uint %sim %uint_0
|
%29 = OpAccessChain %_ptr_Uniform_uint %sim %uint_0
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%20 = OpConstantNull %int
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%main = OpFunction %void None %5
|
%main = OpFunction %void None %5
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
%m1 = OpVariable %_ptr_Function_mat2v4float Function %14
|
%m1 = OpVariable %_ptr_Function_mat2v4float Function %14
|
||||||
%17 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%17 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%18 = OpLoad %uint %17
|
%18 = OpLoad %uint %17
|
||||||
%22 = OpAccessChain %_ptr_Function_float %m1 %18 %int_0
|
%22 = OpAccessChain %_ptr_Function_float %m1 %18 %20
|
||||||
OpStore %22 %float_1
|
OpStore %22 %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%11 = OpTypeFunction %void
|
%11 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%16 = OpConstantNull %int
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%19 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%19 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%20 = OpLoad %uint %19
|
%20 = OpLoad %uint %19
|
||||||
%22 = OpAccessChain %_ptr_Private_float %m1 %int_0 %20
|
%22 = OpAccessChain %_ptr_Private_float %m1 %16 %20
|
||||||
OpStore %22 %float_1
|
OpStore %22 %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -34,14 +34,14 @@
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%20 = OpConstantNull %int
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%main = OpFunction %void None %11
|
%main = OpFunction %void None %11
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%17 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%17 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%18 = OpLoad %uint %17
|
%18 = OpLoad %uint %17
|
||||||
%22 = OpAccessChain %_ptr_Private_float %m1 %18 %int_0
|
%22 = OpAccessChain %_ptr_Private_float %m1 %18 %20
|
||||||
OpStore %22 %float_1
|
OpStore %22 %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%11 = OpTypeFunction %void
|
%11 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%16 = OpConstantNull %int
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%19 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%19 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%20 = OpLoad %uint %19
|
%20 = OpLoad %uint %19
|
||||||
%22 = OpAccessChain %_ptr_Private_float %m1 %int_0 %20
|
%22 = OpAccessChain %_ptr_Private_float %m1 %16 %20
|
||||||
OpStore %22 %float_1
|
OpStore %22 %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 72
|
; Bound: 71
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -37,9 +37,8 @@
|
||||||
%v2b = OpVariable %_ptr_Private_v2bool Private %20
|
%v2b = OpVariable %_ptr_Private_v2bool Private %20
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%21 = OpTypeFunction %void
|
%21 = OpTypeFunction %void
|
||||||
%int_0 = OpConstant %int 0
|
%25 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%28 = OpConstantNull %int
|
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
|
@ -51,66 +50,66 @@
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%foo = OpFunction %void None %21
|
%foo = OpFunction %void None %21
|
||||||
%24 = OpLabel
|
%24 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %28
|
%i = OpVariable %_ptr_Function_int Function %25
|
||||||
OpStore %i %int_0
|
OpStore %i %25
|
||||||
OpBranch %29
|
OpBranch %28
|
||||||
%29 = OpLabel
|
%28 = OpLabel
|
||||||
OpLoopMerge %30 %31 None
|
OpLoopMerge %29 %30 None
|
||||||
OpBranch %32
|
|
||||||
%32 = OpLabel
|
|
||||||
%34 = OpLoad %int %i
|
|
||||||
%36 = OpSLessThan %bool %34 %int_2
|
|
||||||
%33 = OpLogicalNot %bool %36
|
|
||||||
OpSelectionMerge %37 None
|
|
||||||
OpBranchConditional %33 %38 %37
|
|
||||||
%38 = OpLabel
|
|
||||||
OpBranch %30
|
|
||||||
%37 = OpLabel
|
|
||||||
%39 = OpLoad %int %i
|
|
||||||
%41 = OpAccessChain %_ptr_Private_float %v2f %39
|
|
||||||
OpStore %41 %float_1
|
|
||||||
%43 = OpLoad %int %i
|
|
||||||
%45 = OpAccessChain %_ptr_Private_int %v3i %43
|
|
||||||
OpStore %45 %int_1
|
|
||||||
%47 = OpLoad %int %i
|
|
||||||
%49 = OpAccessChain %_ptr_Private_uint %v4u %47
|
|
||||||
OpStore %49 %uint_1
|
|
||||||
%51 = OpLoad %int %i
|
|
||||||
%53 = OpAccessChain %_ptr_Private_bool %v2b %51
|
|
||||||
OpStore %53 %true
|
|
||||||
OpBranch %31
|
OpBranch %31
|
||||||
%31 = OpLabel
|
%31 = OpLabel
|
||||||
%55 = OpLoad %int %i
|
%33 = OpLoad %int %i
|
||||||
%56 = OpIAdd %int %55 %int_1
|
%35 = OpSLessThan %bool %33 %int_2
|
||||||
OpStore %i %56
|
%32 = OpLogicalNot %bool %35
|
||||||
|
OpSelectionMerge %36 None
|
||||||
|
OpBranchConditional %32 %37 %36
|
||||||
|
%37 = OpLabel
|
||||||
OpBranch %29
|
OpBranch %29
|
||||||
|
%36 = OpLabel
|
||||||
|
%38 = OpLoad %int %i
|
||||||
|
%40 = OpAccessChain %_ptr_Private_float %v2f %38
|
||||||
|
OpStore %40 %float_1
|
||||||
|
%42 = OpLoad %int %i
|
||||||
|
%44 = OpAccessChain %_ptr_Private_int %v3i %42
|
||||||
|
OpStore %44 %int_1
|
||||||
|
%46 = OpLoad %int %i
|
||||||
|
%48 = OpAccessChain %_ptr_Private_uint %v4u %46
|
||||||
|
OpStore %48 %uint_1
|
||||||
|
%50 = OpLoad %int %i
|
||||||
|
%52 = OpAccessChain %_ptr_Private_bool %v2b %50
|
||||||
|
OpStore %52 %true
|
||||||
|
OpBranch %30
|
||||||
%30 = OpLabel
|
%30 = OpLabel
|
||||||
|
%54 = OpLoad %int %i
|
||||||
|
%55 = OpIAdd %int %54 %int_1
|
||||||
|
OpStore %i %55
|
||||||
|
OpBranch %28
|
||||||
|
%29 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %21
|
%main = OpFunction %void None %21
|
||||||
%58 = OpLabel
|
%57 = OpLabel
|
||||||
%i_0 = OpVariable %_ptr_Function_int Function %28
|
%i_0 = OpVariable %_ptr_Function_int Function %25
|
||||||
OpStore %i_0 %int_0
|
OpStore %i_0 %25
|
||||||
OpBranch %60
|
OpBranch %59
|
||||||
%60 = OpLabel
|
%59 = OpLabel
|
||||||
OpLoopMerge %61 %62 None
|
OpLoopMerge %60 %61 None
|
||||||
OpBranch %63
|
|
||||||
%63 = OpLabel
|
|
||||||
%65 = OpLoad %int %i_0
|
|
||||||
%66 = OpSLessThan %bool %65 %int_2
|
|
||||||
%64 = OpLogicalNot %bool %66
|
|
||||||
OpSelectionMerge %67 None
|
|
||||||
OpBranchConditional %64 %68 %67
|
|
||||||
%68 = OpLabel
|
|
||||||
OpBranch %61
|
|
||||||
%67 = OpLabel
|
|
||||||
%69 = OpFunctionCall %void %foo
|
|
||||||
OpBranch %62
|
OpBranch %62
|
||||||
%62 = OpLabel
|
%62 = OpLabel
|
||||||
%70 = OpLoad %int %i_0
|
%64 = OpLoad %int %i_0
|
||||||
%71 = OpIAdd %int %70 %int_1
|
%65 = OpSLessThan %bool %64 %int_2
|
||||||
OpStore %i_0 %71
|
%63 = OpLogicalNot %bool %65
|
||||||
|
OpSelectionMerge %66 None
|
||||||
|
OpBranchConditional %63 %67 %66
|
||||||
|
%67 = OpLabel
|
||||||
OpBranch %60
|
OpBranch %60
|
||||||
|
%66 = OpLabel
|
||||||
|
%68 = OpFunctionCall %void %foo
|
||||||
|
OpBranch %61
|
||||||
%61 = OpLabel
|
%61 = OpLabel
|
||||||
|
%69 = OpLoad %int %i_0
|
||||||
|
%70 = OpIAdd %int %69 %int_1
|
||||||
|
OpStore %i_0 %70
|
||||||
|
OpBranch %59
|
||||||
|
%60 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 61
|
; Bound: 60
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -37,9 +37,8 @@
|
||||||
%v2b = OpVariable %_ptr_Private_v2bool Private %20
|
%v2b = OpVariable %_ptr_Private_v2bool Private %20
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%21 = OpTypeFunction %void
|
%21 = OpTypeFunction %void
|
||||||
%int_0 = OpConstant %int 0
|
%25 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%28 = OpConstantNull %int
|
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%_ptr_Private_int = OpTypePointer Private %int
|
%_ptr_Private_int = OpTypePointer Private %int
|
||||||
|
@ -51,46 +50,46 @@
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%foo = OpFunction %void None %21
|
%foo = OpFunction %void None %21
|
||||||
%24 = OpLabel
|
%24 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_int Function %28
|
%i = OpVariable %_ptr_Function_int Function %25
|
||||||
OpStore %i %int_0
|
OpStore %i %25
|
||||||
%29 = OpLoad %int %i
|
%28 = OpLoad %int %i
|
||||||
%31 = OpAccessChain %_ptr_Private_float %v2f %29
|
%30 = OpAccessChain %_ptr_Private_float %v2f %28
|
||||||
OpStore %31 %float_1
|
OpStore %30 %float_1
|
||||||
%33 = OpLoad %int %i
|
%32 = OpLoad %int %i
|
||||||
%35 = OpAccessChain %_ptr_Private_int %v3i %33
|
%34 = OpAccessChain %_ptr_Private_int %v3i %32
|
||||||
OpStore %35 %int_1
|
OpStore %34 %int_1
|
||||||
%37 = OpLoad %int %i
|
%36 = OpLoad %int %i
|
||||||
%39 = OpAccessChain %_ptr_Private_uint %v4u %37
|
%38 = OpAccessChain %_ptr_Private_uint %v4u %36
|
||||||
OpStore %39 %uint_1
|
OpStore %38 %uint_1
|
||||||
%41 = OpLoad %int %i
|
%40 = OpLoad %int %i
|
||||||
%43 = OpAccessChain %_ptr_Private_bool %v2b %41
|
%42 = OpAccessChain %_ptr_Private_bool %v2b %40
|
||||||
OpStore %43 %true
|
OpStore %42 %true
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %21
|
%main = OpFunction %void None %21
|
||||||
%46 = OpLabel
|
%45 = OpLabel
|
||||||
%i_0 = OpVariable %_ptr_Function_int Function %28
|
%i_0 = OpVariable %_ptr_Function_int Function %25
|
||||||
OpStore %i_0 %int_0
|
OpStore %i_0 %25
|
||||||
OpBranch %48
|
OpBranch %47
|
||||||
%48 = OpLabel
|
%47 = OpLabel
|
||||||
OpLoopMerge %49 %50 None
|
OpLoopMerge %48 %49 None
|
||||||
OpBranch %51
|
|
||||||
%51 = OpLabel
|
|
||||||
%53 = OpLoad %int %i_0
|
|
||||||
%55 = OpSLessThan %bool %53 %int_2
|
|
||||||
%52 = OpLogicalNot %bool %55
|
|
||||||
OpSelectionMerge %56 None
|
|
||||||
OpBranchConditional %52 %57 %56
|
|
||||||
%57 = OpLabel
|
|
||||||
OpBranch %49
|
|
||||||
%56 = OpLabel
|
|
||||||
%58 = OpFunctionCall %void %foo
|
|
||||||
OpBranch %50
|
OpBranch %50
|
||||||
%50 = OpLabel
|
%50 = OpLabel
|
||||||
%59 = OpLoad %int %i_0
|
%52 = OpLoad %int %i_0
|
||||||
%60 = OpIAdd %int %59 %int_1
|
%54 = OpSLessThan %bool %52 %int_2
|
||||||
OpStore %i_0 %60
|
%51 = OpLogicalNot %bool %54
|
||||||
|
OpSelectionMerge %55 None
|
||||||
|
OpBranchConditional %51 %56 %55
|
||||||
|
%56 = OpLabel
|
||||||
OpBranch %48
|
OpBranch %48
|
||||||
|
%55 = OpLabel
|
||||||
|
%57 = OpFunctionCall %void %foo
|
||||||
|
OpBranch %49
|
||||||
%49 = OpLabel
|
%49 = OpLabel
|
||||||
|
%58 = OpLoad %int %i_0
|
||||||
|
%59 = OpIAdd %int %58 %int_1
|
||||||
|
OpStore %i_0 %59
|
||||||
|
OpBranch %47
|
||||||
|
%48 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 104
|
; Bound: 103
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -63,9 +63,8 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
||||||
%56 = OpConstantNull %v4bool
|
%56 = OpConstantNull %v4bool
|
||||||
%int_0 = OpConstant %int 0
|
%57 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%60 = OpConstantNull %int
|
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
|
@ -88,63 +87,63 @@
|
||||||
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
||||||
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
||||||
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
||||||
%i = OpVariable %_ptr_Function_int Function %60
|
%i = OpVariable %_ptr_Function_int Function %57
|
||||||
OpStore %i %int_0
|
OpStore %i %57
|
||||||
OpBranch %61
|
OpBranch %60
|
||||||
%61 = OpLabel
|
%60 = OpLabel
|
||||||
OpLoopMerge %62 %63 None
|
OpLoopMerge %61 %62 None
|
||||||
OpBranch %64
|
|
||||||
%64 = OpLabel
|
|
||||||
%66 = OpLoad %int %i
|
|
||||||
%68 = OpSLessThan %bool %66 %int_2
|
|
||||||
%65 = OpLogicalNot %bool %68
|
|
||||||
OpSelectionMerge %69 None
|
|
||||||
OpBranchConditional %65 %70 %69
|
|
||||||
%70 = OpLabel
|
|
||||||
OpBranch %62
|
|
||||||
%69 = OpLabel
|
|
||||||
%71 = OpLoad %int %i
|
|
||||||
%73 = OpAccessChain %_ptr_Function_float %v2f %71
|
|
||||||
OpStore %73 %float_1
|
|
||||||
%75 = OpLoad %int %i
|
|
||||||
%76 = OpAccessChain %_ptr_Function_float %v3f %75
|
|
||||||
OpStore %76 %float_1
|
|
||||||
%77 = OpLoad %int %i
|
|
||||||
%78 = OpAccessChain %_ptr_Function_float %v4f %77
|
|
||||||
OpStore %78 %float_1
|
|
||||||
%79 = OpLoad %int %i
|
|
||||||
%80 = OpAccessChain %_ptr_Function_int %v2i %79
|
|
||||||
OpStore %80 %int_1
|
|
||||||
%82 = OpLoad %int %i
|
|
||||||
%83 = OpAccessChain %_ptr_Function_int %v3i %82
|
|
||||||
OpStore %83 %int_1
|
|
||||||
%84 = OpLoad %int %i
|
|
||||||
%85 = OpAccessChain %_ptr_Function_int %v4i %84
|
|
||||||
OpStore %85 %int_1
|
|
||||||
%86 = OpLoad %int %i
|
|
||||||
%88 = OpAccessChain %_ptr_Function_uint %v2u %86
|
|
||||||
OpStore %88 %uint_1
|
|
||||||
%90 = OpLoad %int %i
|
|
||||||
%91 = OpAccessChain %_ptr_Function_uint %v3u %90
|
|
||||||
OpStore %91 %uint_1
|
|
||||||
%92 = OpLoad %int %i
|
|
||||||
%93 = OpAccessChain %_ptr_Function_uint %v4u %92
|
|
||||||
OpStore %93 %uint_1
|
|
||||||
%94 = OpLoad %int %i
|
|
||||||
%96 = OpAccessChain %_ptr_Function_bool %v2b %94
|
|
||||||
OpStore %96 %true
|
|
||||||
%98 = OpLoad %int %i
|
|
||||||
%99 = OpAccessChain %_ptr_Function_bool %v3b %98
|
|
||||||
OpStore %99 %true
|
|
||||||
%100 = OpLoad %int %i
|
|
||||||
%101 = OpAccessChain %_ptr_Function_bool %v4b %100
|
|
||||||
OpStore %101 %true
|
|
||||||
OpBranch %63
|
OpBranch %63
|
||||||
%63 = OpLabel
|
%63 = OpLabel
|
||||||
%102 = OpLoad %int %i
|
%65 = OpLoad %int %i
|
||||||
%103 = OpIAdd %int %102 %int_1
|
%67 = OpSLessThan %bool %65 %int_2
|
||||||
OpStore %i %103
|
%64 = OpLogicalNot %bool %67
|
||||||
|
OpSelectionMerge %68 None
|
||||||
|
OpBranchConditional %64 %69 %68
|
||||||
|
%69 = OpLabel
|
||||||
OpBranch %61
|
OpBranch %61
|
||||||
|
%68 = OpLabel
|
||||||
|
%70 = OpLoad %int %i
|
||||||
|
%72 = OpAccessChain %_ptr_Function_float %v2f %70
|
||||||
|
OpStore %72 %float_1
|
||||||
|
%74 = OpLoad %int %i
|
||||||
|
%75 = OpAccessChain %_ptr_Function_float %v3f %74
|
||||||
|
OpStore %75 %float_1
|
||||||
|
%76 = OpLoad %int %i
|
||||||
|
%77 = OpAccessChain %_ptr_Function_float %v4f %76
|
||||||
|
OpStore %77 %float_1
|
||||||
|
%78 = OpLoad %int %i
|
||||||
|
%79 = OpAccessChain %_ptr_Function_int %v2i %78
|
||||||
|
OpStore %79 %int_1
|
||||||
|
%81 = OpLoad %int %i
|
||||||
|
%82 = OpAccessChain %_ptr_Function_int %v3i %81
|
||||||
|
OpStore %82 %int_1
|
||||||
|
%83 = OpLoad %int %i
|
||||||
|
%84 = OpAccessChain %_ptr_Function_int %v4i %83
|
||||||
|
OpStore %84 %int_1
|
||||||
|
%85 = OpLoad %int %i
|
||||||
|
%87 = OpAccessChain %_ptr_Function_uint %v2u %85
|
||||||
|
OpStore %87 %uint_1
|
||||||
|
%89 = OpLoad %int %i
|
||||||
|
%90 = OpAccessChain %_ptr_Function_uint %v3u %89
|
||||||
|
OpStore %90 %uint_1
|
||||||
|
%91 = OpLoad %int %i
|
||||||
|
%92 = OpAccessChain %_ptr_Function_uint %v4u %91
|
||||||
|
OpStore %92 %uint_1
|
||||||
|
%93 = OpLoad %int %i
|
||||||
|
%95 = OpAccessChain %_ptr_Function_bool %v2b %93
|
||||||
|
OpStore %95 %true
|
||||||
|
%97 = OpLoad %int %i
|
||||||
|
%98 = OpAccessChain %_ptr_Function_bool %v3b %97
|
||||||
|
OpStore %98 %true
|
||||||
|
%99 = OpLoad %int %i
|
||||||
|
%100 = OpAccessChain %_ptr_Function_bool %v4b %99
|
||||||
|
OpStore %100 %true
|
||||||
|
OpBranch %62
|
||||||
%62 = OpLabel
|
%62 = OpLabel
|
||||||
|
%101 = OpLoad %int %i
|
||||||
|
%102 = OpIAdd %int %101 %int_1
|
||||||
|
OpStore %i %102
|
||||||
|
OpBranch %60
|
||||||
|
%61 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 68
|
; Bound: 67
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -35,9 +35,8 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%_ptr_Function_v2bool = OpTypePointer Function %v2bool
|
%_ptr_Function_v2bool = OpTypePointer Function %v2bool
|
||||||
%27 = OpConstantNull %v2bool
|
%27 = OpConstantNull %v2bool
|
||||||
%int_0 = OpConstant %int 0
|
%29 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%32 = OpConstantNull %int
|
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
|
@ -56,51 +55,51 @@
|
||||||
%v4u_2 = OpVariable %_ptr_Function_v4uint Function %21
|
%v4u_2 = OpVariable %_ptr_Function_v4uint Function %21
|
||||||
%v2b = OpVariable %_ptr_Function_v2bool Function %27
|
%v2b = OpVariable %_ptr_Function_v2bool Function %27
|
||||||
%v2b_2 = OpVariable %_ptr_Function_v2bool Function %27
|
%v2b_2 = OpVariable %_ptr_Function_v2bool Function %27
|
||||||
%i = OpVariable %_ptr_Function_int Function %32
|
%i = OpVariable %_ptr_Function_int Function %29
|
||||||
OpStore %i %int_0
|
OpStore %i %29
|
||||||
OpBranch %33
|
OpBranch %32
|
||||||
%33 = OpLabel
|
%32 = OpLabel
|
||||||
OpLoopMerge %34 %35 None
|
OpLoopMerge %33 %34 None
|
||||||
OpBranch %36
|
|
||||||
%36 = OpLabel
|
|
||||||
%38 = OpLoad %int %i
|
|
||||||
%40 = OpSLessThan %bool %38 %int_2
|
|
||||||
%37 = OpLogicalNot %bool %40
|
|
||||||
OpSelectionMerge %41 None
|
|
||||||
OpBranchConditional %37 %42 %41
|
|
||||||
%42 = OpLabel
|
|
||||||
OpBranch %34
|
|
||||||
%41 = OpLabel
|
|
||||||
%43 = OpLoad %int %i
|
|
||||||
%45 = OpAccessChain %_ptr_Function_float %v2f %43
|
|
||||||
OpStore %45 %float_1
|
|
||||||
%47 = OpLoad %int %i
|
|
||||||
%48 = OpAccessChain %_ptr_Function_int %v3i %47
|
|
||||||
OpStore %48 %int_1
|
|
||||||
%50 = OpLoad %int %i
|
|
||||||
%52 = OpAccessChain %_ptr_Function_uint %v4u %50
|
|
||||||
OpStore %52 %uint_1
|
|
||||||
%54 = OpLoad %int %i
|
|
||||||
%56 = OpAccessChain %_ptr_Function_bool %v2b %54
|
|
||||||
OpStore %56 %true
|
|
||||||
%58 = OpLoad %int %i
|
|
||||||
%59 = OpAccessChain %_ptr_Function_float %v2f_2 %58
|
|
||||||
OpStore %59 %float_1
|
|
||||||
%60 = OpLoad %int %i
|
|
||||||
%61 = OpAccessChain %_ptr_Function_int %v3i_2 %60
|
|
||||||
OpStore %61 %int_1
|
|
||||||
%62 = OpLoad %int %i
|
|
||||||
%63 = OpAccessChain %_ptr_Function_uint %v4u_2 %62
|
|
||||||
OpStore %63 %uint_1
|
|
||||||
%64 = OpLoad %int %i
|
|
||||||
%65 = OpAccessChain %_ptr_Function_bool %v2b_2 %64
|
|
||||||
OpStore %65 %true
|
|
||||||
OpBranch %35
|
OpBranch %35
|
||||||
%35 = OpLabel
|
%35 = OpLabel
|
||||||
%66 = OpLoad %int %i
|
%37 = OpLoad %int %i
|
||||||
%67 = OpIAdd %int %66 %int_1
|
%39 = OpSLessThan %bool %37 %int_2
|
||||||
OpStore %i %67
|
%36 = OpLogicalNot %bool %39
|
||||||
|
OpSelectionMerge %40 None
|
||||||
|
OpBranchConditional %36 %41 %40
|
||||||
|
%41 = OpLabel
|
||||||
OpBranch %33
|
OpBranch %33
|
||||||
|
%40 = OpLabel
|
||||||
|
%42 = OpLoad %int %i
|
||||||
|
%44 = OpAccessChain %_ptr_Function_float %v2f %42
|
||||||
|
OpStore %44 %float_1
|
||||||
|
%46 = OpLoad %int %i
|
||||||
|
%47 = OpAccessChain %_ptr_Function_int %v3i %46
|
||||||
|
OpStore %47 %int_1
|
||||||
|
%49 = OpLoad %int %i
|
||||||
|
%51 = OpAccessChain %_ptr_Function_uint %v4u %49
|
||||||
|
OpStore %51 %uint_1
|
||||||
|
%53 = OpLoad %int %i
|
||||||
|
%55 = OpAccessChain %_ptr_Function_bool %v2b %53
|
||||||
|
OpStore %55 %true
|
||||||
|
%57 = OpLoad %int %i
|
||||||
|
%58 = OpAccessChain %_ptr_Function_float %v2f_2 %57
|
||||||
|
OpStore %58 %float_1
|
||||||
|
%59 = OpLoad %int %i
|
||||||
|
%60 = OpAccessChain %_ptr_Function_int %v3i_2 %59
|
||||||
|
OpStore %60 %int_1
|
||||||
|
%61 = OpLoad %int %i
|
||||||
|
%62 = OpAccessChain %_ptr_Function_uint %v4u_2 %61
|
||||||
|
OpStore %62 %uint_1
|
||||||
|
%63 = OpLoad %int %i
|
||||||
|
%64 = OpAccessChain %_ptr_Function_bool %v2b_2 %63
|
||||||
|
OpStore %64 %true
|
||||||
|
OpBranch %34
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
|
%65 = OpLoad %int %i
|
||||||
|
%66 = OpIAdd %int %65 %int_1
|
||||||
|
OpStore %i %66
|
||||||
|
OpBranch %32
|
||||||
|
%33 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 105
|
; Bound: 104
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -64,9 +64,8 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
||||||
%56 = OpConstantNull %v4bool
|
%56 = OpConstantNull %v4bool
|
||||||
%int_0 = OpConstant %int 0
|
%57 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%60 = OpConstantNull %int
|
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
|
@ -89,65 +88,65 @@
|
||||||
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
||||||
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
||||||
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
||||||
%i = OpVariable %_ptr_Function_int Function %60
|
%i = OpVariable %_ptr_Function_int Function %57
|
||||||
%i_0 = OpVariable %_ptr_Function_int Function %60
|
%i_0 = OpVariable %_ptr_Function_int Function %57
|
||||||
OpStore %i %int_0
|
OpStore %i %57
|
||||||
OpBranch %61
|
OpBranch %60
|
||||||
%61 = OpLabel
|
%60 = OpLabel
|
||||||
OpLoopMerge %62 %63 None
|
OpLoopMerge %61 %62 None
|
||||||
OpBranch %64
|
|
||||||
%64 = OpLabel
|
|
||||||
%66 = OpLoad %int %i
|
|
||||||
%68 = OpSLessThan %bool %66 %int_2
|
|
||||||
%65 = OpLogicalNot %bool %68
|
|
||||||
OpSelectionMerge %69 None
|
|
||||||
OpBranchConditional %65 %70 %69
|
|
||||||
%70 = OpLabel
|
|
||||||
OpBranch %62
|
|
||||||
%69 = OpLabel
|
|
||||||
%71 = OpLoad %int %i
|
|
||||||
%73 = OpAccessChain %_ptr_Function_float %v2f %71
|
|
||||||
OpStore %73 %float_1
|
|
||||||
%75 = OpLoad %int %i
|
|
||||||
%76 = OpAccessChain %_ptr_Function_int %v2i %75
|
|
||||||
OpStore %76 %int_1
|
|
||||||
%78 = OpLoad %int %i
|
|
||||||
%80 = OpAccessChain %_ptr_Function_uint %v2u %78
|
|
||||||
OpStore %80 %uint_1
|
|
||||||
%82 = OpLoad %int %i
|
|
||||||
%84 = OpAccessChain %_ptr_Function_bool %v2b %82
|
|
||||||
OpStore %84 %true
|
|
||||||
OpBranch %63
|
OpBranch %63
|
||||||
%63 = OpLabel
|
%63 = OpLabel
|
||||||
%86 = OpLoad %int %i
|
%65 = OpLoad %int %i
|
||||||
%87 = OpIAdd %int %86 %int_1
|
%67 = OpSLessThan %bool %65 %int_2
|
||||||
OpStore %i %87
|
%64 = OpLogicalNot %bool %67
|
||||||
|
OpSelectionMerge %68 None
|
||||||
|
OpBranchConditional %64 %69 %68
|
||||||
|
%69 = OpLabel
|
||||||
OpBranch %61
|
OpBranch %61
|
||||||
|
%68 = OpLabel
|
||||||
|
%70 = OpLoad %int %i
|
||||||
|
%72 = OpAccessChain %_ptr_Function_float %v2f %70
|
||||||
|
OpStore %72 %float_1
|
||||||
|
%74 = OpLoad %int %i
|
||||||
|
%75 = OpAccessChain %_ptr_Function_int %v2i %74
|
||||||
|
OpStore %75 %int_1
|
||||||
|
%77 = OpLoad %int %i
|
||||||
|
%79 = OpAccessChain %_ptr_Function_uint %v2u %77
|
||||||
|
OpStore %79 %uint_1
|
||||||
|
%81 = OpLoad %int %i
|
||||||
|
%83 = OpAccessChain %_ptr_Function_bool %v2b %81
|
||||||
|
OpStore %83 %true
|
||||||
|
OpBranch %62
|
||||||
%62 = OpLabel
|
%62 = OpLabel
|
||||||
OpStore %i_0 %int_0
|
%85 = OpLoad %int %i
|
||||||
%89 = OpLoad %int %i_0
|
%86 = OpIAdd %int %85 %int_1
|
||||||
%90 = OpAccessChain %_ptr_Function_float %v3f %89
|
OpStore %i %86
|
||||||
OpStore %90 %float_1
|
OpBranch %60
|
||||||
%91 = OpLoad %int %i_0
|
%61 = OpLabel
|
||||||
%92 = OpAccessChain %_ptr_Function_float %v4f %91
|
OpStore %i_0 %57
|
||||||
OpStore %92 %float_1
|
%88 = OpLoad %int %i_0
|
||||||
%93 = OpLoad %int %i_0
|
%89 = OpAccessChain %_ptr_Function_float %v3f %88
|
||||||
%94 = OpAccessChain %_ptr_Function_int %v3i %93
|
OpStore %89 %float_1
|
||||||
OpStore %94 %int_1
|
%90 = OpLoad %int %i_0
|
||||||
%95 = OpLoad %int %i_0
|
%91 = OpAccessChain %_ptr_Function_float %v4f %90
|
||||||
%96 = OpAccessChain %_ptr_Function_int %v4i %95
|
OpStore %91 %float_1
|
||||||
OpStore %96 %int_1
|
%92 = OpLoad %int %i_0
|
||||||
%97 = OpLoad %int %i_0
|
%93 = OpAccessChain %_ptr_Function_int %v3i %92
|
||||||
%98 = OpAccessChain %_ptr_Function_uint %v3u %97
|
OpStore %93 %int_1
|
||||||
OpStore %98 %uint_1
|
%94 = OpLoad %int %i_0
|
||||||
%99 = OpLoad %int %i_0
|
%95 = OpAccessChain %_ptr_Function_int %v4i %94
|
||||||
%100 = OpAccessChain %_ptr_Function_uint %v4u %99
|
OpStore %95 %int_1
|
||||||
OpStore %100 %uint_1
|
%96 = OpLoad %int %i_0
|
||||||
%101 = OpLoad %int %i_0
|
%97 = OpAccessChain %_ptr_Function_uint %v3u %96
|
||||||
%102 = OpAccessChain %_ptr_Function_bool %v3b %101
|
OpStore %97 %uint_1
|
||||||
OpStore %102 %true
|
%98 = OpLoad %int %i_0
|
||||||
%103 = OpLoad %int %i_0
|
%99 = OpAccessChain %_ptr_Function_uint %v4u %98
|
||||||
%104 = OpAccessChain %_ptr_Function_bool %v4b %103
|
OpStore %99 %uint_1
|
||||||
OpStore %104 %true
|
%100 = OpLoad %int %i_0
|
||||||
|
%101 = OpAccessChain %_ptr_Function_bool %v3b %100
|
||||||
|
OpStore %101 %true
|
||||||
|
%102 = OpLoad %int %i_0
|
||||||
|
%103 = OpAccessChain %_ptr_Function_bool %v4b %102
|
||||||
|
OpStore %103 %true
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 92
|
; Bound: 91
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -63,9 +63,8 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
%_ptr_Function_v4bool = OpTypePointer Function %v4bool
|
||||||
%56 = OpConstantNull %v4bool
|
%56 = OpConstantNull %v4bool
|
||||||
%int_0 = OpConstant %int 0
|
%57 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%60 = OpConstantNull %int
|
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
|
@ -87,43 +86,43 @@
|
||||||
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
%v2b = OpVariable %_ptr_Function_v2bool Function %48
|
||||||
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
%v3b = OpVariable %_ptr_Function_v3bool Function %52
|
||||||
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
%v4b = OpVariable %_ptr_Function_v4bool Function %56
|
||||||
%i = OpVariable %_ptr_Function_int Function %60
|
%i = OpVariable %_ptr_Function_int Function %57
|
||||||
OpStore %i %int_0
|
OpStore %i %57
|
||||||
%61 = OpLoad %int %i
|
%60 = OpLoad %int %i
|
||||||
%63 = OpAccessChain %_ptr_Function_float %v2f %61
|
%62 = OpAccessChain %_ptr_Function_float %v2f %60
|
||||||
OpStore %63 %float_1
|
OpStore %62 %float_1
|
||||||
%65 = OpLoad %int %i
|
%64 = OpLoad %int %i
|
||||||
%66 = OpAccessChain %_ptr_Function_float %v3f %65
|
%65 = OpAccessChain %_ptr_Function_float %v3f %64
|
||||||
OpStore %66 %float_1
|
OpStore %65 %float_1
|
||||||
%67 = OpLoad %int %i
|
%66 = OpLoad %int %i
|
||||||
%68 = OpAccessChain %_ptr_Function_float %v4f %67
|
%67 = OpAccessChain %_ptr_Function_float %v4f %66
|
||||||
OpStore %68 %float_1
|
OpStore %67 %float_1
|
||||||
%69 = OpLoad %int %i
|
%68 = OpLoad %int %i
|
||||||
%70 = OpAccessChain %_ptr_Function_int %v2i %69
|
%69 = OpAccessChain %_ptr_Function_int %v2i %68
|
||||||
OpStore %70 %int_1
|
OpStore %69 %int_1
|
||||||
%72 = OpLoad %int %i
|
%71 = OpLoad %int %i
|
||||||
%73 = OpAccessChain %_ptr_Function_int %v3i %72
|
%72 = OpAccessChain %_ptr_Function_int %v3i %71
|
||||||
OpStore %73 %int_1
|
OpStore %72 %int_1
|
||||||
%74 = OpLoad %int %i
|
%73 = OpLoad %int %i
|
||||||
%75 = OpAccessChain %_ptr_Function_int %v4i %74
|
%74 = OpAccessChain %_ptr_Function_int %v4i %73
|
||||||
OpStore %75 %int_1
|
OpStore %74 %int_1
|
||||||
%76 = OpLoad %int %i
|
%75 = OpLoad %int %i
|
||||||
%78 = OpAccessChain %_ptr_Function_uint %v2u %76
|
%77 = OpAccessChain %_ptr_Function_uint %v2u %75
|
||||||
OpStore %78 %uint_1
|
OpStore %77 %uint_1
|
||||||
%80 = OpLoad %int %i
|
%79 = OpLoad %int %i
|
||||||
%81 = OpAccessChain %_ptr_Function_uint %v3u %80
|
%80 = OpAccessChain %_ptr_Function_uint %v3u %79
|
||||||
OpStore %81 %uint_1
|
OpStore %80 %uint_1
|
||||||
%82 = OpLoad %int %i
|
%81 = OpLoad %int %i
|
||||||
%83 = OpAccessChain %_ptr_Function_uint %v4u %82
|
%82 = OpAccessChain %_ptr_Function_uint %v4u %81
|
||||||
OpStore %83 %uint_1
|
OpStore %82 %uint_1
|
||||||
%84 = OpLoad %int %i
|
%83 = OpLoad %int %i
|
||||||
%86 = OpAccessChain %_ptr_Function_bool %v2b %84
|
%85 = OpAccessChain %_ptr_Function_bool %v2b %83
|
||||||
OpStore %86 %true
|
OpStore %85 %true
|
||||||
%88 = OpLoad %int %i
|
%87 = OpLoad %int %i
|
||||||
%89 = OpAccessChain %_ptr_Function_bool %v3b %88
|
%88 = OpAccessChain %_ptr_Function_bool %v3b %87
|
||||||
OpStore %89 %true
|
OpStore %88 %true
|
||||||
%90 = OpLoad %int %i
|
%89 = OpLoad %int %i
|
||||||
%91 = OpAccessChain %_ptr_Function_bool %v4b %90
|
%90 = OpAccessChain %_ptr_Function_bool %v4b %89
|
||||||
OpStore %91 %true
|
OpStore %90 %true
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 107
|
; Bound: 108
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%uint_0 = OpConstant %uint 0
|
%41 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
|
@ -125,17 +125,18 @@
|
||||||
%82 = OpTypeFunction %FragmentOutput %FragmentInput
|
%82 = OpTypeFunction %FragmentOutput %FragmentInput
|
||||||
%_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
|
%_ptr_Function_FragmentOutput = OpTypePointer Function %FragmentOutput
|
||||||
%89 = OpConstantNull %FragmentOutput
|
%89 = OpConstantNull %FragmentOutput
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
%float_0 = OpConstant %float 0
|
%float_0 = OpConstant %float 0
|
||||||
%92 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
%93 = OpConstantComposite %v4float %float_1 %float_0 %float_0 %float_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%95 = OpTypeFunction %void
|
%96 = OpTypeFunction %void
|
||||||
%getColor = OpFunction %v4float None %30
|
%getColor = OpFunction %v4float None %30
|
||||||
%fragment = OpFunctionParameter %FragmentInput
|
%fragment = OpFunctionParameter %FragmentInput
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
%color = OpVariable %_ptr_Function_v4float Function %13
|
%color = OpVariable %_ptr_Function_v4float Function %13
|
||||||
%39 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
|
%39 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
|
||||||
%40 = OpLoad %uint %39
|
%40 = OpLoad %uint %39
|
||||||
%42 = OpIEqual %bool %40 %uint_0
|
%42 = OpIEqual %bool %40 %41
|
||||||
OpSelectionMerge %44 None
|
OpSelectionMerge %44 None
|
||||||
OpBranchConditional %42 %45 %46
|
OpBranchConditional %42 %45 %46
|
||||||
%45 = OpLabel
|
%45 = OpLabel
|
||||||
|
@ -193,21 +194,21 @@
|
||||||
%fragment_0 = OpFunctionParameter %FragmentInput
|
%fragment_0 = OpFunctionParameter %FragmentInput
|
||||||
%86 = OpLabel
|
%86 = OpLabel
|
||||||
%output = OpVariable %_ptr_Function_FragmentOutput Function %89
|
%output = OpVariable %_ptr_Function_FragmentOutput Function %89
|
||||||
%90 = OpAccessChain %_ptr_Function_v4float %output %uint_0
|
%91 = OpAccessChain %_ptr_Function_v4float %output %uint_0
|
||||||
OpStore %90 %92
|
OpStore %91 %93
|
||||||
%94 = OpLoad %FragmentOutput %output
|
%95 = OpLoad %FragmentOutput %output
|
||||||
OpReturnValue %94
|
OpReturnValue %95
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %95
|
%main = OpFunction %void None %96
|
||||||
%98 = OpLabel
|
%99 = OpLabel
|
||||||
%100 = OpLoad %v4float %position_1
|
%101 = OpLoad %v4float %position_1
|
||||||
%101 = OpLoad %v4float %view_position_1
|
%102 = OpLoad %v4float %view_position_1
|
||||||
%102 = OpLoad %v4float %normal_1
|
%103 = OpLoad %v4float %normal_1
|
||||||
%103 = OpLoad %v2float %uv_1
|
%104 = OpLoad %v2float %uv_1
|
||||||
%104 = OpLoad %v4float %color_1
|
%105 = OpLoad %v4float %color_1
|
||||||
%105 = OpCompositeConstruct %FragmentInput %100 %101 %102 %103 %104
|
%106 = OpCompositeConstruct %FragmentInput %101 %102 %103 %104 %105
|
||||||
%99 = OpFunctionCall %FragmentOutput %main_inner %105
|
%100 = OpFunctionCall %FragmentOutput %main_inner %106
|
||||||
%106 = OpCompositeExtract %v4float %99 0
|
%107 = OpCompositeExtract %v4float %100 0
|
||||||
OpStore %color_2 %106
|
OpStore %color_2 %107
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%10 = OpConstantNull %bool
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%main = OpFunction %void None %1
|
%main = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
|
@ -21,7 +21,7 @@
|
||||||
OpBranch %8
|
OpBranch %8
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
OpSelectionMerge %11 None
|
OpSelectionMerge %11 None
|
||||||
OpBranchConditional %false %12 %13
|
OpBranchConditional %10 %12 %13
|
||||||
%12 = OpLabel
|
%12 = OpLabel
|
||||||
OpBranch %11
|
OpBranch %11
|
||||||
%13 = OpLabel
|
%13 = OpLabel
|
||||||
|
|
|
@ -44,12 +44,12 @@
|
||||||
%mask_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
|
%mask_2 = OpVariable %_ptr_Output__arr_uint_uint_1 Output %15
|
||||||
%FragIn = OpTypeStruct %float %uint
|
%FragIn = OpTypeStruct %float %uint
|
||||||
%16 = OpTypeFunction %FragIn %FragIn %float
|
%16 = OpTypeFunction %FragIn %FragIn %float
|
||||||
%uint_0 = OpConstant %uint 0
|
%23 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%29 = OpTypeFunction %void
|
%29 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%36 = OpConstantNull %int
|
||||||
%_ptr_Input_uint = OpTypePointer Input %uint
|
%_ptr_Input_uint = OpTypePointer Input %uint
|
||||||
%_ptr_Output_uint = OpTypePointer Output %uint
|
%_ptr_Output_uint = OpTypePointer Output %uint
|
||||||
%main_inner = OpFunction %FragIn None %16
|
%main_inner = OpFunction %FragIn None %16
|
||||||
|
@ -57,7 +57,7 @@
|
||||||
%b = OpFunctionParameter %float
|
%b = OpFunctionParameter %float
|
||||||
%21 = OpLabel
|
%21 = OpLabel
|
||||||
%22 = OpCompositeExtract %uint %in 1
|
%22 = OpCompositeExtract %uint %in 1
|
||||||
%24 = OpIEqual %bool %22 %uint_0
|
%24 = OpIEqual %bool %22 %23
|
||||||
OpSelectionMerge %26 None
|
OpSelectionMerge %26 None
|
||||||
OpBranchConditional %24 %27 %26
|
OpBranchConditional %24 %27 %26
|
||||||
%27 = OpLabel
|
%27 = OpLabel
|
||||||
|
@ -69,14 +69,14 @@
|
||||||
%main = OpFunction %void None %29
|
%main = OpFunction %void None %29
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
%34 = OpLoad %float %a_1
|
%34 = OpLoad %float %a_1
|
||||||
%38 = OpAccessChain %_ptr_Input_uint %mask_1 %int_0
|
%38 = OpAccessChain %_ptr_Input_uint %mask_1 %36
|
||||||
%39 = OpLoad %uint %38
|
%39 = OpLoad %uint %38
|
||||||
%40 = OpCompositeConstruct %FragIn %34 %39
|
%40 = OpCompositeConstruct %FragIn %34 %39
|
||||||
%41 = OpLoad %float %b_1
|
%41 = OpLoad %float %b_1
|
||||||
%33 = OpFunctionCall %FragIn %main_inner %40 %41
|
%33 = OpFunctionCall %FragIn %main_inner %40 %41
|
||||||
%42 = OpCompositeExtract %float %33 0
|
%42 = OpCompositeExtract %float %33 0
|
||||||
OpStore %a_2 %42
|
OpStore %a_2 %42
|
||||||
%44 = OpAccessChain %_ptr_Output_uint %mask_2 %int_0
|
%44 = OpAccessChain %_ptr_Output_uint %mask_2 %36
|
||||||
%45 = OpCompositeExtract %uint %33 1
|
%45 = OpCompositeExtract %uint %33 1
|
||||||
OpStore %44 %45
|
OpStore %44 %45
|
||||||
OpReturn
|
OpReturn
|
||||||
|
|
|
@ -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: 51
|
; Bound: 50
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -28,9 +28,9 @@
|
||||||
%7 = OpConstantNull %int
|
%7 = OpConstantNull %int
|
||||||
%value = OpVariable %_ptr_Output_int Output %7
|
%value = OpVariable %_ptr_Output_int Output %7
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%9 = OpConstantNull %bool
|
||||||
%_ptr_Private_bool = OpTypePointer Private %bool
|
%_ptr_Private_bool = OpTypePointer Private %bool
|
||||||
%tint_discard = OpVariable %_ptr_Private_bool Private %false
|
%tint_discard = OpVariable %_ptr_Private_bool Private %9
|
||||||
%12 = OpTypeFunction %int %int
|
%12 = OpTypeFunction %int %int
|
||||||
%int_10 = OpConstant %int 10
|
%int_10 = OpConstant %int 10
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
%21 = OpTypeFunction %void
|
%21 = OpTypeFunction %void
|
||||||
%25 = OpTypeFunction %int %v3int
|
%25 = OpTypeFunction %int %v3int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%int_0 = OpConstant %int 0
|
|
||||||
%f = OpFunction %int None %12
|
%f = OpFunction %int None %12
|
||||||
%x = OpFunctionParameter %int
|
%x = OpFunctionParameter %int
|
||||||
%15 = OpLabel
|
%15 = OpLabel
|
||||||
|
@ -75,23 +74,23 @@
|
||||||
%41 = OpFunctionCall %void %tint_discard_func
|
%41 = OpFunctionCall %void %tint_discard_func
|
||||||
OpReturnValue %7
|
OpReturnValue %7
|
||||||
%39 = OpLabel
|
%39 = OpLabel
|
||||||
%43 = OpIEqual %bool %36 %int_0
|
%42 = OpIEqual %bool %36 %7
|
||||||
OpSelectionMerge %44 None
|
OpSelectionMerge %43 None
|
||||||
OpBranchConditional %43 %45 %44
|
OpBranchConditional %42 %44 %43
|
||||||
%45 = OpLabel
|
|
||||||
OpBranch %33
|
|
||||||
%44 = OpLabel
|
%44 = OpLabel
|
||||||
|
OpBranch %33
|
||||||
|
%43 = OpLabel
|
||||||
OpBranch %34
|
OpBranch %34
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
OpBranch %32
|
OpBranch %32
|
||||||
%33 = OpLabel
|
%33 = OpLabel
|
||||||
%46 = OpLoad %int %y
|
%45 = OpLoad %int %y
|
||||||
OpReturnValue %46
|
OpReturnValue %45
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %21
|
%main = OpFunction %void None %21
|
||||||
%48 = OpLabel
|
%47 = OpLabel
|
||||||
%50 = OpLoad %v3int %x_1
|
%49 = OpLoad %v3int %x_1
|
||||||
%49 = OpFunctionCall %int %main_inner %50
|
%48 = OpFunctionCall %int %main_inner %49
|
||||||
OpStore %value %49
|
OpStore %value %48
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -12,9 +12,9 @@
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_0 = OpConstant %int 0
|
%7 = OpConstantNull %int
|
||||||
%f = OpFunction %void None %1
|
%f = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
%8 = OpSDiv %int %int_1 %int_0
|
%8 = OpSDiv %int %int_1 %7
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 20
|
; Bound: 19
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -18,21 +18,20 @@
|
||||||
%v = OpVariable %_ptr_Private_float Private %4
|
%v = OpVariable %_ptr_Private_float Private %4
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%5 = OpTypeFunction %void %_ptr_Private_float
|
%5 = OpTypeFunction %void %_ptr_Private_float
|
||||||
%float_0 = OpConstant %float 0
|
%11 = OpTypeFunction %void
|
||||||
%12 = OpTypeFunction %void
|
|
||||||
%x = OpFunction %void None %5
|
%x = OpFunction %void None %5
|
||||||
%p = OpFunctionParameter %_ptr_Private_float
|
%p = OpFunctionParameter %_ptr_Private_float
|
||||||
%9 = OpLabel
|
%9 = OpLabel
|
||||||
OpStore %p %float_0
|
OpStore %p %4
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%g = OpFunction %void None %12
|
%g = OpFunction %void None %11
|
||||||
%14 = OpLabel
|
%13 = OpLabel
|
||||||
%15 = OpFunctionCall %void %x %v
|
%14 = OpFunctionCall %void %x %v
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %12
|
%f = OpFunction %void None %11
|
||||||
%18 = OpLabel
|
%17 = OpLabel
|
||||||
%19 = OpFunctionCall %void %g
|
%18 = OpFunctionCall %void %g
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -106,7 +106,7 @@
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%63 = OpConstantNull %int
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_Private_float = OpTypePointer Private %float
|
%_ptr_Private_float = OpTypePointer Private %float
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
OpStore %p %56
|
OpStore %p %56
|
||||||
%59 = OpAccessChain %_ptr_Function_float %p %uint_0
|
%59 = OpAccessChain %_ptr_Function_float %p %uint_0
|
||||||
%60 = OpLoad %float %59
|
%60 = OpLoad %float %59
|
||||||
%65 = OpAccessChain %_ptr_Uniform_float %x_14 %uint_3 %int_0 %uint_0
|
%65 = OpAccessChain %_ptr_Uniform_float %x_14 %uint_3 %63 %uint_0
|
||||||
%66 = OpLoad %float %65
|
%66 = OpLoad %float %65
|
||||||
%69 = OpAccessChain %_ptr_Private_float %position %uint_1
|
%69 = OpAccessChain %_ptr_Private_float %position %uint_1
|
||||||
%70 = OpLoad %float %69
|
%70 = OpLoad %float %69
|
||||||
|
|
|
@ -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: 403
|
; Bound: 402
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%65 = OpExtInstImport "GLSL.std.450"
|
%65 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -217,12 +217,11 @@
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%175 = OpTypeFunction %void
|
%175 = OpTypeFunction %void
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%int_0 = OpConstant %int 0
|
%188 = OpConstantNull %int
|
||||||
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
||||||
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%204 = OpConstantNull %int
|
%204 = OpTypeFunction %void %v3uint
|
||||||
%205 = OpTypeFunction %void %v3uint
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%float_3 = OpConstant %float 3
|
%float_3 = OpConstant %float 3
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
|
@ -356,7 +355,7 @@
|
||||||
%157 = OpLabel
|
%157 = OpLabel
|
||||||
%position_0 = OpVariable %_ptr_Function_v3float Function %50
|
%position_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%159 = OpIMul %uint %uint_3 %vertexIndex
|
%159 = OpIMul %uint %uint_3 %vertexIndex
|
||||||
%160 = OpIAdd %uint %159 %uint_0
|
%160 = OpIAdd %uint %159 %141
|
||||||
%162 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %160
|
%162 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %160
|
||||||
%163 = OpLoad %float %162
|
%163 = OpLoad %float %162
|
||||||
%164 = OpIMul %uint %uint_3 %vertexIndex
|
%164 = OpIMul %uint %uint_3 %vertexIndex
|
||||||
|
@ -379,30 +378,30 @@
|
||||||
%b53 = OpVariable %_ptr_Function_uint Function %141
|
%b53 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%rwg = OpVariable %_ptr_Function_uint Function %141
|
%rwg = OpVariable %_ptr_Function_uint Function %141
|
||||||
%rb5 = OpVariable %_ptr_Function_float Function %75
|
%rb5 = OpVariable %_ptr_Function_float Function %75
|
||||||
%g55 = OpVariable %_ptr_Function_int Function %204
|
%g55 = OpVariable %_ptr_Function_int Function %188
|
||||||
%179 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%179 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%180 = OpLoad %uint %179
|
%180 = OpLoad %uint %179
|
||||||
OpStore %g42 %180
|
OpStore %g42 %180
|
||||||
%183 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_5
|
%183 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_5
|
||||||
%184 = OpLoad %uint %183
|
%184 = OpLoad %uint %183
|
||||||
OpStore %kj6 %184
|
OpStore %kj6 %184
|
||||||
%190 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %int_0
|
%190 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %188
|
||||||
%186 = OpAtomicLoad %uint %190 %uint_1 %uint_0
|
%186 = OpAtomicLoad %uint %190 %uint_1 %uint_0
|
||||||
OpStore %b53 %186
|
OpStore %b53 %186
|
||||||
%192 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %int_0
|
%192 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %188
|
||||||
%193 = OpLoad %uint %192
|
%193 = OpLoad %uint %192
|
||||||
OpStore %rwg %193
|
OpStore %rwg %193
|
||||||
%195 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %int_0
|
%195 = OpAccessChain %_ptr_StorageBuffer_float %positions %uint_0 %188
|
||||||
%196 = OpLoad %float %195
|
%196 = OpLoad %float %195
|
||||||
OpStore %rb5 %196
|
OpStore %rb5 %196
|
||||||
%201 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %int_0
|
%201 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %188
|
||||||
%198 = OpAtomicLoad %int %201 %uint_1 %uint_0
|
%198 = OpAtomicLoad %int %201 %uint_1 %uint_0
|
||||||
OpStore %g55 %198
|
OpStore %g55 %198
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_count_inner = OpFunction %void None %205
|
%main_count_inner = OpFunction %void None %204
|
||||||
%GlobalInvocationID = OpFunctionParameter %v3uint
|
%GlobalInvocationID = OpFunctionParameter %v3uint
|
||||||
%208 = OpLabel
|
%207 = OpLabel
|
||||||
%triangleIndex = OpVariable %_ptr_Function_uint Function %141
|
%triangleIndex = OpVariable %_ptr_Function_uint Function %141
|
||||||
%i0 = OpVariable %_ptr_Function_uint Function %141
|
%i0 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%i1 = OpVariable %_ptr_Function_uint Function %141
|
%i1 = OpVariable %_ptr_Function_uint Function %141
|
||||||
|
@ -410,160 +409,160 @@
|
||||||
%p0 = OpVariable %_ptr_Function_v3float Function %50
|
%p0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%p1 = OpVariable %_ptr_Function_v3float Function %50
|
%p1 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%p2 = OpVariable %_ptr_Function_v3float Function %50
|
%p2 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%253 = OpVariable %_ptr_Function_v3float Function %50
|
%252 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%center = OpVariable %_ptr_Function_v3float Function %50
|
%center = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%voxelPos_0 = OpVariable %_ptr_Function_v3float Function %50
|
%voxelPos_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%voxelIndex = OpVariable %_ptr_Function_uint Function %141
|
%voxelIndex = OpVariable %_ptr_Function_uint Function %141
|
||||||
%acefg = OpVariable %_ptr_Function_uint Function %141
|
%acefg = OpVariable %_ptr_Function_uint Function %141
|
||||||
%209 = OpCompositeExtract %uint %GlobalInvocationID 0
|
%208 = OpCompositeExtract %uint %GlobalInvocationID 0
|
||||||
OpStore %triangleIndex %209
|
OpStore %triangleIndex %208
|
||||||
%211 = OpLoad %uint %triangleIndex
|
%210 = OpLoad %uint %triangleIndex
|
||||||
%212 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%211 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%213 = OpLoad %uint %212
|
%212 = OpLoad %uint %211
|
||||||
%214 = OpUGreaterThanEqual %bool %211 %213
|
%213 = OpUGreaterThanEqual %bool %210 %212
|
||||||
OpSelectionMerge %216 None
|
OpSelectionMerge %215 None
|
||||||
OpBranchConditional %214 %217 %216
|
OpBranchConditional %213 %216 %215
|
||||||
%217 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
%216 = OpLabel
|
%216 = OpLabel
|
||||||
%218 = OpFunctionCall %void %doIgnore
|
OpReturn
|
||||||
%219 = OpLoad %uint %triangleIndex
|
%215 = OpLabel
|
||||||
%220 = OpIMul %uint %uint_3 %219
|
%217 = OpFunctionCall %void %doIgnore
|
||||||
%221 = OpIAdd %uint %220 %uint_0
|
%218 = OpLoad %uint %triangleIndex
|
||||||
%222 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %221
|
%219 = OpIMul %uint %uint_3 %218
|
||||||
%223 = OpLoad %uint %222
|
%220 = OpIAdd %uint %219 %141
|
||||||
OpStore %i0 %223
|
%221 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %220
|
||||||
%225 = OpLoad %uint %triangleIndex
|
%222 = OpLoad %uint %221
|
||||||
%226 = OpIMul %uint %uint_3 %225
|
OpStore %i0 %222
|
||||||
%227 = OpIAdd %uint %226 %uint_1
|
%224 = OpLoad %uint %triangleIndex
|
||||||
%228 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %227
|
%225 = OpIMul %uint %uint_3 %224
|
||||||
%229 = OpLoad %uint %228
|
%226 = OpIAdd %uint %225 %uint_1
|
||||||
OpStore %i1 %229
|
%227 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %226
|
||||||
%231 = OpLoad %uint %triangleIndex
|
%228 = OpLoad %uint %227
|
||||||
%232 = OpIMul %uint %uint_3 %231
|
OpStore %i1 %228
|
||||||
%233 = OpIAdd %uint %232 %uint_2
|
%230 = OpLoad %uint %triangleIndex
|
||||||
%234 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %233
|
%231 = OpIMul %uint %uint_3 %230
|
||||||
%235 = OpLoad %uint %234
|
%232 = OpIAdd %uint %231 %uint_2
|
||||||
OpStore %i2 %235
|
%233 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %232
|
||||||
%238 = OpLoad %uint %i0
|
%234 = OpLoad %uint %233
|
||||||
%237 = OpFunctionCall %v3float %loadPosition %238
|
OpStore %i2 %234
|
||||||
OpStore %p0 %237
|
%237 = OpLoad %uint %i0
|
||||||
%241 = OpLoad %uint %i1
|
%236 = OpFunctionCall %v3float %loadPosition %237
|
||||||
%240 = OpFunctionCall %v3float %loadPosition %241
|
OpStore %p0 %236
|
||||||
OpStore %p1 %240
|
%240 = OpLoad %uint %i1
|
||||||
%244 = OpLoad %uint %i2
|
%239 = OpFunctionCall %v3float %loadPosition %240
|
||||||
%243 = OpFunctionCall %v3float %loadPosition %244
|
OpStore %p1 %239
|
||||||
OpStore %p2 %243
|
%243 = OpLoad %uint %i2
|
||||||
%246 = OpLoad %v3float %p0
|
%242 = OpFunctionCall %v3float %loadPosition %243
|
||||||
%247 = OpLoad %v3float %p1
|
OpStore %p2 %242
|
||||||
%248 = OpFAdd %v3float %246 %247
|
%245 = OpLoad %v3float %p0
|
||||||
%249 = OpLoad %v3float %p2
|
%246 = OpLoad %v3float %p1
|
||||||
%250 = OpFAdd %v3float %248 %249
|
%247 = OpFAdd %v3float %245 %246
|
||||||
%254 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
%248 = OpLoad %v3float %p2
|
||||||
%252 = OpFDiv %v3float %250 %254
|
%249 = OpFAdd %v3float %247 %248
|
||||||
OpStore %center %252
|
%253 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
||||||
%257 = OpLoad %v3float %center
|
%251 = OpFDiv %v3float %249 %253
|
||||||
%256 = OpFunctionCall %v3float %toVoxelPos %257
|
OpStore %center %251
|
||||||
OpStore %voxelPos_0 %256
|
%256 = OpLoad %v3float %center
|
||||||
%260 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%255 = OpFunctionCall %v3float %toVoxelPos %256
|
||||||
%261 = OpLoad %uint %260
|
OpStore %voxelPos_0 %255
|
||||||
%262 = OpLoad %v3float %voxelPos_0
|
%259 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%259 = OpFunctionCall %uint %toIndex1D %261 %262
|
%260 = OpLoad %uint %259
|
||||||
OpStore %voxelIndex %259
|
%261 = OpLoad %v3float %voxelPos_0
|
||||||
%266 = OpLoad %uint %voxelIndex
|
%258 = OpFunctionCall %uint %toIndex1D %260 %261
|
||||||
%267 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %266
|
OpStore %voxelIndex %258
|
||||||
%264 = OpAtomicIAdd %uint %267 %uint_1 %uint_0 %uint_1
|
%265 = OpLoad %uint %voxelIndex
|
||||||
OpStore %acefg %264
|
%266 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %265
|
||||||
%269 = OpLoad %uint %triangleIndex
|
%263 = OpAtomicIAdd %uint %266 %uint_1 %uint_0 %uint_1
|
||||||
%270 = OpIEqual %bool %269 %uint_0
|
OpStore %acefg %263
|
||||||
OpSelectionMerge %271 None
|
%268 = OpLoad %uint %triangleIndex
|
||||||
OpBranchConditional %270 %272 %271
|
%269 = OpIEqual %bool %268 %141
|
||||||
%272 = OpLabel
|
OpSelectionMerge %270 None
|
||||||
%273 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_4
|
OpBranchConditional %269 %271 %270
|
||||||
%274 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
|
||||||
%275 = OpLoad %uint %274
|
|
||||||
OpStore %273 %275
|
|
||||||
%277 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_8
|
|
||||||
%278 = OpAccessChain %_ptr_Function_float %center %uint_0
|
|
||||||
%279 = OpLoad %float %278
|
|
||||||
OpStore %277 %279
|
|
||||||
%281 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_9
|
|
||||||
%282 = OpAccessChain %_ptr_Function_float %center %uint_1
|
|
||||||
%283 = OpLoad %float %282
|
|
||||||
OpStore %281 %283
|
|
||||||
%285 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_10
|
|
||||||
%286 = OpAccessChain %_ptr_Function_float %center %uint_2
|
|
||||||
%287 = OpLoad %float %286
|
|
||||||
OpStore %285 %287
|
|
||||||
OpBranch %271
|
|
||||||
%271 = OpLabel
|
%271 = OpLabel
|
||||||
|
%272 = OpAccessChain %_ptr_StorageBuffer_uint %dbg %uint_4
|
||||||
|
%273 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
|
%274 = OpLoad %uint %273
|
||||||
|
OpStore %272 %274
|
||||||
|
%276 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_8
|
||||||
|
%277 = OpAccessChain %_ptr_Function_float %center %uint_0
|
||||||
|
%278 = OpLoad %float %277
|
||||||
|
OpStore %276 %278
|
||||||
|
%280 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_9
|
||||||
|
%281 = OpAccessChain %_ptr_Function_float %center %uint_1
|
||||||
|
%282 = OpLoad %float %281
|
||||||
|
OpStore %280 %282
|
||||||
|
%284 = OpAccessChain %_ptr_StorageBuffer_float %dbg %uint_10
|
||||||
|
%285 = OpAccessChain %_ptr_Function_float %center %uint_2
|
||||||
|
%286 = OpLoad %float %285
|
||||||
|
OpStore %284 %286
|
||||||
|
OpBranch %270
|
||||||
|
%270 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_count = OpFunction %void None %175
|
%main_count = OpFunction %void None %175
|
||||||
%289 = OpLabel
|
%288 = OpLabel
|
||||||
%291 = OpLoad %v3uint %GlobalInvocationID_1
|
%290 = OpLoad %v3uint %GlobalInvocationID_1
|
||||||
%290 = OpFunctionCall %void %main_count_inner %291
|
%289 = OpFunctionCall %void %main_count_inner %290
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_create_lut_inner = OpFunction %void None %205
|
%main_create_lut_inner = OpFunction %void None %204
|
||||||
%GlobalInvocationID_0 = OpFunctionParameter %v3uint
|
%GlobalInvocationID_0 = OpFunctionParameter %v3uint
|
||||||
%294 = OpLabel
|
%293 = OpLabel
|
||||||
%voxelIndex_0 = OpVariable %_ptr_Function_uint Function %141
|
%voxelIndex_0 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%maxVoxels = OpVariable %_ptr_Function_uint Function %141
|
%maxVoxels = OpVariable %_ptr_Function_uint Function %141
|
||||||
%numTriangles = OpVariable %_ptr_Function_uint Function %141
|
%numTriangles = OpVariable %_ptr_Function_uint Function %141
|
||||||
%offset = OpVariable %_ptr_Function_int Function %204
|
%offset = OpVariable %_ptr_Function_int Function %188
|
||||||
%295 = OpCompositeExtract %uint %GlobalInvocationID_0 0
|
%294 = OpCompositeExtract %uint %GlobalInvocationID_0 0
|
||||||
OpStore %voxelIndex_0 %295
|
OpStore %voxelIndex_0 %294
|
||||||
%297 = OpFunctionCall %void %doIgnore
|
%296 = OpFunctionCall %void %doIgnore
|
||||||
%298 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%297 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%299 = OpLoad %uint %298
|
%298 = OpLoad %uint %297
|
||||||
%300 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%299 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%301 = OpLoad %uint %300
|
%300 = OpLoad %uint %299
|
||||||
%302 = OpIMul %uint %299 %301
|
%301 = OpIMul %uint %298 %300
|
||||||
%303 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%302 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%304 = OpLoad %uint %303
|
%303 = OpLoad %uint %302
|
||||||
%305 = OpIMul %uint %302 %304
|
%304 = OpIMul %uint %301 %303
|
||||||
OpStore %maxVoxels %305
|
OpStore %maxVoxels %304
|
||||||
%307 = OpLoad %uint %voxelIndex_0
|
%306 = OpLoad %uint %voxelIndex_0
|
||||||
%308 = OpLoad %uint %maxVoxels
|
%307 = OpLoad %uint %maxVoxels
|
||||||
%309 = OpUGreaterThanEqual %bool %307 %308
|
%308 = OpUGreaterThanEqual %bool %306 %307
|
||||||
OpSelectionMerge %310 None
|
OpSelectionMerge %309 None
|
||||||
OpBranchConditional %309 %311 %310
|
OpBranchConditional %308 %310 %309
|
||||||
%311 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
%310 = OpLabel
|
%310 = OpLabel
|
||||||
%314 = OpLoad %uint %voxelIndex_0
|
OpReturn
|
||||||
%315 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %314
|
%309 = OpLabel
|
||||||
%312 = OpAtomicLoad %uint %315 %uint_1 %uint_0
|
%313 = OpLoad %uint %voxelIndex_0
|
||||||
OpStore %numTriangles %312
|
%314 = OpAccessChain %_ptr_StorageBuffer_uint_0 %counters %uint_0 %313
|
||||||
|
%311 = OpAtomicLoad %uint %314 %uint_1 %uint_0
|
||||||
|
OpStore %numTriangles %311
|
||||||
OpStore %offset %int_n1
|
OpStore %offset %int_n1
|
||||||
%319 = OpLoad %uint %numTriangles
|
%318 = OpLoad %uint %numTriangles
|
||||||
%320 = OpUGreaterThan %bool %319 %uint_0
|
%319 = OpUGreaterThan %bool %318 %141
|
||||||
OpSelectionMerge %321 None
|
OpSelectionMerge %320 None
|
||||||
OpBranchConditional %320 %322 %321
|
OpBranchConditional %319 %321 %320
|
||||||
%322 = OpLabel
|
|
||||||
%325 = OpAccessChain %_ptr_StorageBuffer_uint_0 %dbg %uint_0
|
|
||||||
%326 = OpLoad %uint %numTriangles
|
|
||||||
%323 = OpAtomicIAdd %uint %325 %uint_1 %uint_0 %326
|
|
||||||
%327 = OpBitcast %int %323
|
|
||||||
OpStore %offset %327
|
|
||||||
OpBranch %321
|
|
||||||
%321 = OpLabel
|
%321 = OpLabel
|
||||||
%330 = OpLoad %uint %voxelIndex_0
|
%324 = OpAccessChain %_ptr_StorageBuffer_uint_0 %dbg %uint_0
|
||||||
%331 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %330
|
%325 = OpLoad %uint %numTriangles
|
||||||
%332 = OpLoad %int %offset
|
%322 = OpAtomicIAdd %uint %324 %uint_1 %uint_0 %325
|
||||||
OpAtomicStore %331 %uint_1 %uint_0 %332
|
%326 = OpBitcast %int %322
|
||||||
|
OpStore %offset %326
|
||||||
|
OpBranch %320
|
||||||
|
%320 = OpLabel
|
||||||
|
%329 = OpLoad %uint %voxelIndex_0
|
||||||
|
%330 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %329
|
||||||
|
%331 = OpLoad %int %offset
|
||||||
|
OpAtomicStore %330 %uint_1 %uint_0 %331
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_create_lut = OpFunction %void None %175
|
%main_create_lut = OpFunction %void None %175
|
||||||
%334 = OpLabel
|
%333 = OpLabel
|
||||||
%336 = OpLoad %v3uint %GlobalInvocationID_2
|
%335 = OpLoad %v3uint %GlobalInvocationID_2
|
||||||
%335 = OpFunctionCall %void %main_create_lut_inner %336
|
%334 = OpFunctionCall %void %main_create_lut_inner %335
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_sort_triangles_inner = OpFunction %void None %205
|
%main_sort_triangles_inner = OpFunction %void None %204
|
||||||
%GlobalInvocationID_4 = OpFunctionParameter %v3uint
|
%GlobalInvocationID_4 = OpFunctionParameter %v3uint
|
||||||
%339 = OpLabel
|
%338 = OpLabel
|
||||||
%triangleIndex_0 = OpVariable %_ptr_Function_uint Function %141
|
%triangleIndex_0 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%i0_0 = OpVariable %_ptr_Function_uint Function %141
|
%i0_0 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%i1_0 = OpVariable %_ptr_Function_uint Function %141
|
%i1_0 = OpVariable %_ptr_Function_uint Function %141
|
||||||
|
@ -571,75 +570,75 @@
|
||||||
%p0_0 = OpVariable %_ptr_Function_v3float Function %50
|
%p0_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%p1_0 = OpVariable %_ptr_Function_v3float Function %50
|
%p1_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%p2_0 = OpVariable %_ptr_Function_v3float Function %50
|
%p2_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%382 = OpVariable %_ptr_Function_v3float Function %50
|
%381 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%center_0 = OpVariable %_ptr_Function_v3float Function %50
|
%center_0 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%voxelPos_1 = OpVariable %_ptr_Function_v3float Function %50
|
%voxelPos_1 = OpVariable %_ptr_Function_v3float Function %50
|
||||||
%voxelIndex_1 = OpVariable %_ptr_Function_uint Function %141
|
%voxelIndex_1 = OpVariable %_ptr_Function_uint Function %141
|
||||||
%triangleOffset = OpVariable %_ptr_Function_int Function %204
|
%triangleOffset = OpVariable %_ptr_Function_int Function %188
|
||||||
%340 = OpCompositeExtract %uint %GlobalInvocationID_4 0
|
%339 = OpCompositeExtract %uint %GlobalInvocationID_4 0
|
||||||
OpStore %triangleIndex_0 %340
|
OpStore %triangleIndex_0 %339
|
||||||
%342 = OpFunctionCall %void %doIgnore
|
%341 = OpFunctionCall %void %doIgnore
|
||||||
%343 = OpLoad %uint %triangleIndex_0
|
%342 = OpLoad %uint %triangleIndex_0
|
||||||
%344 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%343 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%345 = OpLoad %uint %344
|
%344 = OpLoad %uint %343
|
||||||
%346 = OpUGreaterThanEqual %bool %343 %345
|
%345 = OpUGreaterThanEqual %bool %342 %344
|
||||||
OpSelectionMerge %347 None
|
OpSelectionMerge %346 None
|
||||||
OpBranchConditional %346 %348 %347
|
OpBranchConditional %345 %347 %346
|
||||||
%348 = OpLabel
|
|
||||||
OpReturn
|
|
||||||
%347 = OpLabel
|
%347 = OpLabel
|
||||||
%349 = OpLoad %uint %triangleIndex_0
|
OpReturn
|
||||||
%350 = OpIMul %uint %uint_3 %349
|
%346 = OpLabel
|
||||||
%351 = OpIAdd %uint %350 %uint_0
|
%348 = OpLoad %uint %triangleIndex_0
|
||||||
%352 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %351
|
%349 = OpIMul %uint %uint_3 %348
|
||||||
%353 = OpLoad %uint %352
|
%350 = OpIAdd %uint %349 %141
|
||||||
OpStore %i0_0 %353
|
%351 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %350
|
||||||
%355 = OpLoad %uint %triangleIndex_0
|
%352 = OpLoad %uint %351
|
||||||
%356 = OpIMul %uint %uint_3 %355
|
OpStore %i0_0 %352
|
||||||
%357 = OpIAdd %uint %356 %uint_1
|
%354 = OpLoad %uint %triangleIndex_0
|
||||||
%358 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %357
|
%355 = OpIMul %uint %uint_3 %354
|
||||||
%359 = OpLoad %uint %358
|
%356 = OpIAdd %uint %355 %uint_1
|
||||||
OpStore %i1_0 %359
|
%357 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %356
|
||||||
%361 = OpLoad %uint %triangleIndex_0
|
%358 = OpLoad %uint %357
|
||||||
%362 = OpIMul %uint %uint_3 %361
|
OpStore %i1_0 %358
|
||||||
%363 = OpIAdd %uint %362 %uint_2
|
%360 = OpLoad %uint %triangleIndex_0
|
||||||
%364 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %363
|
%361 = OpIMul %uint %uint_3 %360
|
||||||
%365 = OpLoad %uint %364
|
%362 = OpIAdd %uint %361 %uint_2
|
||||||
OpStore %i2_0 %365
|
%363 = OpAccessChain %_ptr_StorageBuffer_uint %indices %uint_0 %362
|
||||||
%368 = OpLoad %uint %i0_0
|
%364 = OpLoad %uint %363
|
||||||
%367 = OpFunctionCall %v3float %loadPosition %368
|
OpStore %i2_0 %364
|
||||||
OpStore %p0_0 %367
|
%367 = OpLoad %uint %i0_0
|
||||||
%371 = OpLoad %uint %i1_0
|
%366 = OpFunctionCall %v3float %loadPosition %367
|
||||||
%370 = OpFunctionCall %v3float %loadPosition %371
|
OpStore %p0_0 %366
|
||||||
OpStore %p1_0 %370
|
%370 = OpLoad %uint %i1_0
|
||||||
%374 = OpLoad %uint %i2_0
|
%369 = OpFunctionCall %v3float %loadPosition %370
|
||||||
%373 = OpFunctionCall %v3float %loadPosition %374
|
OpStore %p1_0 %369
|
||||||
OpStore %p2_0 %373
|
%373 = OpLoad %uint %i2_0
|
||||||
%376 = OpLoad %v3float %p0_0
|
%372 = OpFunctionCall %v3float %loadPosition %373
|
||||||
%377 = OpLoad %v3float %p1_0
|
OpStore %p2_0 %372
|
||||||
%378 = OpFAdd %v3float %376 %377
|
%375 = OpLoad %v3float %p0_0
|
||||||
%379 = OpLoad %v3float %p2_0
|
%376 = OpLoad %v3float %p1_0
|
||||||
%380 = OpFAdd %v3float %378 %379
|
%377 = OpFAdd %v3float %375 %376
|
||||||
%383 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
%378 = OpLoad %v3float %p2_0
|
||||||
%381 = OpFDiv %v3float %380 %383
|
%379 = OpFAdd %v3float %377 %378
|
||||||
OpStore %center_0 %381
|
%382 = OpCompositeConstruct %v3float %float_3 %float_3 %float_3
|
||||||
%386 = OpLoad %v3float %center_0
|
%380 = OpFDiv %v3float %379 %382
|
||||||
%385 = OpFunctionCall %v3float %toVoxelPos %386
|
OpStore %center_0 %380
|
||||||
OpStore %voxelPos_1 %385
|
%385 = OpLoad %v3float %center_0
|
||||||
%389 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%384 = OpFunctionCall %v3float %toVoxelPos %385
|
||||||
%390 = OpLoad %uint %389
|
OpStore %voxelPos_1 %384
|
||||||
%391 = OpLoad %v3float %voxelPos_1
|
%388 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%388 = OpFunctionCall %uint %toIndex1D %390 %391
|
%389 = OpLoad %uint %388
|
||||||
OpStore %voxelIndex_1 %388
|
%390 = OpLoad %v3float %voxelPos_1
|
||||||
%395 = OpLoad %uint %voxelIndex_1
|
%387 = OpFunctionCall %uint %toIndex1D %389 %390
|
||||||
%396 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %395
|
OpStore %voxelIndex_1 %387
|
||||||
%393 = OpAtomicIAdd %int %396 %uint_1 %uint_0 %int_1
|
%394 = OpLoad %uint %voxelIndex_1
|
||||||
OpStore %triangleOffset %393
|
%395 = OpAccessChain %_ptr_StorageBuffer_int %LUT %uint_0 %394
|
||||||
|
%392 = OpAtomicIAdd %int %395 %uint_1 %uint_0 %int_1
|
||||||
|
OpStore %triangleOffset %392
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_sort_triangles = OpFunction %void None %175
|
%main_sort_triangles = OpFunction %void None %175
|
||||||
%400 = OpLabel
|
%399 = OpLabel
|
||||||
%402 = OpLoad %v3uint %GlobalInvocationID_3
|
%401 = OpLoad %v3uint %GlobalInvocationID_3
|
||||||
%401 = OpFunctionCall %void %main_sort_triangles_inner %402
|
%400 = OpFunctionCall %void %main_sort_triangles_inner %401
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -13,10 +13,10 @@ bug/tint/1118.wgsl:46:19 note: reading from module-scope private variable 'fClip
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 198
|
; Bound: 195
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%73 = OpExtInstImport "GLSL.std.450"
|
%71 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint Fragment %main "main" %fClipDistance3_param_1 %fClipDistance4_param_1 %glFragColor_1_1
|
OpEntryPoint Fragment %main "main" %fClipDistance3_param_1 %fClipDistance4_param_1 %glFragColor_1_1
|
||||||
OpExecutionMode %main OriginUpperLeft
|
OpExecutionMode %main OriginUpperLeft
|
||||||
|
@ -112,9 +112,9 @@ bug/tint/1118.wgsl:46:19 note: reading from module-scope private variable 'fClip
|
||||||
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
%_ptr_Private_v4float = OpTypePointer Private %v4float
|
||||||
%glFragColor = OpVariable %_ptr_Private_v4float Private %8
|
%glFragColor = OpVariable %_ptr_Private_v4float Private %8
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%26 = OpConstantNull %bool
|
||||||
%_ptr_Private_bool = OpTypePointer Private %bool
|
%_ptr_Private_bool = OpTypePointer Private %bool
|
||||||
%tint_discard = OpVariable %_ptr_Private_bool Private %false
|
%tint_discard = OpVariable %_ptr_Private_bool Private %26
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%29 = OpTypeFunction %void
|
%29 = OpTypeFunction %void
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
|
@ -124,25 +124,22 @@ bug/tint/1118.wgsl:46:19 note: reading from module-scope private variable 'fClip
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%45 = OpConstantNull %v2float
|
%45 = OpConstantNull %v2float
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%71 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%80 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
%78 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%96 = OpConstantComposite %v2float %float_0 %float_0
|
%110 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
||||||
%97 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
%float_0 = OpConstant %float 0
|
||||||
%114 = OpConstantComposite %v3float %float_1 %float_1 %float_1
|
%112 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
|
||||||
%115 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_1
|
|
||||||
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%main_out = OpTypeStruct %v4float
|
%main_out = OpTypeStruct %v4float
|
||||||
%178 = OpTypeFunction %main_out %float %float
|
%175 = OpTypeFunction %main_out %float %float
|
||||||
%189 = OpConstantNull %main_out
|
%186 = OpConstantNull %main_out
|
||||||
%main_1 = OpFunction %void None %29
|
%main_1 = OpFunction %void None %29
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
%viewDirectionW = OpVariable %_ptr_Function_v3float Function %35
|
%viewDirectionW = OpVariable %_ptr_Function_v3float Function %35
|
||||||
|
@ -162,166 +159,166 @@ bug/tint/1118.wgsl:46:19 note: reading from module-scope private variable 'fClip
|
||||||
%finalSpecular = OpVariable %_ptr_Function_v3float Function %35
|
%finalSpecular = OpVariable %_ptr_Function_v3float Function %35
|
||||||
%color = OpVariable %_ptr_Function_v4float Function %8
|
%color = OpVariable %_ptr_Function_v4float Function %8
|
||||||
%56 = OpLoad %float %fClipDistance3
|
%56 = OpLoad %float %fClipDistance3
|
||||||
%58 = OpFOrdGreaterThan %bool %56 %float_0
|
%57 = OpFOrdGreaterThan %bool %56 %11
|
||||||
OpSelectionMerge %59 None
|
OpSelectionMerge %58 None
|
||||||
OpBranchConditional %58 %60 %59
|
OpBranchConditional %57 %59 %58
|
||||||
%60 = OpLabel
|
|
||||||
OpStore %tint_discard %true
|
|
||||||
OpReturn
|
|
||||||
%59 = OpLabel
|
%59 = OpLabel
|
||||||
%62 = OpLoad %float %fClipDistance4
|
|
||||||
%63 = OpFOrdGreaterThan %bool %62 %float_0
|
|
||||||
OpSelectionMerge %64 None
|
|
||||||
OpBranchConditional %63 %65 %64
|
|
||||||
%65 = OpLabel
|
|
||||||
OpStore %tint_discard %true
|
OpStore %tint_discard %true
|
||||||
OpReturn
|
OpReturn
|
||||||
|
%58 = OpLabel
|
||||||
|
%61 = OpLoad %float %fClipDistance4
|
||||||
|
%62 = OpFOrdGreaterThan %bool %61 %11
|
||||||
|
OpSelectionMerge %63 None
|
||||||
|
OpBranchConditional %62 %64 %63
|
||||||
%64 = OpLabel
|
%64 = OpLabel
|
||||||
%69 = OpAccessChain %_ptr_Uniform_v4float %x_29 %uint_0
|
OpStore %tint_discard %true
|
||||||
%70 = OpLoad %v4float %69
|
OpReturn
|
||||||
%74 = OpCompositeExtract %float %70 0
|
%63 = OpLabel
|
||||||
%75 = OpCompositeExtract %float %70 1
|
%68 = OpAccessChain %_ptr_Uniform_v4float %x_29 %uint_0
|
||||||
%76 = OpCompositeExtract %float %70 2
|
%69 = OpLoad %v4float %68
|
||||||
%77 = OpCompositeConstruct %v3float %74 %75 %76
|
%72 = OpCompositeExtract %float %69 0
|
||||||
%78 = OpFSub %v3float %77 %71
|
%73 = OpCompositeExtract %float %69 1
|
||||||
%72 = OpExtInst %v3float %73 Normalize %78
|
%74 = OpCompositeExtract %float %69 2
|
||||||
OpStore %viewDirectionW %72
|
%75 = OpCompositeConstruct %v3float %72 %73 %74
|
||||||
OpStore %baseColor %80
|
%76 = OpFSub %v3float %75 %35
|
||||||
%81 = OpAccessChain %_ptr_Uniform_v4float %x_49 %uint_0
|
%70 = OpExtInst %v3float %71 Normalize %76
|
||||||
%82 = OpLoad %v4float %81
|
OpStore %viewDirectionW %70
|
||||||
%83 = OpCompositeExtract %float %82 0
|
OpStore %baseColor %78
|
||||||
%84 = OpCompositeExtract %float %82 1
|
%79 = OpAccessChain %_ptr_Uniform_v4float %x_49 %uint_0
|
||||||
%85 = OpCompositeExtract %float %82 2
|
%80 = OpLoad %v4float %79
|
||||||
%86 = OpCompositeConstruct %v3float %83 %84 %85
|
%81 = OpCompositeExtract %float %80 0
|
||||||
OpStore %diffuseColor %86
|
%82 = OpCompositeExtract %float %80 1
|
||||||
%89 = OpAccessChain %_ptr_Uniform_float %x_49 %uint_0 %uint_3
|
%83 = OpCompositeExtract %float %80 2
|
||||||
%90 = OpLoad %float %89
|
%84 = OpCompositeConstruct %v3float %81 %82 %83
|
||||||
OpStore %alpha %90
|
OpStore %diffuseColor %84
|
||||||
%94 = OpDPdx %v3float %71
|
%87 = OpAccessChain %_ptr_Uniform_float %x_49 %uint_0 %uint_3
|
||||||
%95 = OpDPdy %v3float %71
|
%88 = OpLoad %float %87
|
||||||
%93 = OpExtInst %v3float %73 Cross %94 %95
|
OpStore %alpha %88
|
||||||
%92 = OpFNegate %v3float %93
|
%92 = OpDPdx %v3float %35
|
||||||
%91 = OpExtInst %v3float %73 Normalize %92
|
%93 = OpDPdy %v3float %35
|
||||||
OpStore %normalW %91
|
%91 = OpExtInst %v3float %71 Cross %92 %93
|
||||||
OpStore %uvOffset %96
|
%90 = OpFNegate %v3float %91
|
||||||
%98 = OpLoad %v4float %baseColor
|
%89 = OpExtInst %v3float %71 Normalize %90
|
||||||
%99 = OpCompositeExtract %float %98 0
|
OpStore %normalW %89
|
||||||
%100 = OpCompositeExtract %float %98 1
|
OpStore %uvOffset %45
|
||||||
%101 = OpCompositeExtract %float %98 2
|
%94 = OpLoad %v4float %baseColor
|
||||||
|
%95 = OpCompositeExtract %float %94 0
|
||||||
|
%96 = OpCompositeExtract %float %94 1
|
||||||
|
%97 = OpCompositeExtract %float %94 2
|
||||||
|
%98 = OpCompositeConstruct %v3float %95 %96 %97
|
||||||
|
%99 = OpCompositeExtract %float %8 0
|
||||||
|
%100 = OpCompositeExtract %float %8 1
|
||||||
|
%101 = OpCompositeExtract %float %8 2
|
||||||
%102 = OpCompositeConstruct %v3float %99 %100 %101
|
%102 = OpCompositeConstruct %v3float %99 %100 %101
|
||||||
%103 = OpCompositeExtract %float %97 0
|
%103 = OpFMul %v3float %98 %102
|
||||||
%104 = OpCompositeExtract %float %97 1
|
%104 = OpLoad %v4float %baseColor
|
||||||
%105 = OpCompositeExtract %float %97 2
|
%105 = OpCompositeExtract %float %103 0
|
||||||
%106 = OpCompositeConstruct %v3float %103 %104 %105
|
%106 = OpCompositeExtract %float %103 1
|
||||||
%107 = OpFMul %v3float %102 %106
|
%107 = OpCompositeExtract %float %103 2
|
||||||
%108 = OpLoad %v4float %baseColor
|
%108 = OpCompositeExtract %float %104 3
|
||||||
%109 = OpCompositeExtract %float %107 0
|
%109 = OpCompositeConstruct %v4float %105 %106 %107 %108
|
||||||
%110 = OpCompositeExtract %float %107 1
|
OpStore %baseColor %109
|
||||||
%111 = OpCompositeExtract %float %107 2
|
OpStore %baseAmbientColor %110
|
||||||
%112 = OpCompositeExtract %float %108 3
|
OpStore %glossiness %11
|
||||||
%113 = OpCompositeConstruct %v4float %109 %110 %111 %112
|
OpStore %diffuseBase %35
|
||||||
OpStore %baseColor %113
|
|
||||||
OpStore %baseAmbientColor %114
|
|
||||||
OpStore %glossiness %float_0
|
|
||||||
OpStore %diffuseBase %71
|
|
||||||
OpStore %shadow %float_1
|
OpStore %shadow %float_1
|
||||||
OpStore %refractionColor %115
|
OpStore %refractionColor %112
|
||||||
OpStore %reflectionColor %115
|
OpStore %reflectionColor %112
|
||||||
%117 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_3
|
%114 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_3
|
||||||
%118 = OpLoad %v3float %117
|
%115 = OpLoad %v3float %114
|
||||||
OpStore %emissiveColor %118
|
OpStore %emissiveColor %115
|
||||||
%119 = OpLoad %v3float %diffuseBase
|
%116 = OpLoad %v3float %diffuseBase
|
||||||
%120 = OpLoad %v3float %diffuseColor
|
%117 = OpLoad %v3float %diffuseColor
|
||||||
%121 = OpLoad %v3float %emissiveColor
|
%118 = OpLoad %v3float %emissiveColor
|
||||||
%123 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_1
|
%120 = OpAccessChain %_ptr_Uniform_v3float %x_49 %uint_1
|
||||||
%124 = OpLoad %v3float %123
|
%121 = OpLoad %v3float %120
|
||||||
%125 = OpLoad %v4float %baseColor
|
%122 = OpLoad %v4float %baseColor
|
||||||
%127 = OpFMul %v3float %119 %120
|
%124 = OpFMul %v3float %116 %117
|
||||||
%128 = OpFAdd %v3float %127 %121
|
%125 = OpFAdd %v3float %124 %118
|
||||||
%129 = OpFAdd %v3float %128 %124
|
%126 = OpFAdd %v3float %125 %121
|
||||||
%126 = OpExtInst %v3float %73 NClamp %129 %71 %114
|
%123 = OpExtInst %v3float %71 NClamp %126 %35 %110
|
||||||
%130 = OpCompositeExtract %float %125 0
|
%127 = OpCompositeExtract %float %122 0
|
||||||
%131 = OpCompositeExtract %float %125 1
|
%128 = OpCompositeExtract %float %122 1
|
||||||
%132 = OpCompositeExtract %float %125 2
|
%129 = OpCompositeExtract %float %122 2
|
||||||
%133 = OpCompositeConstruct %v3float %130 %131 %132
|
%130 = OpCompositeConstruct %v3float %127 %128 %129
|
||||||
%134 = OpFMul %v3float %126 %133
|
%131 = OpFMul %v3float %123 %130
|
||||||
OpStore %finalDiffuse %134
|
OpStore %finalDiffuse %131
|
||||||
OpStore %finalSpecular %71
|
OpStore %finalSpecular %35
|
||||||
%135 = OpLoad %v3float %finalDiffuse
|
%132 = OpLoad %v3float %finalDiffuse
|
||||||
%136 = OpLoad %v3float %baseAmbientColor
|
%133 = OpLoad %v3float %baseAmbientColor
|
||||||
%137 = OpLoad %v3float %finalSpecular
|
%134 = OpLoad %v3float %finalSpecular
|
||||||
%138 = OpLoad %v4float %reflectionColor
|
%135 = OpLoad %v4float %reflectionColor
|
||||||
%139 = OpLoad %v4float %refractionColor
|
%136 = OpLoad %v4float %refractionColor
|
||||||
%140 = OpFMul %v3float %135 %136
|
%137 = OpFMul %v3float %132 %133
|
||||||
%141 = OpFAdd %v3float %140 %137
|
%138 = OpFAdd %v3float %137 %134
|
||||||
%142 = OpCompositeExtract %float %138 0
|
%139 = OpCompositeExtract %float %135 0
|
||||||
%143 = OpCompositeExtract %float %138 1
|
%140 = OpCompositeExtract %float %135 1
|
||||||
%144 = OpCompositeExtract %float %138 2
|
%141 = OpCompositeExtract %float %135 2
|
||||||
%145 = OpCompositeConstruct %v3float %142 %143 %144
|
%142 = OpCompositeConstruct %v3float %139 %140 %141
|
||||||
%146 = OpFAdd %v3float %141 %145
|
%143 = OpFAdd %v3float %138 %142
|
||||||
%147 = OpCompositeExtract %float %139 0
|
%144 = OpCompositeExtract %float %136 0
|
||||||
%148 = OpCompositeExtract %float %139 1
|
%145 = OpCompositeExtract %float %136 1
|
||||||
%149 = OpCompositeExtract %float %139 2
|
%146 = OpCompositeExtract %float %136 2
|
||||||
%150 = OpCompositeConstruct %v3float %147 %148 %149
|
%147 = OpCompositeConstruct %v3float %144 %145 %146
|
||||||
%151 = OpFAdd %v3float %146 %150
|
%148 = OpFAdd %v3float %143 %147
|
||||||
%152 = OpLoad %float %alpha
|
%149 = OpLoad %float %alpha
|
||||||
%153 = OpCompositeExtract %float %151 0
|
%150 = OpCompositeExtract %float %148 0
|
||||||
%154 = OpCompositeExtract %float %151 1
|
%151 = OpCompositeExtract %float %148 1
|
||||||
%155 = OpCompositeExtract %float %151 2
|
%152 = OpCompositeExtract %float %148 2
|
||||||
%156 = OpCompositeConstruct %v4float %153 %154 %155 %152
|
%153 = OpCompositeConstruct %v4float %150 %151 %152 %149
|
||||||
OpStore %color %156
|
OpStore %color %153
|
||||||
%157 = OpLoad %v4float %color
|
%154 = OpLoad %v4float %color
|
||||||
%159 = OpCompositeExtract %float %157 0
|
%156 = OpCompositeExtract %float %154 0
|
||||||
%160 = OpCompositeExtract %float %157 1
|
%157 = OpCompositeExtract %float %154 1
|
||||||
%161 = OpCompositeExtract %float %157 2
|
%158 = OpCompositeExtract %float %154 2
|
||||||
%162 = OpCompositeConstruct %v3float %159 %160 %161
|
%159 = OpCompositeConstruct %v3float %156 %157 %158
|
||||||
%158 = OpExtInst %v3float %73 NMax %162 %71
|
%155 = OpExtInst %v3float %71 NMax %159 %35
|
||||||
%163 = OpLoad %v4float %color
|
%160 = OpLoad %v4float %color
|
||||||
%164 = OpCompositeExtract %float %158 0
|
%161 = OpCompositeExtract %float %155 0
|
||||||
%165 = OpCompositeExtract %float %158 1
|
%162 = OpCompositeExtract %float %155 1
|
||||||
%166 = OpCompositeExtract %float %158 2
|
%163 = OpCompositeExtract %float %155 2
|
||||||
%167 = OpCompositeExtract %float %163 3
|
%164 = OpCompositeExtract %float %160 3
|
||||||
%168 = OpCompositeConstruct %v4float %164 %165 %166 %167
|
%165 = OpCompositeConstruct %v4float %161 %162 %163 %164
|
||||||
OpStore %color %168
|
OpStore %color %165
|
||||||
%169 = OpAccessChain %_ptr_Uniform_float %x_137 %uint_0
|
%166 = OpAccessChain %_ptr_Uniform_float %x_137 %uint_0
|
||||||
%170 = OpLoad %float %169
|
%167 = OpLoad %float %166
|
||||||
%171 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%168 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
%172 = OpLoad %float %171
|
%169 = OpLoad %float %168
|
||||||
%173 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%170 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
%174 = OpFMul %float %172 %170
|
%171 = OpFMul %float %169 %167
|
||||||
OpStore %173 %174
|
OpStore %170 %171
|
||||||
%175 = OpLoad %v4float %color
|
%172 = OpLoad %v4float %color
|
||||||
OpStore %glFragColor %175
|
OpStore %glFragColor %172
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%tint_discard_func = OpFunction %void None %29
|
%tint_discard_func = OpFunction %void None %29
|
||||||
%177 = OpLabel
|
%174 = OpLabel
|
||||||
OpKill
|
OpKill
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %178
|
%main_inner = OpFunction %main_out None %175
|
||||||
%fClipDistance3_param = OpFunctionParameter %float
|
%fClipDistance3_param = OpFunctionParameter %float
|
||||||
%fClipDistance4_param = OpFunctionParameter %float
|
%fClipDistance4_param = OpFunctionParameter %float
|
||||||
%183 = OpLabel
|
%180 = OpLabel
|
||||||
OpStore %fClipDistance3 %fClipDistance3_param
|
OpStore %fClipDistance3 %fClipDistance3_param
|
||||||
OpStore %fClipDistance4 %fClipDistance4_param
|
OpStore %fClipDistance4 %fClipDistance4_param
|
||||||
%184 = OpFunctionCall %void %main_1
|
%181 = OpFunctionCall %void %main_1
|
||||||
%185 = OpLoad %bool %tint_discard
|
%182 = OpLoad %bool %tint_discard
|
||||||
OpSelectionMerge %186 None
|
OpSelectionMerge %183 None
|
||||||
OpBranchConditional %185 %187 %186
|
OpBranchConditional %182 %184 %183
|
||||||
%187 = OpLabel
|
%184 = OpLabel
|
||||||
%188 = OpFunctionCall %void %tint_discard_func
|
%185 = OpFunctionCall %void %tint_discard_func
|
||||||
OpReturnValue %189
|
OpReturnValue %186
|
||||||
%186 = OpLabel
|
%183 = OpLabel
|
||||||
%190 = OpLoad %v4float %glFragColor
|
%187 = OpLoad %v4float %glFragColor
|
||||||
%191 = OpCompositeConstruct %main_out %190
|
%188 = OpCompositeConstruct %main_out %187
|
||||||
OpReturnValue %191
|
OpReturnValue %188
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %29
|
%main = OpFunction %void None %29
|
||||||
%193 = OpLabel
|
%190 = OpLabel
|
||||||
%195 = OpLoad %float %fClipDistance3_param_1
|
%192 = OpLoad %float %fClipDistance3_param_1
|
||||||
%196 = OpLoad %float %fClipDistance4_param_1
|
%193 = OpLoad %float %fClipDistance4_param_1
|
||||||
%194 = OpFunctionCall %main_out %main_inner %195 %196
|
%191 = OpFunctionCall %main_out %main_inner %192 %193
|
||||||
%197 = OpCompositeExtract %v4float %194 0
|
%194 = OpCompositeExtract %v4float %191 0
|
||||||
OpStore %glFragColor_1_1 %197
|
OpStore %glFragColor_1_1 %194
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 417
|
; Bound: 415
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%60 = OpExtInstImport "GLSL.std.450"
|
%60 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -157,31 +157,29 @@
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%117 = OpConstantNull %v4float
|
%117 = OpConstantNull %v4float
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%uint_6 = OpConstant %uint 6
|
%uint_6 = OpConstant %uint 6
|
||||||
%_arr_v4float_uint_6 = OpTypeArray %v4float %uint_6
|
%_arr_v4float_uint_6 = OpTypeArray %v4float %uint_6
|
||||||
%_ptr_Function__arr_v4float_uint_6 = OpTypePointer Function %_arr_v4float_uint_6
|
%_ptr_Function__arr_v4float_uint_6 = OpTypePointer Function %_arr_v4float_uint_6
|
||||||
%156 = OpConstantNull %_arr_v4float_uint_6
|
%155 = OpConstantNull %_arr_v4float_uint_6
|
||||||
%int_4 = OpConstant %int 4
|
%int_4 = OpConstant %int 4
|
||||||
%int_5 = OpConstant %int 5
|
%int_5 = OpConstant %int 5
|
||||||
%int_16 = OpConstant %int 16
|
%int_16 = OpConstant %int 16
|
||||||
%int_0 = OpConstant %int 0
|
%166 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%170 = OpConstantNull %int
|
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
%198 = OpConstantNull %v2int
|
%196 = OpConstantNull %v2int
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%209 = OpConstantComposite %v2float %float_1 %float_1
|
%207 = OpConstantComposite %v2float %float_1 %float_1
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%213 = OpConstantNull %v2float
|
%211 = OpConstantNull %v2float
|
||||||
%216 = OpConstantComposite %v2int %int_16 %int_16
|
%214 = OpConstantComposite %v2int %int_16 %int_16
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint_0 = OpTypePointer StorageBuffer %uint
|
||||||
%412 = OpTypeFunction %void
|
%410 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %void None %28
|
%main_inner = OpFunction %void None %28
|
||||||
%GlobalInvocationID = OpFunctionParameter %v3uint
|
%GlobalInvocationID = OpFunctionParameter %v3uint
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
|
@ -194,14 +192,14 @@
|
||||||
%lightRadius = OpVariable %_ptr_Function_float Function %101
|
%lightRadius = OpVariable %_ptr_Function_float Function %101
|
||||||
%boxMin = OpVariable %_ptr_Function_v4float Function %117
|
%boxMin = OpVariable %_ptr_Function_v4float Function %117
|
||||||
%boxMax = OpVariable %_ptr_Function_v4float Function %117
|
%boxMax = OpVariable %_ptr_Function_v4float Function %117
|
||||||
%frustumPlanes = OpVariable %_ptr_Function__arr_v4float_uint_6 Function %156
|
%frustumPlanes = OpVariable %_ptr_Function__arr_v4float_uint_6 Function %155
|
||||||
%y = OpVariable %_ptr_Function_int Function %170
|
%y = OpVariable %_ptr_Function_int Function %166
|
||||||
%x = OpVariable %_ptr_Function_int Function %170
|
%x = OpVariable %_ptr_Function_int Function %166
|
||||||
%tilePixel0Idx = OpVariable %_ptr_Function_v2int Function %198
|
%tilePixel0Idx = OpVariable %_ptr_Function_v2int Function %196
|
||||||
%floorCoord = OpVariable %_ptr_Function_v2float Function %213
|
%floorCoord = OpVariable %_ptr_Function_v2float Function %211
|
||||||
%ceilCoord = OpVariable %_ptr_Function_v2float Function %213
|
%ceilCoord = OpVariable %_ptr_Function_v2float Function %211
|
||||||
%viewFloorCoord = OpVariable %_ptr_Function_v2float Function %213
|
%viewFloorCoord = OpVariable %_ptr_Function_v2float Function %211
|
||||||
%viewCeilCoord = OpVariable %_ptr_Function_v2float Function %213
|
%viewCeilCoord = OpVariable %_ptr_Function_v2float Function %211
|
||||||
%dp = OpVariable %_ptr_Function_float Function %101
|
%dp = OpVariable %_ptr_Function_float Function %101
|
||||||
%i = OpVariable %_ptr_Function_uint Function %36
|
%i = OpVariable %_ptr_Function_uint Function %36
|
||||||
%p = OpVariable %_ptr_Function_v4float Function %117
|
%p = OpVariable %_ptr_Function_v4float Function %117
|
||||||
|
@ -295,323 +293,323 @@
|
||||||
%136 = OpCompositeExtract %float %135 0
|
%136 = OpCompositeExtract %float %135 0
|
||||||
%137 = OpCompositeExtract %float %135 1
|
%137 = OpCompositeExtract %float %135 1
|
||||||
%138 = OpCompositeExtract %float %135 2
|
%138 = OpCompositeExtract %float %135 2
|
||||||
%140 = OpCompositeConstruct %v4float %136 %137 %138 %float_0
|
%139 = OpCompositeConstruct %v4float %136 %137 %138 %101
|
||||||
%141 = OpFSub %v4float %133 %140
|
%140 = OpFSub %v4float %133 %139
|
||||||
OpStore %boxMin %141
|
OpStore %boxMin %140
|
||||||
%143 = OpLoad %v4float %lightPos
|
%142 = OpLoad %v4float %lightPos
|
||||||
%144 = OpLoad %float %lightRadius
|
%143 = OpLoad %float %lightRadius
|
||||||
%145 = OpCompositeConstruct %v3float %144 %144 %144
|
%144 = OpCompositeConstruct %v3float %143 %143 %143
|
||||||
%146 = OpCompositeExtract %float %145 0
|
%145 = OpCompositeExtract %float %144 0
|
||||||
%147 = OpCompositeExtract %float %145 1
|
%146 = OpCompositeExtract %float %144 1
|
||||||
%148 = OpCompositeExtract %float %145 2
|
%147 = OpCompositeExtract %float %144 2
|
||||||
%149 = OpCompositeConstruct %v4float %146 %147 %148 %float_0
|
%148 = OpCompositeConstruct %v4float %145 %146 %147 %101
|
||||||
%150 = OpFAdd %v4float %143 %149
|
%149 = OpFAdd %v4float %142 %148
|
||||||
OpStore %boxMax %150
|
OpStore %boxMax %149
|
||||||
%158 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_4
|
%157 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_4
|
||||||
%159 = OpLoad %float %viewNear
|
%158 = OpLoad %float %viewNear
|
||||||
%160 = OpCompositeConstruct %v4float %float_0 %float_0 %float_n1 %159
|
%159 = OpCompositeConstruct %v4float %101 %101 %float_n1 %158
|
||||||
OpStore %158 %160
|
OpStore %157 %159
|
||||||
%162 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_5
|
%161 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_5
|
||||||
%164 = OpLoad %float %viewFar
|
%163 = OpLoad %float %viewFar
|
||||||
%163 = OpFNegate %float %164
|
%162 = OpFNegate %float %163
|
||||||
%165 = OpCompositeConstruct %v4float %float_0 %float_0 %float_1 %163
|
%164 = OpCompositeConstruct %v4float %101 %101 %float_1 %162
|
||||||
OpStore %162 %165
|
OpStore %161 %164
|
||||||
OpStore %y %int_0
|
OpStore %y %166
|
||||||
OpBranch %171
|
OpBranch %169
|
||||||
%171 = OpLabel
|
%169 = OpLabel
|
||||||
OpLoopMerge %172 %173 None
|
OpLoopMerge %170 %171 None
|
||||||
OpBranch %174
|
|
||||||
%174 = OpLabel
|
|
||||||
%176 = OpLoad %int %y
|
|
||||||
%177 = OpSLessThan %bool %176 %int_2
|
|
||||||
%175 = OpLogicalNot %bool %177
|
|
||||||
OpSelectionMerge %178 None
|
|
||||||
OpBranchConditional %175 %179 %178
|
|
||||||
%179 = OpLabel
|
|
||||||
OpBranch %172
|
OpBranch %172
|
||||||
%178 = OpLabel
|
%172 = OpLabel
|
||||||
OpStore %x %int_0
|
%174 = OpLoad %int %y
|
||||||
OpBranch %181
|
%175 = OpSLessThan %bool %174 %int_2
|
||||||
%181 = OpLabel
|
%173 = OpLogicalNot %bool %175
|
||||||
OpLoopMerge %182 %183 None
|
OpSelectionMerge %176 None
|
||||||
OpBranch %184
|
OpBranchConditional %173 %177 %176
|
||||||
%184 = OpLabel
|
%177 = OpLabel
|
||||||
%186 = OpLoad %int %x
|
OpBranch %170
|
||||||
%187 = OpSLessThan %bool %186 %int_2
|
%176 = OpLabel
|
||||||
%185 = OpLogicalNot %bool %187
|
OpStore %x %166
|
||||||
OpSelectionMerge %188 None
|
OpBranch %179
|
||||||
OpBranchConditional %185 %189 %188
|
%179 = OpLabel
|
||||||
%189 = OpLabel
|
OpLoopMerge %180 %181 None
|
||||||
OpBranch %182
|
OpBranch %182
|
||||||
%188 = OpLabel
|
%182 = OpLabel
|
||||||
%191 = OpLoad %int %x
|
%184 = OpLoad %int %x
|
||||||
|
%185 = OpSLessThan %bool %184 %int_2
|
||||||
|
%183 = OpLogicalNot %bool %185
|
||||||
|
OpSelectionMerge %186 None
|
||||||
|
OpBranchConditional %183 %187 %186
|
||||||
|
%187 = OpLabel
|
||||||
|
OpBranch %180
|
||||||
|
%186 = OpLabel
|
||||||
|
%189 = OpLoad %int %x
|
||||||
|
%190 = OpIMul %int %189 %int_16
|
||||||
|
%191 = OpLoad %int %y
|
||||||
%192 = OpIMul %int %191 %int_16
|
%192 = OpIMul %int %191 %int_16
|
||||||
%193 = OpLoad %int %y
|
%193 = OpCompositeConstruct %v2int %190 %192
|
||||||
%194 = OpIMul %int %193 %int_16
|
OpStore %tilePixel0Idx %193
|
||||||
%195 = OpCompositeConstruct %v2int %192 %194
|
%200 = OpLoad %v2int %tilePixel0Idx
|
||||||
OpStore %tilePixel0Idx %195
|
%198 = OpConvertSToF %v2float %200
|
||||||
%202 = OpLoad %v2int %tilePixel0Idx
|
%201 = OpVectorTimesScalar %v2float %198 %float_2
|
||||||
%200 = OpConvertSToF %v2float %202
|
%203 = OpAccessChain %_ptr_Uniform_v4float %uniforms %uint_4
|
||||||
%203 = OpVectorTimesScalar %v2float %200 %float_2
|
%204 = OpLoad %v4float %203
|
||||||
%205 = OpAccessChain %_ptr_Uniform_v4float %uniforms %uint_4
|
%205 = OpVectorShuffle %v2float %204 %204 0 1
|
||||||
%206 = OpLoad %v4float %205
|
%206 = OpFDiv %v2float %201 %205
|
||||||
%207 = OpVectorShuffle %v2float %206 %206 0 1
|
%208 = OpFSub %v2float %206 %207
|
||||||
%208 = OpFDiv %v2float %203 %207
|
OpStore %floorCoord %208
|
||||||
%210 = OpFSub %v2float %208 %209
|
%213 = OpLoad %v2int %tilePixel0Idx
|
||||||
OpStore %floorCoord %210
|
%215 = OpIAdd %v2int %213 %214
|
||||||
%215 = OpLoad %v2int %tilePixel0Idx
|
%212 = OpConvertSToF %v2float %215
|
||||||
%217 = OpIAdd %v2int %215 %216
|
%216 = OpVectorTimesScalar %v2float %212 %float_2
|
||||||
%214 = OpConvertSToF %v2float %217
|
%217 = OpAccessChain %_ptr_Uniform_v4float %uniforms %uint_4
|
||||||
%218 = OpVectorTimesScalar %v2float %214 %float_2
|
%218 = OpLoad %v4float %217
|
||||||
%219 = OpAccessChain %_ptr_Uniform_v4float %uniforms %uint_4
|
%219 = OpVectorShuffle %v2float %218 %218 0 1
|
||||||
%220 = OpLoad %v4float %219
|
%220 = OpFDiv %v2float %216 %219
|
||||||
%221 = OpVectorShuffle %v2float %220 %220 0 1
|
%221 = OpFSub %v2float %220 %207
|
||||||
%222 = OpFDiv %v2float %218 %221
|
OpStore %ceilCoord %221
|
||||||
%223 = OpFSub %v2float %222 %209
|
%224 = OpLoad %float %viewNear
|
||||||
OpStore %ceilCoord %223
|
%223 = OpFNegate %float %224
|
||||||
%226 = OpLoad %float %viewNear
|
%225 = OpAccessChain %_ptr_Function_float %floorCoord %uint_0
|
||||||
%225 = OpFNegate %float %226
|
%226 = OpLoad %float %225
|
||||||
%227 = OpAccessChain %_ptr_Function_float %floorCoord %uint_0
|
%227 = OpFMul %float %223 %226
|
||||||
%228 = OpLoad %float %227
|
%228 = OpAccessChain %_ptr_Function_float %M %int_2 %166
|
||||||
%229 = OpFMul %float %225 %228
|
%229 = OpLoad %float %228
|
||||||
%230 = OpAccessChain %_ptr_Function_float %M %int_2 %int_0
|
%230 = OpLoad %float %viewNear
|
||||||
%231 = OpLoad %float %230
|
%231 = OpFMul %float %229 %230
|
||||||
%232 = OpLoad %float %viewNear
|
%232 = OpFSub %float %227 %231
|
||||||
%233 = OpFMul %float %231 %232
|
%233 = OpAccessChain %_ptr_Function_float %M %166 %166
|
||||||
%234 = OpFSub %float %229 %233
|
%234 = OpLoad %float %233
|
||||||
%235 = OpAccessChain %_ptr_Function_float %M %int_0 %int_0
|
%235 = OpFDiv %float %232 %234
|
||||||
%236 = OpLoad %float %235
|
%237 = OpLoad %float %viewNear
|
||||||
%237 = OpFDiv %float %234 %236
|
%236 = OpFNegate %float %237
|
||||||
%239 = OpLoad %float %viewNear
|
%238 = OpAccessChain %_ptr_Function_float %floorCoord %uint_1
|
||||||
%238 = OpFNegate %float %239
|
%239 = OpLoad %float %238
|
||||||
%240 = OpAccessChain %_ptr_Function_float %floorCoord %uint_1
|
%240 = OpFMul %float %236 %239
|
||||||
%241 = OpLoad %float %240
|
%242 = OpAccessChain %_ptr_Function_float %M %int_2 %int_1
|
||||||
%242 = OpFMul %float %238 %241
|
%243 = OpLoad %float %242
|
||||||
%244 = OpAccessChain %_ptr_Function_float %M %int_2 %int_1
|
%244 = OpLoad %float %viewNear
|
||||||
%245 = OpLoad %float %244
|
%245 = OpFMul %float %243 %244
|
||||||
%246 = OpLoad %float %viewNear
|
%246 = OpFSub %float %240 %245
|
||||||
%247 = OpFMul %float %245 %246
|
%247 = OpAccessChain %_ptr_Function_float %M %int_1 %int_1
|
||||||
%248 = OpFSub %float %242 %247
|
%248 = OpLoad %float %247
|
||||||
%249 = OpAccessChain %_ptr_Function_float %M %int_1 %int_1
|
%249 = OpFDiv %float %246 %248
|
||||||
%250 = OpLoad %float %249
|
%250 = OpCompositeConstruct %v2float %235 %249
|
||||||
%251 = OpFDiv %float %248 %250
|
OpStore %viewFloorCoord %250
|
||||||
%252 = OpCompositeConstruct %v2float %237 %251
|
%253 = OpLoad %float %viewNear
|
||||||
OpStore %viewFloorCoord %252
|
%252 = OpFNegate %float %253
|
||||||
%255 = OpLoad %float %viewNear
|
%254 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_0
|
||||||
%254 = OpFNegate %float %255
|
%255 = OpLoad %float %254
|
||||||
%256 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_0
|
%256 = OpFMul %float %252 %255
|
||||||
%257 = OpLoad %float %256
|
%257 = OpAccessChain %_ptr_Function_float %M %int_2 %166
|
||||||
%258 = OpFMul %float %254 %257
|
%258 = OpLoad %float %257
|
||||||
%259 = OpAccessChain %_ptr_Function_float %M %int_2 %int_0
|
%259 = OpLoad %float %viewNear
|
||||||
%260 = OpLoad %float %259
|
%260 = OpFMul %float %258 %259
|
||||||
%261 = OpLoad %float %viewNear
|
%261 = OpFSub %float %256 %260
|
||||||
%262 = OpFMul %float %260 %261
|
%262 = OpAccessChain %_ptr_Function_float %M %166 %166
|
||||||
%263 = OpFSub %float %258 %262
|
%263 = OpLoad %float %262
|
||||||
%264 = OpAccessChain %_ptr_Function_float %M %int_0 %int_0
|
%264 = OpFDiv %float %261 %263
|
||||||
%265 = OpLoad %float %264
|
%266 = OpLoad %float %viewNear
|
||||||
%266 = OpFDiv %float %263 %265
|
%265 = OpFNegate %float %266
|
||||||
%268 = OpLoad %float %viewNear
|
%267 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_1
|
||||||
%267 = OpFNegate %float %268
|
%268 = OpLoad %float %267
|
||||||
%269 = OpAccessChain %_ptr_Function_float %ceilCoord %uint_1
|
%269 = OpFMul %float %265 %268
|
||||||
%270 = OpLoad %float %269
|
%270 = OpAccessChain %_ptr_Function_float %M %int_2 %int_1
|
||||||
%271 = OpFMul %float %267 %270
|
%271 = OpLoad %float %270
|
||||||
%272 = OpAccessChain %_ptr_Function_float %M %int_2 %int_1
|
%272 = OpLoad %float %viewNear
|
||||||
%273 = OpLoad %float %272
|
%273 = OpFMul %float %271 %272
|
||||||
%274 = OpLoad %float %viewNear
|
%274 = OpFSub %float %269 %273
|
||||||
%275 = OpFMul %float %273 %274
|
%275 = OpAccessChain %_ptr_Function_float %M %int_1 %int_1
|
||||||
%276 = OpFSub %float %271 %275
|
%276 = OpLoad %float %275
|
||||||
%277 = OpAccessChain %_ptr_Function_float %M %int_1 %int_1
|
%277 = OpFDiv %float %274 %276
|
||||||
%278 = OpLoad %float %277
|
%278 = OpCompositeConstruct %v2float %264 %277
|
||||||
%279 = OpFDiv %float %276 %278
|
OpStore %viewCeilCoord %278
|
||||||
%280 = OpCompositeConstruct %v2float %266 %279
|
%280 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %166
|
||||||
OpStore %viewCeilCoord %280
|
%282 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_0
|
||||||
%282 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_0
|
%283 = OpLoad %float %282
|
||||||
%284 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_0
|
%281 = OpFNegate %float %283
|
||||||
%285 = OpLoad %float %284
|
%284 = OpLoad %float %viewNear
|
||||||
%283 = OpFNegate %float %285
|
%285 = OpFDiv %float %281 %284
|
||||||
%286 = OpLoad %float %viewNear
|
%286 = OpCompositeConstruct %v4float %float_1 %101 %285 %101
|
||||||
%287 = OpFDiv %float %283 %286
|
OpStore %280 %286
|
||||||
%288 = OpCompositeConstruct %v4float %float_1 %float_0 %287 %float_0
|
%287 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_1
|
||||||
OpStore %282 %288
|
%288 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_0
|
||||||
%289 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_1
|
%289 = OpLoad %float %288
|
||||||
%290 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_0
|
%290 = OpLoad %float %viewNear
|
||||||
%291 = OpLoad %float %290
|
%291 = OpFDiv %float %289 %290
|
||||||
%292 = OpLoad %float %viewNear
|
%292 = OpCompositeConstruct %v4float %float_n1 %101 %291 %101
|
||||||
%293 = OpFDiv %float %291 %292
|
OpStore %287 %292
|
||||||
%294 = OpCompositeConstruct %v4float %float_n1 %float_0 %293 %float_0
|
%293 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_2
|
||||||
OpStore %289 %294
|
%295 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_1
|
||||||
%295 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_2
|
%296 = OpLoad %float %295
|
||||||
%297 = OpAccessChain %_ptr_Function_float %viewFloorCoord %uint_1
|
%294 = OpFNegate %float %296
|
||||||
%298 = OpLoad %float %297
|
%297 = OpLoad %float %viewNear
|
||||||
%296 = OpFNegate %float %298
|
%298 = OpFDiv %float %294 %297
|
||||||
%299 = OpLoad %float %viewNear
|
%299 = OpCompositeConstruct %v4float %101 %float_1 %298 %101
|
||||||
%300 = OpFDiv %float %296 %299
|
OpStore %293 %299
|
||||||
%301 = OpCompositeConstruct %v4float %float_0 %float_1 %300 %float_0
|
%300 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_3
|
||||||
OpStore %295 %301
|
%301 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_1
|
||||||
%302 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %int_3
|
%302 = OpLoad %float %301
|
||||||
%303 = OpAccessChain %_ptr_Function_float %viewCeilCoord %uint_1
|
%303 = OpLoad %float %viewNear
|
||||||
%304 = OpLoad %float %303
|
%304 = OpFDiv %float %302 %303
|
||||||
%305 = OpLoad %float %viewNear
|
%305 = OpCompositeConstruct %v4float %101 %float_n1 %304 %101
|
||||||
%306 = OpFDiv %float %304 %305
|
OpStore %300 %305
|
||||||
%307 = OpCompositeConstruct %v4float %float_0 %float_n1 %306 %float_0
|
OpStore %dp %101
|
||||||
OpStore %302 %307
|
OpStore %i %36
|
||||||
OpStore %dp %float_0
|
OpBranch %308
|
||||||
OpStore %i %uint_0
|
%308 = OpLabel
|
||||||
|
OpLoopMerge %309 %310 None
|
||||||
|
OpBranch %311
|
||||||
|
%311 = OpLabel
|
||||||
|
%313 = OpLoad %uint %i
|
||||||
|
%314 = OpULessThan %bool %313 %uint_6
|
||||||
|
%312 = OpLogicalNot %bool %314
|
||||||
|
OpSelectionMerge %315 None
|
||||||
|
OpBranchConditional %312 %316 %315
|
||||||
|
%316 = OpLabel
|
||||||
|
OpBranch %309
|
||||||
|
%315 = OpLabel
|
||||||
|
%318 = OpLoad %uint %i
|
||||||
|
%319 = OpAccessChain %_ptr_Function_float %frustumPlanes %318 %uint_0
|
||||||
|
%320 = OpLoad %float %319
|
||||||
|
%321 = OpFOrdGreaterThan %bool %320 %101
|
||||||
|
OpSelectionMerge %322 None
|
||||||
|
OpBranchConditional %321 %323 %324
|
||||||
|
%323 = OpLabel
|
||||||
|
%325 = OpAccessChain %_ptr_Function_float %p %uint_0
|
||||||
|
%326 = OpAccessChain %_ptr_Function_float %boxMax %uint_0
|
||||||
|
%327 = OpLoad %float %326
|
||||||
|
OpStore %325 %327
|
||||||
|
OpBranch %322
|
||||||
|
%324 = OpLabel
|
||||||
|
%328 = OpAccessChain %_ptr_Function_float %p %uint_0
|
||||||
|
%329 = OpAccessChain %_ptr_Function_float %boxMin %uint_0
|
||||||
|
%330 = OpLoad %float %329
|
||||||
|
OpStore %328 %330
|
||||||
|
OpBranch %322
|
||||||
|
%322 = OpLabel
|
||||||
|
%331 = OpLoad %uint %i
|
||||||
|
%332 = OpAccessChain %_ptr_Function_float %frustumPlanes %331 %uint_1
|
||||||
|
%333 = OpLoad %float %332
|
||||||
|
%334 = OpFOrdGreaterThan %bool %333 %101
|
||||||
|
OpSelectionMerge %335 None
|
||||||
|
OpBranchConditional %334 %336 %337
|
||||||
|
%336 = OpLabel
|
||||||
|
%338 = OpAccessChain %_ptr_Function_float %p %uint_1
|
||||||
|
%339 = OpAccessChain %_ptr_Function_float %boxMax %uint_1
|
||||||
|
%340 = OpLoad %float %339
|
||||||
|
OpStore %338 %340
|
||||||
|
OpBranch %335
|
||||||
|
%337 = OpLabel
|
||||||
|
%341 = OpAccessChain %_ptr_Function_float %p %uint_1
|
||||||
|
%342 = OpAccessChain %_ptr_Function_float %boxMin %uint_1
|
||||||
|
%343 = OpLoad %float %342
|
||||||
|
OpStore %341 %343
|
||||||
|
OpBranch %335
|
||||||
|
%335 = OpLabel
|
||||||
|
%344 = OpLoad %uint %i
|
||||||
|
%345 = OpAccessChain %_ptr_Function_float %frustumPlanes %344 %uint_2
|
||||||
|
%346 = OpLoad %float %345
|
||||||
|
%347 = OpFOrdGreaterThan %bool %346 %101
|
||||||
|
OpSelectionMerge %348 None
|
||||||
|
OpBranchConditional %347 %349 %350
|
||||||
|
%349 = OpLabel
|
||||||
|
%351 = OpAccessChain %_ptr_Function_float %p %uint_2
|
||||||
|
%352 = OpAccessChain %_ptr_Function_float %boxMax %uint_2
|
||||||
|
%353 = OpLoad %float %352
|
||||||
|
OpStore %351 %353
|
||||||
|
OpBranch %348
|
||||||
|
%350 = OpLabel
|
||||||
|
%354 = OpAccessChain %_ptr_Function_float %p %uint_2
|
||||||
|
%355 = OpAccessChain %_ptr_Function_float %boxMin %uint_2
|
||||||
|
%356 = OpLoad %float %355
|
||||||
|
OpStore %354 %356
|
||||||
|
OpBranch %348
|
||||||
|
%348 = OpLabel
|
||||||
|
%357 = OpAccessChain %_ptr_Function_float %p %uint_3
|
||||||
|
OpStore %357 %float_1
|
||||||
|
%358 = OpLoad %float %dp
|
||||||
|
%361 = OpLoad %v4float %p
|
||||||
|
%362 = OpLoad %uint %i
|
||||||
|
%363 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %362
|
||||||
|
%364 = OpLoad %v4float %363
|
||||||
|
%360 = OpDot %float %361 %364
|
||||||
|
%359 = OpExtInst %float %60 NMin %101 %360
|
||||||
|
%365 = OpFAdd %float %358 %359
|
||||||
|
OpStore %dp %365
|
||||||
OpBranch %310
|
OpBranch %310
|
||||||
%310 = OpLabel
|
%310 = OpLabel
|
||||||
OpLoopMerge %311 %312 None
|
%366 = OpLoad %uint %i
|
||||||
OpBranch %313
|
%367 = OpIAdd %uint %366 %uint_1
|
||||||
%313 = OpLabel
|
OpStore %i %367
|
||||||
%315 = OpLoad %uint %i
|
OpBranch %308
|
||||||
%316 = OpULessThan %bool %315 %uint_6
|
%309 = OpLabel
|
||||||
%314 = OpLogicalNot %bool %316
|
%368 = OpLoad %float %dp
|
||||||
OpSelectionMerge %317 None
|
%369 = OpFOrdGreaterThanEqual %bool %368 %101
|
||||||
OpBranchConditional %314 %318 %317
|
OpSelectionMerge %370 None
|
||||||
%318 = OpLabel
|
OpBranchConditional %369 %371 %370
|
||||||
OpBranch %311
|
%371 = OpLabel
|
||||||
%317 = OpLabel
|
%373 = OpLoad %int %x
|
||||||
%320 = OpLoad %uint %i
|
%374 = OpLoad %int %y
|
||||||
%321 = OpAccessChain %_ptr_Function_float %frustumPlanes %320 %uint_0
|
%375 = OpIMul %int %374 %int_2
|
||||||
%322 = OpLoad %float %321
|
%376 = OpIAdd %int %373 %375
|
||||||
%323 = OpFOrdGreaterThan %bool %322 %float_0
|
%372 = OpBitcast %uint %376
|
||||||
OpSelectionMerge %324 None
|
OpStore %tileId %372
|
||||||
OpBranchConditional %323 %325 %326
|
%378 = OpLoad %uint %tileId
|
||||||
%325 = OpLabel
|
%379 = OpULessThan %bool %378 %36
|
||||||
%327 = OpAccessChain %_ptr_Function_float %p %uint_0
|
OpSelectionMerge %380 None
|
||||||
%328 = OpAccessChain %_ptr_Function_float %boxMax %uint_0
|
OpBranchConditional %379 %380 %381
|
||||||
%329 = OpLoad %float %328
|
%381 = OpLabel
|
||||||
OpStore %327 %329
|
%382 = OpLoad %uint %tileId
|
||||||
OpBranch %324
|
%383 = OpAccessChain %_ptr_Uniform_uint %config %uint_1
|
||||||
%326 = OpLabel
|
%384 = OpLoad %uint %383
|
||||||
%330 = OpAccessChain %_ptr_Function_float %p %uint_0
|
%385 = OpUGreaterThanEqual %bool %382 %384
|
||||||
%331 = OpAccessChain %_ptr_Function_float %boxMin %uint_0
|
OpBranch %380
|
||||||
%332 = OpLoad %float %331
|
%380 = OpLabel
|
||||||
OpStore %330 %332
|
%386 = OpPhi %bool %379 %371 %385 %381
|
||||||
OpBranch %324
|
OpSelectionMerge %387 None
|
||||||
%324 = OpLabel
|
OpBranchConditional %386 %388 %387
|
||||||
%333 = OpLoad %uint %i
|
%388 = OpLabel
|
||||||
%334 = OpAccessChain %_ptr_Function_float %frustumPlanes %333 %uint_1
|
|
||||||
%335 = OpLoad %float %334
|
|
||||||
%336 = OpFOrdGreaterThan %bool %335 %float_0
|
|
||||||
OpSelectionMerge %337 None
|
|
||||||
OpBranchConditional %336 %338 %339
|
|
||||||
%338 = OpLabel
|
|
||||||
%340 = OpAccessChain %_ptr_Function_float %p %uint_1
|
|
||||||
%341 = OpAccessChain %_ptr_Function_float %boxMax %uint_1
|
|
||||||
%342 = OpLoad %float %341
|
|
||||||
OpStore %340 %342
|
|
||||||
OpBranch %337
|
|
||||||
%339 = OpLabel
|
|
||||||
%343 = OpAccessChain %_ptr_Function_float %p %uint_1
|
|
||||||
%344 = OpAccessChain %_ptr_Function_float %boxMin %uint_1
|
|
||||||
%345 = OpLoad %float %344
|
|
||||||
OpStore %343 %345
|
|
||||||
OpBranch %337
|
|
||||||
%337 = OpLabel
|
|
||||||
%346 = OpLoad %uint %i
|
|
||||||
%347 = OpAccessChain %_ptr_Function_float %frustumPlanes %346 %uint_2
|
|
||||||
%348 = OpLoad %float %347
|
|
||||||
%349 = OpFOrdGreaterThan %bool %348 %float_0
|
|
||||||
OpSelectionMerge %350 None
|
|
||||||
OpBranchConditional %349 %351 %352
|
|
||||||
%351 = OpLabel
|
|
||||||
%353 = OpAccessChain %_ptr_Function_float %p %uint_2
|
|
||||||
%354 = OpAccessChain %_ptr_Function_float %boxMax %uint_2
|
|
||||||
%355 = OpLoad %float %354
|
|
||||||
OpStore %353 %355
|
|
||||||
OpBranch %350
|
|
||||||
%352 = OpLabel
|
|
||||||
%356 = OpAccessChain %_ptr_Function_float %p %uint_2
|
|
||||||
%357 = OpAccessChain %_ptr_Function_float %boxMin %uint_2
|
|
||||||
%358 = OpLoad %float %357
|
|
||||||
OpStore %356 %358
|
|
||||||
OpBranch %350
|
|
||||||
%350 = OpLabel
|
|
||||||
%359 = OpAccessChain %_ptr_Function_float %p %uint_3
|
|
||||||
OpStore %359 %float_1
|
|
||||||
%360 = OpLoad %float %dp
|
|
||||||
%363 = OpLoad %v4float %p
|
|
||||||
%364 = OpLoad %uint %i
|
|
||||||
%365 = OpAccessChain %_ptr_Function_v4float %frustumPlanes %364
|
|
||||||
%366 = OpLoad %v4float %365
|
|
||||||
%362 = OpDot %float %363 %366
|
|
||||||
%361 = OpExtInst %float %60 NMin %float_0 %362
|
|
||||||
%367 = OpFAdd %float %360 %361
|
|
||||||
OpStore %dp %367
|
|
||||||
OpBranch %312
|
|
||||||
%312 = OpLabel
|
|
||||||
%368 = OpLoad %uint %i
|
|
||||||
%369 = OpIAdd %uint %368 %uint_1
|
|
||||||
OpStore %i %369
|
|
||||||
OpBranch %310
|
|
||||||
%311 = OpLabel
|
|
||||||
%370 = OpLoad %float %dp
|
|
||||||
%371 = OpFOrdGreaterThanEqual %bool %370 %float_0
|
|
||||||
OpSelectionMerge %372 None
|
|
||||||
OpBranchConditional %371 %373 %372
|
|
||||||
%373 = OpLabel
|
|
||||||
%375 = OpLoad %int %x
|
|
||||||
%376 = OpLoad %int %y
|
|
||||||
%377 = OpIMul %int %376 %int_2
|
|
||||||
%378 = OpIAdd %int %375 %377
|
|
||||||
%374 = OpBitcast %uint %378
|
|
||||||
OpStore %tileId %374
|
|
||||||
%380 = OpLoad %uint %tileId
|
|
||||||
%381 = OpULessThan %bool %380 %uint_0
|
|
||||||
OpSelectionMerge %382 None
|
|
||||||
OpBranchConditional %381 %382 %383
|
|
||||||
%383 = OpLabel
|
|
||||||
%384 = OpLoad %uint %tileId
|
|
||||||
%385 = OpAccessChain %_ptr_Uniform_uint %config %uint_1
|
|
||||||
%386 = OpLoad %uint %385
|
|
||||||
%387 = OpUGreaterThanEqual %bool %384 %386
|
|
||||||
OpBranch %382
|
|
||||||
%382 = OpLabel
|
|
||||||
%388 = OpPhi %bool %381 %373 %387 %383
|
|
||||||
OpSelectionMerge %389 None
|
|
||||||
OpBranchConditional %388 %390 %389
|
|
||||||
%390 = OpLabel
|
|
||||||
OpBranch %183
|
|
||||||
%389 = OpLabel
|
|
||||||
%393 = OpLoad %uint %tileId
|
|
||||||
%395 = OpAccessChain %_ptr_StorageBuffer_uint %tileLightId %uint_0 %393 %uint_0
|
|
||||||
%391 = OpAtomicIAdd %uint %395 %uint_1 %uint_0 %uint_1
|
|
||||||
OpStore %offset %391
|
|
||||||
%397 = OpLoad %uint %offset
|
|
||||||
%398 = OpAccessChain %_ptr_Uniform_uint %config %uint_4
|
|
||||||
%399 = OpLoad %uint %398
|
|
||||||
%400 = OpUGreaterThanEqual %bool %397 %399
|
|
||||||
OpSelectionMerge %401 None
|
|
||||||
OpBranchConditional %400 %402 %401
|
|
||||||
%402 = OpLabel
|
|
||||||
OpBranch %183
|
|
||||||
%401 = OpLabel
|
|
||||||
%403 = OpLoad %uint %tileId
|
|
||||||
%404 = OpLoad %uint %offset
|
|
||||||
%406 = OpAccessChain %_ptr_StorageBuffer_uint_0 %tileLightId %uint_0 %403 %uint_1 %404
|
|
||||||
%407 = OpCompositeExtract %uint %GlobalInvocationID 0
|
|
||||||
OpStore %406 %407
|
|
||||||
OpBranch %372
|
|
||||||
%372 = OpLabel
|
|
||||||
OpBranch %183
|
|
||||||
%183 = OpLabel
|
|
||||||
%408 = OpLoad %int %x
|
|
||||||
%409 = OpIAdd %int %408 %int_1
|
|
||||||
OpStore %x %409
|
|
||||||
OpBranch %181
|
OpBranch %181
|
||||||
%182 = OpLabel
|
%387 = OpLabel
|
||||||
OpBranch %173
|
%391 = OpLoad %uint %tileId
|
||||||
%173 = OpLabel
|
%393 = OpAccessChain %_ptr_StorageBuffer_uint %tileLightId %uint_0 %391 %uint_0
|
||||||
%410 = OpLoad %int %y
|
%389 = OpAtomicIAdd %uint %393 %uint_1 %uint_0 %uint_1
|
||||||
%411 = OpIAdd %int %410 %int_1
|
OpStore %offset %389
|
||||||
OpStore %y %411
|
%395 = OpLoad %uint %offset
|
||||||
|
%396 = OpAccessChain %_ptr_Uniform_uint %config %uint_4
|
||||||
|
%397 = OpLoad %uint %396
|
||||||
|
%398 = OpUGreaterThanEqual %bool %395 %397
|
||||||
|
OpSelectionMerge %399 None
|
||||||
|
OpBranchConditional %398 %400 %399
|
||||||
|
%400 = OpLabel
|
||||||
|
OpBranch %181
|
||||||
|
%399 = OpLabel
|
||||||
|
%401 = OpLoad %uint %tileId
|
||||||
|
%402 = OpLoad %uint %offset
|
||||||
|
%404 = OpAccessChain %_ptr_StorageBuffer_uint_0 %tileLightId %uint_0 %401 %uint_1 %402
|
||||||
|
%405 = OpCompositeExtract %uint %GlobalInvocationID 0
|
||||||
|
OpStore %404 %405
|
||||||
|
OpBranch %370
|
||||||
|
%370 = OpLabel
|
||||||
|
OpBranch %181
|
||||||
|
%181 = OpLabel
|
||||||
|
%406 = OpLoad %int %x
|
||||||
|
%407 = OpIAdd %int %406 %int_1
|
||||||
|
OpStore %x %407
|
||||||
|
OpBranch %179
|
||||||
|
%180 = OpLabel
|
||||||
OpBranch %171
|
OpBranch %171
|
||||||
%172 = OpLabel
|
%171 = OpLabel
|
||||||
|
%408 = OpLoad %int %y
|
||||||
|
%409 = OpIAdd %int %408 %int_1
|
||||||
|
OpStore %y %409
|
||||||
|
OpBranch %169
|
||||||
|
%170 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %412
|
%main = OpFunction %void None %410
|
||||||
%414 = OpLabel
|
%412 = OpLabel
|
||||||
%416 = OpLoad %v3uint %GlobalInvocationID_1
|
%414 = OpLoad %v3uint %GlobalInvocationID_1
|
||||||
%415 = OpFunctionCall %void %main_inner %416
|
%413 = OpFunctionCall %void %main_inner %414
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -9,7 +9,7 @@ bug/tint/1369.wgsl:9:9 warning: code is unreachable
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 23
|
; Bound: 22
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -21,35 +21,34 @@ bug/tint/1369.wgsl:9:9 warning: code is unreachable
|
||||||
OpName %f "f"
|
OpName %f "f"
|
||||||
OpName %v "v"
|
OpName %v "v"
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%2 = OpConstantNull %bool
|
||||||
%_ptr_Private_bool = OpTypePointer Private %bool
|
%_ptr_Private_bool = OpTypePointer Private %bool
|
||||||
%tint_discard = OpVariable %_ptr_Private_bool Private %false
|
%tint_discard = OpVariable %_ptr_Private_bool Private %2
|
||||||
%5 = OpTypeFunction %bool
|
%5 = OpTypeFunction %bool
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%9 = OpConstantNull %bool
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%10 = OpTypeFunction %void
|
%9 = OpTypeFunction %void
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%call_discard = OpFunction %bool None %5
|
%call_discard = OpFunction %bool None %5
|
||||||
%7 = OpLabel
|
%7 = OpLabel
|
||||||
OpStore %tint_discard %true
|
OpStore %tint_discard %true
|
||||||
OpReturnValue %9
|
OpReturnValue %2
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%tint_discard_func = OpFunction %void None %10
|
%tint_discard_func = OpFunction %void None %9
|
||||||
%13 = OpLabel
|
%12 = OpLabel
|
||||||
OpKill
|
OpKill
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %10
|
%f = OpFunction %void None %9
|
||||||
%15 = OpLabel
|
%14 = OpLabel
|
||||||
%v = OpVariable %_ptr_Function_bool Function %9
|
%v = OpVariable %_ptr_Function_bool Function %2
|
||||||
%16 = OpFunctionCall %bool %call_discard
|
%15 = OpFunctionCall %bool %call_discard
|
||||||
OpStore %v %16
|
OpStore %v %15
|
||||||
%19 = OpLoad %bool %tint_discard
|
%18 = OpLoad %bool %tint_discard
|
||||||
OpSelectionMerge %20 None
|
OpSelectionMerge %19 None
|
||||||
OpBranchConditional %19 %21 %20
|
OpBranchConditional %18 %20 %19
|
||||||
%21 = OpLabel
|
|
||||||
%22 = OpFunctionCall %void %tint_discard_func
|
|
||||||
OpReturn
|
|
||||||
%20 = OpLabel
|
%20 = OpLabel
|
||||||
|
%21 = OpFunctionCall %void %tint_discard_func
|
||||||
|
OpReturn
|
||||||
|
%19 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -26,13 +26,13 @@
|
||||||
%6 = OpTypeFunction %int
|
%6 = OpTypeFunction %int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%int_0 = OpConstant %int 0
|
%11 = OpConstantNull %int
|
||||||
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%15 = OpTypeFunction %void
|
%15 = OpTypeFunction %void
|
||||||
%foo = OpFunction %int None %6
|
%foo = OpFunction %int None %6
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%13 = OpAccessChain %_ptr_StorageBuffer_int %data %uint_0 %int_0
|
%13 = OpAccessChain %_ptr_StorageBuffer_int %data %uint_0 %11
|
||||||
%14 = OpLoad %int %13
|
%14 = OpLoad %int %13
|
||||||
OpReturnValue %14
|
OpReturnValue %14
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 175
|
; Bound: 170
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -97,30 +97,25 @@
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%false = OpConstantFalse %bool
|
|
||||||
%int_0 = OpConstant %int 0
|
|
||||||
%53 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%62 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
%59 = OpConstantComposite %v4int %int_1 %int_1 %int_1 %int_1
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%74 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
%71 = OpConstantComposite %v4int %int_2 %int_2 %int_2 %int_2
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%85 = OpTypeFunction %void
|
%82 = OpTypeFunction %void
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%94 = OpConstantNull %float
|
%91 = OpConstantNull %float
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%113 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%121 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
%116 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%133 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
%128 = OpConstantComposite %v4float %float_2 %float_2 %float_2 %float_2
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%main_out = OpTypeStruct %v4float
|
%main_out = OpTypeStruct %v4float
|
||||||
%160 = OpTypeFunction %main_out %bool %v4float
|
%155 = OpTypeFunction %main_out %bool %v4float
|
||||||
%test_int_S1_c0_b = OpFunction %bool None %22
|
%test_int_S1_c0_b = OpFunction %bool None %22
|
||||||
%24 = OpLabel
|
%24 = OpLabel
|
||||||
%unknown = OpVariable %_ptr_Function_int Function %28
|
%unknown = OpVariable %_ptr_Function_int Function %28
|
||||||
|
@ -137,72 +132,72 @@
|
||||||
%46 = OpConvertFToS %int %45
|
%46 = OpConvertFToS %int %45
|
||||||
OpStore %unknown %46
|
OpStore %unknown %46
|
||||||
OpStore %ok %true
|
OpStore %ok %true
|
||||||
OpStore %x_41_phi %false
|
OpStore %x_41_phi %20
|
||||||
OpSelectionMerge %49 None
|
OpSelectionMerge %48 None
|
||||||
OpBranchConditional %true %50 %49
|
OpBranchConditional %true %49 %48
|
||||||
%50 = OpLabel
|
|
||||||
%54 = OpCompositeConstruct %v4int %46 %46 %46 %46
|
|
||||||
%55 = OpSDiv %v4int %53 %54
|
|
||||||
%56 = OpIEqual %v4bool %55 %53
|
|
||||||
%51 = OpAll %bool %56
|
|
||||||
OpStore %x_40 %51
|
|
||||||
%58 = OpLoad %bool %x_40
|
|
||||||
OpStore %x_41_phi %58
|
|
||||||
OpBranch %49
|
|
||||||
%49 = OpLabel
|
%49 = OpLabel
|
||||||
%59 = OpLoad %bool %x_41_phi
|
%51 = OpCompositeConstruct %v4int %46 %46 %46 %46
|
||||||
OpStore %ok %59
|
%52 = OpSDiv %v4int %34 %51
|
||||||
%60 = OpCompositeConstruct %v4int %46 %46 %46 %46
|
%53 = OpIEqual %v4bool %52 %34
|
||||||
|
%50 = OpAll %bool %53
|
||||||
|
OpStore %x_40 %50
|
||||||
|
%55 = OpLoad %bool %x_40
|
||||||
|
OpStore %x_41_phi %55
|
||||||
|
OpBranch %48
|
||||||
|
%48 = OpLabel
|
||||||
|
%56 = OpLoad %bool %x_41_phi
|
||||||
|
OpStore %ok %56
|
||||||
|
%57 = OpCompositeConstruct %v4int %46 %46 %46 %46
|
||||||
|
OpStore %val %57
|
||||||
|
%60 = OpIAdd %v4int %57 %59
|
||||||
OpStore %val %60
|
OpStore %val %60
|
||||||
%63 = OpIAdd %v4int %60 %62
|
%61 = OpISub %v4int %60 %59
|
||||||
|
OpStore %val %61
|
||||||
|
%62 = OpIAdd %v4int %61 %59
|
||||||
|
OpStore %val %62
|
||||||
|
%63 = OpISub %v4int %62 %59
|
||||||
OpStore %val %63
|
OpStore %val %63
|
||||||
%64 = OpISub %v4int %63 %62
|
OpStore %x_55_phi %20
|
||||||
OpStore %val %64
|
OpSelectionMerge %64 None
|
||||||
%65 = OpIAdd %v4int %64 %62
|
OpBranchConditional %56 %65 %64
|
||||||
OpStore %val %65
|
%65 = OpLabel
|
||||||
%66 = OpISub %v4int %65 %62
|
%67 = OpIEqual %v4bool %63 %57
|
||||||
OpStore %val %66
|
%66 = OpAll %bool %67
|
||||||
OpStore %x_55_phi %false
|
OpStore %x_54 %66
|
||||||
OpSelectionMerge %67 None
|
%68 = OpLoad %bool %x_54
|
||||||
OpBranchConditional %59 %68 %67
|
OpStore %x_55_phi %68
|
||||||
%68 = OpLabel
|
OpBranch %64
|
||||||
%70 = OpIEqual %v4bool %66 %60
|
%64 = OpLabel
|
||||||
%69 = OpAll %bool %70
|
%69 = OpLoad %bool %x_55_phi
|
||||||
OpStore %x_54 %69
|
OpStore %ok %69
|
||||||
%71 = OpLoad %bool %x_54
|
%72 = OpIMul %v4int %63 %71
|
||||||
OpStore %x_55_phi %71
|
OpStore %val %72
|
||||||
OpBranch %67
|
%73 = OpSDiv %v4int %72 %71
|
||||||
%67 = OpLabel
|
OpStore %val %73
|
||||||
%72 = OpLoad %bool %x_55_phi
|
%74 = OpIMul %v4int %73 %71
|
||||||
OpStore %ok %72
|
OpStore %val %74
|
||||||
%75 = OpIMul %v4int %66 %74
|
%75 = OpSDiv %v4int %74 %71
|
||||||
OpStore %val %75
|
OpStore %val %75
|
||||||
%76 = OpSDiv %v4int %75 %74
|
OpStore %x_66_phi %20
|
||||||
OpStore %val %76
|
OpSelectionMerge %76 None
|
||||||
%77 = OpIMul %v4int %76 %74
|
OpBranchConditional %69 %77 %76
|
||||||
OpStore %val %77
|
%77 = OpLabel
|
||||||
%78 = OpSDiv %v4int %77 %74
|
%79 = OpIEqual %v4bool %75 %57
|
||||||
OpStore %val %78
|
%78 = OpAll %bool %79
|
||||||
OpStore %x_66_phi %false
|
OpStore %x_65 %78
|
||||||
OpSelectionMerge %79 None
|
%80 = OpLoad %bool %x_65
|
||||||
OpBranchConditional %72 %80 %79
|
OpStore %x_66_phi %80
|
||||||
%80 = OpLabel
|
OpBranch %76
|
||||||
%82 = OpIEqual %v4bool %78 %60
|
%76 = OpLabel
|
||||||
%81 = OpAll %bool %82
|
%81 = OpLoad %bool %x_66_phi
|
||||||
OpStore %x_65 %81
|
OpStore %ok %81
|
||||||
%83 = OpLoad %bool %x_65
|
OpReturnValue %81
|
||||||
OpStore %x_66_phi %83
|
|
||||||
OpBranch %79
|
|
||||||
%79 = OpLabel
|
|
||||||
%84 = OpLoad %bool %x_66_phi
|
|
||||||
OpStore %ok %84
|
|
||||||
OpReturnValue %84
|
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %85
|
%main_1 = OpFunction %void None %82
|
||||||
%88 = OpLabel
|
%85 = OpLabel
|
||||||
%outputColor_S0 = OpVariable %_ptr_Function_v4float Function %10
|
%outputColor_S0 = OpVariable %_ptr_Function_v4float Function %10
|
||||||
%output_S1 = OpVariable %_ptr_Function_v4float Function %10
|
%output_S1 = OpVariable %_ptr_Function_v4float Function %10
|
||||||
%x_8_unknown = OpVariable %_ptr_Function_float Function %94
|
%x_8_unknown = OpVariable %_ptr_Function_float Function %91
|
||||||
%x_9_ok = OpVariable %_ptr_Function_bool Function %20
|
%x_9_ok = OpVariable %_ptr_Function_bool Function %20
|
||||||
%x_10_val = OpVariable %_ptr_Function_v4float Function %10
|
%x_10_val = OpVariable %_ptr_Function_v4float Function %10
|
||||||
%x_116 = OpVariable %_ptr_Function_v4float Function %10
|
%x_116 = OpVariable %_ptr_Function_v4float Function %10
|
||||||
|
@ -214,117 +209,117 @@
|
||||||
%x_100_phi = OpVariable %_ptr_Function_bool Function %20
|
%x_100_phi = OpVariable %_ptr_Function_bool Function %20
|
||||||
%x_111_phi = OpVariable %_ptr_Function_bool Function %20
|
%x_111_phi = OpVariable %_ptr_Function_bool Function %20
|
||||||
%x_115_phi = OpVariable %_ptr_Function_bool Function %20
|
%x_115_phi = OpVariable %_ptr_Function_bool Function %20
|
||||||
%106 = OpLoad %v4float %vcolor_S0
|
%103 = OpLoad %v4float %vcolor_S0
|
||||||
OpStore %outputColor_S0 %106
|
OpStore %outputColor_S0 %103
|
||||||
%107 = OpAccessChain %_ptr_Uniform_float %x_4 %uint_0
|
%104 = OpAccessChain %_ptr_Uniform_float %x_4 %uint_0
|
||||||
%108 = OpLoad %float %107
|
%105 = OpLoad %float %104
|
||||||
OpStore %x_8_unknown %108
|
OpStore %x_8_unknown %105
|
||||||
OpStore %x_9_ok %true
|
OpStore %x_9_ok %true
|
||||||
OpStore %x_87_phi %false
|
OpStore %x_87_phi %20
|
||||||
OpSelectionMerge %109 None
|
OpSelectionMerge %106 None
|
||||||
OpBranchConditional %true %110 %109
|
OpBranchConditional %true %107 %106
|
||||||
%110 = OpLabel
|
%107 = OpLabel
|
||||||
%114 = OpCompositeConstruct %v4float %108 %108 %108 %108
|
%109 = OpCompositeConstruct %v4float %105 %105 %105 %105
|
||||||
%115 = OpFDiv %v4float %113 %114
|
%110 = OpFDiv %v4float %10 %109
|
||||||
%116 = OpFOrdEqual %v4bool %115 %113
|
%111 = OpFOrdEqual %v4bool %110 %10
|
||||||
%111 = OpAll %bool %116
|
%108 = OpAll %bool %111
|
||||||
OpStore %x_86 %111
|
OpStore %x_86 %108
|
||||||
%117 = OpLoad %bool %x_86
|
%112 = OpLoad %bool %x_86
|
||||||
OpStore %x_87_phi %117
|
OpStore %x_87_phi %112
|
||||||
OpBranch %109
|
OpBranch %106
|
||||||
%109 = OpLabel
|
%106 = OpLabel
|
||||||
%118 = OpLoad %bool %x_87_phi
|
%113 = OpLoad %bool %x_87_phi
|
||||||
OpStore %x_9_ok %118
|
OpStore %x_9_ok %113
|
||||||
%119 = OpCompositeConstruct %v4float %108 %108 %108 %108
|
%114 = OpCompositeConstruct %v4float %105 %105 %105 %105
|
||||||
|
OpStore %x_10_val %114
|
||||||
|
%117 = OpFAdd %v4float %114 %116
|
||||||
|
OpStore %x_10_val %117
|
||||||
|
%118 = OpFSub %v4float %117 %116
|
||||||
|
OpStore %x_10_val %118
|
||||||
|
%119 = OpFAdd %v4float %118 %116
|
||||||
OpStore %x_10_val %119
|
OpStore %x_10_val %119
|
||||||
%122 = OpFAdd %v4float %119 %121
|
%120 = OpFSub %v4float %119 %116
|
||||||
OpStore %x_10_val %122
|
OpStore %x_10_val %120
|
||||||
%123 = OpFSub %v4float %122 %121
|
OpStore %x_100_phi %20
|
||||||
OpStore %x_10_val %123
|
OpSelectionMerge %121 None
|
||||||
%124 = OpFAdd %v4float %123 %121
|
OpBranchConditional %113 %122 %121
|
||||||
OpStore %x_10_val %124
|
%122 = OpLabel
|
||||||
%125 = OpFSub %v4float %124 %121
|
%124 = OpFOrdEqual %v4bool %120 %114
|
||||||
OpStore %x_10_val %125
|
%123 = OpAll %bool %124
|
||||||
OpStore %x_100_phi %false
|
OpStore %x_99 %123
|
||||||
OpSelectionMerge %126 None
|
%125 = OpLoad %bool %x_99
|
||||||
OpBranchConditional %118 %127 %126
|
OpStore %x_100_phi %125
|
||||||
%127 = OpLabel
|
OpBranch %121
|
||||||
%129 = OpFOrdEqual %v4bool %125 %119
|
%121 = OpLabel
|
||||||
%128 = OpAll %bool %129
|
%126 = OpLoad %bool %x_100_phi
|
||||||
OpStore %x_99 %128
|
OpStore %x_9_ok %126
|
||||||
%130 = OpLoad %bool %x_99
|
%129 = OpFMul %v4float %120 %128
|
||||||
OpStore %x_100_phi %130
|
OpStore %x_10_val %129
|
||||||
OpBranch %126
|
%130 = OpFDiv %v4float %129 %128
|
||||||
%126 = OpLabel
|
OpStore %x_10_val %130
|
||||||
%131 = OpLoad %bool %x_100_phi
|
%131 = OpFMul %v4float %130 %128
|
||||||
OpStore %x_9_ok %131
|
OpStore %x_10_val %131
|
||||||
%134 = OpFMul %v4float %125 %133
|
%132 = OpFDiv %v4float %131 %128
|
||||||
OpStore %x_10_val %134
|
OpStore %x_10_val %132
|
||||||
%135 = OpFDiv %v4float %134 %133
|
OpStore %x_111_phi %20
|
||||||
OpStore %x_10_val %135
|
OpSelectionMerge %133 None
|
||||||
%136 = OpFMul %v4float %135 %133
|
OpBranchConditional %126 %134 %133
|
||||||
OpStore %x_10_val %136
|
%134 = OpLabel
|
||||||
%137 = OpFDiv %v4float %136 %133
|
%136 = OpFOrdEqual %v4bool %132 %114
|
||||||
OpStore %x_10_val %137
|
%135 = OpAll %bool %136
|
||||||
OpStore %x_111_phi %false
|
OpStore %x_110 %135
|
||||||
OpSelectionMerge %138 None
|
%137 = OpLoad %bool %x_110
|
||||||
OpBranchConditional %131 %139 %138
|
OpStore %x_111_phi %137
|
||||||
|
OpBranch %133
|
||||||
|
%133 = OpLabel
|
||||||
|
%138 = OpLoad %bool %x_111_phi
|
||||||
|
OpStore %x_9_ok %138
|
||||||
|
OpStore %x_115_phi %20
|
||||||
|
OpSelectionMerge %139 None
|
||||||
|
OpBranchConditional %138 %140 %139
|
||||||
|
%140 = OpLabel
|
||||||
|
%141 = OpFunctionCall %bool %test_int_S1_c0_b
|
||||||
|
OpStore %x_114 %141
|
||||||
|
%142 = OpLoad %bool %x_114
|
||||||
|
OpStore %x_115_phi %142
|
||||||
|
OpBranch %139
|
||||||
%139 = OpLabel
|
%139 = OpLabel
|
||||||
%141 = OpFOrdEqual %v4bool %137 %119
|
%143 = OpLoad %bool %x_115_phi
|
||||||
%140 = OpAll %bool %141
|
|
||||||
OpStore %x_110 %140
|
|
||||||
%142 = OpLoad %bool %x_110
|
|
||||||
OpStore %x_111_phi %142
|
|
||||||
OpBranch %138
|
|
||||||
%138 = OpLabel
|
|
||||||
%143 = OpLoad %bool %x_111_phi
|
|
||||||
OpStore %x_9_ok %143
|
|
||||||
OpStore %x_115_phi %false
|
|
||||||
OpSelectionMerge %144 None
|
OpSelectionMerge %144 None
|
||||||
OpBranchConditional %143 %145 %144
|
OpBranchConditional %143 %145 %146
|
||||||
%145 = OpLabel
|
%145 = OpLabel
|
||||||
%146 = OpFunctionCall %bool %test_int_S1_c0_b
|
%149 = OpAccessChain %_ptr_Uniform_v4float %x_4 %uint_2
|
||||||
OpStore %x_114 %146
|
%150 = OpLoad %v4float %149
|
||||||
%147 = OpLoad %bool %x_114
|
OpStore %x_116 %150
|
||||||
OpStore %x_115_phi %147
|
OpBranch %144
|
||||||
|
%146 = OpLabel
|
||||||
|
%152 = OpAccessChain %_ptr_Uniform_v4float %x_4 %uint_1
|
||||||
|
%153 = OpLoad %v4float %152
|
||||||
|
OpStore %x_116 %153
|
||||||
OpBranch %144
|
OpBranch %144
|
||||||
%144 = OpLabel
|
%144 = OpLabel
|
||||||
%148 = OpLoad %bool %x_115_phi
|
%154 = OpLoad %v4float %x_116
|
||||||
OpSelectionMerge %149 None
|
OpStore %output_S1 %154
|
||||||
OpBranchConditional %148 %150 %151
|
OpStore %sk_FragColor %154
|
||||||
%150 = OpLabel
|
|
||||||
%154 = OpAccessChain %_ptr_Uniform_v4float %x_4 %uint_2
|
|
||||||
%155 = OpLoad %v4float %154
|
|
||||||
OpStore %x_116 %155
|
|
||||||
OpBranch %149
|
|
||||||
%151 = OpLabel
|
|
||||||
%157 = OpAccessChain %_ptr_Uniform_v4float %x_4 %uint_1
|
|
||||||
%158 = OpLoad %v4float %157
|
|
||||||
OpStore %x_116 %158
|
|
||||||
OpBranch %149
|
|
||||||
%149 = OpLabel
|
|
||||||
%159 = OpLoad %v4float %x_116
|
|
||||||
OpStore %output_S1 %159
|
|
||||||
OpStore %sk_FragColor %159
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %160
|
%main_inner = OpFunction %main_out None %155
|
||||||
%sk_Clockwise_param = OpFunctionParameter %bool
|
%sk_Clockwise_param = OpFunctionParameter %bool
|
||||||
%vcolor_S0_param = OpFunctionParameter %v4float
|
%vcolor_S0_param = OpFunctionParameter %v4float
|
||||||
%165 = OpLabel
|
%160 = OpLabel
|
||||||
OpStore %sk_Clockwise %sk_Clockwise_param
|
OpStore %sk_Clockwise %sk_Clockwise_param
|
||||||
OpStore %vcolor_S0 %vcolor_S0_param
|
OpStore %vcolor_S0 %vcolor_S0_param
|
||||||
%166 = OpFunctionCall %void %main_1
|
%161 = OpFunctionCall %void %main_1
|
||||||
%167 = OpLoad %v4float %sk_FragColor
|
%162 = OpLoad %v4float %sk_FragColor
|
||||||
%168 = OpCompositeConstruct %main_out %167
|
%163 = OpCompositeConstruct %main_out %162
|
||||||
OpReturnValue %168
|
OpReturnValue %163
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %85
|
%main = OpFunction %void None %82
|
||||||
%170 = OpLabel
|
%165 = OpLabel
|
||||||
%172 = OpLoad %bool %sk_Clockwise_param_1
|
%167 = OpLoad %bool %sk_Clockwise_param_1
|
||||||
%173 = OpLoad %v4float %vcolor_S0_param_1
|
%168 = OpLoad %v4float %vcolor_S0_param_1
|
||||||
%171 = OpFunctionCall %main_out %main_inner %172 %173
|
%166 = OpFunctionCall %main_out %main_inner %167 %168
|
||||||
%174 = OpCompositeExtract %v4float %171 0
|
%169 = OpCompositeExtract %v4float %166 0
|
||||||
OpStore %sk_FragColor_1_1 %174
|
OpStore %sk_FragColor_1_1 %169
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 13
|
; Bound: 12
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -12,15 +12,14 @@
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%1 = OpTypeFunction %void
|
%1 = OpTypeFunction %void
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%7 = OpConstantNull %bool
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%12 = OpConstantNull %bool
|
|
||||||
%main = OpFunction %void None %1
|
%main = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
%v = OpVariable %_ptr_Function_bool Function %12
|
%v = OpVariable %_ptr_Function_bool Function %7
|
||||||
%9 = OpLogicalAnd %bool %true %true
|
%9 = OpLogicalAnd %bool %true %true
|
||||||
%5 = OpSelect %bool %false %true %9
|
%5 = OpSelect %bool %7 %true %9
|
||||||
OpStore %v %5
|
OpStore %v %5
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
OpStore %value %uint_42
|
OpStore %value %uint_42
|
||||||
%20 = OpAccessChain %_ptr_StorageBuffer_uint %a %uint_0
|
%20 = OpAccessChain %_ptr_StorageBuffer_uint %a %uint_0
|
||||||
%21 = OpLoad %uint %value
|
%21 = OpLoad %uint %value
|
||||||
%22 = OpAtomicCompareExchange %uint %20 %uint_1 %uint_0 %uint_0 %21 %uint_0
|
%22 = OpAtomicCompareExchange %uint %20 %uint_1 %uint_0 %uint_0 %21 %12
|
||||||
%23 = OpIEqual %bool %22 %21
|
%23 = OpIEqual %bool %22 %21
|
||||||
%13 = OpCompositeConstruct %__atomic_compare_exchange_resultu32 %22 %23
|
%13 = OpCompositeConstruct %__atomic_compare_exchange_resultu32 %22 %23
|
||||||
OpReturn
|
OpReturn
|
||||||
|
|
|
@ -27,44 +27,44 @@
|
||||||
%b = OpVariable %_ptr_StorageBuffer_Buf StorageBuffer
|
%b = OpVariable %_ptr_StorageBuffer_Buf StorageBuffer
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%7 = OpTypeFunction %void
|
%7 = OpTypeFunction %void
|
||||||
%uint_0 = OpConstant %uint 0
|
%11 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%14 = OpConstantNull %uint
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%main = OpFunction %void None %7
|
%main = OpFunction %void None %7
|
||||||
%10 = OpLabel
|
%10 = OpLabel
|
||||||
%i = OpVariable %_ptr_Function_uint Function %14
|
%i = OpVariable %_ptr_Function_uint Function %11
|
||||||
OpStore %i %uint_0
|
OpStore %i %11
|
||||||
OpBranch %15
|
OpBranch %14
|
||||||
%15 = OpLabel
|
%14 = OpLabel
|
||||||
OpLoopMerge %16 %17 None
|
OpLoopMerge %15 %16 None
|
||||||
OpBranch %18
|
OpBranch %17
|
||||||
%18 = OpLabel
|
%17 = OpLabel
|
||||||
%19 = OpLoad %uint %i
|
%18 = OpLoad %uint %i
|
||||||
%21 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_0
|
%21 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_0
|
||||||
%22 = OpLoad %uint %21
|
%22 = OpLoad %uint %21
|
||||||
%23 = OpUGreaterThanEqual %bool %19 %22
|
%23 = OpUGreaterThanEqual %bool %18 %22
|
||||||
OpSelectionMerge %25 None
|
OpSelectionMerge %25 None
|
||||||
OpBranchConditional %23 %26 %25
|
OpBranchConditional %23 %26 %25
|
||||||
%26 = OpLabel
|
%26 = OpLabel
|
||||||
OpBranch %16
|
OpBranch %15
|
||||||
%25 = OpLabel
|
%25 = OpLabel
|
||||||
%27 = OpLoad %uint %i
|
%27 = OpLoad %uint %i
|
||||||
%28 = OpLoad %uint %i
|
%28 = OpLoad %uint %i
|
||||||
%30 = OpUMod %uint %28 %uint_2
|
%30 = OpUMod %uint %28 %uint_2
|
||||||
%31 = OpIEqual %bool %30 %uint_0
|
%31 = OpIEqual %bool %30 %11
|
||||||
OpSelectionMerge %32 None
|
OpSelectionMerge %32 None
|
||||||
OpBranchConditional %31 %33 %32
|
OpBranchConditional %31 %33 %32
|
||||||
%33 = OpLabel
|
%33 = OpLabel
|
||||||
OpBranch %17
|
OpBranch %16
|
||||||
%32 = OpLabel
|
%32 = OpLabel
|
||||||
%35 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
%35 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
||||||
OpStore %35 %uint_0
|
OpStore %35 %11
|
||||||
OpBranch %17
|
OpBranch %16
|
||||||
%17 = OpLabel
|
%16 = OpLabel
|
||||||
%36 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
%36 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
||||||
%37 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
%37 = OpAccessChain %_ptr_StorageBuffer_uint %b %uint_1 %27
|
||||||
%38 = OpLoad %uint %37
|
%38 = OpLoad %uint %37
|
||||||
|
@ -73,7 +73,7 @@
|
||||||
%40 = OpLoad %uint %i
|
%40 = OpLoad %uint %i
|
||||||
%41 = OpIAdd %uint %40 %uint_1
|
%41 = OpIAdd %uint %40 %uint_1
|
||||||
OpStore %i %41
|
OpStore %i %41
|
||||||
OpBranch %15
|
OpBranch %14
|
||||||
%16 = OpLabel
|
%15 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -70,8 +70,8 @@
|
||||||
%39 = OpConstantComposite %v2float %float_n1 %float_n1
|
%39 = OpConstantComposite %v2float %float_n1 %float_n1
|
||||||
%40 = OpConstantComposite %_arr_v2float_uint_3 %37 %38 %39
|
%40 = OpConstantComposite %_arr_v2float_uint_3 %37 %38 %39
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
|
%44 = OpConstantNull %uint
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%57 = OpTypeFunction %void
|
%57 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %v4float None %20
|
%main_inner = OpFunction %v4float None %20
|
||||||
|
@ -85,17 +85,17 @@
|
||||||
OpStore %indexable %40
|
OpStore %indexable %40
|
||||||
%42 = OpAccessChain %_ptr_Function_v2float %indexable %gl_VertexIndex
|
%42 = OpAccessChain %_ptr_Function_v2float %indexable %gl_VertexIndex
|
||||||
%43 = OpLoad %v2float %42
|
%43 = OpLoad %v2float %42
|
||||||
%44 = OpCompositeExtract %v2float %32 0
|
%45 = OpCompositeExtract %v2float %32 0
|
||||||
%45 = OpCompositeExtract %v2float %34 0
|
%46 = OpCompositeExtract %v2float %34 0
|
||||||
%46 = OpFAdd %v2float %44 %45
|
%47 = OpFAdd %v2float %45 %46
|
||||||
%48 = OpCompositeExtract %v2float %32 1
|
%49 = OpCompositeExtract %v2float %32 1
|
||||||
%49 = OpCompositeExtract %v2float %34 1
|
%50 = OpCompositeExtract %v2float %34 1
|
||||||
%50 = OpFAdd %v2float %48 %49
|
%51 = OpFAdd %v2float %49 %50
|
||||||
%51 = OpCompositeConstruct %mat2v2float %46 %50
|
%52 = OpCompositeConstruct %mat2v2float %47 %51
|
||||||
%52 = OpMatrixTimesVector %v2float %51 %43
|
%53 = OpMatrixTimesVector %v2float %52 %43
|
||||||
%53 = OpCompositeExtract %float %52 0
|
%54 = OpCompositeExtract %float %53 0
|
||||||
%54 = OpCompositeExtract %float %52 1
|
%55 = OpCompositeExtract %float %53 1
|
||||||
%56 = OpCompositeConstruct %v4float %53 %54 %float_0 %float_1
|
%56 = OpCompositeConstruct %v4float %54 %55 %11 %float_1
|
||||||
OpReturnValue %56
|
OpReturnValue %56
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %57
|
%main = OpFunction %void None %57
|
||||||
|
|
|
@ -31,8 +31,8 @@
|
||||||
%15 = OpConstantNull %v4uint
|
%15 = OpConstantNull %v4uint
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%int_0 = OpConstant %int 0
|
%20 = OpConstantNull %v2int
|
||||||
%21 = OpConstantComposite %v2int %int_0 %int_0
|
%21 = OpConstantNull %int
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
%11 = OpLabel
|
%11 = OpLabel
|
||||||
%srcValue = OpVariable %_ptr_Function_v4uint Function %15
|
%srcValue = OpVariable %_ptr_Function_v4uint Function %15
|
||||||
%17 = OpLoad %3 %Src
|
%17 = OpLoad %3 %Src
|
||||||
%16 = OpImageFetch %v4uint %17 %21 Lod %int_0
|
%16 = OpImageFetch %v4uint %17 %20 Lod %21
|
||||||
OpStore %srcValue %16
|
OpStore %srcValue %16
|
||||||
%24 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0
|
%24 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0
|
||||||
%25 = OpLoad %uint %24
|
%25 = OpLoad %uint %24
|
||||||
|
@ -50,7 +50,7 @@
|
||||||
OpStore %26 %29
|
OpStore %26 %29
|
||||||
%30 = OpLoad %v4uint %srcValue
|
%30 = OpLoad %v4uint %srcValue
|
||||||
%32 = OpLoad %7 %Dst
|
%32 = OpLoad %7 %Dst
|
||||||
OpImageWrite %32 %21 %30
|
OpImageWrite %32 %20 %30
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %8
|
%main = OpFunction %void None %8
|
||||||
|
|
|
@ -30,8 +30,8 @@
|
||||||
%15 = OpConstantNull %v4uint
|
%15 = OpConstantNull %v4uint
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%int_0 = OpConstant %int 0
|
%20 = OpConstantNull %v2int
|
||||||
%21 = OpConstantComposite %v2int %int_0 %int_0
|
%21 = OpConstantNull %int
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
%11 = OpLabel
|
%11 = OpLabel
|
||||||
%srcValue = OpVariable %_ptr_Function_v4uint Function %15
|
%srcValue = OpVariable %_ptr_Function_v4uint Function %15
|
||||||
%17 = OpLoad %3 %Src
|
%17 = OpLoad %3 %Src
|
||||||
%16 = OpImageFetch %v4uint %17 %21 Lod %int_0
|
%16 = OpImageFetch %v4uint %17 %20 Lod %21
|
||||||
OpStore %srcValue %16
|
OpStore %srcValue %16
|
||||||
%24 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0
|
%24 = OpAccessChain %_ptr_Function_uint %srcValue %uint_0
|
||||||
%25 = OpLoad %uint %24
|
%25 = OpLoad %uint %24
|
||||||
|
@ -47,6 +47,6 @@
|
||||||
%28 = OpLoad %v4uint %srcValue
|
%28 = OpLoad %v4uint %srcValue
|
||||||
%30 = OpLoad %7 %Dst
|
%30 = OpLoad %7 %Dst
|
||||||
%31 = OpVectorShuffle %v4uint %28 %28 0 0 0 0
|
%31 = OpVectorShuffle %v4uint %28 %28 0 0 0 0
|
||||||
OpImageWrite %30 %21 %31
|
OpImageWrite %30 %20 %31
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 137
|
; Bound: 138
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability ImageQuery
|
OpCapability ImageQuery
|
||||||
|
@ -85,20 +85,21 @@
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%v4float = OpTypeVector %float 4
|
%v4float = OpTypeVector %float 4
|
||||||
|
%62 = OpConstantNull %int
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%64 = OpConstantNull %v4float
|
%65 = OpConstantNull %v4float
|
||||||
%true = OpConstantTrue %bool
|
%true = OpConstantTrue %bool
|
||||||
%_ptr_Function_bool = OpTypePointer Function %bool
|
%_ptr_Function_bool = OpTypePointer Function %bool
|
||||||
%72 = OpConstantNull %bool
|
%73 = OpConstantNull %bool
|
||||||
%v4uint = OpTypeVector %uint 4
|
%v4uint = OpTypeVector %uint 4
|
||||||
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
||||||
%76 = OpConstantNull %v4uint
|
%77 = OpConstantNull %v4uint
|
||||||
|
%81 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%82 = OpConstantNull %uint
|
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%132 = OpTypeFunction %void
|
%133 = OpTypeFunction %void
|
||||||
%ConvertToFp16FloatValue = OpFunction %uint None %17
|
%ConvertToFp16FloatValue = OpFunction %uint None %17
|
||||||
%fp32 = OpFunctionParameter %float
|
%fp32 = OpFunctionParameter %float
|
||||||
%20 = OpLabel
|
%20 = OpLabel
|
||||||
|
@ -110,13 +111,13 @@
|
||||||
%size = OpVariable %_ptr_Function_v2int Function %34
|
%size = OpVariable %_ptr_Function_v2int Function %34
|
||||||
%dstTexCoord = OpVariable %_ptr_Function_v2int Function %34
|
%dstTexCoord = OpVariable %_ptr_Function_v2int Function %34
|
||||||
%srcTexCoord = OpVariable %_ptr_Function_v2int Function %34
|
%srcTexCoord = OpVariable %_ptr_Function_v2int Function %34
|
||||||
%srcColor = OpVariable %_ptr_Function_v4float Function %64
|
%srcColor = OpVariable %_ptr_Function_v4float Function %65
|
||||||
%dstColor = OpVariable %_ptr_Function_v4float Function %64
|
%dstColor = OpVariable %_ptr_Function_v4float Function %65
|
||||||
%success = OpVariable %_ptr_Function_bool Function %72
|
%success = OpVariable %_ptr_Function_bool Function %73
|
||||||
%srcColorBits = OpVariable %_ptr_Function_v4uint Function %76
|
%srcColorBits = OpVariable %_ptr_Function_v4uint Function %77
|
||||||
%dstColorBits = OpVariable %_ptr_Function_v4uint Function %76
|
%dstColorBits = OpVariable %_ptr_Function_v4uint Function %77
|
||||||
%i = OpVariable %_ptr_Function_uint Function %82
|
%i = OpVariable %_ptr_Function_uint Function %81
|
||||||
%outputIndex = OpVariable %_ptr_Function_uint Function %82
|
%outputIndex = OpVariable %_ptr_Function_uint Function %81
|
||||||
%30 = OpLoad %7 %src
|
%30 = OpLoad %7 %src
|
||||||
%27 = OpImageQuerySizeLod %v2int %30 %int_0
|
%27 = OpImageQuerySizeLod %v2int %30 %int_0
|
||||||
OpStore %size %27
|
OpStore %size %27
|
||||||
|
@ -143,88 +144,88 @@
|
||||||
%47 = OpLabel
|
%47 = OpLabel
|
||||||
%60 = OpLoad %7 %src
|
%60 = OpLoad %7 %src
|
||||||
%61 = OpLoad %v2int %srcTexCoord
|
%61 = OpLoad %v2int %srcTexCoord
|
||||||
%58 = OpImageFetch %v4float %60 %61 Lod %int_0
|
%58 = OpImageFetch %v4float %60 %61 Lod %62
|
||||||
OpStore %srcColor %58
|
OpStore %srcColor %58
|
||||||
%66 = OpLoad %7 %dst
|
%67 = OpLoad %7 %dst
|
||||||
%67 = OpLoad %v2int %dstTexCoord
|
%68 = OpLoad %v2int %dstTexCoord
|
||||||
%65 = OpImageFetch %v4float %66 %67 Lod %int_0
|
%66 = OpImageFetch %v4float %67 %68 Lod %62
|
||||||
OpStore %dstColor %65
|
OpStore %dstColor %66
|
||||||
OpStore %success %true
|
OpStore %success %true
|
||||||
%78 = OpLoad %v4float %dstColor
|
%79 = OpLoad %v4float %dstColor
|
||||||
%77 = OpConvertFToU %v4uint %78
|
%78 = OpConvertFToU %v4uint %79
|
||||||
OpStore %dstColorBits %77
|
OpStore %dstColorBits %78
|
||||||
OpStore %i %uint_0
|
OpStore %i %81
|
||||||
OpBranch %83
|
OpBranch %84
|
||||||
%83 = OpLabel
|
%84 = OpLabel
|
||||||
OpLoopMerge %84 %85 None
|
OpLoopMerge %85 %86 None
|
||||||
|
OpBranch %87
|
||||||
|
%87 = OpLabel
|
||||||
|
%89 = OpLoad %uint %i
|
||||||
|
%91 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
|
||||||
|
%92 = OpLoad %uint %91
|
||||||
|
%93 = OpULessThan %bool %89 %92
|
||||||
|
%88 = OpLogicalNot %bool %93
|
||||||
|
OpSelectionMerge %94 None
|
||||||
|
OpBranchConditional %88 %95 %94
|
||||||
|
%95 = OpLabel
|
||||||
|
OpBranch %85
|
||||||
|
%94 = OpLabel
|
||||||
|
%97 = OpLoad %uint %i
|
||||||
|
%99 = OpAccessChain %_ptr_Function_float %srcColor %97
|
||||||
|
%100 = OpLoad %float %99
|
||||||
|
%96 = OpFunctionCall %uint %ConvertToFp16FloatValue %100
|
||||||
|
%101 = OpLoad %uint %i
|
||||||
|
%102 = OpAccessChain %_ptr_Function_uint %srcColorBits %101
|
||||||
|
OpStore %102 %96
|
||||||
|
%103 = OpLoad %bool %success
|
||||||
|
OpSelectionMerge %104 None
|
||||||
|
OpBranchConditional %103 %105 %104
|
||||||
|
%105 = OpLabel
|
||||||
|
%106 = OpLoad %uint %i
|
||||||
|
%107 = OpAccessChain %_ptr_Function_uint %srcColorBits %106
|
||||||
|
%108 = OpLoad %uint %107
|
||||||
|
%109 = OpLoad %uint %i
|
||||||
|
%110 = OpAccessChain %_ptr_Function_uint %dstColorBits %109
|
||||||
|
%111 = OpLoad %uint %110
|
||||||
|
%112 = OpIEqual %bool %108 %111
|
||||||
|
OpBranch %104
|
||||||
|
%104 = OpLabel
|
||||||
|
%113 = OpPhi %bool %103 %94 %112 %105
|
||||||
|
OpStore %success %113
|
||||||
OpBranch %86
|
OpBranch %86
|
||||||
%86 = OpLabel
|
%86 = OpLabel
|
||||||
%88 = OpLoad %uint %i
|
%114 = OpLoad %uint %i
|
||||||
%90 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_3
|
%115 = OpIAdd %uint %114 %uint_1
|
||||||
%91 = OpLoad %uint %90
|
OpStore %i %115
|
||||||
%92 = OpULessThan %bool %88 %91
|
|
||||||
%87 = OpLogicalNot %bool %92
|
|
||||||
OpSelectionMerge %93 None
|
|
||||||
OpBranchConditional %87 %94 %93
|
|
||||||
%94 = OpLabel
|
|
||||||
OpBranch %84
|
OpBranch %84
|
||||||
%93 = OpLabel
|
|
||||||
%96 = OpLoad %uint %i
|
|
||||||
%98 = OpAccessChain %_ptr_Function_float %srcColor %96
|
|
||||||
%99 = OpLoad %float %98
|
|
||||||
%95 = OpFunctionCall %uint %ConvertToFp16FloatValue %99
|
|
||||||
%100 = OpLoad %uint %i
|
|
||||||
%101 = OpAccessChain %_ptr_Function_uint %srcColorBits %100
|
|
||||||
OpStore %101 %95
|
|
||||||
%102 = OpLoad %bool %success
|
|
||||||
OpSelectionMerge %103 None
|
|
||||||
OpBranchConditional %102 %104 %103
|
|
||||||
%104 = OpLabel
|
|
||||||
%105 = OpLoad %uint %i
|
|
||||||
%106 = OpAccessChain %_ptr_Function_uint %srcColorBits %105
|
|
||||||
%107 = OpLoad %uint %106
|
|
||||||
%108 = OpLoad %uint %i
|
|
||||||
%109 = OpAccessChain %_ptr_Function_uint %dstColorBits %108
|
|
||||||
%110 = OpLoad %uint %109
|
|
||||||
%111 = OpIEqual %bool %107 %110
|
|
||||||
OpBranch %103
|
|
||||||
%103 = OpLabel
|
|
||||||
%112 = OpPhi %bool %102 %93 %111 %104
|
|
||||||
OpStore %success %112
|
|
||||||
OpBranch %85
|
|
||||||
%85 = OpLabel
|
%85 = OpLabel
|
||||||
%113 = OpLoad %uint %i
|
%116 = OpCompositeExtract %uint %GlobalInvocationID 1
|
||||||
%114 = OpIAdd %uint %113 %uint_1
|
%118 = OpAccessChain %_ptr_Function_int %size %uint_0
|
||||||
OpStore %i %114
|
%119 = OpLoad %int %118
|
||||||
OpBranch %83
|
%117 = OpBitcast %uint %119
|
||||||
%84 = OpLabel
|
%120 = OpIMul %uint %116 %117
|
||||||
%115 = OpCompositeExtract %uint %GlobalInvocationID 1
|
%121 = OpCompositeExtract %uint %GlobalInvocationID 0
|
||||||
%117 = OpAccessChain %_ptr_Function_int %size %uint_0
|
%122 = OpIAdd %uint %120 %121
|
||||||
%118 = OpLoad %int %117
|
OpStore %outputIndex %122
|
||||||
%116 = OpBitcast %uint %118
|
%124 = OpLoad %bool %success
|
||||||
%119 = OpIMul %uint %115 %116
|
OpSelectionMerge %125 None
|
||||||
%120 = OpCompositeExtract %uint %GlobalInvocationID 0
|
OpBranchConditional %124 %126 %127
|
||||||
%121 = OpIAdd %uint %119 %120
|
|
||||||
OpStore %outputIndex %121
|
|
||||||
%123 = OpLoad %bool %success
|
|
||||||
OpSelectionMerge %124 None
|
|
||||||
OpBranchConditional %123 %125 %126
|
|
||||||
%125 = OpLabel
|
|
||||||
%127 = OpLoad %uint %outputIndex
|
|
||||||
%129 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %127
|
|
||||||
OpStore %129 %uint_1
|
|
||||||
OpBranch %124
|
|
||||||
%126 = OpLabel
|
%126 = OpLabel
|
||||||
%130 = OpLoad %uint %outputIndex
|
%128 = OpLoad %uint %outputIndex
|
||||||
%131 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %130
|
%130 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %128
|
||||||
OpStore %131 %uint_0
|
OpStore %130 %uint_1
|
||||||
OpBranch %124
|
OpBranch %125
|
||||||
%124 = OpLabel
|
%127 = OpLabel
|
||||||
|
%131 = OpLoad %uint %outputIndex
|
||||||
|
%132 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %131
|
||||||
|
OpStore %132 %81
|
||||||
|
OpBranch %125
|
||||||
|
%125 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %132
|
%main = OpFunction %void None %133
|
||||||
%134 = OpLabel
|
%135 = OpLabel
|
||||||
%136 = OpLoad %v3uint %GlobalInvocationID_1
|
%137 = OpLoad %v3uint %GlobalInvocationID_1
|
||||||
%135 = OpFunctionCall %void %main_inner %136
|
%136 = OpFunctionCall %void %main_inner %137
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -63,16 +63,16 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
|
%31 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%33 = OpConstantNull %uint
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%69 = OpTypeFunction %void
|
%69 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %void None %15
|
%main_inner = OpFunction %void None %15
|
||||||
%global_id = OpFunctionParameter %v3uint
|
%global_id = OpFunctionParameter %v3uint
|
||||||
%19 = OpLabel
|
%19 = OpLabel
|
||||||
%result = OpVariable %_ptr_Function_uint Function %33
|
%result = OpVariable %_ptr_Function_uint Function %31
|
||||||
%i = OpVariable %_ptr_Function_uint Function %33
|
%i = OpVariable %_ptr_Function_uint Function %31
|
||||||
%20 = OpCompositeExtract %uint %global_id 1
|
%20 = OpCompositeExtract %uint %global_id 1
|
||||||
%21 = OpCompositeExtract %uint %global_id 0
|
%21 = OpCompositeExtract %uint %global_id 0
|
||||||
%22 = OpCompositeConstruct %v2uint %20 %21
|
%22 = OpCompositeConstruct %v2uint %20 %21
|
||||||
|
@ -80,8 +80,8 @@
|
||||||
%27 = OpLoad %uint %26
|
%27 = OpLoad %uint %26
|
||||||
%29 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
|
%29 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_2 %uint_1
|
||||||
%30 = OpLoad %uint %29
|
%30 = OpLoad %uint %29
|
||||||
OpStore %result %uint_0
|
OpStore %result %31
|
||||||
OpStore %i %uint_0
|
OpStore %i %31
|
||||||
OpBranch %35
|
OpBranch %35
|
||||||
%35 = OpLabel
|
%35 = OpLabel
|
||||||
OpLoopMerge %36 %37 None
|
OpLoopMerge %36 %37 None
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -60,11 +60,11 @@
|
||||||
%v3int = OpTypeVector %int 3
|
%v3int = OpTypeVector %int 3
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%v2uint = OpTypeVector %uint 2
|
%v2uint = OpTypeVector %uint 2
|
||||||
%int_0 = OpConstant %int 0
|
%47 = OpConstantNull %int
|
||||||
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
%_ptr_Function_v4float = OpTypePointer Function %v4float
|
||||||
%51 = OpConstantNull %v4float
|
%51 = OpConstantNull %v4float
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%74 = OpTypeFunction %void
|
%74 = OpTypeFunction %void
|
||||||
|
@ -91,23 +91,23 @@
|
||||||
%41 = OpBitcast %v2int %44
|
%41 = OpBitcast %v2int %44
|
||||||
%45 = OpCompositeExtract %int %41 0
|
%45 = OpCompositeExtract %int %41 0
|
||||||
%46 = OpCompositeExtract %int %41 1
|
%46 = OpCompositeExtract %int %41 1
|
||||||
%48 = OpCompositeConstruct %v3int %45 %46 %int_0
|
%48 = OpCompositeConstruct %v3int %45 %46 %47
|
||||||
%37 = OpImageFetch %v4float %39 %48 Lod %int_0
|
%37 = OpImageFetch %v4float %39 %48 Lod %47
|
||||||
OpStore %texel %37
|
OpStore %texel %37
|
||||||
OpStore %i %uint_0
|
OpStore %i %33
|
||||||
OpBranch %54
|
OpBranch %53
|
||||||
%54 = OpLabel
|
%53 = OpLabel
|
||||||
OpLoopMerge %55 %56 None
|
OpLoopMerge %54 %55 None
|
||||||
OpBranch %57
|
OpBranch %56
|
||||||
%57 = OpLabel
|
%56 = OpLabel
|
||||||
%59 = OpLoad %uint %i
|
%58 = OpLoad %uint %i
|
||||||
%60 = OpULessThan %bool %59 %uint_1
|
%59 = OpULessThan %bool %58 %uint_1
|
||||||
%58 = OpLogicalNot %bool %60
|
%57 = OpLogicalNot %bool %59
|
||||||
OpSelectionMerge %62 None
|
OpSelectionMerge %61 None
|
||||||
OpBranchConditional %58 %63 %62
|
OpBranchConditional %57 %62 %61
|
||||||
%63 = OpLabel
|
|
||||||
OpBranch %55
|
|
||||||
%62 = OpLabel
|
%62 = OpLabel
|
||||||
|
OpBranch %54
|
||||||
|
%61 = OpLabel
|
||||||
%64 = OpLoad %uint %flatIndex
|
%64 = OpLoad %uint %flatIndex
|
||||||
%65 = OpLoad %uint %i
|
%65 = OpLoad %uint %i
|
||||||
%66 = OpIAdd %uint %64 %65
|
%66 = OpIAdd %uint %64 %65
|
||||||
|
@ -115,13 +115,13 @@
|
||||||
%70 = OpAccessChain %_ptr_Function_float %texel %uint_0
|
%70 = OpAccessChain %_ptr_Function_float %texel %uint_0
|
||||||
%71 = OpLoad %float %70
|
%71 = OpLoad %float %70
|
||||||
OpStore %68 %71
|
OpStore %68 %71
|
||||||
OpBranch %56
|
OpBranch %55
|
||||||
%56 = OpLabel
|
%55 = OpLabel
|
||||||
%72 = OpLoad %uint %i
|
%72 = OpLoad %uint %i
|
||||||
%73 = OpIAdd %uint %72 %uint_1
|
%73 = OpIAdd %uint %72 %uint_1
|
||||||
OpStore %i %73
|
OpStore %i %73
|
||||||
OpBranch %54
|
OpBranch %53
|
||||||
%55 = OpLabel
|
%54 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %74
|
%main = OpFunction %void None %74
|
||||||
|
|
|
@ -18,7 +18,7 @@
|
||||||
%11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
%11 = OpConstantComposite %v4float %float_1 %float_1 %float_1 %float_1
|
||||||
%12 = OpConstantComposite %mat4v4float %11 %11 %11 %11
|
%12 = OpConstantComposite %mat4v4float %11 %11 %11 %11
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%14 = OpConstantNull %int
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
%v4float = OpTypeVector %float 4
|
%v4float = OpTypeVector %float 4
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%int_0 = OpConstant %int 0
|
%37 = OpConstantNull %int
|
||||||
%38 = OpTypeFunction %void
|
%38 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %void None %14
|
%main_inner = OpFunction %void None %14
|
||||||
%GlobalInvocationId = OpFunctionParameter %v3uint
|
%GlobalInvocationId = OpFunctionParameter %v3uint
|
||||||
|
@ -60,7 +60,7 @@
|
||||||
%35 = OpCompositeExtract %uint %GlobalInvocationId 1
|
%35 = OpCompositeExtract %uint %GlobalInvocationId 1
|
||||||
%34 = OpBitcast %int %35
|
%34 = OpBitcast %int %35
|
||||||
%36 = OpCompositeConstruct %v2int %32 %34
|
%36 = OpCompositeConstruct %v2int %32 %34
|
||||||
%27 = OpImageFetch %v4float %29 %36 Lod %int_0
|
%27 = OpImageFetch %v4float %29 %36 Lod %37
|
||||||
%26 = OpCompositeExtract %float %27 0
|
%26 = OpCompositeExtract %float %27 0
|
||||||
OpStore %25 %26
|
OpStore %25 %26
|
||||||
OpReturn
|
OpReturn
|
||||||
|
|
|
@ -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: 49
|
; Bound: 50
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -45,8 +45,9 @@
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%_ptr_StorageBuffer__arr_int_uint_6 = OpTypePointer StorageBuffer %_arr_int_uint_6
|
%_ptr_StorageBuffer__arr_int_uint_6 = OpTypePointer StorageBuffer %_arr_int_uint_6
|
||||||
%int_0 = OpConstant %int 0
|
%23 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
|
%26 = OpConstantNull %uint
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
|
@ -61,28 +62,28 @@
|
||||||
%orientation = OpVariable %_ptr_Function__arr_int_uint_6 Function %17
|
%orientation = OpVariable %_ptr_Function__arr_int_uint_6 Function %17
|
||||||
%21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_6 %sspp962805860buildInformation %uint_0 %uint_3
|
%21 = OpAccessChain %_ptr_StorageBuffer__arr_int_uint_6 %sspp962805860buildInformation %uint_0 %uint_3
|
||||||
%22 = OpLoad %_arr_int_uint_6 %21
|
%22 = OpLoad %_arr_int_uint_6 %21
|
||||||
%25 = OpAccessChain %_ptr_Function_int %orientation %int_0
|
%25 = OpAccessChain %_ptr_Function_int %orientation %23
|
||||||
%26 = OpCompositeExtract %int %22 0
|
%27 = OpCompositeExtract %int %22 0
|
||||||
OpStore %25 %26
|
OpStore %25 %27
|
||||||
%28 = OpAccessChain %_ptr_Function_int %orientation %int_1
|
%29 = OpAccessChain %_ptr_Function_int %orientation %int_1
|
||||||
%30 = OpCompositeExtract %int %22 1
|
%31 = OpCompositeExtract %int %22 1
|
||||||
OpStore %28 %30
|
OpStore %29 %31
|
||||||
%32 = OpAccessChain %_ptr_Function_int %orientation %int_2
|
%33 = OpAccessChain %_ptr_Function_int %orientation %int_2
|
||||||
%34 = OpCompositeExtract %int %22 2
|
%35 = OpCompositeExtract %int %22 2
|
||||||
OpStore %32 %34
|
OpStore %33 %35
|
||||||
%36 = OpAccessChain %_ptr_Function_int %orientation %int_3
|
%37 = OpAccessChain %_ptr_Function_int %orientation %int_3
|
||||||
%37 = OpCompositeExtract %int %22 3
|
%38 = OpCompositeExtract %int %22 3
|
||||||
OpStore %36 %37
|
OpStore %37 %38
|
||||||
%39 = OpAccessChain %_ptr_Function_int %orientation %int_4
|
%40 = OpAccessChain %_ptr_Function_int %orientation %int_4
|
||||||
%41 = OpCompositeExtract %int %22 4
|
%42 = OpCompositeExtract %int %22 4
|
||||||
OpStore %39 %41
|
OpStore %40 %42
|
||||||
%43 = OpAccessChain %_ptr_Function_int %orientation %int_5
|
%44 = OpAccessChain %_ptr_Function_int %orientation %int_5
|
||||||
%45 = OpCompositeExtract %int %22 5
|
%46 = OpCompositeExtract %int %22 5
|
||||||
OpStore %43 %45
|
OpStore %44 %46
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %11
|
%main = OpFunction %void None %11
|
||||||
%47 = OpLabel
|
%48 = OpLabel
|
||||||
%48 = OpFunctionCall %void %main_1
|
%49 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 205
|
; Bound: 207
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability ImageQuery
|
OpCapability ImageQuery
|
||||||
|
@ -92,14 +92,16 @@
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
|
%97 = OpConstantNull %int
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint
|
%_ptr_Uniform_v2uint = OpTypePointer Uniform %v2uint
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
||||||
%110 = OpConstantNull %v2uint
|
%111 = OpConstantNull %v2uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%200 = OpTypeFunction %void
|
%201 = OpConstantNull %uint
|
||||||
|
%202 = OpTypeFunction %void
|
||||||
%aboutEqual = OpFunction %bool None %18
|
%aboutEqual = OpFunction %bool None %18
|
||||||
%value = OpFunctionParameter %float
|
%value = OpFunctionParameter %float
|
||||||
%expect = OpFunctionParameter %float
|
%expect = OpFunctionParameter %float
|
||||||
|
@ -113,7 +115,7 @@
|
||||||
%GlobalInvocationID = OpFunctionParameter %v3uint
|
%GlobalInvocationID = OpFunctionParameter %v3uint
|
||||||
%33 = OpLabel
|
%33 = OpLabel
|
||||||
%success = OpVariable %_ptr_Function_bool Function %50
|
%success = OpVariable %_ptr_Function_bool Function %50
|
||||||
%srcTexCoord = OpVariable %_ptr_Function_v2uint Function %110
|
%srcTexCoord = OpVariable %_ptr_Function_v2uint Function %111
|
||||||
%tint_symbol_1 = OpVariable %_ptr_Function_bool Function %50
|
%tint_symbol_1 = OpVariable %_ptr_Function_bool Function %50
|
||||||
%tint_symbol = OpVariable %_ptr_Function_bool Function %50
|
%tint_symbol = OpVariable %_ptr_Function_bool Function %50
|
||||||
%tint_symbol_5 = OpVariable %_ptr_Function_bool Function %50
|
%tint_symbol_5 = OpVariable %_ptr_Function_bool Function %50
|
||||||
|
@ -175,156 +177,156 @@
|
||||||
%92 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpLoad %7 %dst
|
%95 = OpLoad %7 %dst
|
||||||
%96 = OpBitcast %v2int %42
|
%96 = OpBitcast %v2int %42
|
||||||
%94 = OpImageFetch %v4float %95 %96 Lod %int_0
|
%94 = OpImageFetch %v4float %95 %96 Lod %97
|
||||||
%97 = OpFOrdEqual %v4bool %94 %46
|
%98 = OpFOrdEqual %v4bool %94 %46
|
||||||
%93 = OpAll %bool %97
|
%93 = OpAll %bool %98
|
||||||
OpBranch %91
|
OpBranch %91
|
||||||
%91 = OpLabel
|
%91 = OpLabel
|
||||||
%99 = OpPhi %bool %90 %88 %93 %92
|
%100 = OpPhi %bool %90 %88 %93 %92
|
||||||
OpStore %success %99
|
OpStore %success %100
|
||||||
OpBranch %87
|
OpBranch %87
|
||||||
%89 = OpLabel
|
%89 = OpLabel
|
||||||
%101 = OpAccessChain %_ptr_Uniform_v2uint %uniforms %uint_3
|
%102 = OpAccessChain %_ptr_Uniform_v2uint %uniforms %uint_3
|
||||||
%102 = OpLoad %v2uint %101
|
%103 = OpLoad %v2uint %102
|
||||||
%103 = OpISub %v2uint %42 %102
|
%104 = OpISub %v2uint %42 %103
|
||||||
%105 = OpAccessChain %_ptr_Uniform_v2uint %uniforms %uint_2
|
%106 = OpAccessChain %_ptr_Uniform_v2uint %uniforms %uint_2
|
||||||
%106 = OpLoad %v2uint %105
|
%107 = OpLoad %v2uint %106
|
||||||
%107 = OpIAdd %v2uint %103 %106
|
%108 = OpIAdd %v2uint %104 %107
|
||||||
OpStore %srcTexCoord %107
|
OpStore %srcTexCoord %108
|
||||||
%111 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
%112 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_0
|
||||||
%112 = OpLoad %uint %111
|
%113 = OpLoad %uint %112
|
||||||
%113 = OpIEqual %bool %112 %uint_1
|
%114 = OpIEqual %bool %113 %uint_1
|
||||||
OpSelectionMerge %114 None
|
OpSelectionMerge %115 None
|
||||||
OpBranchConditional %113 %115 %114
|
OpBranchConditional %114 %116 %115
|
||||||
|
%116 = OpLabel
|
||||||
|
%118 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
|
||||||
|
%120 = OpCompositeExtract %int %34 1
|
||||||
|
%119 = OpBitcast %uint %120
|
||||||
|
%121 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
|
||||||
|
%122 = OpLoad %uint %121
|
||||||
|
%123 = OpISub %uint %119 %122
|
||||||
|
%124 = OpISub %uint %123 %uint_1
|
||||||
|
OpStore %118 %124
|
||||||
|
OpBranch %115
|
||||||
%115 = OpLabel
|
%115 = OpLabel
|
||||||
%117 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
|
%126 = OpLoad %7 %src
|
||||||
%119 = OpCompositeExtract %int %34 1
|
%128 = OpLoad %v2uint %srcTexCoord
|
||||||
%118 = OpBitcast %uint %119
|
%127 = OpBitcast %v2int %128
|
||||||
%120 = OpAccessChain %_ptr_Function_uint %srcTexCoord %uint_1
|
%125 = OpImageFetch %v4float %126 %127 Lod %97
|
||||||
%121 = OpLoad %uint %120
|
%130 = OpLoad %7 %dst
|
||||||
%122 = OpISub %uint %118 %121
|
%131 = OpBitcast %v2int %42
|
||||||
%123 = OpISub %uint %122 %uint_1
|
%129 = OpImageFetch %v4float %130 %131 Lod %97
|
||||||
OpStore %117 %123
|
%132 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
OpBranch %114
|
%133 = OpLoad %uint %132
|
||||||
%114 = OpLabel
|
%134 = OpIEqual %bool %133 %uint_2
|
||||||
%125 = OpLoad %7 %src
|
OpSelectionMerge %135 None
|
||||||
%127 = OpLoad %v2uint %srcTexCoord
|
OpBranchConditional %134 %136 %137
|
||||||
%126 = OpBitcast %v2int %127
|
|
||||||
%124 = OpImageFetch %v4float %125 %126 Lod %int_0
|
|
||||||
%129 = OpLoad %7 %dst
|
|
||||||
%130 = OpBitcast %v2int %42
|
|
||||||
%128 = OpImageFetch %v4float %129 %130 Lod %int_0
|
|
||||||
%131 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
|
||||||
%132 = OpLoad %uint %131
|
|
||||||
%133 = OpIEqual %bool %132 %uint_2
|
|
||||||
OpSelectionMerge %134 None
|
|
||||||
OpBranchConditional %133 %135 %136
|
|
||||||
%135 = OpLabel
|
|
||||||
%137 = OpLoad %bool %success
|
|
||||||
OpStore %tint_symbol_1 %137
|
|
||||||
%139 = OpLoad %bool %tint_symbol_1
|
|
||||||
OpSelectionMerge %140 None
|
|
||||||
OpBranchConditional %139 %141 %140
|
|
||||||
%141 = OpLabel
|
|
||||||
%143 = OpCompositeExtract %float %128 0
|
|
||||||
%144 = OpCompositeExtract %float %124 0
|
|
||||||
%142 = OpFunctionCall %bool %aboutEqual %143 %144
|
|
||||||
OpStore %tint_symbol_1 %142
|
|
||||||
OpBranch %140
|
|
||||||
%140 = OpLabel
|
|
||||||
%145 = OpLoad %bool %tint_symbol_1
|
|
||||||
OpStore %tint_symbol %145
|
|
||||||
%147 = OpLoad %bool %tint_symbol
|
|
||||||
OpSelectionMerge %148 None
|
|
||||||
OpBranchConditional %147 %149 %148
|
|
||||||
%149 = OpLabel
|
|
||||||
%151 = OpCompositeExtract %float %128 1
|
|
||||||
%152 = OpCompositeExtract %float %124 1
|
|
||||||
%150 = OpFunctionCall %bool %aboutEqual %151 %152
|
|
||||||
OpStore %tint_symbol %150
|
|
||||||
OpBranch %148
|
|
||||||
%148 = OpLabel
|
|
||||||
%153 = OpLoad %bool %tint_symbol
|
|
||||||
OpStore %success %153
|
|
||||||
OpBranch %134
|
|
||||||
%136 = OpLabel
|
%136 = OpLabel
|
||||||
%154 = OpLoad %bool %success
|
%138 = OpLoad %bool %success
|
||||||
OpStore %tint_symbol_5 %154
|
OpStore %tint_symbol_1 %138
|
||||||
%156 = OpLoad %bool %tint_symbol_5
|
%140 = OpLoad %bool %tint_symbol_1
|
||||||
OpSelectionMerge %157 None
|
OpSelectionMerge %141 None
|
||||||
OpBranchConditional %156 %158 %157
|
OpBranchConditional %140 %142 %141
|
||||||
|
%142 = OpLabel
|
||||||
|
%144 = OpCompositeExtract %float %129 0
|
||||||
|
%145 = OpCompositeExtract %float %125 0
|
||||||
|
%143 = OpFunctionCall %bool %aboutEqual %144 %145
|
||||||
|
OpStore %tint_symbol_1 %143
|
||||||
|
OpBranch %141
|
||||||
|
%141 = OpLabel
|
||||||
|
%146 = OpLoad %bool %tint_symbol_1
|
||||||
|
OpStore %tint_symbol %146
|
||||||
|
%148 = OpLoad %bool %tint_symbol
|
||||||
|
OpSelectionMerge %149 None
|
||||||
|
OpBranchConditional %148 %150 %149
|
||||||
|
%150 = OpLabel
|
||||||
|
%152 = OpCompositeExtract %float %129 1
|
||||||
|
%153 = OpCompositeExtract %float %125 1
|
||||||
|
%151 = OpFunctionCall %bool %aboutEqual %152 %153
|
||||||
|
OpStore %tint_symbol %151
|
||||||
|
OpBranch %149
|
||||||
|
%149 = OpLabel
|
||||||
|
%154 = OpLoad %bool %tint_symbol
|
||||||
|
OpStore %success %154
|
||||||
|
OpBranch %135
|
||||||
|
%137 = OpLabel
|
||||||
|
%155 = OpLoad %bool %success
|
||||||
|
OpStore %tint_symbol_5 %155
|
||||||
|
%157 = OpLoad %bool %tint_symbol_5
|
||||||
|
OpSelectionMerge %158 None
|
||||||
|
OpBranchConditional %157 %159 %158
|
||||||
|
%159 = OpLabel
|
||||||
|
%161 = OpCompositeExtract %float %129 0
|
||||||
|
%162 = OpCompositeExtract %float %125 0
|
||||||
|
%160 = OpFunctionCall %bool %aboutEqual %161 %162
|
||||||
|
OpStore %tint_symbol_5 %160
|
||||||
|
OpBranch %158
|
||||||
%158 = OpLabel
|
%158 = OpLabel
|
||||||
%160 = OpCompositeExtract %float %128 0
|
%163 = OpLoad %bool %tint_symbol_5
|
||||||
%161 = OpCompositeExtract %float %124 0
|
OpStore %tint_symbol_4 %163
|
||||||
%159 = OpFunctionCall %bool %aboutEqual %160 %161
|
%165 = OpLoad %bool %tint_symbol_4
|
||||||
OpStore %tint_symbol_5 %159
|
OpSelectionMerge %166 None
|
||||||
OpBranch %157
|
OpBranchConditional %165 %167 %166
|
||||||
%157 = OpLabel
|
%167 = OpLabel
|
||||||
%162 = OpLoad %bool %tint_symbol_5
|
%169 = OpCompositeExtract %float %129 1
|
||||||
OpStore %tint_symbol_4 %162
|
%170 = OpCompositeExtract %float %125 1
|
||||||
%164 = OpLoad %bool %tint_symbol_4
|
%168 = OpFunctionCall %bool %aboutEqual %169 %170
|
||||||
OpSelectionMerge %165 None
|
OpStore %tint_symbol_4 %168
|
||||||
OpBranchConditional %164 %166 %165
|
OpBranch %166
|
||||||
%166 = OpLabel
|
%166 = OpLabel
|
||||||
%168 = OpCompositeExtract %float %128 1
|
%171 = OpLoad %bool %tint_symbol_4
|
||||||
%169 = OpCompositeExtract %float %124 1
|
OpStore %tint_symbol_3 %171
|
||||||
%167 = OpFunctionCall %bool %aboutEqual %168 %169
|
%173 = OpLoad %bool %tint_symbol_3
|
||||||
OpStore %tint_symbol_4 %167
|
OpSelectionMerge %174 None
|
||||||
OpBranch %165
|
OpBranchConditional %173 %175 %174
|
||||||
%165 = OpLabel
|
%175 = OpLabel
|
||||||
%170 = OpLoad %bool %tint_symbol_4
|
%177 = OpCompositeExtract %float %129 2
|
||||||
OpStore %tint_symbol_3 %170
|
%178 = OpCompositeExtract %float %125 2
|
||||||
%172 = OpLoad %bool %tint_symbol_3
|
%176 = OpFunctionCall %bool %aboutEqual %177 %178
|
||||||
OpSelectionMerge %173 None
|
OpStore %tint_symbol_3 %176
|
||||||
OpBranchConditional %172 %174 %173
|
OpBranch %174
|
||||||
%174 = OpLabel
|
%174 = OpLabel
|
||||||
%176 = OpCompositeExtract %float %128 2
|
%179 = OpLoad %bool %tint_symbol_3
|
||||||
%177 = OpCompositeExtract %float %124 2
|
OpStore %tint_symbol_2 %179
|
||||||
%175 = OpFunctionCall %bool %aboutEqual %176 %177
|
%181 = OpLoad %bool %tint_symbol_2
|
||||||
OpStore %tint_symbol_3 %175
|
OpSelectionMerge %182 None
|
||||||
OpBranch %173
|
OpBranchConditional %181 %183 %182
|
||||||
%173 = OpLabel
|
%183 = OpLabel
|
||||||
%178 = OpLoad %bool %tint_symbol_3
|
%185 = OpCompositeExtract %float %129 3
|
||||||
OpStore %tint_symbol_2 %178
|
%186 = OpCompositeExtract %float %125 3
|
||||||
%180 = OpLoad %bool %tint_symbol_2
|
%184 = OpFunctionCall %bool %aboutEqual %185 %186
|
||||||
OpSelectionMerge %181 None
|
OpStore %tint_symbol_2 %184
|
||||||
OpBranchConditional %180 %182 %181
|
OpBranch %182
|
||||||
%182 = OpLabel
|
%182 = OpLabel
|
||||||
%184 = OpCompositeExtract %float %128 3
|
%187 = OpLoad %bool %tint_symbol_2
|
||||||
%185 = OpCompositeExtract %float %124 3
|
OpStore %success %187
|
||||||
%183 = OpFunctionCall %bool %aboutEqual %184 %185
|
OpBranch %135
|
||||||
OpStore %tint_symbol_2 %183
|
%135 = OpLabel
|
||||||
OpBranch %181
|
|
||||||
%181 = OpLabel
|
|
||||||
%186 = OpLoad %bool %tint_symbol_2
|
|
||||||
OpStore %success %186
|
|
||||||
OpBranch %134
|
|
||||||
%134 = OpLabel
|
|
||||||
OpBranch %87
|
OpBranch %87
|
||||||
%87 = OpLabel
|
%87 = OpLabel
|
||||||
%187 = OpCompositeExtract %uint %GlobalInvocationID 1
|
%188 = OpCompositeExtract %uint %GlobalInvocationID 1
|
||||||
%189 = OpCompositeExtract %int %39 0
|
%190 = OpCompositeExtract %int %39 0
|
||||||
%188 = OpBitcast %uint %189
|
%189 = OpBitcast %uint %190
|
||||||
%190 = OpIMul %uint %187 %188
|
%191 = OpIMul %uint %188 %189
|
||||||
%191 = OpCompositeExtract %uint %GlobalInvocationID 0
|
%192 = OpCompositeExtract %uint %GlobalInvocationID 0
|
||||||
%192 = OpIAdd %uint %190 %191
|
%193 = OpIAdd %uint %191 %192
|
||||||
%193 = OpLoad %bool %success
|
%194 = OpLoad %bool %success
|
||||||
OpSelectionMerge %194 None
|
OpSelectionMerge %195 None
|
||||||
OpBranchConditional %193 %195 %196
|
OpBranchConditional %194 %196 %197
|
||||||
%195 = OpLabel
|
|
||||||
%198 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %192
|
|
||||||
OpStore %198 %uint_1
|
|
||||||
OpBranch %194
|
|
||||||
%196 = OpLabel
|
%196 = OpLabel
|
||||||
%199 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %192
|
%199 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %193
|
||||||
OpStore %199 %uint_0
|
OpStore %199 %uint_1
|
||||||
OpBranch %194
|
OpBranch %195
|
||||||
%194 = OpLabel
|
%197 = OpLabel
|
||||||
|
%200 = OpAccessChain %_ptr_StorageBuffer_uint %output %uint_0 %193
|
||||||
|
OpStore %200 %201
|
||||||
|
OpBranch %195
|
||||||
|
%195 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %200
|
%main = OpFunction %void None %202
|
||||||
%202 = OpLabel
|
%204 = OpLabel
|
||||||
%204 = OpLoad %v3uint %GlobalInvocationID_1
|
%206 = OpLoad %v3uint %GlobalInvocationID_1
|
||||||
%203 = OpFunctionCall %void %main_inner %204
|
%205 = OpFunctionCall %void %main_inner %206
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 375
|
; Bound: 374
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -114,7 +114,7 @@
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%float_0 = OpConstant %float 0
|
%52 = OpConstantNull %float
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%75 = OpTypeFunction %void %uint %uint %float
|
%75 = OpTypeFunction %void %uint %uint %float
|
||||||
|
@ -123,18 +123,17 @@
|
||||||
%106 = OpConstantNull %uint
|
%106 = OpConstantNull %uint
|
||||||
%uint_4096 = OpConstant %uint 4096
|
%uint_4096 = OpConstant %uint 4096
|
||||||
%_ptr_Workgroup_float = OpTypePointer Workgroup %float
|
%_ptr_Workgroup_float = OpTypePointer Workgroup %float
|
||||||
%123 = OpConstantNull %float
|
|
||||||
%uint_256 = OpConstant %uint 256
|
%uint_256 = OpConstant %uint 256
|
||||||
%uint_264 = OpConstant %uint 264
|
%uint_264 = OpConstant %uint 264
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%_arr_float_uint_16 = OpTypeArray %float %uint_16
|
%_arr_float_uint_16 = OpTypeArray %float %uint_16
|
||||||
%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16
|
%_ptr_Function__arr_float_uint_16 = OpTypePointer Function %_arr_float_uint_16
|
||||||
%147 = OpConstantNull %_arr_float_uint_16
|
%146 = OpConstantNull %_arr_float_uint_16
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%_arr_float_RowPerThread = OpTypeArray %float %RowPerThread
|
%_arr_float_RowPerThread = OpTypeArray %float %RowPerThread
|
||||||
%_ptr_Function__arr_float_RowPerThread = OpTypePointer Function %_arr_float_RowPerThread
|
%_ptr_Function__arr_float_RowPerThread = OpTypePointer Function %_arr_float_RowPerThread
|
||||||
%153 = OpConstantNull %_arr_float_RowPerThread
|
%152 = OpConstantNull %_arr_float_RowPerThread
|
||||||
%368 = OpTypeFunction %void
|
%367 = OpTypeFunction %void
|
||||||
%mm_readA = OpFunction %float None %25
|
%mm_readA = OpFunction %float None %25
|
||||||
%row = OpFunctionParameter %uint
|
%row = OpFunctionParameter %uint
|
||||||
%col = OpFunctionParameter %uint
|
%col = OpFunctionParameter %uint
|
||||||
|
@ -162,7 +161,7 @@
|
||||||
%51 = OpLoad %float %50
|
%51 = OpLoad %float %50
|
||||||
OpReturnValue %51
|
OpReturnValue %51
|
||||||
%43 = OpLabel
|
%43 = OpLabel
|
||||||
OpReturnValue %float_0
|
OpReturnValue %52
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%mm_readB = OpFunction %float None %25
|
%mm_readB = OpFunction %float None %25
|
||||||
%row_0 = OpFunctionParameter %uint
|
%row_0 = OpFunctionParameter %uint
|
||||||
|
@ -191,7 +190,7 @@
|
||||||
%74 = OpLoad %float %73
|
%74 = OpLoad %float %73
|
||||||
OpReturnValue %74
|
OpReturnValue %74
|
||||||
%67 = OpLabel
|
%67 = OpLabel
|
||||||
OpReturnValue %float_0
|
OpReturnValue %52
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%mm_write = OpFunction %void None %75
|
%mm_write = OpFunction %void None %75
|
||||||
%row_1 = OpFunctionParameter %uint
|
%row_1 = OpFunctionParameter %uint
|
||||||
|
@ -229,9 +228,9 @@
|
||||||
%local_invocation_index = OpFunctionParameter %uint
|
%local_invocation_index = OpFunctionParameter %uint
|
||||||
%103 = OpLabel
|
%103 = OpLabel
|
||||||
%idx = OpVariable %_ptr_Function_uint Function %106
|
%idx = OpVariable %_ptr_Function_uint Function %106
|
||||||
%acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %147
|
%acc = OpVariable %_ptr_Function__arr_float_uint_16 Function %146
|
||||||
%ACached = OpVariable %_ptr_Function_float Function %123
|
%ACached = OpVariable %_ptr_Function_float Function %52
|
||||||
%BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %153
|
%BCached = OpVariable %_ptr_Function__arr_float_RowPerThread Function %152
|
||||||
%index = OpVariable %_ptr_Function_uint Function %106
|
%index = OpVariable %_ptr_Function_uint Function %106
|
||||||
%t = OpVariable %_ptr_Function_uint Function %106
|
%t = OpVariable %_ptr_Function_uint Function %106
|
||||||
%innerRow = OpVariable %_ptr_Function_uint Function %106
|
%innerRow = OpVariable %_ptr_Function_uint Function %106
|
||||||
|
@ -263,365 +262,365 @@
|
||||||
%119 = OpLoad %uint %idx
|
%119 = OpLoad %uint %idx
|
||||||
%120 = OpUMod %uint %119 %TileAOuter
|
%120 = OpUMod %uint %119 %TileAOuter
|
||||||
%122 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %118 %120
|
%122 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %118 %120
|
||||||
OpStore %122 %123
|
OpStore %122 %52
|
||||||
%124 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %118 %120
|
%123 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %118 %120
|
||||||
OpStore %124 %123
|
OpStore %123 %52
|
||||||
OpBranch %109
|
OpBranch %109
|
||||||
%109 = OpLabel
|
%109 = OpLabel
|
||||||
%125 = OpLoad %uint %idx
|
%124 = OpLoad %uint %idx
|
||||||
%127 = OpIAdd %uint %125 %uint_256
|
%126 = OpIAdd %uint %124 %uint_256
|
||||||
OpStore %idx %127
|
OpStore %idx %126
|
||||||
OpBranch %107
|
OpBranch %107
|
||||||
%108 = OpLabel
|
%108 = OpLabel
|
||||||
OpControlBarrier %uint_2 %uint_2 %uint_264
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
||||||
%130 = OpCompositeExtract %uint %local_id 1
|
%129 = OpCompositeExtract %uint %local_id 1
|
||||||
%131 = OpIMul %uint %130 %RowPerThread
|
%130 = OpIMul %uint %129 %RowPerThread
|
||||||
%132 = OpCompositeExtract %uint %local_id 0
|
%131 = OpCompositeExtract %uint %local_id 0
|
||||||
%133 = OpIMul %uint %132 %RowPerThread
|
%132 = OpIMul %uint %131 %RowPerThread
|
||||||
%134 = OpCompositeExtract %uint %global_id 1
|
%133 = OpCompositeExtract %uint %global_id 1
|
||||||
%135 = OpIMul %uint %134 %RowPerThread
|
%134 = OpIMul %uint %133 %RowPerThread
|
||||||
%136 = OpCompositeExtract %uint %global_id 0
|
%135 = OpCompositeExtract %uint %global_id 0
|
||||||
%137 = OpIMul %uint %136 %RowPerThread
|
%136 = OpIMul %uint %135 %RowPerThread
|
||||||
%138 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
%137 = OpAccessChain %_ptr_Uniform_uint %uniforms %uint_1
|
||||||
%139 = OpLoad %uint %138
|
%138 = OpLoad %uint %137
|
||||||
%140 = OpISub %uint %139 %uint_1
|
%139 = OpISub %uint %138 %uint_1
|
||||||
%141 = OpUDiv %uint %140 %TileAOuter
|
%140 = OpUDiv %uint %139 %TileAOuter
|
||||||
%142 = OpIAdd %uint %141 %uint_1
|
%141 = OpIAdd %uint %140 %uint_1
|
||||||
OpStore %index %uint_0
|
OpStore %index %106
|
||||||
OpBranch %155
|
OpBranch %154
|
||||||
%155 = OpLabel
|
%154 = OpLabel
|
||||||
OpLoopMerge %156 %157 None
|
OpLoopMerge %155 %156 None
|
||||||
OpBranch %158
|
|
||||||
%158 = OpLabel
|
|
||||||
%160 = OpLoad %uint %index
|
|
||||||
%161 = OpIMul %uint %RowPerThread %RowPerThread
|
|
||||||
%162 = OpULessThan %bool %160 %161
|
|
||||||
%159 = OpLogicalNot %bool %162
|
|
||||||
OpSelectionMerge %163 None
|
|
||||||
OpBranchConditional %159 %164 %163
|
|
||||||
%164 = OpLabel
|
|
||||||
OpBranch %156
|
|
||||||
%163 = OpLabel
|
|
||||||
%165 = OpLoad %uint %index
|
|
||||||
%166 = OpAccessChain %_ptr_Function_float %acc %165
|
|
||||||
OpStore %166 %float_0
|
|
||||||
OpBranch %157
|
OpBranch %157
|
||||||
%157 = OpLabel
|
%157 = OpLabel
|
||||||
%167 = OpLoad %uint %index
|
%159 = OpLoad %uint %index
|
||||||
%168 = OpIAdd %uint %167 %uint_1
|
%160 = OpIMul %uint %RowPerThread %RowPerThread
|
||||||
OpStore %index %168
|
%161 = OpULessThan %bool %159 %160
|
||||||
|
%158 = OpLogicalNot %bool %161
|
||||||
|
OpSelectionMerge %162 None
|
||||||
|
OpBranchConditional %158 %163 %162
|
||||||
|
%163 = OpLabel
|
||||||
OpBranch %155
|
OpBranch %155
|
||||||
|
%162 = OpLabel
|
||||||
|
%164 = OpLoad %uint %index
|
||||||
|
%165 = OpAccessChain %_ptr_Function_float %acc %164
|
||||||
|
OpStore %165 %52
|
||||||
|
OpBranch %156
|
||||||
%156 = OpLabel
|
%156 = OpLabel
|
||||||
%169 = OpUDiv %uint %TileAOuter %uint_16
|
%166 = OpLoad %uint %index
|
||||||
%170 = OpCompositeExtract %uint %local_id 0
|
%167 = OpIAdd %uint %166 %uint_1
|
||||||
%171 = OpIMul %uint %170 %169
|
OpStore %index %167
|
||||||
%172 = OpUDiv %uint %TileAOuter %uint_16
|
OpBranch %154
|
||||||
%173 = OpCompositeExtract %uint %local_id 1
|
%155 = OpLabel
|
||||||
%174 = OpIMul %uint %173 %172
|
%168 = OpUDiv %uint %TileAOuter %uint_16
|
||||||
OpStore %t %uint_0
|
%169 = OpCompositeExtract %uint %local_id 0
|
||||||
OpBranch %176
|
%170 = OpIMul %uint %169 %168
|
||||||
%176 = OpLabel
|
%171 = OpUDiv %uint %TileAOuter %uint_16
|
||||||
OpLoopMerge %177 %178 None
|
%172 = OpCompositeExtract %uint %local_id 1
|
||||||
OpBranch %179
|
%173 = OpIMul %uint %172 %171
|
||||||
%179 = OpLabel
|
OpStore %t %106
|
||||||
%181 = OpLoad %uint %t
|
OpBranch %175
|
||||||
%182 = OpULessThan %bool %181 %142
|
%175 = OpLabel
|
||||||
%180 = OpLogicalNot %bool %182
|
OpLoopMerge %176 %177 None
|
||||||
OpSelectionMerge %183 None
|
|
||||||
OpBranchConditional %180 %184 %183
|
|
||||||
%184 = OpLabel
|
|
||||||
OpBranch %177
|
|
||||||
%183 = OpLabel
|
|
||||||
OpStore %innerRow %uint_0
|
|
||||||
OpBranch %186
|
|
||||||
%186 = OpLabel
|
|
||||||
OpLoopMerge %187 %188 None
|
|
||||||
OpBranch %189
|
|
||||||
%189 = OpLabel
|
|
||||||
%191 = OpLoad %uint %innerRow
|
|
||||||
%192 = OpULessThan %bool %191 %RowPerThread
|
|
||||||
%190 = OpLogicalNot %bool %192
|
|
||||||
OpSelectionMerge %193 None
|
|
||||||
OpBranchConditional %190 %194 %193
|
|
||||||
%194 = OpLabel
|
|
||||||
OpBranch %187
|
|
||||||
%193 = OpLabel
|
|
||||||
OpStore %innerCol %uint_0
|
|
||||||
OpBranch %196
|
|
||||||
%196 = OpLabel
|
|
||||||
OpLoopMerge %197 %198 None
|
|
||||||
OpBranch %199
|
|
||||||
%199 = OpLabel
|
|
||||||
%201 = OpLoad %uint %innerCol
|
|
||||||
%202 = OpULessThan %bool %201 %169
|
|
||||||
%200 = OpLogicalNot %bool %202
|
|
||||||
OpSelectionMerge %203 None
|
|
||||||
OpBranchConditional %200 %204 %203
|
|
||||||
%204 = OpLabel
|
|
||||||
OpBranch %197
|
|
||||||
%203 = OpLabel
|
|
||||||
%205 = OpLoad %uint %innerRow
|
|
||||||
%206 = OpIAdd %uint %131 %205
|
|
||||||
%207 = OpLoad %uint %innerCol
|
|
||||||
%208 = OpIAdd %uint %171 %207
|
|
||||||
%210 = OpLoad %uint %innerRow
|
|
||||||
%211 = OpIAdd %uint %135 %210
|
|
||||||
%212 = OpLoad %uint %t
|
|
||||||
%213 = OpIMul %uint %212 %TileAOuter
|
|
||||||
%214 = OpIAdd %uint %213 %208
|
|
||||||
%209 = OpFunctionCall %float %mm_readA %211 %214
|
|
||||||
%215 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %206 %208
|
|
||||||
OpStore %215 %209
|
|
||||||
OpBranch %198
|
|
||||||
%198 = OpLabel
|
|
||||||
%216 = OpLoad %uint %innerCol
|
|
||||||
%217 = OpIAdd %uint %216 %uint_1
|
|
||||||
OpStore %innerCol %217
|
|
||||||
OpBranch %196
|
|
||||||
%197 = OpLabel
|
|
||||||
OpBranch %188
|
|
||||||
%188 = OpLabel
|
|
||||||
%218 = OpLoad %uint %innerRow
|
|
||||||
%219 = OpIAdd %uint %218 %uint_1
|
|
||||||
OpStore %innerRow %219
|
|
||||||
OpBranch %186
|
|
||||||
%187 = OpLabel
|
|
||||||
OpStore %innerRow_0 %uint_0
|
|
||||||
OpBranch %221
|
|
||||||
%221 = OpLabel
|
|
||||||
OpLoopMerge %222 %223 None
|
|
||||||
OpBranch %224
|
|
||||||
%224 = OpLabel
|
|
||||||
%226 = OpLoad %uint %innerRow_0
|
|
||||||
%227 = OpULessThan %bool %226 %172
|
|
||||||
%225 = OpLogicalNot %bool %227
|
|
||||||
OpSelectionMerge %228 None
|
|
||||||
OpBranchConditional %225 %229 %228
|
|
||||||
%229 = OpLabel
|
|
||||||
OpBranch %222
|
|
||||||
%228 = OpLabel
|
|
||||||
OpStore %innerCol_0 %uint_0
|
|
||||||
OpBranch %231
|
|
||||||
%231 = OpLabel
|
|
||||||
OpLoopMerge %232 %233 None
|
|
||||||
OpBranch %234
|
|
||||||
%234 = OpLabel
|
|
||||||
%236 = OpLoad %uint %innerCol_0
|
|
||||||
%237 = OpULessThan %bool %236 %RowPerThread
|
|
||||||
%235 = OpLogicalNot %bool %237
|
|
||||||
OpSelectionMerge %238 None
|
|
||||||
OpBranchConditional %235 %239 %238
|
|
||||||
%239 = OpLabel
|
|
||||||
OpBranch %232
|
|
||||||
%238 = OpLabel
|
|
||||||
%240 = OpLoad %uint %innerRow_0
|
|
||||||
%241 = OpIAdd %uint %174 %240
|
|
||||||
%242 = OpLoad %uint %innerCol_0
|
|
||||||
%243 = OpIAdd %uint %133 %242
|
|
||||||
%245 = OpLoad %uint %t
|
|
||||||
%246 = OpIMul %uint %245 %TileAOuter
|
|
||||||
%247 = OpIAdd %uint %246 %241
|
|
||||||
%248 = OpLoad %uint %innerCol_0
|
|
||||||
%249 = OpIAdd %uint %137 %248
|
|
||||||
%244 = OpFunctionCall %float %mm_readB %247 %249
|
|
||||||
%250 = OpLoad %uint %innerCol_0
|
|
||||||
%251 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %250 %243
|
|
||||||
OpStore %251 %244
|
|
||||||
OpBranch %233
|
|
||||||
%233 = OpLabel
|
|
||||||
%252 = OpLoad %uint %innerCol_0
|
|
||||||
%253 = OpIAdd %uint %252 %uint_1
|
|
||||||
OpStore %innerCol_0 %253
|
|
||||||
OpBranch %231
|
|
||||||
%232 = OpLabel
|
|
||||||
OpBranch %223
|
|
||||||
%223 = OpLabel
|
|
||||||
%254 = OpLoad %uint %innerRow_0
|
|
||||||
%255 = OpIAdd %uint %254 %uint_1
|
|
||||||
OpStore %innerRow_0 %255
|
|
||||||
OpBranch %221
|
|
||||||
%222 = OpLabel
|
|
||||||
OpControlBarrier %uint_2 %uint_2 %uint_264
|
|
||||||
OpStore %k %uint_0
|
|
||||||
OpBranch %258
|
|
||||||
%258 = OpLabel
|
|
||||||
OpLoopMerge %259 %260 None
|
|
||||||
OpBranch %261
|
|
||||||
%261 = OpLabel
|
|
||||||
%263 = OpLoad %uint %k
|
|
||||||
%264 = OpULessThan %bool %263 %TileAOuter
|
|
||||||
%262 = OpLogicalNot %bool %264
|
|
||||||
OpSelectionMerge %265 None
|
|
||||||
OpBranchConditional %262 %266 %265
|
|
||||||
%266 = OpLabel
|
|
||||||
OpBranch %259
|
|
||||||
%265 = OpLabel
|
|
||||||
OpStore %inner %uint_0
|
|
||||||
OpBranch %268
|
|
||||||
%268 = OpLabel
|
|
||||||
OpLoopMerge %269 %270 None
|
|
||||||
OpBranch %271
|
|
||||||
%271 = OpLabel
|
|
||||||
%273 = OpLoad %uint %inner
|
|
||||||
%274 = OpULessThan %bool %273 %RowPerThread
|
|
||||||
%272 = OpLogicalNot %bool %274
|
|
||||||
OpSelectionMerge %275 None
|
|
||||||
OpBranchConditional %272 %276 %275
|
|
||||||
%276 = OpLabel
|
|
||||||
OpBranch %269
|
|
||||||
%275 = OpLabel
|
|
||||||
%277 = OpLoad %uint %inner
|
|
||||||
%278 = OpAccessChain %_ptr_Function_float %BCached %277
|
|
||||||
%279 = OpLoad %uint %k
|
|
||||||
%280 = OpLoad %uint %inner
|
|
||||||
%281 = OpIAdd %uint %133 %280
|
|
||||||
%282 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %279 %281
|
|
||||||
%283 = OpLoad %float %282
|
|
||||||
OpStore %278 %283
|
|
||||||
OpBranch %270
|
|
||||||
%270 = OpLabel
|
|
||||||
%284 = OpLoad %uint %inner
|
|
||||||
%285 = OpIAdd %uint %284 %uint_1
|
|
||||||
OpStore %inner %285
|
|
||||||
OpBranch %268
|
|
||||||
%269 = OpLabel
|
|
||||||
OpStore %innerRow_1 %uint_0
|
|
||||||
OpBranch %287
|
|
||||||
%287 = OpLabel
|
|
||||||
OpLoopMerge %288 %289 None
|
|
||||||
OpBranch %290
|
|
||||||
%290 = OpLabel
|
|
||||||
%292 = OpLoad %uint %innerRow_1
|
|
||||||
%293 = OpULessThan %bool %292 %RowPerThread
|
|
||||||
%291 = OpLogicalNot %bool %293
|
|
||||||
OpSelectionMerge %294 None
|
|
||||||
OpBranchConditional %291 %295 %294
|
|
||||||
%295 = OpLabel
|
|
||||||
OpBranch %288
|
|
||||||
%294 = OpLabel
|
|
||||||
%296 = OpLoad %uint %innerRow_1
|
|
||||||
%297 = OpIAdd %uint %131 %296
|
|
||||||
%298 = OpLoad %uint %k
|
|
||||||
%299 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %297 %298
|
|
||||||
%300 = OpLoad %float %299
|
|
||||||
OpStore %ACached %300
|
|
||||||
OpStore %innerCol_1 %uint_0
|
|
||||||
OpBranch %302
|
|
||||||
%302 = OpLabel
|
|
||||||
OpLoopMerge %303 %304 None
|
|
||||||
OpBranch %305
|
|
||||||
%305 = OpLabel
|
|
||||||
%307 = OpLoad %uint %innerCol_1
|
|
||||||
%308 = OpULessThan %bool %307 %RowPerThread
|
|
||||||
%306 = OpLogicalNot %bool %308
|
|
||||||
OpSelectionMerge %309 None
|
|
||||||
OpBranchConditional %306 %310 %309
|
|
||||||
%310 = OpLabel
|
|
||||||
OpBranch %303
|
|
||||||
%309 = OpLabel
|
|
||||||
%311 = OpLoad %uint %innerRow_1
|
|
||||||
%312 = OpIMul %uint %311 %RowPerThread
|
|
||||||
%313 = OpLoad %uint %innerCol_1
|
|
||||||
%314 = OpIAdd %uint %312 %313
|
|
||||||
%315 = OpAccessChain %_ptr_Function_float %acc %314
|
|
||||||
%316 = OpAccessChain %_ptr_Function_float %acc %314
|
|
||||||
%317 = OpLoad %float %316
|
|
||||||
%318 = OpLoad %float %ACached
|
|
||||||
%319 = OpLoad %uint %innerCol_1
|
|
||||||
%320 = OpAccessChain %_ptr_Function_float %BCached %319
|
|
||||||
%321 = OpLoad %float %320
|
|
||||||
%322 = OpFMul %float %318 %321
|
|
||||||
%323 = OpFAdd %float %317 %322
|
|
||||||
OpStore %315 %323
|
|
||||||
OpBranch %304
|
|
||||||
%304 = OpLabel
|
|
||||||
%324 = OpLoad %uint %innerCol_1
|
|
||||||
%325 = OpIAdd %uint %324 %uint_1
|
|
||||||
OpStore %innerCol_1 %325
|
|
||||||
OpBranch %302
|
|
||||||
%303 = OpLabel
|
|
||||||
OpBranch %289
|
|
||||||
%289 = OpLabel
|
|
||||||
%326 = OpLoad %uint %innerRow_1
|
|
||||||
%327 = OpIAdd %uint %326 %uint_1
|
|
||||||
OpStore %innerRow_1 %327
|
|
||||||
OpBranch %287
|
|
||||||
%288 = OpLabel
|
|
||||||
OpBranch %260
|
|
||||||
%260 = OpLabel
|
|
||||||
%328 = OpLoad %uint %k
|
|
||||||
%329 = OpIAdd %uint %328 %uint_1
|
|
||||||
OpStore %k %329
|
|
||||||
OpBranch %258
|
|
||||||
%259 = OpLabel
|
|
||||||
OpControlBarrier %uint_2 %uint_2 %uint_264
|
|
||||||
OpBranch %178
|
OpBranch %178
|
||||||
%178 = OpLabel
|
%178 = OpLabel
|
||||||
%331 = OpLoad %uint %t
|
%180 = OpLoad %uint %t
|
||||||
%332 = OpIAdd %uint %331 %uint_1
|
%181 = OpULessThan %bool %180 %141
|
||||||
OpStore %t %332
|
%179 = OpLogicalNot %bool %181
|
||||||
|
OpSelectionMerge %182 None
|
||||||
|
OpBranchConditional %179 %183 %182
|
||||||
|
%183 = OpLabel
|
||||||
OpBranch %176
|
OpBranch %176
|
||||||
|
%182 = OpLabel
|
||||||
|
OpStore %innerRow %106
|
||||||
|
OpBranch %185
|
||||||
|
%185 = OpLabel
|
||||||
|
OpLoopMerge %186 %187 None
|
||||||
|
OpBranch %188
|
||||||
|
%188 = OpLabel
|
||||||
|
%190 = OpLoad %uint %innerRow
|
||||||
|
%191 = OpULessThan %bool %190 %RowPerThread
|
||||||
|
%189 = OpLogicalNot %bool %191
|
||||||
|
OpSelectionMerge %192 None
|
||||||
|
OpBranchConditional %189 %193 %192
|
||||||
|
%193 = OpLabel
|
||||||
|
OpBranch %186
|
||||||
|
%192 = OpLabel
|
||||||
|
OpStore %innerCol %106
|
||||||
|
OpBranch %195
|
||||||
|
%195 = OpLabel
|
||||||
|
OpLoopMerge %196 %197 None
|
||||||
|
OpBranch %198
|
||||||
|
%198 = OpLabel
|
||||||
|
%200 = OpLoad %uint %innerCol
|
||||||
|
%201 = OpULessThan %bool %200 %168
|
||||||
|
%199 = OpLogicalNot %bool %201
|
||||||
|
OpSelectionMerge %202 None
|
||||||
|
OpBranchConditional %199 %203 %202
|
||||||
|
%203 = OpLabel
|
||||||
|
OpBranch %196
|
||||||
|
%202 = OpLabel
|
||||||
|
%204 = OpLoad %uint %innerRow
|
||||||
|
%205 = OpIAdd %uint %130 %204
|
||||||
|
%206 = OpLoad %uint %innerCol
|
||||||
|
%207 = OpIAdd %uint %170 %206
|
||||||
|
%209 = OpLoad %uint %innerRow
|
||||||
|
%210 = OpIAdd %uint %134 %209
|
||||||
|
%211 = OpLoad %uint %t
|
||||||
|
%212 = OpIMul %uint %211 %TileAOuter
|
||||||
|
%213 = OpIAdd %uint %212 %207
|
||||||
|
%208 = OpFunctionCall %float %mm_readA %210 %213
|
||||||
|
%214 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %205 %207
|
||||||
|
OpStore %214 %208
|
||||||
|
OpBranch %197
|
||||||
|
%197 = OpLabel
|
||||||
|
%215 = OpLoad %uint %innerCol
|
||||||
|
%216 = OpIAdd %uint %215 %uint_1
|
||||||
|
OpStore %innerCol %216
|
||||||
|
OpBranch %195
|
||||||
|
%196 = OpLabel
|
||||||
|
OpBranch %187
|
||||||
|
%187 = OpLabel
|
||||||
|
%217 = OpLoad %uint %innerRow
|
||||||
|
%218 = OpIAdd %uint %217 %uint_1
|
||||||
|
OpStore %innerRow %218
|
||||||
|
OpBranch %185
|
||||||
|
%186 = OpLabel
|
||||||
|
OpStore %innerRow_0 %106
|
||||||
|
OpBranch %220
|
||||||
|
%220 = OpLabel
|
||||||
|
OpLoopMerge %221 %222 None
|
||||||
|
OpBranch %223
|
||||||
|
%223 = OpLabel
|
||||||
|
%225 = OpLoad %uint %innerRow_0
|
||||||
|
%226 = OpULessThan %bool %225 %171
|
||||||
|
%224 = OpLogicalNot %bool %226
|
||||||
|
OpSelectionMerge %227 None
|
||||||
|
OpBranchConditional %224 %228 %227
|
||||||
|
%228 = OpLabel
|
||||||
|
OpBranch %221
|
||||||
|
%227 = OpLabel
|
||||||
|
OpStore %innerCol_0 %106
|
||||||
|
OpBranch %230
|
||||||
|
%230 = OpLabel
|
||||||
|
OpLoopMerge %231 %232 None
|
||||||
|
OpBranch %233
|
||||||
|
%233 = OpLabel
|
||||||
|
%235 = OpLoad %uint %innerCol_0
|
||||||
|
%236 = OpULessThan %bool %235 %RowPerThread
|
||||||
|
%234 = OpLogicalNot %bool %236
|
||||||
|
OpSelectionMerge %237 None
|
||||||
|
OpBranchConditional %234 %238 %237
|
||||||
|
%238 = OpLabel
|
||||||
|
OpBranch %231
|
||||||
|
%237 = OpLabel
|
||||||
|
%239 = OpLoad %uint %innerRow_0
|
||||||
|
%240 = OpIAdd %uint %173 %239
|
||||||
|
%241 = OpLoad %uint %innerCol_0
|
||||||
|
%242 = OpIAdd %uint %132 %241
|
||||||
|
%244 = OpLoad %uint %t
|
||||||
|
%245 = OpIMul %uint %244 %TileAOuter
|
||||||
|
%246 = OpIAdd %uint %245 %240
|
||||||
|
%247 = OpLoad %uint %innerCol_0
|
||||||
|
%248 = OpIAdd %uint %136 %247
|
||||||
|
%243 = OpFunctionCall %float %mm_readB %246 %248
|
||||||
|
%249 = OpLoad %uint %innerCol_0
|
||||||
|
%250 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %249 %242
|
||||||
|
OpStore %250 %243
|
||||||
|
OpBranch %232
|
||||||
|
%232 = OpLabel
|
||||||
|
%251 = OpLoad %uint %innerCol_0
|
||||||
|
%252 = OpIAdd %uint %251 %uint_1
|
||||||
|
OpStore %innerCol_0 %252
|
||||||
|
OpBranch %230
|
||||||
|
%231 = OpLabel
|
||||||
|
OpBranch %222
|
||||||
|
%222 = OpLabel
|
||||||
|
%253 = OpLoad %uint %innerRow_0
|
||||||
|
%254 = OpIAdd %uint %253 %uint_1
|
||||||
|
OpStore %innerRow_0 %254
|
||||||
|
OpBranch %220
|
||||||
|
%221 = OpLabel
|
||||||
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
||||||
|
OpStore %k %106
|
||||||
|
OpBranch %257
|
||||||
|
%257 = OpLabel
|
||||||
|
OpLoopMerge %258 %259 None
|
||||||
|
OpBranch %260
|
||||||
|
%260 = OpLabel
|
||||||
|
%262 = OpLoad %uint %k
|
||||||
|
%263 = OpULessThan %bool %262 %TileAOuter
|
||||||
|
%261 = OpLogicalNot %bool %263
|
||||||
|
OpSelectionMerge %264 None
|
||||||
|
OpBranchConditional %261 %265 %264
|
||||||
|
%265 = OpLabel
|
||||||
|
OpBranch %258
|
||||||
|
%264 = OpLabel
|
||||||
|
OpStore %inner %106
|
||||||
|
OpBranch %267
|
||||||
|
%267 = OpLabel
|
||||||
|
OpLoopMerge %268 %269 None
|
||||||
|
OpBranch %270
|
||||||
|
%270 = OpLabel
|
||||||
|
%272 = OpLoad %uint %inner
|
||||||
|
%273 = OpULessThan %bool %272 %RowPerThread
|
||||||
|
%271 = OpLogicalNot %bool %273
|
||||||
|
OpSelectionMerge %274 None
|
||||||
|
OpBranchConditional %271 %275 %274
|
||||||
|
%275 = OpLabel
|
||||||
|
OpBranch %268
|
||||||
|
%274 = OpLabel
|
||||||
|
%276 = OpLoad %uint %inner
|
||||||
|
%277 = OpAccessChain %_ptr_Function_float %BCached %276
|
||||||
|
%278 = OpLoad %uint %k
|
||||||
|
%279 = OpLoad %uint %inner
|
||||||
|
%280 = OpIAdd %uint %132 %279
|
||||||
|
%281 = OpAccessChain %_ptr_Workgroup_float %mm_Bsub %278 %280
|
||||||
|
%282 = OpLoad %float %281
|
||||||
|
OpStore %277 %282
|
||||||
|
OpBranch %269
|
||||||
|
%269 = OpLabel
|
||||||
|
%283 = OpLoad %uint %inner
|
||||||
|
%284 = OpIAdd %uint %283 %uint_1
|
||||||
|
OpStore %inner %284
|
||||||
|
OpBranch %267
|
||||||
|
%268 = OpLabel
|
||||||
|
OpStore %innerRow_1 %106
|
||||||
|
OpBranch %286
|
||||||
|
%286 = OpLabel
|
||||||
|
OpLoopMerge %287 %288 None
|
||||||
|
OpBranch %289
|
||||||
|
%289 = OpLabel
|
||||||
|
%291 = OpLoad %uint %innerRow_1
|
||||||
|
%292 = OpULessThan %bool %291 %RowPerThread
|
||||||
|
%290 = OpLogicalNot %bool %292
|
||||||
|
OpSelectionMerge %293 None
|
||||||
|
OpBranchConditional %290 %294 %293
|
||||||
|
%294 = OpLabel
|
||||||
|
OpBranch %287
|
||||||
|
%293 = OpLabel
|
||||||
|
%295 = OpLoad %uint %innerRow_1
|
||||||
|
%296 = OpIAdd %uint %130 %295
|
||||||
|
%297 = OpLoad %uint %k
|
||||||
|
%298 = OpAccessChain %_ptr_Workgroup_float %mm_Asub %296 %297
|
||||||
|
%299 = OpLoad %float %298
|
||||||
|
OpStore %ACached %299
|
||||||
|
OpStore %innerCol_1 %106
|
||||||
|
OpBranch %301
|
||||||
|
%301 = OpLabel
|
||||||
|
OpLoopMerge %302 %303 None
|
||||||
|
OpBranch %304
|
||||||
|
%304 = OpLabel
|
||||||
|
%306 = OpLoad %uint %innerCol_1
|
||||||
|
%307 = OpULessThan %bool %306 %RowPerThread
|
||||||
|
%305 = OpLogicalNot %bool %307
|
||||||
|
OpSelectionMerge %308 None
|
||||||
|
OpBranchConditional %305 %309 %308
|
||||||
|
%309 = OpLabel
|
||||||
|
OpBranch %302
|
||||||
|
%308 = OpLabel
|
||||||
|
%310 = OpLoad %uint %innerRow_1
|
||||||
|
%311 = OpIMul %uint %310 %RowPerThread
|
||||||
|
%312 = OpLoad %uint %innerCol_1
|
||||||
|
%313 = OpIAdd %uint %311 %312
|
||||||
|
%314 = OpAccessChain %_ptr_Function_float %acc %313
|
||||||
|
%315 = OpAccessChain %_ptr_Function_float %acc %313
|
||||||
|
%316 = OpLoad %float %315
|
||||||
|
%317 = OpLoad %float %ACached
|
||||||
|
%318 = OpLoad %uint %innerCol_1
|
||||||
|
%319 = OpAccessChain %_ptr_Function_float %BCached %318
|
||||||
|
%320 = OpLoad %float %319
|
||||||
|
%321 = OpFMul %float %317 %320
|
||||||
|
%322 = OpFAdd %float %316 %321
|
||||||
|
OpStore %314 %322
|
||||||
|
OpBranch %303
|
||||||
|
%303 = OpLabel
|
||||||
|
%323 = OpLoad %uint %innerCol_1
|
||||||
|
%324 = OpIAdd %uint %323 %uint_1
|
||||||
|
OpStore %innerCol_1 %324
|
||||||
|
OpBranch %301
|
||||||
|
%302 = OpLabel
|
||||||
|
OpBranch %288
|
||||||
|
%288 = OpLabel
|
||||||
|
%325 = OpLoad %uint %innerRow_1
|
||||||
|
%326 = OpIAdd %uint %325 %uint_1
|
||||||
|
OpStore %innerRow_1 %326
|
||||||
|
OpBranch %286
|
||||||
|
%287 = OpLabel
|
||||||
|
OpBranch %259
|
||||||
|
%259 = OpLabel
|
||||||
|
%327 = OpLoad %uint %k
|
||||||
|
%328 = OpIAdd %uint %327 %uint_1
|
||||||
|
OpStore %k %328
|
||||||
|
OpBranch %257
|
||||||
|
%258 = OpLabel
|
||||||
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
||||||
|
OpBranch %177
|
||||||
%177 = OpLabel
|
%177 = OpLabel
|
||||||
OpStore %innerRow_2 %uint_0
|
%330 = OpLoad %uint %t
|
||||||
OpBranch %334
|
%331 = OpIAdd %uint %330 %uint_1
|
||||||
%334 = OpLabel
|
OpStore %t %331
|
||||||
OpLoopMerge %335 %336 None
|
OpBranch %175
|
||||||
OpBranch %337
|
%176 = OpLabel
|
||||||
%337 = OpLabel
|
OpStore %innerRow_2 %106
|
||||||
%339 = OpLoad %uint %innerRow_2
|
OpBranch %333
|
||||||
%340 = OpULessThan %bool %339 %RowPerThread
|
%333 = OpLabel
|
||||||
%338 = OpLogicalNot %bool %340
|
OpLoopMerge %334 %335 None
|
||||||
OpSelectionMerge %341 None
|
|
||||||
OpBranchConditional %338 %342 %341
|
|
||||||
%342 = OpLabel
|
|
||||||
OpBranch %335
|
|
||||||
%341 = OpLabel
|
|
||||||
OpStore %innerCol_2 %uint_0
|
|
||||||
OpBranch %344
|
|
||||||
%344 = OpLabel
|
|
||||||
OpLoopMerge %345 %346 None
|
|
||||||
OpBranch %347
|
|
||||||
%347 = OpLabel
|
|
||||||
%349 = OpLoad %uint %innerCol_2
|
|
||||||
%350 = OpULessThan %bool %349 %RowPerThread
|
|
||||||
%348 = OpLogicalNot %bool %350
|
|
||||||
OpSelectionMerge %351 None
|
|
||||||
OpBranchConditional %348 %352 %351
|
|
||||||
%352 = OpLabel
|
|
||||||
OpBranch %345
|
|
||||||
%351 = OpLabel
|
|
||||||
%353 = OpLoad %uint %innerRow_2
|
|
||||||
%354 = OpIMul %uint %353 %RowPerThread
|
|
||||||
%355 = OpLoad %uint %innerCol_2
|
|
||||||
%356 = OpIAdd %uint %354 %355
|
|
||||||
%358 = OpLoad %uint %innerRow_2
|
|
||||||
%359 = OpIAdd %uint %135 %358
|
|
||||||
%360 = OpLoad %uint %innerCol_2
|
|
||||||
%361 = OpIAdd %uint %137 %360
|
|
||||||
%362 = OpAccessChain %_ptr_Function_float %acc %356
|
|
||||||
%363 = OpLoad %float %362
|
|
||||||
%357 = OpFunctionCall %void %mm_write %359 %361 %363
|
|
||||||
OpBranch %346
|
|
||||||
%346 = OpLabel
|
|
||||||
%364 = OpLoad %uint %innerCol_2
|
|
||||||
%365 = OpIAdd %uint %364 %uint_1
|
|
||||||
OpStore %innerCol_2 %365
|
|
||||||
OpBranch %344
|
|
||||||
%345 = OpLabel
|
|
||||||
OpBranch %336
|
OpBranch %336
|
||||||
%336 = OpLabel
|
%336 = OpLabel
|
||||||
%366 = OpLoad %uint %innerRow_2
|
%338 = OpLoad %uint %innerRow_2
|
||||||
%367 = OpIAdd %uint %366 %uint_1
|
%339 = OpULessThan %bool %338 %RowPerThread
|
||||||
OpStore %innerRow_2 %367
|
%337 = OpLogicalNot %bool %339
|
||||||
|
OpSelectionMerge %340 None
|
||||||
|
OpBranchConditional %337 %341 %340
|
||||||
|
%341 = OpLabel
|
||||||
OpBranch %334
|
OpBranch %334
|
||||||
|
%340 = OpLabel
|
||||||
|
OpStore %innerCol_2 %106
|
||||||
|
OpBranch %343
|
||||||
|
%343 = OpLabel
|
||||||
|
OpLoopMerge %344 %345 None
|
||||||
|
OpBranch %346
|
||||||
|
%346 = OpLabel
|
||||||
|
%348 = OpLoad %uint %innerCol_2
|
||||||
|
%349 = OpULessThan %bool %348 %RowPerThread
|
||||||
|
%347 = OpLogicalNot %bool %349
|
||||||
|
OpSelectionMerge %350 None
|
||||||
|
OpBranchConditional %347 %351 %350
|
||||||
|
%351 = OpLabel
|
||||||
|
OpBranch %344
|
||||||
|
%350 = OpLabel
|
||||||
|
%352 = OpLoad %uint %innerRow_2
|
||||||
|
%353 = OpIMul %uint %352 %RowPerThread
|
||||||
|
%354 = OpLoad %uint %innerCol_2
|
||||||
|
%355 = OpIAdd %uint %353 %354
|
||||||
|
%357 = OpLoad %uint %innerRow_2
|
||||||
|
%358 = OpIAdd %uint %134 %357
|
||||||
|
%359 = OpLoad %uint %innerCol_2
|
||||||
|
%360 = OpIAdd %uint %136 %359
|
||||||
|
%361 = OpAccessChain %_ptr_Function_float %acc %355
|
||||||
|
%362 = OpLoad %float %361
|
||||||
|
%356 = OpFunctionCall %void %mm_write %358 %360 %362
|
||||||
|
OpBranch %345
|
||||||
|
%345 = OpLabel
|
||||||
|
%363 = OpLoad %uint %innerCol_2
|
||||||
|
%364 = OpIAdd %uint %363 %uint_1
|
||||||
|
OpStore %innerCol_2 %364
|
||||||
|
OpBranch %343
|
||||||
|
%344 = OpLabel
|
||||||
|
OpBranch %335
|
||||||
%335 = OpLabel
|
%335 = OpLabel
|
||||||
|
%365 = OpLoad %uint %innerRow_2
|
||||||
|
%366 = OpIAdd %uint %365 %uint_1
|
||||||
|
OpStore %innerRow_2 %366
|
||||||
|
OpBranch %333
|
||||||
|
%334 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %368
|
%main = OpFunction %void None %367
|
||||||
%370 = OpLabel
|
%369 = OpLabel
|
||||||
%372 = OpLoad %v3uint %local_id_1
|
%371 = OpLoad %v3uint %local_id_1
|
||||||
%373 = OpLoad %v3uint %global_id_1
|
%372 = OpLoad %v3uint %global_id_1
|
||||||
%374 = OpLoad %uint %local_invocation_index_1
|
%373 = OpLoad %uint %local_invocation_index_1
|
||||||
%371 = OpFunctionCall %void %main_inner %372 %373 %374
|
%370 = OpFunctionCall %void %main_inner %371 %372 %373
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 387
|
; Bound: 386
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -219,16 +219,15 @@
|
||||||
%203 = OpTypeFunction %Mat4x4_ %float
|
%203 = OpTypeFunction %Mat4x4_ %float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%227 = OpTypeFunction %Mat4x4_ %Mat4x3_
|
%226 = OpTypeFunction %Mat4x4_ %Mat4x3_
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%245 = OpTypeFunction %Mat4x4_ %Mat4x2_
|
%244 = OpTypeFunction %Mat4x4_ %Mat4x2_
|
||||||
%259 = OpTypeFunction %Mat4x3_ %float
|
%258 = OpTypeFunction %Mat4x3_ %float
|
||||||
%275 = OpTypeFunction %Mat4x3_ %Mat4x4_
|
%274 = OpTypeFunction %Mat4x3_ %Mat4x4_
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%291 = OpTypeFunction %void
|
%290 = OpTypeFunction %void
|
||||||
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
%_ptr_Function_v2float = OpTypePointer Function %v2float
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%_ptr_Uniform_Mat4x3_ = OpTypePointer Uniform %Mat4x3_
|
%_ptr_Uniform_Mat4x3_ = OpTypePointer Uniform %Mat4x3_
|
||||||
|
@ -236,10 +235,10 @@
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%int_0 = OpConstant %int 0
|
%341 = OpConstantNull %int
|
||||||
%_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
|
%_ptr_Uniform_Mat4x2_ = OpTypePointer Uniform %Mat4x2_
|
||||||
%VertexOutput = OpTypeStruct %v4float %v2float %v4float
|
%VertexOutput = OpTypeStruct %v4float %v2float %v4float
|
||||||
%362 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
|
%361 = OpTypeFunction %VertexOutput %v3float %v2float %v4float %v3float %float
|
||||||
%Mat4x3GetCol0_ = OpFunction %v3float None %54
|
%Mat4x3GetCol0_ = OpFunction %v3float None %54
|
||||||
%m = OpFunctionParameter %Mat4x3_
|
%m = OpFunctionParameter %Mat4x3_
|
||||||
%57 = OpLabel
|
%57 = OpLabel
|
||||||
|
@ -412,211 +411,211 @@
|
||||||
OpStore %n1 %n
|
OpStore %n1 %n
|
||||||
%210 = OpLoad %float %n1
|
%210 = OpLoad %float %n1
|
||||||
%212 = OpAccessChain %_ptr_Function_v4float %o %uint_0
|
%212 = OpAccessChain %_ptr_Function_v4float %o %uint_0
|
||||||
%214 = OpCompositeConstruct %v4float %210 %float_0 %float_0 %float_0
|
%213 = OpCompositeConstruct %v4float %210 %23 %23 %23
|
||||||
OpStore %212 %214
|
OpStore %212 %213
|
||||||
%215 = OpLoad %float %n1
|
%214 = OpLoad %float %n1
|
||||||
%216 = OpAccessChain %_ptr_Function_v4float %o %uint_1
|
%215 = OpAccessChain %_ptr_Function_v4float %o %uint_1
|
||||||
%217 = OpCompositeConstruct %v4float %float_0 %215 %float_0 %float_0
|
%216 = OpCompositeConstruct %v4float %23 %214 %23 %23
|
||||||
OpStore %216 %217
|
OpStore %215 %216
|
||||||
%218 = OpLoad %float %n1
|
%217 = OpLoad %float %n1
|
||||||
%220 = OpAccessChain %_ptr_Function_v4float %o %uint_2
|
%219 = OpAccessChain %_ptr_Function_v4float %o %uint_2
|
||||||
%221 = OpCompositeConstruct %v4float %float_0 %float_0 %218 %float_0
|
%220 = OpCompositeConstruct %v4float %23 %23 %217 %23
|
||||||
OpStore %220 %221
|
OpStore %219 %220
|
||||||
%222 = OpLoad %float %n1
|
%221 = OpLoad %float %n1
|
||||||
%224 = OpAccessChain %_ptr_Function_v4float %o %uint_3
|
%223 = OpAccessChain %_ptr_Function_v4float %o %uint_3
|
||||||
%225 = OpCompositeConstruct %v4float %float_0 %float_0 %float_0 %222
|
%224 = OpCompositeConstruct %v4float %23 %23 %23 %221
|
||||||
OpStore %224 %225
|
OpStore %223 %224
|
||||||
%226 = OpLoad %Mat4x4_ %o
|
%225 = OpLoad %Mat4x4_ %o
|
||||||
OpReturnValue %226
|
OpReturnValue %225
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%x_Mat4x4_1 = OpFunction %Mat4x4_ None %227
|
%x_Mat4x4_1 = OpFunction %Mat4x4_ None %226
|
||||||
%m16 = OpFunctionParameter %Mat4x3_
|
%m16 = OpFunctionParameter %Mat4x3_
|
||||||
%230 = OpLabel
|
%229 = OpLabel
|
||||||
%m17 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
%m17 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
||||||
%o1 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
%o1 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
||||||
OpStore %m17 %m16
|
OpStore %m17 %m16
|
||||||
%233 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
|
%232 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
|
||||||
OpStore %o1 %233
|
OpStore %o1 %232
|
||||||
%235 = OpLoad %Mat4x3_ %m17
|
%234 = OpLoad %Mat4x3_ %m17
|
||||||
%236 = OpAccessChain %_ptr_Function_v4float %o1 %uint_0
|
%235 = OpAccessChain %_ptr_Function_v4float %o1 %uint_0
|
||||||
%237 = OpCompositeExtract %v4float %235 0
|
%236 = OpCompositeExtract %v4float %234 0
|
||||||
OpStore %236 %237
|
OpStore %235 %236
|
||||||
%238 = OpLoad %Mat4x3_ %m17
|
%237 = OpLoad %Mat4x3_ %m17
|
||||||
%239 = OpAccessChain %_ptr_Function_v4float %o1 %uint_1
|
%238 = OpAccessChain %_ptr_Function_v4float %o1 %uint_1
|
||||||
%240 = OpCompositeExtract %v4float %238 1
|
%239 = OpCompositeExtract %v4float %237 1
|
||||||
OpStore %239 %240
|
OpStore %238 %239
|
||||||
%241 = OpLoad %Mat4x3_ %m17
|
%240 = OpLoad %Mat4x3_ %m17
|
||||||
%242 = OpAccessChain %_ptr_Function_v4float %o1 %uint_2
|
%241 = OpAccessChain %_ptr_Function_v4float %o1 %uint_2
|
||||||
%243 = OpCompositeExtract %v4float %241 2
|
%242 = OpCompositeExtract %v4float %240 2
|
||||||
OpStore %242 %243
|
OpStore %241 %242
|
||||||
%244 = OpLoad %Mat4x4_ %o1
|
%243 = OpLoad %Mat4x4_ %o1
|
||||||
OpReturnValue %244
|
OpReturnValue %243
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%x_Mat4x4_2 = OpFunction %Mat4x4_ None %245
|
%x_Mat4x4_2 = OpFunction %Mat4x4_ None %244
|
||||||
%m18 = OpFunctionParameter %Mat4x2_
|
%m18 = OpFunctionParameter %Mat4x2_
|
||||||
%248 = OpLabel
|
%247 = OpLabel
|
||||||
%m19 = OpVariable %_ptr_Function_Mat4x2_ Function %167
|
%m19 = OpVariable %_ptr_Function_Mat4x2_ Function %167
|
||||||
%o2 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
%o2 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
||||||
OpStore %m19 %m18
|
OpStore %m19 %m18
|
||||||
%251 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
|
%250 = OpFunctionCall %Mat4x4_ %x_Mat4x4_ %float_1
|
||||||
OpStore %o2 %251
|
OpStore %o2 %250
|
||||||
%252 = OpLoad %Mat4x2_ %m19
|
%251 = OpLoad %Mat4x2_ %m19
|
||||||
%253 = OpAccessChain %_ptr_Function_v4float %o2 %uint_0
|
%252 = OpAccessChain %_ptr_Function_v4float %o2 %uint_0
|
||||||
%254 = OpCompositeExtract %v4float %252 0
|
%253 = OpCompositeExtract %v4float %251 0
|
||||||
OpStore %253 %254
|
OpStore %252 %253
|
||||||
%255 = OpLoad %Mat4x2_ %m19
|
%254 = OpLoad %Mat4x2_ %m19
|
||||||
%256 = OpAccessChain %_ptr_Function_v4float %o2 %uint_1
|
%255 = OpAccessChain %_ptr_Function_v4float %o2 %uint_1
|
||||||
%257 = OpCompositeExtract %v4float %255 1
|
%256 = OpCompositeExtract %v4float %254 1
|
||||||
OpStore %256 %257
|
OpStore %255 %256
|
||||||
%258 = OpLoad %Mat4x4_ %o2
|
%257 = OpLoad %Mat4x4_ %o2
|
||||||
OpReturnValue %258
|
OpReturnValue %257
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%x_Mat4x3_ = OpFunction %Mat4x3_ None %259
|
%x_Mat4x3_ = OpFunction %Mat4x3_ None %258
|
||||||
%n2 = OpFunctionParameter %float
|
%n2 = OpFunctionParameter %float
|
||||||
%262 = OpLabel
|
%261 = OpLabel
|
||||||
%n3 = OpVariable %_ptr_Function_float Function %23
|
%n3 = OpVariable %_ptr_Function_float Function %23
|
||||||
%o3 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
%o3 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
||||||
OpStore %n3 %n2
|
OpStore %n3 %n2
|
||||||
%265 = OpLoad %float %n3
|
%264 = OpLoad %float %n3
|
||||||
%266 = OpAccessChain %_ptr_Function_v4float %o3 %uint_0
|
%265 = OpAccessChain %_ptr_Function_v4float %o3 %uint_0
|
||||||
%267 = OpCompositeConstruct %v4float %265 %float_0 %float_0 %float_0
|
%266 = OpCompositeConstruct %v4float %264 %23 %23 %23
|
||||||
OpStore %266 %267
|
OpStore %265 %266
|
||||||
%268 = OpLoad %float %n3
|
%267 = OpLoad %float %n3
|
||||||
%269 = OpAccessChain %_ptr_Function_v4float %o3 %uint_1
|
%268 = OpAccessChain %_ptr_Function_v4float %o3 %uint_1
|
||||||
%270 = OpCompositeConstruct %v4float %float_0 %268 %float_0 %float_0
|
%269 = OpCompositeConstruct %v4float %23 %267 %23 %23
|
||||||
OpStore %269 %270
|
OpStore %268 %269
|
||||||
%271 = OpLoad %float %n3
|
%270 = OpLoad %float %n3
|
||||||
%272 = OpAccessChain %_ptr_Function_v4float %o3 %uint_2
|
%271 = OpAccessChain %_ptr_Function_v4float %o3 %uint_2
|
||||||
%273 = OpCompositeConstruct %v4float %float_0 %float_0 %271 %float_0
|
%272 = OpCompositeConstruct %v4float %23 %23 %270 %23
|
||||||
OpStore %272 %273
|
OpStore %271 %272
|
||||||
%274 = OpLoad %Mat4x3_ %o3
|
%273 = OpLoad %Mat4x3_ %o3
|
||||||
OpReturnValue %274
|
OpReturnValue %273
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%x_Mat4x3_1 = OpFunction %Mat4x3_ None %275
|
%x_Mat4x3_1 = OpFunction %Mat4x3_ None %274
|
||||||
%m20 = OpFunctionParameter %Mat4x4_
|
%m20 = OpFunctionParameter %Mat4x4_
|
||||||
%278 = OpLabel
|
%277 = OpLabel
|
||||||
%m21 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
%m21 = OpVariable %_ptr_Function_Mat4x4_ Function %120
|
||||||
%o4 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
%o4 = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
||||||
OpStore %m21 %m20
|
OpStore %m21 %m20
|
||||||
%281 = OpLoad %Mat4x4_ %m21
|
%280 = OpLoad %Mat4x4_ %m21
|
||||||
%282 = OpAccessChain %_ptr_Function_v4float %o4 %uint_0
|
%281 = OpAccessChain %_ptr_Function_v4float %o4 %uint_0
|
||||||
%283 = OpCompositeExtract %v4float %281 0
|
%282 = OpCompositeExtract %v4float %280 0
|
||||||
OpStore %282 %283
|
OpStore %281 %282
|
||||||
%284 = OpLoad %Mat4x4_ %m21
|
%283 = OpLoad %Mat4x4_ %m21
|
||||||
%285 = OpAccessChain %_ptr_Function_v4float %o4 %uint_1
|
%284 = OpAccessChain %_ptr_Function_v4float %o4 %uint_1
|
||||||
%286 = OpCompositeExtract %v4float %284 1
|
%285 = OpCompositeExtract %v4float %283 1
|
||||||
OpStore %285 %286
|
OpStore %284 %285
|
||||||
%287 = OpLoad %Mat4x4_ %m21
|
%286 = OpLoad %Mat4x4_ %m21
|
||||||
%288 = OpAccessChain %_ptr_Function_v4float %o4 %uint_2
|
%287 = OpAccessChain %_ptr_Function_v4float %o4 %uint_2
|
||||||
%289 = OpCompositeExtract %v4float %287 2
|
%288 = OpCompositeExtract %v4float %286 2
|
||||||
OpStore %288 %289
|
OpStore %287 %288
|
||||||
%290 = OpLoad %Mat4x3_ %o4
|
%289 = OpLoad %Mat4x3_ %o4
|
||||||
OpReturnValue %290
|
OpReturnValue %289
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main1 = OpFunction %void None %291
|
%main1 = OpFunction %void None %290
|
||||||
%294 = OpLabel
|
%293 = OpLabel
|
||||||
%t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
%t_PosMtx = OpVariable %_ptr_Function_Mat4x3_ Function %60
|
||||||
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
|
%t_TexSpaceCoord = OpVariable %_ptr_Function_v2float Function %19
|
||||||
%298 = OpLoad %float %a_PosMtxIdx1
|
%297 = OpLoad %float %a_PosMtxIdx1
|
||||||
%299 = OpConvertFToS %int %298
|
%298 = OpConvertFToS %int %297
|
||||||
%302 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %299
|
%301 = OpAccessChain %_ptr_Uniform_Mat4x3_ %global2 %uint_0 %298
|
||||||
%303 = OpLoad %Mat4x3_ %302
|
%302 = OpLoad %Mat4x3_ %301
|
||||||
OpStore %t_PosMtx %303
|
OpStore %t_PosMtx %302
|
||||||
%304 = OpLoad %Mat4x3_ %t_PosMtx
|
%303 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%305 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %304
|
%304 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %303
|
||||||
%306 = OpLoad %v3float %a_Position1
|
%305 = OpLoad %v3float %a_Position1
|
||||||
%307 = OpLoad %Mat4x3_ %t_PosMtx
|
%306 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%308 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %307
|
%307 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %306
|
||||||
%309 = OpLoad %v3float %a_Position1
|
%308 = OpLoad %v3float %a_Position1
|
||||||
%311 = OpCompositeExtract %float %309 0
|
%310 = OpCompositeExtract %float %308 0
|
||||||
%312 = OpCompositeExtract %float %309 1
|
%311 = OpCompositeExtract %float %308 1
|
||||||
%313 = OpCompositeExtract %float %309 2
|
%312 = OpCompositeExtract %float %308 2
|
||||||
%314 = OpCompositeConstruct %v4float %311 %312 %313 %float_1
|
%313 = OpCompositeConstruct %v4float %310 %311 %312 %float_1
|
||||||
%310 = OpFunctionCall %v4float %Mul %308 %314
|
%309 = OpFunctionCall %v4float %Mul %307 %313
|
||||||
%316 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0
|
%315 = OpAccessChain %_ptr_Uniform_Mat4x4_ %global %uint_0
|
||||||
%317 = OpLoad %Mat4x4_ %316
|
%316 = OpLoad %Mat4x4_ %315
|
||||||
%318 = OpLoad %Mat4x3_ %t_PosMtx
|
%317 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%319 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %318
|
%318 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %317
|
||||||
%320 = OpLoad %v3float %a_Position1
|
%319 = OpLoad %v3float %a_Position1
|
||||||
%321 = OpLoad %Mat4x3_ %t_PosMtx
|
%320 = OpLoad %Mat4x3_ %t_PosMtx
|
||||||
%322 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %321
|
%321 = OpFunctionCall %Mat4x4_ %x_Mat4x4_1 %320
|
||||||
%323 = OpLoad %v3float %a_Position1
|
%322 = OpLoad %v3float %a_Position1
|
||||||
%325 = OpCompositeExtract %float %323 0
|
%324 = OpCompositeExtract %float %322 0
|
||||||
%326 = OpCompositeExtract %float %323 1
|
%325 = OpCompositeExtract %float %322 1
|
||||||
%327 = OpCompositeExtract %float %323 2
|
%326 = OpCompositeExtract %float %322 2
|
||||||
%328 = OpCompositeConstruct %v4float %325 %326 %327 %float_1
|
%327 = OpCompositeConstruct %v4float %324 %325 %326 %float_1
|
||||||
%324 = OpFunctionCall %v4float %Mul %322 %328
|
%323 = OpFunctionCall %v4float %Mul %321 %327
|
||||||
%329 = OpFunctionCall %v4float %Mul %317 %324
|
%328 = OpFunctionCall %v4float %Mul %316 %323
|
||||||
OpStore %gl_Position %329
|
OpStore %gl_Position %328
|
||||||
%330 = OpLoad %v4float %a_Color1
|
%329 = OpLoad %v4float %a_Color1
|
||||||
OpStore %v_Color %330
|
OpStore %v_Color %329
|
||||||
%332 = OpAccessChain %_ptr_Uniform_v4float %global1 %uint_1
|
%331 = OpAccessChain %_ptr_Uniform_v4float %global1 %uint_1
|
||||||
%333 = OpLoad %v4float %332
|
%332 = OpLoad %v4float %331
|
||||||
%334 = OpCompositeExtract %float %333 0
|
%333 = OpCompositeExtract %float %332 0
|
||||||
%336 = OpFOrdEqual %bool %334 %float_2
|
%335 = OpFOrdEqual %bool %333 %float_2
|
||||||
OpSelectionMerge %338 None
|
OpSelectionMerge %337 None
|
||||||
OpBranchConditional %336 %339 %340
|
OpBranchConditional %335 %338 %339
|
||||||
%339 = OpLabel
|
|
||||||
%341 = OpLoad %v3float %a_Normal1
|
|
||||||
%344 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %int_0
|
|
||||||
%345 = OpLoad %Mat4x2_ %344
|
|
||||||
%346 = OpLoad %v3float %a_Normal1
|
|
||||||
%348 = OpCompositeExtract %float %346 0
|
|
||||||
%349 = OpCompositeExtract %float %346 1
|
|
||||||
%350 = OpCompositeExtract %float %346 2
|
|
||||||
%351 = OpCompositeConstruct %v4float %348 %349 %350 %float_1
|
|
||||||
%347 = OpFunctionCall %v2float %Mul2 %345 %351
|
|
||||||
%352 = OpVectorShuffle %v2float %347 %347 0 1
|
|
||||||
OpStore %v_TexCoord %352
|
|
||||||
OpReturn
|
|
||||||
%340 = OpLabel
|
|
||||||
%353 = OpLoad %v2float %a_UV1
|
|
||||||
%354 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %int_0
|
|
||||||
%355 = OpLoad %Mat4x2_ %354
|
|
||||||
%356 = OpLoad %v2float %a_UV1
|
|
||||||
%358 = OpCompositeExtract %float %356 0
|
|
||||||
%359 = OpCompositeExtract %float %356 1
|
|
||||||
%360 = OpCompositeConstruct %v4float %358 %359 %float_1 %float_1
|
|
||||||
%357 = OpFunctionCall %v2float %Mul2 %355 %360
|
|
||||||
%361 = OpVectorShuffle %v2float %357 %357 0 1
|
|
||||||
OpStore %v_TexCoord %361
|
|
||||||
OpReturn
|
|
||||||
%338 = OpLabel
|
%338 = OpLabel
|
||||||
|
%340 = OpLoad %v3float %a_Normal1
|
||||||
|
%343 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %341
|
||||||
|
%344 = OpLoad %Mat4x2_ %343
|
||||||
|
%345 = OpLoad %v3float %a_Normal1
|
||||||
|
%347 = OpCompositeExtract %float %345 0
|
||||||
|
%348 = OpCompositeExtract %float %345 1
|
||||||
|
%349 = OpCompositeExtract %float %345 2
|
||||||
|
%350 = OpCompositeConstruct %v4float %347 %348 %349 %float_1
|
||||||
|
%346 = OpFunctionCall %v2float %Mul2 %344 %350
|
||||||
|
%351 = OpVectorShuffle %v2float %346 %346 0 1
|
||||||
|
OpStore %v_TexCoord %351
|
||||||
|
OpReturn
|
||||||
|
%339 = OpLabel
|
||||||
|
%352 = OpLoad %v2float %a_UV1
|
||||||
|
%353 = OpAccessChain %_ptr_Uniform_Mat4x2_ %global1 %uint_0 %341
|
||||||
|
%354 = OpLoad %Mat4x2_ %353
|
||||||
|
%355 = OpLoad %v2float %a_UV1
|
||||||
|
%357 = OpCompositeExtract %float %355 0
|
||||||
|
%358 = OpCompositeExtract %float %355 1
|
||||||
|
%359 = OpCompositeConstruct %v4float %357 %358 %float_1 %float_1
|
||||||
|
%356 = OpFunctionCall %v2float %Mul2 %354 %359
|
||||||
|
%360 = OpVectorShuffle %v2float %356 %356 0 1
|
||||||
|
OpStore %v_TexCoord %360
|
||||||
|
OpReturn
|
||||||
|
%337 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %VertexOutput None %362
|
%main_inner = OpFunction %VertexOutput None %361
|
||||||
%a_Position = OpFunctionParameter %v3float
|
%a_Position = OpFunctionParameter %v3float
|
||||||
%a_UV = OpFunctionParameter %v2float
|
%a_UV = OpFunctionParameter %v2float
|
||||||
%a_Color = OpFunctionParameter %v4float
|
%a_Color = OpFunctionParameter %v4float
|
||||||
%a_Normal = OpFunctionParameter %v3float
|
%a_Normal = OpFunctionParameter %v3float
|
||||||
%a_PosMtxIdx = OpFunctionParameter %float
|
%a_PosMtxIdx = OpFunctionParameter %float
|
||||||
%370 = OpLabel
|
%369 = OpLabel
|
||||||
OpStore %a_Position1 %a_Position
|
OpStore %a_Position1 %a_Position
|
||||||
OpStore %a_UV1 %a_UV
|
OpStore %a_UV1 %a_UV
|
||||||
OpStore %a_Color1 %a_Color
|
OpStore %a_Color1 %a_Color
|
||||||
OpStore %a_Normal1 %a_Normal
|
OpStore %a_Normal1 %a_Normal
|
||||||
OpStore %a_PosMtxIdx1 %a_PosMtxIdx
|
OpStore %a_PosMtxIdx1 %a_PosMtxIdx
|
||||||
%371 = OpFunctionCall %void %main1
|
%370 = OpFunctionCall %void %main1
|
||||||
%372 = OpLoad %v4float %v_Color
|
%371 = OpLoad %v4float %v_Color
|
||||||
%373 = OpLoad %v2float %v_TexCoord
|
%372 = OpLoad %v2float %v_TexCoord
|
||||||
%374 = OpLoad %v4float %gl_Position
|
%373 = OpLoad %v4float %gl_Position
|
||||||
%375 = OpCompositeConstruct %VertexOutput %372 %373 %374
|
%374 = OpCompositeConstruct %VertexOutput %371 %372 %373
|
||||||
OpReturnValue %375
|
OpReturnValue %374
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %291
|
%main = OpFunction %void None %290
|
||||||
%377 = OpLabel
|
%376 = OpLabel
|
||||||
%379 = OpLoad %v3float %a_Position_1
|
%378 = OpLoad %v3float %a_Position_1
|
||||||
%380 = OpLoad %v2float %a_UV_1
|
%379 = OpLoad %v2float %a_UV_1
|
||||||
%381 = OpLoad %v4float %a_Color_1
|
%380 = OpLoad %v4float %a_Color_1
|
||||||
%382 = OpLoad %v3float %a_Normal_1
|
%381 = OpLoad %v3float %a_Normal_1
|
||||||
%383 = OpLoad %float %a_PosMtxIdx_1
|
%382 = OpLoad %float %a_PosMtxIdx_1
|
||||||
%378 = OpFunctionCall %VertexOutput %main_inner %379 %380 %381 %382 %383
|
%377 = OpFunctionCall %VertexOutput %main_inner %378 %379 %380 %381 %382
|
||||||
%384 = OpCompositeExtract %v4float %378 0
|
%383 = OpCompositeExtract %v4float %377 0
|
||||||
OpStore %v_Color_1 %384
|
OpStore %v_Color_1 %383
|
||||||
%385 = OpCompositeExtract %v2float %378 1
|
%384 = OpCompositeExtract %v2float %377 1
|
||||||
OpStore %v_TexCoord_1 %385
|
OpStore %v_TexCoord_1 %384
|
||||||
%386 = OpCompositeExtract %v4float %378 2
|
%385 = OpCompositeExtract %v4float %377 2
|
||||||
OpStore %member_1 %386
|
OpStore %member_1 %385
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 27
|
; Bound: 28
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -27,25 +27,26 @@
|
||||||
%DrawIndirectArgs = OpTypeStruct %uint
|
%DrawIndirectArgs = OpTypeStruct %uint
|
||||||
%_ptr_StorageBuffer_DrawIndirectArgs = OpTypePointer StorageBuffer %DrawIndirectArgs
|
%_ptr_StorageBuffer_DrawIndirectArgs = OpTypePointer StorageBuffer %DrawIndirectArgs
|
||||||
%drawOut = OpVariable %_ptr_StorageBuffer_DrawIndirectArgs StorageBuffer
|
%drawOut = OpVariable %_ptr_StorageBuffer_DrawIndirectArgs StorageBuffer
|
||||||
%uint_0 = OpConstant %uint 0
|
%8 = OpConstantNull %uint
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
%cubeVerts = OpVariable %_ptr_Private_uint Private %uint_0
|
%cubeVerts = OpVariable %_ptr_Private_uint Private %8
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%11 = OpTypeFunction %void %v3uint
|
%11 = OpTypeFunction %void %v3uint
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%22 = OpTypeFunction %void
|
%23 = OpTypeFunction %void
|
||||||
%computeMain_inner = OpFunction %void None %11
|
%computeMain_inner = OpFunction %void None %11
|
||||||
%global_id = OpFunctionParameter %v3uint
|
%global_id = OpFunctionParameter %v3uint
|
||||||
%15 = OpLabel
|
%15 = OpLabel
|
||||||
%20 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
|
%21 = OpAccessChain %_ptr_StorageBuffer_uint %drawOut %uint_0
|
||||||
%21 = OpLoad %uint %cubeVerts
|
%22 = OpLoad %uint %cubeVerts
|
||||||
%16 = OpAtomicIAdd %uint %20 %uint_1 %uint_0 %21
|
%16 = OpAtomicIAdd %uint %21 %uint_1 %uint_0 %22
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%computeMain = OpFunction %void None %22
|
%computeMain = OpFunction %void None %23
|
||||||
%24 = OpLabel
|
%25 = OpLabel
|
||||||
%26 = OpLoad %v3uint %global_id_1
|
%27 = OpLoad %v3uint %global_id_1
|
||||||
%25 = OpFunctionCall %void %computeMain_inner %26
|
%26 = OpFunctionCall %void %computeMain_inner %27
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 259
|
; Bound: 258
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpCapability ImageQuery
|
OpCapability ImageQuery
|
||||||
|
@ -106,7 +106,7 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%v2int = OpTypeVector %int 2
|
%v2int = OpTypeVector %int 2
|
||||||
%int_0 = OpConstant %int 0
|
%76 = OpConstantNull %int
|
||||||
%v2uint = OpTypeVector %uint 2
|
%v2uint = OpTypeVector %uint 2
|
||||||
%85 = OpConstantComposite %v2uint %uint_4 %uint_1
|
%85 = OpConstantComposite %v2uint %uint_4 %uint_1
|
||||||
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
|
@ -116,12 +116,11 @@
|
||||||
%v2float = OpTypeVector %float 2
|
%v2float = OpTypeVector %float 2
|
||||||
%float_0_25 = OpConstant %float 0.25
|
%float_0_25 = OpConstant %float 0.25
|
||||||
%143 = OpConstantComposite %v2float %float_0_25 %float_0_25
|
%143 = OpConstantComposite %v2float %float_0_25 %float_0_25
|
||||||
%float_0 = OpConstant %float 0
|
%147 = OpConstantNull %float
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%207 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%252 = OpTypeFunction %void
|
%251 = OpTypeFunction %void
|
||||||
%main_inner = OpFunction %void None %31
|
%main_inner = OpFunction %void None %31
|
||||||
%WorkGroupID = OpFunctionParameter %v3uint
|
%WorkGroupID = OpFunctionParameter %v3uint
|
||||||
%LocalInvocationID = OpFunctionParameter %v3uint
|
%LocalInvocationID = OpFunctionParameter %v3uint
|
||||||
|
@ -170,7 +169,7 @@
|
||||||
%70 = OpISub %uint %68 %uint_1
|
%70 = OpISub %uint %68 %uint_1
|
||||||
%71 = OpUDiv %uint %70 %uint_2
|
%71 = OpUDiv %uint %70 %uint_2
|
||||||
%75 = OpLoad %16 %inputTex
|
%75 = OpLoad %16 %inputTex
|
||||||
%72 = OpImageQuerySizeLod %v2int %75 %int_0
|
%72 = OpImageQuerySizeLod %v2int %75 %76
|
||||||
%79 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1
|
%79 = OpVectorShuffle %v2uint %WorkGroupID %WorkGroupID 0 1
|
||||||
%80 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
|
%80 = OpAccessChain %_ptr_Uniform_uint %params %uint_1
|
||||||
%81 = OpLoad %uint %80
|
%81 = OpLoad %uint %80
|
||||||
|
@ -181,9 +180,9 @@
|
||||||
%87 = OpIAdd %v2uint %83 %86
|
%87 = OpIAdd %v2uint %83 %86
|
||||||
%77 = OpBitcast %v2int %87
|
%77 = OpBitcast %v2int %87
|
||||||
%88 = OpBitcast %int %71
|
%88 = OpBitcast %int %71
|
||||||
%89 = OpCompositeConstruct %v2int %88 %int_0
|
%89 = OpCompositeConstruct %v2int %88 %76
|
||||||
%90 = OpISub %v2int %77 %89
|
%90 = OpISub %v2int %77 %89
|
||||||
OpStore %r %uint_0
|
OpStore %r %40
|
||||||
OpBranch %92
|
OpBranch %92
|
||||||
%92 = OpLabel
|
%92 = OpLabel
|
||||||
OpLoopMerge %93 %94 None
|
OpLoopMerge %93 %94 None
|
||||||
|
@ -197,7 +196,7 @@
|
||||||
%100 = OpLabel
|
%100 = OpLabel
|
||||||
OpBranch %93
|
OpBranch %93
|
||||||
%99 = OpLabel
|
%99 = OpLabel
|
||||||
OpStore %c %uint_0
|
OpStore %c %40
|
||||||
OpBranch %102
|
OpBranch %102
|
||||||
%102 = OpLabel
|
%102 = OpLabel
|
||||||
OpLoopMerge %103 %104 None
|
OpLoopMerge %103 %104 None
|
||||||
|
@ -220,7 +219,7 @@
|
||||||
OpStore %loadIndex %116
|
OpStore %loadIndex %116
|
||||||
%120 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
|
%120 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
|
||||||
%121 = OpLoad %uint %120
|
%121 = OpLoad %uint %120
|
||||||
%122 = OpINotEqual %bool %121 %uint_0
|
%122 = OpINotEqual %bool %121 %40
|
||||||
OpSelectionMerge %123 None
|
OpSelectionMerge %123 None
|
||||||
OpBranchConditional %122 %124 %123
|
OpBranchConditional %122 %124 %123
|
||||||
%124 = OpLabel
|
%124 = OpLabel
|
||||||
|
@ -243,7 +242,7 @@
|
||||||
%144 = OpFAdd %v2float %139 %143
|
%144 = OpFAdd %v2float %139 %143
|
||||||
%145 = OpConvertSToF %v2float %72
|
%145 = OpConvertSToF %v2float %72
|
||||||
%146 = OpFDiv %v2float %144 %145
|
%146 = OpFDiv %v2float %144 %145
|
||||||
%133 = OpImageSampleExplicitLod %v4float %138 %146 Lod %float_0
|
%133 = OpImageSampleExplicitLod %v4float %138 %146 Lod %147
|
||||||
%148 = OpVectorShuffle %v3float %133 %133 0 1 2
|
%148 = OpVectorShuffle %v3float %133 %133 0 1 2
|
||||||
OpStore %132 %148
|
OpStore %132 %148
|
||||||
OpBranch %104
|
OpBranch %104
|
||||||
|
@ -261,7 +260,7 @@
|
||||||
OpBranch %92
|
OpBranch %92
|
||||||
%93 = OpLabel
|
%93 = OpLabel
|
||||||
OpControlBarrier %uint_2 %uint_2 %uint_264
|
OpControlBarrier %uint_2 %uint_2 %uint_264
|
||||||
OpStore %r_0 %uint_0
|
OpStore %r_0 %40
|
||||||
OpBranch %155
|
OpBranch %155
|
||||||
%155 = OpLabel
|
%155 = OpLabel
|
||||||
OpLoopMerge %156 %157 None
|
OpLoopMerge %156 %157 None
|
||||||
|
@ -275,7 +274,7 @@
|
||||||
%163 = OpLabel
|
%163 = OpLabel
|
||||||
OpBranch %156
|
OpBranch %156
|
||||||
%162 = OpLabel
|
%162 = OpLabel
|
||||||
OpStore %c_0 %uint_0
|
OpStore %c_0 %40
|
||||||
OpBranch %165
|
OpBranch %165
|
||||||
%165 = OpLabel
|
%165 = OpLabel
|
||||||
OpLoopMerge %166 %167 None
|
OpLoopMerge %166 %167 None
|
||||||
|
@ -298,7 +297,7 @@
|
||||||
OpStore %writeIndex %179
|
OpStore %writeIndex %179
|
||||||
%181 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
|
%181 = OpAccessChain %_ptr_Uniform_uint %flip %uint_0
|
||||||
%182 = OpLoad %uint %181
|
%182 = OpLoad %uint %181
|
||||||
%183 = OpINotEqual %bool %182 %uint_0
|
%183 = OpINotEqual %bool %182 %40
|
||||||
OpSelectionMerge %184 None
|
OpSelectionMerge %184 None
|
||||||
OpBranchConditional %183 %185 %184
|
OpBranchConditional %183 %185 %184
|
||||||
%185 = OpLabel
|
%185 = OpLabel
|
||||||
|
@ -332,77 +331,77 @@
|
||||||
OpSelectionMerge %205 None
|
OpSelectionMerge %205 None
|
||||||
OpBranchConditional %204 %206 %205
|
OpBranchConditional %204 %206 %205
|
||||||
%206 = OpLabel
|
%206 = OpLabel
|
||||||
OpStore %acc %207
|
OpStore %acc %58
|
||||||
OpStore %f %uint_0
|
OpStore %f %40
|
||||||
OpBranch %211
|
OpBranch %210
|
||||||
%211 = OpLabel
|
%210 = OpLabel
|
||||||
OpLoopMerge %212 %213 None
|
OpLoopMerge %211 %212 None
|
||||||
OpBranch %214
|
|
||||||
%214 = OpLabel
|
|
||||||
%216 = OpLoad %uint %f
|
|
||||||
%217 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
|
|
||||||
%218 = OpLoad %uint %217
|
|
||||||
%219 = OpULessThan %bool %216 %218
|
|
||||||
%215 = OpLogicalNot %bool %219
|
|
||||||
OpSelectionMerge %220 None
|
|
||||||
OpBranchConditional %215 %221 %220
|
|
||||||
%221 = OpLabel
|
|
||||||
OpBranch %212
|
|
||||||
%220 = OpLabel
|
|
||||||
%222 = OpLoad %uint %f
|
|
||||||
%223 = OpIAdd %uint %191 %222
|
|
||||||
%224 = OpISub %uint %223 %71
|
|
||||||
OpStore %i %224
|
|
||||||
%226 = OpLoad %v3float %acc
|
|
||||||
%229 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
|
|
||||||
%230 = OpLoad %uint %229
|
|
||||||
%228 = OpConvertUToF %float %230
|
|
||||||
%231 = OpFDiv %float %float_1 %228
|
|
||||||
%232 = OpLoad %uint %r_0
|
|
||||||
%233 = OpLoad %uint %i
|
|
||||||
%234 = OpAccessChain %_ptr_Workgroup_v3float %tile %232 %233
|
|
||||||
%235 = OpLoad %v3float %234
|
|
||||||
%236 = OpVectorTimesScalar %v3float %235 %231
|
|
||||||
%237 = OpFAdd %v3float %226 %236
|
|
||||||
OpStore %acc %237
|
|
||||||
OpBranch %213
|
OpBranch %213
|
||||||
%213 = OpLabel
|
%213 = OpLabel
|
||||||
%238 = OpLoad %uint %f
|
%215 = OpLoad %uint %f
|
||||||
%239 = OpIAdd %uint %238 %uint_1
|
%216 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
|
||||||
OpStore %f %239
|
%217 = OpLoad %uint %216
|
||||||
|
%218 = OpULessThan %bool %215 %217
|
||||||
|
%214 = OpLogicalNot %bool %218
|
||||||
|
OpSelectionMerge %219 None
|
||||||
|
OpBranchConditional %214 %220 %219
|
||||||
|
%220 = OpLabel
|
||||||
OpBranch %211
|
OpBranch %211
|
||||||
|
%219 = OpLabel
|
||||||
|
%221 = OpLoad %uint %f
|
||||||
|
%222 = OpIAdd %uint %191 %221
|
||||||
|
%223 = OpISub %uint %222 %71
|
||||||
|
OpStore %i %223
|
||||||
|
%225 = OpLoad %v3float %acc
|
||||||
|
%228 = OpAccessChain %_ptr_Uniform_uint %params %uint_0
|
||||||
|
%229 = OpLoad %uint %228
|
||||||
|
%227 = OpConvertUToF %float %229
|
||||||
|
%230 = OpFDiv %float %float_1 %227
|
||||||
|
%231 = OpLoad %uint %r_0
|
||||||
|
%232 = OpLoad %uint %i
|
||||||
|
%233 = OpAccessChain %_ptr_Workgroup_v3float %tile %231 %232
|
||||||
|
%234 = OpLoad %v3float %233
|
||||||
|
%235 = OpVectorTimesScalar %v3float %234 %230
|
||||||
|
%236 = OpFAdd %v3float %225 %235
|
||||||
|
OpStore %acc %236
|
||||||
|
OpBranch %212
|
||||||
%212 = OpLabel
|
%212 = OpLabel
|
||||||
%241 = OpLoad %20 %outputTex
|
%237 = OpLoad %uint %f
|
||||||
%242 = OpLoad %v2int %writeIndex
|
%238 = OpIAdd %uint %237 %uint_1
|
||||||
%243 = OpLoad %v3float %acc
|
OpStore %f %238
|
||||||
%244 = OpCompositeExtract %float %243 0
|
OpBranch %210
|
||||||
%245 = OpCompositeExtract %float %243 1
|
%211 = OpLabel
|
||||||
%246 = OpCompositeExtract %float %243 2
|
%240 = OpLoad %20 %outputTex
|
||||||
%247 = OpCompositeConstruct %v4float %244 %245 %246 %float_1
|
%241 = OpLoad %v2int %writeIndex
|
||||||
OpImageWrite %241 %242 %247
|
%242 = OpLoad %v3float %acc
|
||||||
|
%243 = OpCompositeExtract %float %242 0
|
||||||
|
%244 = OpCompositeExtract %float %242 1
|
||||||
|
%245 = OpCompositeExtract %float %242 2
|
||||||
|
%246 = OpCompositeConstruct %v4float %243 %244 %245 %float_1
|
||||||
|
OpImageWrite %240 %241 %246
|
||||||
OpBranch %205
|
OpBranch %205
|
||||||
%205 = OpLabel
|
%205 = OpLabel
|
||||||
OpBranch %167
|
OpBranch %167
|
||||||
%167 = OpLabel
|
%167 = OpLabel
|
||||||
%248 = OpLoad %uint %c_0
|
%247 = OpLoad %uint %c_0
|
||||||
%249 = OpIAdd %uint %248 %uint_1
|
%248 = OpIAdd %uint %247 %uint_1
|
||||||
OpStore %c_0 %249
|
OpStore %c_0 %248
|
||||||
OpBranch %165
|
OpBranch %165
|
||||||
%166 = OpLabel
|
%166 = OpLabel
|
||||||
OpBranch %157
|
OpBranch %157
|
||||||
%157 = OpLabel
|
%157 = OpLabel
|
||||||
%250 = OpLoad %uint %r_0
|
%249 = OpLoad %uint %r_0
|
||||||
%251 = OpIAdd %uint %250 %uint_1
|
%250 = OpIAdd %uint %249 %uint_1
|
||||||
OpStore %r_0 %251
|
OpStore %r_0 %250
|
||||||
OpBranch %155
|
OpBranch %155
|
||||||
%156 = OpLabel
|
%156 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %252
|
%main = OpFunction %void None %251
|
||||||
%254 = OpLabel
|
%253 = OpLabel
|
||||||
%256 = OpLoad %v3uint %WorkGroupID_1
|
%255 = OpLoad %v3uint %WorkGroupID_1
|
||||||
%257 = OpLoad %v3uint %LocalInvocationID_1
|
%256 = OpLoad %v3uint %LocalInvocationID_1
|
||||||
%258 = OpLoad %uint %local_invocation_index_1
|
%257 = OpLoad %uint %local_invocation_index_1
|
||||||
%255 = OpFunctionCall %void %main_inner %256 %257 %258
|
%254 = OpFunctionCall %void %main_inner %255 %256 %257
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -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: 386
|
; Bound: 383
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%138 = OpExtInstImport "GLSL.std.450"
|
%136 = 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
|
||||||
|
@ -181,30 +181,27 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
||||||
%uint_7 = OpConstant %uint 7
|
%uint_7 = OpConstant %uint 7
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%66 = OpTypeSampledImage %23
|
%66 = OpTypeSampledImage %23
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%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
|
||||||
%99 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%106 = OpTypeFunction %void
|
%104 = 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
|
||||||
%121 = OpConstantNull %int
|
%119 = OpConstantNull %int
|
||||||
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
%_ptr_Function_mat4v4float = OpTypePointer Function %mat4v4float
|
||||||
%127 = OpConstantNull %mat4v4float
|
%125 = 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
|
||||||
%151 = OpConstantComposite %v2float %float_1 %float_1
|
%149 = OpConstantComposite %v2float %float_1 %float_1
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%int_0 = OpConstant %int 0
|
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%184 = OpConstantComposite %v2float %float_0_5 %float_0_5
|
%181 = 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
|
||||||
|
@ -214,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
|
||||||
%363 = OpTypeFunction %main_out %v2float %v2float %v2float %v2float %v3float %v2float
|
%360 = 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
|
||||||
|
@ -228,56 +225,56 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
||||||
%64 = OpLoad %26 %frameMapSampler
|
%64 = OpLoad %26 %frameMapSampler
|
||||||
%65 = OpLoad %23 %frameMapTexture
|
%65 = OpLoad %23 %frameMapTexture
|
||||||
%67 = OpSampledImage %66 %65 %64
|
%67 = OpSampledImage %66 %65 %64
|
||||||
%69 = OpCompositeConstruct %v2float %62 %float_0
|
%68 = OpCompositeConstruct %v2float %62 %37
|
||||||
%63 = OpImageSampleImplicitLod %v4float %67 %69 Bias %float_0
|
%63 = OpImageSampleImplicitLod %v4float %67 %68 Bias %37
|
||||||
%70 = OpLoad %float %fX
|
%69 = OpLoad %float %fX
|
||||||
%72 = OpLoad %26 %frameMapSampler
|
%71 = OpLoad %26 %frameMapSampler
|
||||||
%73 = OpLoad %23 %frameMapTexture
|
%72 = OpLoad %23 %frameMapTexture
|
||||||
%74 = OpSampledImage %66 %73 %72
|
%73 = OpSampledImage %66 %72 %71
|
||||||
%76 = OpCompositeConstruct %v2float %70 %float_0_25
|
%75 = OpCompositeConstruct %v2float %69 %float_0_25
|
||||||
%71 = OpImageSampleImplicitLod %v4float %74 %76 Bias %float_0
|
%70 = OpImageSampleImplicitLod %v4float %73 %75 Bias %37
|
||||||
%77 = OpLoad %float %fX
|
%76 = OpLoad %float %fX
|
||||||
%79 = OpLoad %26 %frameMapSampler
|
%78 = OpLoad %26 %frameMapSampler
|
||||||
%80 = OpLoad %23 %frameMapTexture
|
%79 = OpLoad %23 %frameMapTexture
|
||||||
%81 = OpSampledImage %66 %80 %79
|
%80 = OpSampledImage %66 %79 %78
|
||||||
%83 = OpCompositeConstruct %v2float %77 %float_0_5
|
%82 = OpCompositeConstruct %v2float %76 %float_0_5
|
||||||
%78 = OpImageSampleImplicitLod %v4float %81 %83 Bias %float_0
|
%77 = OpImageSampleImplicitLod %v4float %80 %82 Bias %37
|
||||||
%84 = OpCompositeExtract %float %63 0
|
%83 = OpCompositeExtract %float %63 0
|
||||||
%85 = OpCompositeExtract %float %63 1
|
%84 = OpCompositeExtract %float %63 1
|
||||||
%86 = OpCompositeExtract %float %63 2
|
%85 = OpCompositeExtract %float %63 2
|
||||||
%87 = OpCompositeExtract %float %63 3
|
%86 = OpCompositeExtract %float %63 3
|
||||||
%88 = OpCompositeConstruct %v4float %84 %85 %86 %87
|
%87 = OpCompositeConstruct %v4float %83 %84 %85 %86
|
||||||
%89 = OpCompositeExtract %float %71 0
|
%88 = OpCompositeExtract %float %70 0
|
||||||
%90 = OpCompositeExtract %float %71 1
|
%89 = OpCompositeExtract %float %70 1
|
||||||
%91 = OpCompositeExtract %float %71 2
|
%90 = OpCompositeExtract %float %70 2
|
||||||
%92 = OpCompositeExtract %float %71 3
|
%91 = OpCompositeExtract %float %70 3
|
||||||
%93 = OpCompositeConstruct %v4float %89 %90 %91 %92
|
%92 = OpCompositeConstruct %v4float %88 %89 %90 %91
|
||||||
%94 = OpCompositeExtract %float %78 0
|
%93 = OpCompositeExtract %float %77 0
|
||||||
%95 = OpCompositeExtract %float %78 1
|
%94 = OpCompositeExtract %float %77 1
|
||||||
%96 = OpCompositeExtract %float %78 2
|
%95 = OpCompositeExtract %float %77 2
|
||||||
%97 = OpCompositeExtract %float %78 3
|
%96 = OpCompositeExtract %float %77 3
|
||||||
%98 = OpCompositeConstruct %v4float %94 %95 %96 %97
|
%97 = OpCompositeConstruct %v4float %93 %94 %95 %96
|
||||||
%100 = OpCompositeExtract %float %99 0
|
%98 = OpCompositeExtract %float %15 0
|
||||||
%101 = OpCompositeExtract %float %99 1
|
%99 = OpCompositeExtract %float %15 1
|
||||||
%102 = OpCompositeExtract %float %99 2
|
%100 = OpCompositeExtract %float %15 2
|
||||||
%103 = OpCompositeExtract %float %99 3
|
%101 = OpCompositeExtract %float %15 3
|
||||||
%104 = OpCompositeConstruct %v4float %100 %101 %102 %103
|
%102 = OpCompositeConstruct %v4float %98 %99 %100 %101
|
||||||
%105 = OpCompositeConstruct %mat4v4float %88 %93 %98 %104
|
%103 = OpCompositeConstruct %mat4v4float %87 %92 %97 %102
|
||||||
OpReturnValue %105
|
OpReturnValue %103
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %106
|
%main_1 = OpFunction %void None %104
|
||||||
%109 = OpLabel
|
%107 = 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 %121
|
%i = OpVariable %_ptr_Function_int Function %119
|
||||||
%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 %127
|
%frameData = OpVariable %_ptr_Function_mat4v4float Function %125
|
||||||
%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
|
||||||
|
@ -285,310 +282,310 @@ bug/tint/948.wgsl:137:27 note: reading from module-scope private variable 'mt' m
|
||||||
%nc = OpVariable %_ptr_Function_v4float Function %15
|
%nc = OpVariable %_ptr_Function_v4float Function %15
|
||||||
%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 %99
|
OpStore %color %15
|
||||||
%136 = OpLoad %v2float %tUV
|
%134 = OpLoad %v2float %tUV
|
||||||
%137 = OpExtInst %v2float %138 Fract %136
|
%135 = OpExtInst %v2float %136 Fract %134
|
||||||
OpStore %tileUV %137
|
OpStore %tileUV %135
|
||||||
|
%138 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
||||||
|
%139 = OpLoad %float %138
|
||||||
%140 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
%140 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
||||||
%141 = OpLoad %float %140
|
%142 = OpFSub %float %float_1 %139
|
||||||
%142 = OpAccessChain %_ptr_Function_float %tileUV %uint_1
|
OpStore %140 %142
|
||||||
%144 = OpFSub %float %float_1 %141
|
%143 = OpLoad %v2float %tUV
|
||||||
OpStore %142 %144
|
%144 = OpExtInst %v2float %136 Floor %143
|
||||||
%145 = OpLoad %v2float %tUV
|
OpStore %tileID %144
|
||||||
%146 = OpExtInst %v2float %138 Floor %145
|
%147 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
||||||
OpStore %tileID %146
|
%148 = OpLoad %v2float %147
|
||||||
%149 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
%150 = OpFDiv %v2float %149 %148
|
||||||
%150 = OpLoad %v2float %149
|
OpStore %sheetUnits %150
|
||||||
%152 = OpFDiv %v2float %151 %150
|
%151 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
OpStore %sheetUnits %152
|
%152 = OpLoad %float %151
|
||||||
%153 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
%153 = OpFDiv %float %float_1 %152
|
||||||
%154 = OpLoad %float %153
|
OpStore %spriteUnits %153
|
||||||
%155 = OpFDiv %float %float_1 %154
|
%155 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
OpStore %spriteUnits %155
|
%156 = OpLoad %v2float %155
|
||||||
%157 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
%157 = OpFDiv %v2float %149 %156
|
||||||
%158 = OpLoad %v2float %157
|
OpStore %stageUnits %157
|
||||||
%159 = OpFDiv %v2float %151 %158
|
OpStore %i %119
|
||||||
OpStore %stageUnits %159
|
OpBranch %158
|
||||||
OpStore %i %int_0
|
%158 = OpLabel
|
||||||
|
OpLoopMerge %159 %160 None
|
||||||
OpBranch %161
|
OpBranch %161
|
||||||
%161 = OpLabel
|
%161 = OpLabel
|
||||||
OpLoopMerge %162 %163 None
|
%162 = OpLoad %int %i
|
||||||
OpBranch %164
|
%164 = OpSLessThan %bool %162 %int_2
|
||||||
%164 = OpLabel
|
OpSelectionMerge %166 None
|
||||||
%165 = OpLoad %int %i
|
OpBranchConditional %164 %167 %168
|
||||||
%167 = OpSLessThan %bool %165 %int_2
|
%167 = OpLabel
|
||||||
OpSelectionMerge %169 None
|
OpBranch %166
|
||||||
OpBranchConditional %167 %170 %171
|
%168 = OpLabel
|
||||||
%170 = OpLabel
|
OpBranch %159
|
||||||
OpBranch %169
|
%166 = OpLabel
|
||||||
%171 = OpLabel
|
%169 = OpLoad %int %i
|
||||||
OpBranch %162
|
OpSelectionMerge %170 None
|
||||||
%169 = OpLabel
|
OpSwitch %169 %171 1 %172 0 %173
|
||||||
%172 = OpLoad %int %i
|
%172 = OpLabel
|
||||||
OpSelectionMerge %173 None
|
%174 = OpLoad %v2float %tileID
|
||||||
OpSwitch %172 %174 1 %175 0 %176
|
%175 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
%175 = OpLabel
|
%176 = OpLoad %v2float %175
|
||||||
%177 = OpLoad %v2float %tileID
|
%178 = OpLoad %26 %tileMapsSampler
|
||||||
%178 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
%179 = OpLoad %23 %tileMapsTexture1
|
||||||
%179 = OpLoad %v2float %178
|
%180 = OpSampledImage %66 %179 %178
|
||||||
%181 = OpLoad %26 %tileMapsSampler
|
%182 = OpFAdd %v2float %174 %181
|
||||||
%182 = OpLoad %23 %tileMapsTexture1
|
%183 = OpFDiv %v2float %182 %176
|
||||||
%183 = OpSampledImage %66 %182 %181
|
%177 = OpImageSampleImplicitLod %v4float %180 %183 Bias %37
|
||||||
%185 = OpFAdd %v2float %177 %184
|
%184 = OpCompositeExtract %float %177 0
|
||||||
%186 = OpFDiv %v2float %185 %179
|
OpStore %frameID_1 %184
|
||||||
%180 = OpImageSampleImplicitLod %v4float %183 %186 Bias %float_0
|
OpBranch %170
|
||||||
%187 = OpCompositeExtract %float %180 0
|
|
||||||
OpStore %frameID_1 %187
|
|
||||||
OpBranch %173
|
|
||||||
%176 = OpLabel
|
|
||||||
%188 = OpLoad %v2float %tileID
|
|
||||||
%189 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
|
||||||
%190 = OpLoad %v2float %189
|
|
||||||
%192 = OpLoad %26 %tileMapsSampler
|
|
||||||
%193 = OpLoad %23 %tileMapsTexture0
|
|
||||||
%194 = OpSampledImage %66 %193 %192
|
|
||||||
%195 = OpFAdd %v2float %188 %184
|
|
||||||
%196 = OpFDiv %v2float %195 %190
|
|
||||||
%191 = OpImageSampleImplicitLod %v4float %194 %196 Bias %float_0
|
|
||||||
%197 = OpCompositeExtract %float %191 0
|
|
||||||
OpStore %frameID_1 %197
|
|
||||||
OpBranch %173
|
|
||||||
%174 = OpLabel
|
|
||||||
OpBranch %173
|
|
||||||
%173 = OpLabel
|
%173 = OpLabel
|
||||||
%198 = OpLoad %float %frameID_1
|
%185 = OpLoad %v2float %tileID
|
||||||
%199 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
%186 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_4
|
||||||
%200 = OpLoad %float %199
|
%187 = OpLoad %v2float %186
|
||||||
%202 = OpLoad %26 %animationMapSampler
|
%189 = OpLoad %26 %tileMapsSampler
|
||||||
%203 = OpLoad %23 %animationMapTexture
|
%190 = OpLoad %23 %tileMapsTexture0
|
||||||
%204 = OpSampledImage %66 %203 %202
|
%191 = OpSampledImage %66 %190 %189
|
||||||
%205 = OpFAdd %float %198 %float_0_5
|
%192 = OpFAdd %v2float %185 %181
|
||||||
%206 = OpFDiv %float %205 %200
|
%193 = OpFDiv %v2float %192 %187
|
||||||
%207 = OpCompositeConstruct %v2float %206 %float_0
|
%188 = OpImageSampleImplicitLod %v4float %191 %193 Bias %37
|
||||||
%201 = OpImageSampleImplicitLod %v4float %204 %207 Bias %float_0
|
%194 = OpCompositeExtract %float %188 0
|
||||||
OpStore %animationData %201
|
OpStore %frameID_1 %194
|
||||||
%208 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
OpBranch %170
|
||||||
%209 = OpLoad %float %208
|
%171 = OpLabel
|
||||||
%210 = OpFOrdGreaterThan %bool %209 %float_0
|
OpBranch %170
|
||||||
OpSelectionMerge %211 None
|
%170 = OpLabel
|
||||||
OpBranchConditional %210 %212 %211
|
%195 = OpLoad %float %frameID_1
|
||||||
%212 = OpLabel
|
%196 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
%214 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_0
|
%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
|
%215 = OpLoad %float %214
|
||||||
%217 = OpAccessChain %_ptr_Function_float %animationData %uint_2
|
%216 = OpFMul %float %212 %215
|
||||||
%218 = OpLoad %float %217
|
%217 = OpFRem %float %216 %float_1
|
||||||
%219 = OpFMul %float %215 %218
|
OpStore %mt %217
|
||||||
%220 = OpFRem %float %219 %float_1
|
OpStore %f %37
|
||||||
OpStore %mt %220
|
OpBranch %218
|
||||||
OpStore %f %float_0
|
%218 = OpLabel
|
||||||
|
OpLoopMerge %219 %220 None
|
||||||
OpBranch %221
|
OpBranch %221
|
||||||
%221 = OpLabel
|
%221 = OpLabel
|
||||||
OpLoopMerge %222 %223 None
|
%222 = OpLoad %float %f
|
||||||
OpBranch %224
|
%224 = OpFOrdLessThan %bool %222 %float_8
|
||||||
%224 = OpLabel
|
OpSelectionMerge %225 None
|
||||||
%225 = OpLoad %float %f
|
OpBranchConditional %224 %226 %227
|
||||||
%227 = OpFOrdLessThan %bool %225 %float_8
|
%226 = OpLabel
|
||||||
OpSelectionMerge %228 None
|
OpBranch %225
|
||||||
OpBranchConditional %227 %229 %230
|
%227 = OpLabel
|
||||||
%229 = OpLabel
|
OpBranch %219
|
||||||
OpBranch %228
|
%225 = OpLabel
|
||||||
%230 = OpLabel
|
%228 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
||||||
OpBranch %222
|
%229 = OpLoad %float %228
|
||||||
%228 = OpLabel
|
%230 = OpLoad %float %mt
|
||||||
%231 = OpAccessChain %_ptr_Function_float %animationData %uint_1
|
%231 = OpFOrdGreaterThan %bool %229 %230
|
||||||
%232 = OpLoad %float %231
|
OpSelectionMerge %232 None
|
||||||
%233 = OpLoad %float %mt
|
OpBranchConditional %231 %233 %232
|
||||||
%234 = OpFOrdGreaterThan %bool %232 %233
|
%233 = OpLabel
|
||||||
OpSelectionMerge %235 None
|
%234 = OpAccessChain %_ptr_Function_float %animationData %uint_0
|
||||||
OpBranchConditional %234 %236 %235
|
%235 = OpLoad %float %234
|
||||||
%236 = OpLabel
|
OpStore %frameID_1 %235
|
||||||
%237 = OpAccessChain %_ptr_Function_float %animationData %uint_0
|
OpBranch %219
|
||||||
|
%232 = OpLabel
|
||||||
|
%236 = OpLoad %float %frameID_1
|
||||||
|
%237 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
||||||
%238 = OpLoad %float %237
|
%238 = OpLoad %float %237
|
||||||
OpStore %frameID_1 %238
|
%239 = OpLoad %float %f
|
||||||
OpBranch %222
|
%241 = OpLoad %26 %animationMapSampler
|
||||||
%235 = OpLabel
|
%242 = OpLoad %23 %animationMapTexture
|
||||||
%239 = OpLoad %float %frameID_1
|
%243 = OpSampledImage %66 %242 %241
|
||||||
%240 = OpAccessChain %_ptr_Uniform_float %x_20 %uint_7
|
%244 = OpFAdd %float %236 %float_0_5
|
||||||
%241 = OpLoad %float %240
|
%245 = OpFDiv %float %244 %238
|
||||||
%242 = OpLoad %float %f
|
%247 = OpFMul %float %float_0_125 %239
|
||||||
%244 = OpLoad %26 %animationMapSampler
|
%248 = OpCompositeConstruct %v2float %245 %247
|
||||||
%245 = OpLoad %23 %animationMapTexture
|
%240 = OpImageSampleImplicitLod %v4float %243 %248 Bias %37
|
||||||
%246 = OpSampledImage %66 %245 %244
|
OpStore %animationData %240
|
||||||
%247 = OpFAdd %float %239 %float_0_5
|
OpBranch %220
|
||||||
%248 = OpFDiv %float %247 %241
|
%220 = OpLabel
|
||||||
%250 = OpFMul %float %float_0_125 %242
|
%249 = OpLoad %float %f
|
||||||
%251 = OpCompositeConstruct %v2float %248 %250
|
%250 = OpFAdd %float %249 %float_1
|
||||||
%243 = OpImageSampleImplicitLod %v4float %246 %251 Bias %float_0
|
OpStore %f %250
|
||||||
OpStore %animationData %243
|
OpBranch %218
|
||||||
OpBranch %223
|
%219 = OpLabel
|
||||||
%223 = OpLabel
|
OpBranch %208
|
||||||
%252 = OpLoad %float %f
|
%208 = OpLabel
|
||||||
%253 = OpFAdd %float %252 %float_1
|
%251 = OpLoad %float %frameID_1
|
||||||
OpStore %f %253
|
%252 = OpFAdd %float %251 %float_0_5
|
||||||
OpBranch %221
|
OpStore %param %252
|
||||||
%222 = OpLabel
|
%253 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
|
||||||
OpBranch %211
|
OpStore %frameData %253
|
||||||
%211 = OpLabel
|
%255 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
||||||
%254 = OpLoad %float %frameID_1
|
%256 = OpLoad %v4float %255
|
||||||
%255 = OpFAdd %float %254 %float_0_5
|
%257 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
||||||
OpStore %param %255
|
%258 = OpLoad %v2float %257
|
||||||
%256 = OpFunctionCall %mat4v4float %getFrameData_f1_ %param
|
%259 = OpCompositeExtract %float %256 3
|
||||||
OpStore %frameData %256
|
%260 = OpCompositeExtract %float %256 2
|
||||||
%258 = OpAccessChain %_ptr_Function_v4float %frameData %int_0
|
%261 = OpCompositeConstruct %v2float %259 %260
|
||||||
%259 = OpLoad %v4float %258
|
%262 = OpFDiv %v2float %261 %258
|
||||||
%260 = OpAccessChain %_ptr_Uniform_v2float %x_20 %uint_5
|
OpStore %frameSize %262
|
||||||
%261 = OpLoad %v2float %260
|
%263 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
||||||
%262 = OpCompositeExtract %float %259 3
|
%264 = OpLoad %v4float %263
|
||||||
%263 = OpCompositeExtract %float %259 2
|
%265 = OpLoad %v2float %sheetUnits
|
||||||
%264 = OpCompositeConstruct %v2float %262 %263
|
%266 = OpCompositeExtract %float %264 0
|
||||||
%265 = OpFDiv %v2float %264 %261
|
%267 = OpCompositeExtract %float %264 1
|
||||||
OpStore %frameSize %265
|
%268 = OpCompositeConstruct %v2float %266 %267
|
||||||
%266 = OpAccessChain %_ptr_Function_v4float %frameData %int_0
|
%269 = OpFMul %v2float %268 %265
|
||||||
%267 = OpLoad %v4float %266
|
OpStore %offset_1 %269
|
||||||
%268 = OpLoad %v2float %sheetUnits
|
%270 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
|
||||||
%269 = OpCompositeExtract %float %267 0
|
%271 = OpLoad %v4float %270
|
||||||
%270 = OpCompositeExtract %float %267 1
|
%272 = OpAccessChain %_ptr_Function_v4float %frameData %119
|
||||||
%271 = OpCompositeConstruct %v2float %269 %270
|
%273 = OpLoad %v4float %272
|
||||||
%272 = OpFMul %v2float %271 %268
|
%274 = OpCompositeExtract %float %271 0
|
||||||
OpStore %offset_1 %272
|
%275 = OpCompositeExtract %float %271 1
|
||||||
%273 = OpAccessChain %_ptr_Function_v4float %frameData %int_2
|
%276 = OpCompositeConstruct %v2float %274 %275
|
||||||
%274 = OpLoad %v4float %273
|
%277 = OpCompositeExtract %float %273 3
|
||||||
%275 = OpAccessChain %_ptr_Function_v4float %frameData %int_0
|
%278 = OpCompositeExtract %float %273 2
|
||||||
%276 = OpLoad %v4float %275
|
|
||||||
%277 = OpCompositeExtract %float %274 0
|
|
||||||
%278 = OpCompositeExtract %float %274 1
|
|
||||||
%279 = OpCompositeConstruct %v2float %277 %278
|
%279 = OpCompositeConstruct %v2float %277 %278
|
||||||
%280 = OpCompositeExtract %float %276 3
|
%280 = OpFDiv %v2float %276 %279
|
||||||
%281 = OpCompositeExtract %float %276 2
|
OpStore %ratio %280
|
||||||
%282 = OpCompositeConstruct %v2float %280 %281
|
%281 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
|
||||||
%283 = OpFDiv %v2float %279 %282
|
%282 = OpLoad %float %281
|
||||||
OpStore %ratio %283
|
%283 = OpFOrdEqual %bool %282 %float_1
|
||||||
%284 = OpAccessChain %_ptr_Function_float %frameData %int_2 %uint_2
|
OpSelectionMerge %284 None
|
||||||
%285 = OpLoad %float %284
|
OpBranchConditional %283 %285 %284
|
||||||
%286 = OpFOrdEqual %bool %285 %float_1
|
%285 = OpLabel
|
||||||
OpSelectionMerge %287 None
|
%286 = OpLoad %v2float %tileUV
|
||||||
OpBranchConditional %286 %288 %287
|
%287 = OpCompositeExtract %float %286 1
|
||||||
%288 = OpLabel
|
%288 = OpCompositeExtract %float %286 0
|
||||||
%289 = OpLoad %v2float %tileUV
|
%289 = OpCompositeConstruct %v2float %287 %288
|
||||||
%290 = OpCompositeExtract %float %289 1
|
OpStore %tileUV %289
|
||||||
%291 = OpCompositeExtract %float %289 0
|
OpBranch %284
|
||||||
%292 = OpCompositeConstruct %v2float %290 %291
|
%284 = OpLabel
|
||||||
OpStore %tileUV %292
|
%290 = OpLoad %int %i
|
||||||
OpBranch %287
|
%291 = OpIEqual %bool %290 %119
|
||||||
%287 = OpLabel
|
OpSelectionMerge %292 None
|
||||||
%293 = OpLoad %int %i
|
OpBranchConditional %291 %293 %294
|
||||||
%294 = OpIEqual %bool %293 %int_0
|
%293 = OpLabel
|
||||||
OpSelectionMerge %295 None
|
%295 = OpLoad %v2float %tileUV
|
||||||
OpBranchConditional %294 %296 %297
|
%296 = OpLoad %v2float %frameSize
|
||||||
%296 = OpLabel
|
%297 = OpLoad %v2float %offset_1
|
||||||
%298 = OpLoad %v2float %tileUV
|
%299 = OpLoad %26 %spriteSheetSampler
|
||||||
%299 = OpLoad %v2float %frameSize
|
%300 = OpLoad %23 %spriteSheetTexture
|
||||||
%300 = OpLoad %v2float %offset_1
|
%301 = OpSampledImage %66 %300 %299
|
||||||
%302 = OpLoad %26 %spriteSheetSampler
|
%302 = OpFMul %v2float %295 %296
|
||||||
%303 = OpLoad %23 %spriteSheetTexture
|
%303 = OpFAdd %v2float %302 %297
|
||||||
%304 = OpSampledImage %66 %303 %302
|
%298 = OpImageSampleImplicitLod %v4float %301 %303
|
||||||
%305 = OpFMul %v2float %298 %299
|
OpStore %color %298
|
||||||
%306 = OpFAdd %v2float %305 %300
|
OpBranch %292
|
||||||
%301 = OpImageSampleImplicitLod %v4float %304 %306
|
%294 = OpLabel
|
||||||
OpStore %color %301
|
%304 = OpLoad %v2float %tileUV
|
||||||
OpBranch %295
|
%305 = OpLoad %v2float %frameSize
|
||||||
%297 = OpLabel
|
%306 = OpLoad %v2float %offset_1
|
||||||
%307 = OpLoad %v2float %tileUV
|
%308 = OpLoad %26 %spriteSheetSampler
|
||||||
%308 = OpLoad %v2float %frameSize
|
%309 = OpLoad %23 %spriteSheetTexture
|
||||||
%309 = OpLoad %v2float %offset_1
|
%310 = OpSampledImage %66 %309 %308
|
||||||
%311 = OpLoad %26 %spriteSheetSampler
|
%311 = OpFMul %v2float %304 %305
|
||||||
%312 = OpLoad %23 %spriteSheetTexture
|
%312 = OpFAdd %v2float %311 %306
|
||||||
%313 = OpSampledImage %66 %312 %311
|
%307 = OpImageSampleImplicitLod %v4float %310 %312
|
||||||
%314 = OpFMul %v2float %307 %308
|
OpStore %nc %307
|
||||||
%315 = OpFAdd %v2float %314 %309
|
%314 = OpAccessChain %_ptr_Function_float %color %uint_3
|
||||||
%310 = OpImageSampleImplicitLod %v4float %313 %315
|
%315 = OpLoad %float %314
|
||||||
OpStore %nc %310
|
%316 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
||||||
%317 = OpAccessChain %_ptr_Function_float %color %uint_3
|
%317 = OpLoad %float %316
|
||||||
%318 = OpLoad %float %317
|
%319 = OpFAdd %float %315 %317
|
||||||
%319 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
%318 = OpExtInst %float %136 NMin %319 %float_1
|
||||||
%320 = OpLoad %float %319
|
OpStore %alpha %318
|
||||||
%322 = OpFAdd %float %318 %320
|
%320 = OpLoad %v4float %color
|
||||||
%321 = OpExtInst %float %138 NMin %322 %float_1
|
%321 = OpLoad %v4float %nc
|
||||||
OpStore %alpha %321
|
%322 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
||||||
%323 = OpLoad %v4float %color
|
%323 = OpLoad %float %322
|
||||||
%324 = OpLoad %v4float %nc
|
%325 = OpCompositeExtract %float %320 0
|
||||||
%325 = OpAccessChain %_ptr_Function_float %nc %uint_3
|
%326 = OpCompositeExtract %float %320 1
|
||||||
%326 = OpLoad %float %325
|
%327 = OpCompositeExtract %float %320 2
|
||||||
%328 = OpCompositeExtract %float %323 0
|
%328 = OpCompositeConstruct %v3float %325 %326 %327
|
||||||
%329 = OpCompositeExtract %float %323 1
|
%329 = OpCompositeExtract %float %321 0
|
||||||
%330 = OpCompositeExtract %float %323 2
|
%330 = OpCompositeExtract %float %321 1
|
||||||
%331 = OpCompositeConstruct %v3float %328 %329 %330
|
%331 = OpCompositeExtract %float %321 2
|
||||||
%332 = OpCompositeExtract %float %324 0
|
%332 = OpCompositeConstruct %v3float %329 %330 %331
|
||||||
%333 = OpCompositeExtract %float %324 1
|
%333 = OpCompositeConstruct %v3float %323 %323 %323
|
||||||
%334 = OpCompositeExtract %float %324 2
|
%324 = OpExtInst %v3float %136 FMix %328 %332 %333
|
||||||
%335 = OpCompositeConstruct %v3float %332 %333 %334
|
OpStore %mixed %324
|
||||||
%336 = OpCompositeConstruct %v3float %326 %326 %326
|
%334 = OpLoad %v3float %mixed
|
||||||
%327 = OpExtInst %v3float %138 FMix %331 %335 %336
|
%335 = OpLoad %float %alpha
|
||||||
OpStore %mixed %327
|
%336 = OpCompositeExtract %float %334 0
|
||||||
%337 = OpLoad %v3float %mixed
|
%337 = OpCompositeExtract %float %334 1
|
||||||
%338 = OpLoad %float %alpha
|
%338 = OpCompositeExtract %float %334 2
|
||||||
%339 = OpCompositeExtract %float %337 0
|
%339 = OpCompositeConstruct %v4float %336 %337 %338 %335
|
||||||
%340 = OpCompositeExtract %float %337 1
|
OpStore %color %339
|
||||||
%341 = OpCompositeExtract %float %337 2
|
OpBranch %292
|
||||||
%342 = OpCompositeConstruct %v4float %339 %340 %341 %338
|
%292 = OpLabel
|
||||||
OpStore %color %342
|
OpBranch %160
|
||||||
OpBranch %295
|
%160 = OpLabel
|
||||||
%295 = OpLabel
|
%340 = OpLoad %int %i
|
||||||
OpBranch %163
|
%342 = OpIAdd %int %340 %int_1
|
||||||
%163 = OpLabel
|
OpStore %i %342
|
||||||
%343 = OpLoad %int %i
|
OpBranch %158
|
||||||
%345 = OpIAdd %int %343 %int_1
|
%159 = OpLabel
|
||||||
OpStore %i %345
|
%345 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
|
||||||
OpBranch %161
|
%346 = OpLoad %v3float %345
|
||||||
%162 = OpLabel
|
%347 = OpLoad %v4float %color
|
||||||
%348 = OpAccessChain %_ptr_Uniform_v3float %x_20 %uint_8
|
%348 = OpCompositeExtract %float %347 0
|
||||||
%349 = OpLoad %v3float %348
|
%349 = OpCompositeExtract %float %347 1
|
||||||
%350 = OpLoad %v4float %color
|
%350 = OpCompositeExtract %float %347 2
|
||||||
%351 = OpCompositeExtract %float %350 0
|
%351 = OpCompositeConstruct %v3float %348 %349 %350
|
||||||
%352 = OpCompositeExtract %float %350 1
|
%352 = OpFMul %v3float %351 %346
|
||||||
%353 = OpCompositeExtract %float %350 2
|
%353 = OpLoad %v4float %color
|
||||||
%354 = OpCompositeConstruct %v3float %351 %352 %353
|
%354 = OpCompositeExtract %float %352 0
|
||||||
%355 = OpFMul %v3float %354 %349
|
%355 = OpCompositeExtract %float %352 1
|
||||||
%356 = OpLoad %v4float %color
|
%356 = OpCompositeExtract %float %352 2
|
||||||
%357 = OpCompositeExtract %float %355 0
|
%357 = OpCompositeExtract %float %353 3
|
||||||
%358 = OpCompositeExtract %float %355 1
|
%358 = OpCompositeConstruct %v4float %354 %355 %356 %357
|
||||||
%359 = OpCompositeExtract %float %355 2
|
OpStore %color %358
|
||||||
%360 = OpCompositeExtract %float %356 3
|
%359 = OpLoad %v4float %color
|
||||||
%361 = OpCompositeConstruct %v4float %357 %358 %359 %360
|
OpStore %glFragColor %359
|
||||||
OpStore %color %361
|
|
||||||
%362 = OpLoad %v4float %color
|
|
||||||
OpStore %glFragColor %362
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %363
|
%main_inner = OpFunction %main_out None %360
|
||||||
%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
|
||||||
%372 = OpLabel
|
%369 = 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
|
||||||
%373 = OpFunctionCall %void %main_1
|
%370 = OpFunctionCall %void %main_1
|
||||||
%374 = OpLoad %v4float %glFragColor
|
%371 = OpLoad %v4float %glFragColor
|
||||||
%375 = OpCompositeConstruct %main_out %374
|
%372 = OpCompositeConstruct %main_out %371
|
||||||
OpReturnValue %375
|
OpReturnValue %372
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %106
|
%main = OpFunction %void None %104
|
||||||
%377 = OpLabel
|
%374 = OpLabel
|
||||||
%379 = OpLoad %v2float %tUV_param_1
|
%376 = OpLoad %v2float %tUV_param_1
|
||||||
%380 = OpLoad %v2float %tileID_1_param_1
|
%377 = OpLoad %v2float %tileID_1_param_1
|
||||||
%381 = OpLoad %v2float %levelUnits_param_1
|
%378 = OpLoad %v2float %levelUnits_param_1
|
||||||
%382 = OpLoad %v2float %stageUnits_1_param_1
|
%379 = OpLoad %v2float %stageUnits_1_param_1
|
||||||
%383 = OpLoad %v3float %vPosition_param_1
|
%380 = OpLoad %v3float %vPosition_param_1
|
||||||
%384 = OpLoad %v2float %vUV_param_1
|
%381 = OpLoad %v2float %vUV_param_1
|
||||||
%378 = OpFunctionCall %main_out %main_inner %379 %380 %381 %382 %383 %384
|
%375 = OpFunctionCall %main_out %main_inner %376 %377 %378 %379 %380 %381
|
||||||
%385 = OpCompositeExtract %v4float %378 0
|
%382 = OpCompositeExtract %v4float %375 0
|
||||||
OpStore %glFragColor_1_1 %385
|
OpStore %glFragColor_1_1 %382
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -13,7 +13,7 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 675
|
; Bound: 670
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%88 = OpExtInstImport "GLSL.std.450"
|
%88 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -280,7 +280,7 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
%152 = OpTypeFunction %mat3v3float %_ptr_Function_mat3v3float
|
%152 = OpTypeFunction %mat3v3float %_ptr_Function_mat3v3float
|
||||||
%161 = OpConstantNull %mat3v3float
|
%161 = OpConstantNull %mat3v3float
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%int_0 = OpConstant %int 0
|
%164 = OpConstantNull %int
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%int_2 = OpConstant %int 2
|
%int_2 = OpConstant %int 2
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
|
@ -294,31 +294,26 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
%_ptr_Function_lightingInfo = OpTypePointer Function %lightingInfo
|
%_ptr_Function_lightingInfo = OpTypePointer Function %lightingInfo
|
||||||
%261 = OpConstantNull %lightingInfo
|
%261 = OpConstantNull %lightingInfo
|
||||||
%float_0_5 = OpConstant %float 0.5
|
%float_0_5 = OpConstant %float 0.5
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%311 = OpTypeFunction %void
|
%310 = OpTypeFunction %void
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%342 = OpConstantNull %int
|
|
||||||
%float_100 = OpConstant %float 100
|
%float_100 = OpConstant %float 100
|
||||||
%371 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
|
%369 = OpConstantComposite %v3float %float_0_5 %float_0_5 %float_0_5
|
||||||
%376 = OpTypeSampledImage %25
|
%374 = OpTypeSampledImage %25
|
||||||
%uint_6 = OpConstant %uint 6
|
%uint_6 = OpConstant %uint 6
|
||||||
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
%_ptr_Uniform_float = OpTypePointer Uniform %float
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
%_ptr_Uniform_v3float = OpTypePointer Uniform %v3float
|
||||||
%399 = OpConstantComposite %v4float %float_0 %float_0 %float_0 %float_0
|
|
||||||
%400 = OpConstantComposite %v2float %float_0 %float_0
|
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
%_ptr_Uniform_v2float = OpTypePointer Uniform %v2float
|
||||||
%uint_5 = OpConstant %uint 5
|
%uint_5 = OpConstant %uint 5
|
||||||
%float_15 = OpConstant %float 15
|
%float_15 = OpConstant %float 15
|
||||||
%float_n11 = OpConstant %float -11
|
%float_n11 = OpConstant %float -11
|
||||||
%int_15 = OpConstant %int 15
|
%int_15 = OpConstant %int 15
|
||||||
%593 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
|
||||||
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
%_ptr_Uniform_v4float = OpTypePointer Uniform %v4float
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%main_out = OpTypeStruct %v4float
|
%main_out = OpTypeStruct %v4float
|
||||||
%654 = OpTypeFunction %main_out %v2float %v4float %bool %v2float %v4float
|
%649 = OpTypeFunction %main_out %v2float %v4float %bool %v2float %v4float
|
||||||
%cotangent_frame_vf3_vf3_vf2_vf2_ = OpFunction %mat3v3float None %52
|
%cotangent_frame_vf3_vf3_vf2_vf2_ = OpFunction %mat3v3float None %52
|
||||||
%normal_1 = OpFunctionParameter %_ptr_Function_v3float
|
%normal_1 = OpFunctionParameter %_ptr_Function_v3float
|
||||||
%p = OpFunctionParameter %_ptr_Function_v3float
|
%p = OpFunctionParameter %_ptr_Function_v3float
|
||||||
|
@ -422,7 +417,7 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
%i1 = OpVariable %_ptr_Function_v3float Function %22
|
%i1 = OpVariable %_ptr_Function_v3float Function %22
|
||||||
%i2 = OpVariable %_ptr_Function_v3float Function %22
|
%i2 = OpVariable %_ptr_Function_v3float Function %22
|
||||||
%outMatrix = OpVariable %_ptr_Function_mat3v3float Function %161
|
%outMatrix = OpVariable %_ptr_Function_mat3v3float Function %161
|
||||||
%165 = OpAccessChain %_ptr_Function_v3float %inMatrix %int_0
|
%165 = OpAccessChain %_ptr_Function_v3float %inMatrix %164
|
||||||
%166 = OpLoad %v3float %165
|
%166 = OpLoad %v3float %165
|
||||||
OpStore %i0 %166
|
OpStore %i0 %166
|
||||||
%169 = OpAccessChain %_ptr_Function_v3float %inMatrix %int_1
|
%169 = OpAccessChain %_ptr_Function_v3float %inMatrix %int_1
|
||||||
|
@ -540,24 +535,24 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
OpStore %angleW %288
|
OpStore %angleW %288
|
||||||
%295 = OpLoad %v3float %vNormal
|
%295 = OpLoad %v3float %vNormal
|
||||||
%296 = OpLoad %v3float %angleW
|
%296 = OpLoad %v3float %angleW
|
||||||
%299 = OpDot %float %295 %296
|
%298 = OpDot %float %295 %296
|
||||||
%297 = OpExtInst %float %88 NMax %float_0 %299
|
%297 = OpExtInst %float %88 NMax %18 %298
|
||||||
OpStore %specComp %297
|
OpStore %specComp %297
|
||||||
%300 = OpLoad %float %specComp
|
%299 = OpLoad %float %specComp
|
||||||
%302 = OpLoad %float %glossiness
|
%301 = OpLoad %float %glossiness
|
||||||
%304 = OpExtInst %float %88 NMax %float_1 %302
|
%303 = OpExtInst %float %88 NMax %float_1 %301
|
||||||
%303 = OpExtInst %float %88 Pow %300 %304
|
%302 = OpExtInst %float %88 Pow %299 %303
|
||||||
OpStore %specComp %303
|
OpStore %specComp %302
|
||||||
%305 = OpLoad %float %specComp
|
%304 = OpLoad %float %specComp
|
||||||
%307 = OpLoad %v3float %specularColor
|
%306 = OpLoad %v3float %specularColor
|
||||||
%308 = OpAccessChain %_ptr_Function_v3float %result %uint_1
|
%307 = OpAccessChain %_ptr_Function_v3float %result %uint_1
|
||||||
%309 = OpVectorTimesScalar %v3float %307 %305
|
%308 = OpVectorTimesScalar %v3float %306 %304
|
||||||
OpStore %308 %309
|
OpStore %307 %308
|
||||||
%310 = OpLoad %lightingInfo %result
|
%309 = OpLoad %lightingInfo %result
|
||||||
OpReturnValue %310
|
OpReturnValue %309
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %311
|
%main_1 = OpFunction %void None %310
|
||||||
%314 = OpLabel
|
%313 = OpLabel
|
||||||
%tempTextureRead = OpVariable %_ptr_Function_v4float Function %15
|
%tempTextureRead = OpVariable %_ptr_Function_v4float Function %15
|
||||||
%rgb = OpVariable %_ptr_Function_v3float Function %22
|
%rgb = OpVariable %_ptr_Function_v3float Function %22
|
||||||
%output5 = OpVariable %_ptr_Function_v3float Function %22
|
%output5 = OpVariable %_ptr_Function_v3float Function %22
|
||||||
|
@ -583,7 +578,7 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
%vLastOffset = OpVariable %_ptr_Function_v2float Function %31
|
%vLastOffset = OpVariable %_ptr_Function_v2float Function %31
|
||||||
%lastSampledHeight = OpVariable %_ptr_Function_float Function %18
|
%lastSampledHeight = OpVariable %_ptr_Function_float Function %18
|
||||||
%currSampledHeight = OpVariable %_ptr_Function_float Function %18
|
%currSampledHeight = OpVariable %_ptr_Function_float Function %18
|
||||||
%i = OpVariable %_ptr_Function_int Function %342
|
%i = OpVariable %_ptr_Function_int Function %164
|
||||||
%delta1 = OpVariable %_ptr_Function_float Function %18
|
%delta1 = OpVariable %_ptr_Function_float Function %18
|
||||||
%delta2 = OpVariable %_ptr_Function_float Function %18
|
%delta2 = OpVariable %_ptr_Function_float Function %18
|
||||||
%ratio = OpVariable %_ptr_Function_float Function %18
|
%ratio = OpVariable %_ptr_Function_float Function %18
|
||||||
|
@ -612,371 +607,371 @@ bug/tint/949.wgsl:308:27 note: reading from module-scope private variable 'v_out
|
||||||
%specularOutput = OpVariable %_ptr_Function_v3float Function %22
|
%specularOutput = OpVariable %_ptr_Function_v3float Function %22
|
||||||
%output3 = OpVariable %_ptr_Function_v3float Function %22
|
%output3 = OpVariable %_ptr_Function_v3float Function %22
|
||||||
OpStore %u_Float %float_100
|
OpStore %u_Float %float_100
|
||||||
OpStore %u_Color %371
|
OpStore %u_Color %369
|
||||||
%372 = OpLoad %v2float %vMainuv
|
%370 = OpLoad %v2float %vMainuv
|
||||||
%374 = OpLoad %28 %TextureSamplerSampler
|
%372 = OpLoad %28 %TextureSamplerSampler
|
||||||
%375 = OpLoad %25 %TextureSamplerTexture
|
%373 = OpLoad %25 %TextureSamplerTexture
|
||||||
%377 = OpSampledImage %376 %375 %374
|
%375 = OpSampledImage %374 %373 %372
|
||||||
%373 = OpImageSampleImplicitLod %v4float %377 %372
|
%371 = OpImageSampleImplicitLod %v4float %375 %370
|
||||||
OpStore %tempTextureRead %373
|
OpStore %tempTextureRead %371
|
||||||
%378 = OpLoad %v4float %tempTextureRead
|
%376 = OpLoad %v4float %tempTextureRead
|
||||||
%381 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_6
|
%379 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_6
|
||||||
%382 = OpLoad %float %381
|
%380 = OpLoad %float %379
|
||||||
%383 = OpCompositeExtract %float %378 0
|
%381 = OpCompositeExtract %float %376 0
|
||||||
%384 = OpCompositeExtract %float %378 1
|
%382 = OpCompositeExtract %float %376 1
|
||||||
%385 = OpCompositeExtract %float %378 2
|
%383 = OpCompositeExtract %float %376 2
|
||||||
%386 = OpCompositeConstruct %v3float %383 %384 %385
|
%384 = OpCompositeConstruct %v3float %381 %382 %383
|
||||||
%387 = OpVectorTimesScalar %v3float %386 %382
|
%385 = OpVectorTimesScalar %v3float %384 %380
|
||||||
OpStore %rgb %387
|
OpStore %rgb %385
|
||||||
%390 = OpAccessChain %_ptr_Uniform_v3float %x_269 %uint_4
|
%388 = OpAccessChain %_ptr_Uniform_v3float %x_269 %uint_4
|
||||||
%391 = OpLoad %v3float %390
|
%389 = OpLoad %v3float %388
|
||||||
%392 = OpLoad %v4float %v_output1
|
%390 = OpLoad %v4float %v_output1
|
||||||
%394 = OpCompositeExtract %float %392 0
|
%392 = OpCompositeExtract %float %390 0
|
||||||
%395 = OpCompositeExtract %float %392 1
|
%393 = OpCompositeExtract %float %390 1
|
||||||
%396 = OpCompositeExtract %float %392 2
|
%394 = OpCompositeExtract %float %390 2
|
||||||
%397 = OpCompositeConstruct %v3float %394 %395 %396
|
%395 = OpCompositeConstruct %v3float %392 %393 %394
|
||||||
%398 = OpFSub %v3float %391 %397
|
%396 = OpFSub %v3float %389 %395
|
||||||
%393 = OpExtInst %v3float %88 Normalize %398
|
%391 = OpExtInst %v3float %88 Normalize %396
|
||||||
OpStore %output5 %393
|
OpStore %output5 %391
|
||||||
OpStore %output4 %399
|
OpStore %output4 %15
|
||||||
OpStore %uvOffset %400
|
OpStore %uvOffset %31
|
||||||
%401 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_2
|
%397 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_2
|
||||||
%402 = OpLoad %float %401
|
%398 = OpLoad %float %397
|
||||||
%403 = OpFDiv %float %float_1 %402
|
%399 = OpFDiv %float %float_1 %398
|
||||||
OpStore %normalScale %403
|
OpStore %normalScale %399
|
||||||
%404 = OpLoad %bool %gl_FrontFacing
|
%400 = OpLoad %bool %gl_FrontFacing
|
||||||
OpSelectionMerge %405 None
|
OpSelectionMerge %401 None
|
||||||
OpBranchConditional %404 %406 %407
|
OpBranchConditional %400 %402 %403
|
||||||
%406 = OpLabel
|
%402 = OpLabel
|
||||||
%408 = OpLoad %v2float %v_uv
|
%404 = OpLoad %v2float %v_uv
|
||||||
OpStore %x_299 %408
|
OpStore %x_299 %404
|
||||||
OpBranch %405
|
OpBranch %401
|
||||||
%407 = OpLabel
|
%403 = OpLabel
|
||||||
%409 = OpLoad %v2float %v_uv
|
%405 = OpLoad %v2float %v_uv
|
||||||
%410 = OpFNegate %v2float %409
|
%406 = OpFNegate %v2float %405
|
||||||
OpStore %x_299 %410
|
OpStore %x_299 %406
|
||||||
OpBranch %405
|
OpBranch %401
|
||||||
%405 = OpLabel
|
%401 = OpLabel
|
||||||
%411 = OpLoad %v2float %x_299
|
%407 = OpLoad %v2float %x_299
|
||||||
OpStore %TBNUV %411
|
OpStore %TBNUV %407
|
||||||
%412 = OpLoad %v4float %v_output2
|
%408 = OpLoad %v4float %v_output2
|
||||||
%413 = OpLoad %float %normalScale
|
%409 = OpLoad %float %normalScale
|
||||||
%414 = OpCompositeExtract %float %412 0
|
%410 = OpCompositeExtract %float %408 0
|
||||||
%415 = OpCompositeExtract %float %412 1
|
%411 = OpCompositeExtract %float %408 1
|
||||||
%416 = OpCompositeExtract %float %412 2
|
%412 = OpCompositeExtract %float %408 2
|
||||||
%417 = OpCompositeConstruct %v3float %414 %415 %416
|
%413 = OpCompositeConstruct %v3float %410 %411 %412
|
||||||
%418 = OpVectorTimesScalar %v3float %417 %413
|
%414 = OpVectorTimesScalar %v3float %413 %409
|
||||||
OpStore %param_3 %418
|
OpStore %param_3 %414
|
||||||
%419 = OpLoad %v4float %v_output1
|
%415 = OpLoad %v4float %v_output1
|
||||||
%420 = OpCompositeExtract %float %419 0
|
%416 = OpCompositeExtract %float %415 0
|
||||||
%421 = OpCompositeExtract %float %419 1
|
%417 = OpCompositeExtract %float %415 1
|
||||||
%422 = OpCompositeExtract %float %419 2
|
%418 = OpCompositeExtract %float %415 2
|
||||||
%423 = OpCompositeConstruct %v3float %420 %421 %422
|
%419 = OpCompositeConstruct %v3float %416 %417 %418
|
||||||
OpStore %param_4 %423
|
OpStore %param_4 %419
|
||||||
%424 = OpLoad %v2float %TBNUV
|
%420 = OpLoad %v2float %TBNUV
|
||||||
OpStore %param_5 %424
|
OpStore %param_5 %420
|
||||||
%427 = OpAccessChain %_ptr_Uniform_v2float %x_269 %uint_8
|
%423 = OpAccessChain %_ptr_Uniform_v2float %x_269 %uint_8
|
||||||
%428 = OpLoad %v2float %427
|
%424 = OpLoad %v2float %423
|
||||||
OpStore %param_6 %428
|
OpStore %param_6 %424
|
||||||
%429 = OpFunctionCall %mat3v3float %cotangent_frame_vf3_vf3_vf2_vf2_ %param_3 %param_4 %param_5 %param_6
|
%425 = OpFunctionCall %mat3v3float %cotangent_frame_vf3_vf3_vf2_vf2_ %param_3 %param_4 %param_5 %param_6
|
||||||
OpStore %TBN %429
|
OpStore %TBN %425
|
||||||
%434 = OpLoad %mat3v3float %TBN
|
%430 = OpLoad %mat3v3float %TBN
|
||||||
OpStore %param_7 %434
|
OpStore %param_7 %430
|
||||||
%435 = OpFunctionCall %mat3v3float %transposeMat3_mf33_ %param_7
|
%431 = OpFunctionCall %mat3v3float %transposeMat3_mf33_ %param_7
|
||||||
OpStore %invTBN %435
|
OpStore %invTBN %431
|
||||||
|
%433 = OpLoad %mat3v3float %invTBN
|
||||||
|
%434 = OpLoad %v3float %output5
|
||||||
|
%435 = OpFNegate %v3float %434
|
||||||
|
%436 = OpMatrixTimesVector %v3float %433 %435
|
||||||
%437 = OpLoad %mat3v3float %invTBN
|
%437 = OpLoad %mat3v3float %invTBN
|
||||||
%438 = OpLoad %v3float %output5
|
%438 = OpLoad %v3float %output5
|
||||||
%439 = OpFNegate %v3float %438
|
%440 = OpCompositeExtract %float %436 0
|
||||||
%440 = OpMatrixTimesVector %v3float %437 %439
|
%441 = OpCompositeExtract %float %436 1
|
||||||
%441 = OpLoad %mat3v3float %invTBN
|
%442 = OpCompositeConstruct %v2float %440 %441
|
||||||
%442 = OpLoad %v3float %output5
|
%439 = OpExtInst %float %88 Length %442
|
||||||
%444 = OpCompositeExtract %float %440 0
|
%443 = OpFNegate %v3float %438
|
||||||
%445 = OpCompositeExtract %float %440 1
|
%444 = OpMatrixTimesVector %v3float %437 %443
|
||||||
%446 = OpCompositeConstruct %v2float %444 %445
|
%445 = OpCompositeExtract %float %444 2
|
||||||
%443 = OpExtInst %float %88 Length %446
|
%446 = OpFDiv %float %439 %445
|
||||||
%447 = OpFNegate %v3float %442
|
OpStore %parallaxLimit %446
|
||||||
%448 = OpMatrixTimesVector %v3float %441 %447
|
%448 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_5
|
||||||
%449 = OpCompositeExtract %float %448 2
|
%449 = OpLoad %float %448
|
||||||
%450 = OpFDiv %float %443 %449
|
%450 = OpLoad %float %parallaxLimit
|
||||||
OpStore %parallaxLimit %450
|
%451 = OpFMul %float %450 %449
|
||||||
%452 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_5
|
OpStore %parallaxLimit %451
|
||||||
%453 = OpLoad %float %452
|
%452 = OpLoad %mat3v3float %invTBN
|
||||||
%454 = OpLoad %float %parallaxLimit
|
%453 = OpLoad %v3float %output5
|
||||||
%455 = OpFMul %float %454 %453
|
%454 = OpFNegate %v3float %453
|
||||||
OpStore %parallaxLimit %455
|
%455 = OpMatrixTimesVector %v3float %452 %454
|
||||||
%456 = OpLoad %mat3v3float %invTBN
|
%457 = OpCompositeExtract %float %455 0
|
||||||
%457 = OpLoad %v3float %output5
|
%458 = OpCompositeExtract %float %455 1
|
||||||
%458 = OpFNegate %v3float %457
|
%459 = OpCompositeConstruct %v2float %457 %458
|
||||||
%459 = OpMatrixTimesVector %v3float %456 %458
|
%456 = OpExtInst %v2float %88 Normalize %459
|
||||||
%461 = OpCompositeExtract %float %459 0
|
OpStore %vOffsetDir %456
|
||||||
%462 = OpCompositeExtract %float %459 1
|
%460 = OpLoad %v2float %vOffsetDir
|
||||||
%463 = OpCompositeConstruct %v2float %461 %462
|
%461 = OpLoad %float %parallaxLimit
|
||||||
%460 = OpExtInst %v2float %88 Normalize %463
|
%462 = OpVectorTimesScalar %v2float %460 %461
|
||||||
OpStore %vOffsetDir %460
|
OpStore %vMaxOffset %462
|
||||||
%464 = OpLoad %v2float %vOffsetDir
|
%463 = OpLoad %mat3v3float %invTBN
|
||||||
%465 = OpLoad %float %parallaxLimit
|
%464 = OpLoad %v3float %output5
|
||||||
%466 = OpVectorTimesScalar %v2float %464 %465
|
%465 = OpLoad %mat3v3float %invTBN
|
||||||
OpStore %vMaxOffset %466
|
%466 = OpLoad %v4float %v_output2
|
||||||
%467 = OpLoad %mat3v3float %invTBN
|
%469 = OpFNegate %v3float %464
|
||||||
%468 = OpLoad %v3float %output5
|
%470 = OpMatrixTimesVector %v3float %463 %469
|
||||||
%469 = OpLoad %mat3v3float %invTBN
|
%471 = OpCompositeExtract %float %466 0
|
||||||
%470 = OpLoad %v4float %v_output2
|
%472 = OpCompositeExtract %float %466 1
|
||||||
%473 = OpFNegate %v3float %468
|
%473 = OpCompositeExtract %float %466 2
|
||||||
%474 = OpMatrixTimesVector %v3float %467 %473
|
%474 = OpCompositeConstruct %v3float %471 %472 %473
|
||||||
%475 = OpCompositeExtract %float %470 0
|
%475 = OpMatrixTimesVector %v3float %465 %474
|
||||||
%476 = OpCompositeExtract %float %470 1
|
%468 = OpDot %float %470 %475
|
||||||
%477 = OpCompositeExtract %float %470 2
|
%477 = OpFMul %float %468 %float_n11
|
||||||
%478 = OpCompositeConstruct %v3float %475 %476 %477
|
%478 = OpFAdd %float %float_15 %477
|
||||||
%479 = OpMatrixTimesVector %v3float %469 %478
|
OpStore %numSamples %478
|
||||||
%472 = OpDot %float %474 %479
|
%479 = OpLoad %float %numSamples
|
||||||
%481 = OpFMul %float %472 %float_n11
|
%480 = OpFDiv %float %float_1 %479
|
||||||
%482 = OpFAdd %float %float_15 %481
|
OpStore %stepSize %480
|
||||||
OpStore %numSamples %482
|
|
||||||
%483 = OpLoad %float %numSamples
|
|
||||||
%484 = OpFDiv %float %float_1 %483
|
|
||||||
OpStore %stepSize %484
|
|
||||||
OpStore %currRayHeight %float_1
|
OpStore %currRayHeight %float_1
|
||||||
OpStore %vCurrOffset %400
|
OpStore %vCurrOffset %31
|
||||||
OpStore %vLastOffset %400
|
OpStore %vLastOffset %31
|
||||||
OpStore %lastSampledHeight %float_1
|
OpStore %lastSampledHeight %float_1
|
||||||
OpStore %currSampledHeight %float_1
|
OpStore %currSampledHeight %float_1
|
||||||
OpStore %i %int_0
|
OpStore %i %164
|
||||||
OpBranch %485
|
OpBranch %481
|
||||||
%485 = OpLabel
|
%481 = OpLabel
|
||||||
OpLoopMerge %486 %487 None
|
OpLoopMerge %482 %483 None
|
||||||
|
OpBranch %484
|
||||||
|
%484 = OpLabel
|
||||||
|
%485 = OpLoad %int %i
|
||||||
|
%487 = OpSLessThan %bool %485 %int_15
|
||||||
|
OpSelectionMerge %488 None
|
||||||
|
OpBranchConditional %487 %489 %490
|
||||||
|
%489 = OpLabel
|
||||||
OpBranch %488
|
OpBranch %488
|
||||||
|
%490 = OpLabel
|
||||||
|
OpBranch %482
|
||||||
%488 = OpLabel
|
%488 = OpLabel
|
||||||
%489 = OpLoad %int %i
|
%491 = OpLoad %v2float %v_uv
|
||||||
%491 = OpSLessThan %bool %489 %int_15
|
%492 = OpLoad %v2float %vCurrOffset
|
||||||
OpSelectionMerge %492 None
|
%494 = OpLoad %28 %TextureSamplerSampler
|
||||||
OpBranchConditional %491 %493 %494
|
%495 = OpLoad %25 %TextureSamplerTexture
|
||||||
%493 = OpLabel
|
%496 = OpSampledImage %374 %495 %494
|
||||||
OpBranch %492
|
%497 = OpFAdd %v2float %491 %492
|
||||||
%494 = OpLabel
|
%493 = OpImageSampleImplicitLod %v4float %496 %497
|
||||||
OpBranch %486
|
%498 = OpCompositeExtract %float %493 3
|
||||||
%492 = OpLabel
|
OpStore %currSampledHeight %498
|
||||||
%495 = OpLoad %v2float %v_uv
|
%499 = OpLoad %float %currSampledHeight
|
||||||
%496 = OpLoad %v2float %vCurrOffset
|
%500 = OpLoad %float %currRayHeight
|
||||||
%498 = OpLoad %28 %TextureSamplerSampler
|
%501 = OpFOrdGreaterThan %bool %499 %500
|
||||||
%499 = OpLoad %25 %TextureSamplerTexture
|
OpSelectionMerge %502 None
|
||||||
%500 = OpSampledImage %376 %499 %498
|
OpBranchConditional %501 %503 %504
|
||||||
%501 = OpFAdd %v2float %495 %496
|
%503 = OpLabel
|
||||||
%497 = OpImageSampleImplicitLod %v4float %500 %501
|
%505 = OpLoad %float %currSampledHeight
|
||||||
%502 = OpCompositeExtract %float %497 3
|
%506 = OpLoad %float %currRayHeight
|
||||||
OpStore %currSampledHeight %502
|
%507 = OpFSub %float %505 %506
|
||||||
%503 = OpLoad %float %currSampledHeight
|
OpStore %delta1 %507
|
||||||
%504 = OpLoad %float %currRayHeight
|
%508 = OpLoad %float %currRayHeight
|
||||||
%505 = OpFOrdGreaterThan %bool %503 %504
|
%509 = OpLoad %float %stepSize
|
||||||
OpSelectionMerge %506 None
|
%510 = OpLoad %float %lastSampledHeight
|
||||||
OpBranchConditional %505 %507 %508
|
%511 = OpFAdd %float %508 %509
|
||||||
%507 = OpLabel
|
%512 = OpFSub %float %511 %510
|
||||||
%509 = OpLoad %float %currSampledHeight
|
OpStore %delta2 %512
|
||||||
%510 = OpLoad %float %currRayHeight
|
%513 = OpLoad %float %delta1
|
||||||
%511 = OpFSub %float %509 %510
|
%514 = OpLoad %float %delta1
|
||||||
OpStore %delta1 %511
|
%515 = OpLoad %float %delta2
|
||||||
%512 = OpLoad %float %currRayHeight
|
%516 = OpFAdd %float %514 %515
|
||||||
%513 = OpLoad %float %stepSize
|
%517 = OpFDiv %float %513 %516
|
||||||
%514 = OpLoad %float %lastSampledHeight
|
OpStore %ratio %517
|
||||||
%515 = OpFAdd %float %512 %513
|
%518 = OpLoad %float %ratio
|
||||||
%516 = OpFSub %float %515 %514
|
%519 = OpLoad %v2float %vLastOffset
|
||||||
OpStore %delta2 %516
|
%520 = OpLoad %float %ratio
|
||||||
%517 = OpLoad %float %delta1
|
%521 = OpLoad %v2float %vCurrOffset
|
||||||
%518 = OpLoad %float %delta1
|
%522 = OpVectorTimesScalar %v2float %519 %518
|
||||||
%519 = OpLoad %float %delta2
|
%523 = OpFSub %float %float_1 %520
|
||||||
%520 = OpFAdd %float %518 %519
|
%524 = OpVectorTimesScalar %v2float %521 %523
|
||||||
%521 = OpFDiv %float %517 %520
|
%525 = OpFAdd %v2float %522 %524
|
||||||
OpStore %ratio %521
|
OpStore %vCurrOffset %525
|
||||||
%522 = OpLoad %float %ratio
|
OpBranch %482
|
||||||
%523 = OpLoad %v2float %vLastOffset
|
%504 = OpLabel
|
||||||
%524 = OpLoad %float %ratio
|
%526 = OpLoad %float %stepSize
|
||||||
%525 = OpLoad %v2float %vCurrOffset
|
%527 = OpLoad %float %currRayHeight
|
||||||
%526 = OpVectorTimesScalar %v2float %523 %522
|
%528 = OpFSub %float %527 %526
|
||||||
%527 = OpFSub %float %float_1 %524
|
OpStore %currRayHeight %528
|
||||||
%528 = OpVectorTimesScalar %v2float %525 %527
|
%529 = OpLoad %v2float %vCurrOffset
|
||||||
%529 = OpFAdd %v2float %526 %528
|
OpStore %vLastOffset %529
|
||||||
OpStore %vCurrOffset %529
|
|
||||||
OpBranch %486
|
|
||||||
%508 = OpLabel
|
|
||||||
%530 = OpLoad %float %stepSize
|
%530 = OpLoad %float %stepSize
|
||||||
%531 = OpLoad %float %currRayHeight
|
%531 = OpLoad %v2float %vMaxOffset
|
||||||
%532 = OpFSub %float %531 %530
|
%532 = OpLoad %v2float %vCurrOffset
|
||||||
OpStore %currRayHeight %532
|
%533 = OpVectorTimesScalar %v2float %531 %530
|
||||||
%533 = OpLoad %v2float %vCurrOffset
|
%534 = OpFAdd %v2float %532 %533
|
||||||
OpStore %vLastOffset %533
|
OpStore %vCurrOffset %534
|
||||||
%534 = OpLoad %float %stepSize
|
%535 = OpLoad %float %currSampledHeight
|
||||||
%535 = OpLoad %v2float %vMaxOffset
|
OpStore %lastSampledHeight %535
|
||||||
%536 = OpLoad %v2float %vCurrOffset
|
OpBranch %502
|
||||||
%537 = OpVectorTimesScalar %v2float %535 %534
|
%502 = OpLabel
|
||||||
%538 = OpFAdd %v2float %536 %537
|
OpBranch %483
|
||||||
OpStore %vCurrOffset %538
|
%483 = OpLabel
|
||||||
%539 = OpLoad %float %currSampledHeight
|
%536 = OpLoad %int %i
|
||||||
OpStore %lastSampledHeight %539
|
%537 = OpIAdd %int %536 %int_1
|
||||||
OpBranch %506
|
OpStore %i %537
|
||||||
%506 = OpLabel
|
OpBranch %481
|
||||||
OpBranch %487
|
%482 = OpLabel
|
||||||
%487 = OpLabel
|
%538 = OpLoad %v2float %vCurrOffset
|
||||||
%540 = OpLoad %int %i
|
OpStore %parallaxOcclusion_0 %538
|
||||||
%541 = OpIAdd %int %540 %int_1
|
%539 = OpLoad %v2float %parallaxOcclusion_0
|
||||||
OpStore %i %541
|
OpStore %uvOffset %539
|
||||||
OpBranch %485
|
%540 = OpLoad %v2float %v_uv
|
||||||
%486 = OpLabel
|
%541 = OpLoad %v2float %uvOffset
|
||||||
%542 = OpLoad %v2float %vCurrOffset
|
%543 = OpLoad %28 %TextureSamplerSampler
|
||||||
OpStore %parallaxOcclusion_0 %542
|
%544 = OpLoad %25 %TextureSamplerTexture
|
||||||
%543 = OpLoad %v2float %parallaxOcclusion_0
|
%545 = OpSampledImage %374 %544 %543
|
||||||
OpStore %uvOffset %543
|
%546 = OpFAdd %v2float %540 %541
|
||||||
%544 = OpLoad %v2float %v_uv
|
%542 = OpImageSampleImplicitLod %v4float %545 %546
|
||||||
%545 = OpLoad %v2float %uvOffset
|
%547 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_2
|
||||||
%547 = OpLoad %28 %TextureSamplerSampler
|
%548 = OpLoad %float %547
|
||||||
%548 = OpLoad %25 %TextureSamplerTexture
|
%549 = OpLoad %mat3v3float %TBN
|
||||||
%549 = OpSampledImage %376 %548 %547
|
OpStore %param_8 %549
|
||||||
%550 = OpFAdd %v2float %544 %545
|
%550 = OpCompositeExtract %float %542 0
|
||||||
%546 = OpImageSampleImplicitLod %v4float %549 %550
|
%551 = OpCompositeExtract %float %542 1
|
||||||
%551 = OpAccessChain %_ptr_Uniform_float %x_269 %uint_2
|
%552 = OpCompositeExtract %float %542 2
|
||||||
%552 = OpLoad %float %551
|
%553 = OpCompositeConstruct %v3float %550 %551 %552
|
||||||
%553 = OpLoad %mat3v3float %TBN
|
OpStore %param_9 %553
|
||||||
OpStore %param_8 %553
|
%554 = OpFDiv %float %float_1 %548
|
||||||
%554 = OpCompositeExtract %float %546 0
|
OpStore %param_10 %554
|
||||||
%555 = OpCompositeExtract %float %546 1
|
%555 = OpFunctionCall %v3float %perturbNormal_mf33_vf3_f1_ %param_8 %param_9 %param_10
|
||||||
%556 = OpCompositeExtract %float %546 2
|
%559 = OpLoad %v4float %output4
|
||||||
%557 = OpCompositeConstruct %v3float %554 %555 %556
|
%560 = OpCompositeExtract %float %555 0
|
||||||
OpStore %param_9 %557
|
%561 = OpCompositeExtract %float %555 1
|
||||||
%558 = OpFDiv %float %float_1 %552
|
%562 = OpCompositeExtract %float %555 2
|
||||||
OpStore %param_10 %558
|
%563 = OpCompositeExtract %float %559 3
|
||||||
%559 = OpFunctionCall %v3float %perturbNormal_mf33_vf3_f1_ %param_8 %param_9 %param_10
|
%564 = OpCompositeConstruct %v4float %560 %561 %562 %563
|
||||||
%563 = OpLoad %v4float %output4
|
OpStore %output4 %564
|
||||||
%564 = OpCompositeExtract %float %559 0
|
%565 = OpLoad %v2float %v_uv
|
||||||
%565 = OpCompositeExtract %float %559 1
|
%566 = OpLoad %v2float %uvOffset
|
||||||
%566 = OpCompositeExtract %float %559 2
|
%567 = OpFAdd %v2float %565 %566
|
||||||
%567 = OpCompositeExtract %float %563 3
|
OpStore %output6 %567
|
||||||
%568 = OpCompositeConstruct %v4float %564 %565 %566 %567
|
%568 = OpLoad %v2float %output6
|
||||||
OpStore %output4 %568
|
%570 = OpLoad %28 %TextureSampler1Sampler
|
||||||
%569 = OpLoad %v2float %v_uv
|
%571 = OpLoad %25 %TextureSampler1Texture
|
||||||
%570 = OpLoad %v2float %uvOffset
|
%572 = OpSampledImage %374 %571 %570
|
||||||
%571 = OpFAdd %v2float %569 %570
|
%569 = OpImageSampleImplicitLod %v4float %572 %568
|
||||||
OpStore %output6 %571
|
OpStore %tempTextureRead1 %569
|
||||||
%572 = OpLoad %v2float %output6
|
%573 = OpLoad %v4float %tempTextureRead1
|
||||||
%574 = OpLoad %28 %TextureSampler1Sampler
|
%574 = OpCompositeExtract %float %573 0
|
||||||
%575 = OpLoad %25 %TextureSampler1Texture
|
%575 = OpCompositeExtract %float %573 1
|
||||||
%576 = OpSampledImage %376 %575 %574
|
%576 = OpCompositeExtract %float %573 2
|
||||||
%573 = OpImageSampleImplicitLod %v4float %576 %572
|
%577 = OpCompositeConstruct %v3float %574 %575 %576
|
||||||
OpStore %tempTextureRead1 %573
|
OpStore %rgb1 %577
|
||||||
%577 = OpLoad %v4float %tempTextureRead1
|
%578 = OpAccessChain %_ptr_Uniform_v3float %x_269 %uint_4
|
||||||
%578 = OpCompositeExtract %float %577 0
|
%579 = OpLoad %v3float %578
|
||||||
%579 = OpCompositeExtract %float %577 1
|
%580 = OpLoad %v4float %v_output1
|
||||||
%580 = OpCompositeExtract %float %577 2
|
%582 = OpCompositeExtract %float %580 0
|
||||||
%581 = OpCompositeConstruct %v3float %578 %579 %580
|
%583 = OpCompositeExtract %float %580 1
|
||||||
OpStore %rgb1 %581
|
%584 = OpCompositeExtract %float %580 2
|
||||||
%582 = OpAccessChain %_ptr_Uniform_v3float %x_269 %uint_4
|
%585 = OpCompositeConstruct %v3float %582 %583 %584
|
||||||
%583 = OpLoad %v3float %582
|
%586 = OpFSub %v3float %579 %585
|
||||||
%584 = OpLoad %v4float %v_output1
|
%581 = OpExtInst %v3float %88 Normalize %586
|
||||||
%586 = OpCompositeExtract %float %584 0
|
OpStore %viewDirectionW_1 %581
|
||||||
%587 = OpCompositeExtract %float %584 1
|
|
||||||
%588 = OpCompositeExtract %float %584 2
|
|
||||||
%589 = OpCompositeConstruct %v3float %586 %587 %588
|
|
||||||
%590 = OpFSub %v3float %583 %589
|
|
||||||
%585 = OpExtInst %v3float %88 Normalize %590
|
|
||||||
OpStore %viewDirectionW_1 %585
|
|
||||||
OpStore %shadow %float_1
|
OpStore %shadow %float_1
|
||||||
%591 = OpLoad %float %u_Float
|
%587 = OpLoad %float %u_Float
|
||||||
%592 = OpFMul %float %float_1 %591
|
%588 = OpFMul %float %float_1 %587
|
||||||
OpStore %glossiness_1 %592
|
OpStore %glossiness_1 %588
|
||||||
OpStore %diffuseBase %593
|
OpStore %diffuseBase %22
|
||||||
OpStore %specularBase %593
|
OpStore %specularBase %22
|
||||||
%594 = OpLoad %v4float %output4
|
%589 = OpLoad %v4float %output4
|
||||||
%595 = OpCompositeExtract %float %594 0
|
%590 = OpCompositeExtract %float %589 0
|
||||||
%596 = OpCompositeExtract %float %594 1
|
%591 = OpCompositeExtract %float %589 1
|
||||||
%597 = OpCompositeExtract %float %594 2
|
%592 = OpCompositeExtract %float %589 2
|
||||||
%598 = OpCompositeConstruct %v3float %595 %596 %597
|
%593 = OpCompositeConstruct %v3float %590 %591 %592
|
||||||
OpStore %normalW %598
|
OpStore %normalW %593
|
||||||
%599 = OpLoad %v3float %viewDirectionW_1
|
%594 = OpLoad %v3float %viewDirectionW_1
|
||||||
OpStore %param_11 %599
|
OpStore %param_11 %594
|
||||||
%600 = OpLoad %v3float %normalW
|
%595 = OpLoad %v3float %normalW
|
||||||
OpStore %param_12 %600
|
OpStore %param_12 %595
|
||||||
%602 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_0
|
%597 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_0
|
||||||
%603 = OpLoad %v4float %602
|
%598 = OpLoad %v4float %597
|
||||||
OpStore %param_13 %603
|
OpStore %param_13 %598
|
||||||
%604 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_1
|
%599 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_1
|
||||||
%605 = OpLoad %v4float %604
|
%600 = OpLoad %v4float %599
|
||||||
%606 = OpCompositeExtract %float %605 0
|
%601 = OpCompositeExtract %float %600 0
|
||||||
%607 = OpCompositeExtract %float %605 1
|
%602 = OpCompositeExtract %float %600 1
|
||||||
%608 = OpCompositeExtract %float %605 2
|
%603 = OpCompositeExtract %float %600 2
|
||||||
%609 = OpCompositeConstruct %v3float %606 %607 %608
|
%604 = OpCompositeConstruct %v3float %601 %602 %603
|
||||||
OpStore %param_14 %609
|
OpStore %param_14 %604
|
||||||
%610 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_2
|
%605 = OpAccessChain %_ptr_Uniform_v4float %light0 %uint_2
|
||||||
%611 = OpLoad %v4float %610
|
%606 = OpLoad %v4float %605
|
||||||
%612 = OpCompositeExtract %float %611 0
|
%607 = OpCompositeExtract %float %606 0
|
||||||
%613 = OpCompositeExtract %float %611 1
|
%608 = OpCompositeExtract %float %606 1
|
||||||
%614 = OpCompositeExtract %float %611 2
|
%609 = OpCompositeExtract %float %606 2
|
||||||
%615 = OpCompositeConstruct %v3float %612 %613 %614
|
%610 = OpCompositeConstruct %v3float %607 %608 %609
|
||||||
OpStore %param_15 %615
|
OpStore %param_15 %610
|
||||||
%617 = OpAccessChain %_ptr_Uniform_v3float %light0 %uint_3
|
%612 = OpAccessChain %_ptr_Uniform_v3float %light0 %uint_3
|
||||||
%618 = OpLoad %v3float %617
|
%613 = OpLoad %v3float %612
|
||||||
OpStore %param_16 %618
|
OpStore %param_16 %613
|
||||||
%619 = OpLoad %float %glossiness_1
|
%614 = OpLoad %float %glossiness_1
|
||||||
OpStore %param_17 %619
|
OpStore %param_17 %614
|
||||||
%620 = OpFunctionCall %lightingInfo %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ %param_11 %param_12 %param_13 %param_14 %param_15 %param_16 %param_17
|
%615 = OpFunctionCall %lightingInfo %computeHemisphericLighting_vf3_vf3_vf4_vf3_vf3_vf3_f1_ %param_11 %param_12 %param_13 %param_14 %param_15 %param_16 %param_17
|
||||||
OpStore %info %620
|
OpStore %info %615
|
||||||
OpStore %shadow %float_1
|
OpStore %shadow %float_1
|
||||||
%628 = OpAccessChain %_ptr_Function_v3float %info %uint_0
|
%623 = OpAccessChain %_ptr_Function_v3float %info %uint_0
|
||||||
%629 = OpLoad %v3float %628
|
%624 = OpLoad %v3float %623
|
||||||
%630 = OpLoad %float %shadow
|
%625 = OpLoad %float %shadow
|
||||||
%631 = OpLoad %v3float %diffuseBase
|
%626 = OpLoad %v3float %diffuseBase
|
||||||
%632 = OpVectorTimesScalar %v3float %629 %630
|
%627 = OpVectorTimesScalar %v3float %624 %625
|
||||||
%633 = OpFAdd %v3float %631 %632
|
%628 = OpFAdd %v3float %626 %627
|
||||||
OpStore %diffuseBase %633
|
OpStore %diffuseBase %628
|
||||||
%634 = OpAccessChain %_ptr_Function_v3float %info %uint_1
|
%629 = OpAccessChain %_ptr_Function_v3float %info %uint_1
|
||||||
%635 = OpLoad %v3float %634
|
%630 = OpLoad %v3float %629
|
||||||
%636 = OpLoad %float %shadow
|
%631 = OpLoad %float %shadow
|
||||||
%637 = OpLoad %v3float %specularBase
|
%632 = OpLoad %v3float %specularBase
|
||||||
%638 = OpVectorTimesScalar %v3float %635 %636
|
%633 = OpVectorTimesScalar %v3float %630 %631
|
||||||
%639 = OpFAdd %v3float %637 %638
|
%634 = OpFAdd %v3float %632 %633
|
||||||
OpStore %specularBase %639
|
OpStore %specularBase %634
|
||||||
%640 = OpLoad %v3float %diffuseBase
|
%635 = OpLoad %v3float %diffuseBase
|
||||||
%641 = OpLoad %v3float %rgb1
|
%636 = OpLoad %v3float %rgb1
|
||||||
%642 = OpFMul %v3float %640 %641
|
%637 = OpFMul %v3float %635 %636
|
||||||
OpStore %diffuseOutput %642
|
OpStore %diffuseOutput %637
|
||||||
%643 = OpLoad %v3float %specularBase
|
%638 = OpLoad %v3float %specularBase
|
||||||
%644 = OpLoad %v3float %u_Color
|
%639 = OpLoad %v3float %u_Color
|
||||||
%645 = OpFMul %v3float %643 %644
|
%640 = OpFMul %v3float %638 %639
|
||||||
OpStore %specularOutput %645
|
OpStore %specularOutput %640
|
||||||
%646 = OpLoad %v3float %diffuseOutput
|
%641 = OpLoad %v3float %diffuseOutput
|
||||||
%647 = OpLoad %v3float %specularOutput
|
%642 = OpLoad %v3float %specularOutput
|
||||||
%648 = OpFAdd %v3float %646 %647
|
%643 = OpFAdd %v3float %641 %642
|
||||||
OpStore %output3 %648
|
OpStore %output3 %643
|
||||||
%649 = OpLoad %v3float %output3
|
%644 = OpLoad %v3float %output3
|
||||||
%650 = OpCompositeExtract %float %649 0
|
%645 = OpCompositeExtract %float %644 0
|
||||||
%651 = OpCompositeExtract %float %649 1
|
%646 = OpCompositeExtract %float %644 1
|
||||||
%652 = OpCompositeExtract %float %649 2
|
%647 = OpCompositeExtract %float %644 2
|
||||||
%653 = OpCompositeConstruct %v4float %650 %651 %652 %float_1
|
%648 = OpCompositeConstruct %v4float %645 %646 %647 %float_1
|
||||||
OpStore %glFragColor %653
|
OpStore %glFragColor %648
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %main_out None %654
|
%main_inner = OpFunction %main_out None %649
|
||||||
%vMainuv_param = OpFunctionParameter %v2float
|
%vMainuv_param = OpFunctionParameter %v2float
|
||||||
%v_output1_param = OpFunctionParameter %v4float
|
%v_output1_param = OpFunctionParameter %v4float
|
||||||
%gl_FrontFacing_param = OpFunctionParameter %bool
|
%gl_FrontFacing_param = OpFunctionParameter %bool
|
||||||
%v_uv_param = OpFunctionParameter %v2float
|
%v_uv_param = OpFunctionParameter %v2float
|
||||||
%v_output2_param = OpFunctionParameter %v4float
|
%v_output2_param = OpFunctionParameter %v4float
|
||||||
%662 = OpLabel
|
%657 = OpLabel
|
||||||
OpStore %vMainuv %vMainuv_param
|
OpStore %vMainuv %vMainuv_param
|
||||||
OpStore %v_output1 %v_output1_param
|
OpStore %v_output1 %v_output1_param
|
||||||
OpStore %gl_FrontFacing %gl_FrontFacing_param
|
OpStore %gl_FrontFacing %gl_FrontFacing_param
|
||||||
OpStore %v_uv %v_uv_param
|
OpStore %v_uv %v_uv_param
|
||||||
OpStore %v_output2 %v_output2_param
|
OpStore %v_output2 %v_output2_param
|
||||||
%663 = OpFunctionCall %void %main_1
|
%658 = OpFunctionCall %void %main_1
|
||||||
%664 = OpLoad %v4float %glFragColor
|
%659 = OpLoad %v4float %glFragColor
|
||||||
%665 = OpCompositeConstruct %main_out %664
|
%660 = OpCompositeConstruct %main_out %659
|
||||||
OpReturnValue %665
|
OpReturnValue %660
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %311
|
%main = OpFunction %void None %310
|
||||||
%667 = OpLabel
|
%662 = OpLabel
|
||||||
%669 = OpLoad %v2float %vMainuv_param_1
|
%664 = OpLoad %v2float %vMainuv_param_1
|
||||||
%670 = OpLoad %v4float %v_output1_param_1
|
%665 = OpLoad %v4float %v_output1_param_1
|
||||||
%671 = OpLoad %bool %gl_FrontFacing_param_1
|
%666 = OpLoad %bool %gl_FrontFacing_param_1
|
||||||
%672 = OpLoad %v2float %v_uv_param_1
|
%667 = OpLoad %v2float %v_uv_param_1
|
||||||
%673 = OpLoad %v4float %v_output2_param_1
|
%668 = OpLoad %v4float %v_output2_param_1
|
||||||
%668 = OpFunctionCall %main_out %main_inner %669 %670 %671 %672 %673
|
%663 = OpFunctionCall %main_out %main_inner %664 %665 %666 %667 %668
|
||||||
%674 = OpCompositeExtract %v4float %668 0
|
%669 = OpCompositeExtract %v4float %663 0
|
||||||
OpStore %glFragColor_1_1 %674
|
OpStore %glFragColor_1_1 %669
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 97
|
; Bound: 96
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%46 = OpExtInstImport "GLSL.std.450"
|
%46 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -83,7 +83,7 @@
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%30 = OpTypeFunction %float %_ptr_Function_float
|
%30 = OpTypeFunction %float %_ptr_Function_float
|
||||||
%float_0 = OpConstant %float 0
|
%37 = OpConstantNull %float
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%float_0x1p_128 = OpConstant %float 0x1p+128
|
%float_0x1p_128 = OpConstant %float 0x1p+128
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
|
@ -91,10 +91,9 @@
|
||||||
%47 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
|
%47 = OpTypeFunction %void %_ptr_Function_int %_ptr_Function_float
|
||||||
%59 = OpTypeFunction %void
|
%59 = OpTypeFunction %void
|
||||||
%63 = OpConstantNull %int
|
%63 = OpConstantNull %int
|
||||||
%65 = OpConstantNull %float
|
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
%_ptr_Uniform_int = OpTypePointer Uniform %int
|
||||||
%88 = OpTypeFunction %void %v3uint
|
%87 = OpTypeFunction %void %v3uint
|
||||||
%getAAtOutCoords_ = OpFunction %float None %20
|
%getAAtOutCoords_ = OpFunction %float None %20
|
||||||
%22 = OpLabel
|
%22 = OpLabel
|
||||||
%25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%25 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
|
@ -107,7 +106,7 @@
|
||||||
%a = OpFunctionParameter %_ptr_Function_float
|
%a = OpFunctionParameter %_ptr_Function_float
|
||||||
%34 = OpLabel
|
%34 = OpLabel
|
||||||
%36 = OpLoad %float %a
|
%36 = OpLoad %float %a
|
||||||
%38 = OpFOrdLessThan %bool %36 %float_0
|
%38 = OpFOrdLessThan %bool %36 %37
|
||||||
OpSelectionMerge %40 None
|
OpSelectionMerge %40 None
|
||||||
OpBranchConditional %38 %41 %40
|
OpBranchConditional %38 %41 %40
|
||||||
%41 = OpLabel
|
%41 = OpLabel
|
||||||
|
@ -130,44 +129,44 @@
|
||||||
%main_1 = OpFunction %void None %59
|
%main_1 = OpFunction %void None %59
|
||||||
%61 = OpLabel
|
%61 = OpLabel
|
||||||
%index = OpVariable %_ptr_Function_int Function %63
|
%index = OpVariable %_ptr_Function_int Function %63
|
||||||
%a_1 = OpVariable %_ptr_Function_float Function %65
|
%a_1 = OpVariable %_ptr_Function_float Function %37
|
||||||
%param = OpVariable %_ptr_Function_float Function %65
|
%param = OpVariable %_ptr_Function_float Function %37
|
||||||
%param_1 = OpVariable %_ptr_Function_int Function %63
|
%param_1 = OpVariable %_ptr_Function_int Function %63
|
||||||
%param_2 = OpVariable %_ptr_Function_float Function %65
|
%param_2 = OpVariable %_ptr_Function_float Function %37
|
||||||
%69 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%68 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
%70 = OpLoad %uint %69
|
%69 = OpLoad %uint %68
|
||||||
%71 = OpBitcast %int %70
|
%70 = OpBitcast %int %69
|
||||||
OpStore %index %71
|
OpStore %index %70
|
||||||
%72 = OpLoad %int %index
|
%71 = OpLoad %int %index
|
||||||
%75 = OpAccessChain %_ptr_Uniform_int %x_24 %uint_4
|
%74 = OpAccessChain %_ptr_Uniform_int %x_24 %uint_4
|
||||||
%76 = OpLoad %int %75
|
%75 = OpLoad %int %74
|
||||||
%77 = OpSLessThan %bool %72 %76
|
%76 = OpSLessThan %bool %71 %75
|
||||||
OpSelectionMerge %78 None
|
OpSelectionMerge %77 None
|
||||||
OpBranchConditional %77 %79 %78
|
OpBranchConditional %76 %78 %77
|
||||||
%79 = OpLabel
|
|
||||||
%80 = OpFunctionCall %float %getAAtOutCoords_
|
|
||||||
OpStore %a_1 %80
|
|
||||||
%81 = OpLoad %float %a_1
|
|
||||||
OpStore %param %81
|
|
||||||
%82 = OpFunctionCall %float %unaryOperation_f1_ %param
|
|
||||||
%84 = OpLoad %int %index
|
|
||||||
OpStore %param_1 %84
|
|
||||||
OpStore %param_2 %82
|
|
||||||
%85 = OpFunctionCall %void %setOutput_i1_f1_ %param_1 %param_2
|
|
||||||
OpBranch %78
|
|
||||||
%78 = OpLabel
|
%78 = OpLabel
|
||||||
|
%79 = OpFunctionCall %float %getAAtOutCoords_
|
||||||
|
OpStore %a_1 %79
|
||||||
|
%80 = OpLoad %float %a_1
|
||||||
|
OpStore %param %80
|
||||||
|
%81 = OpFunctionCall %float %unaryOperation_f1_ %param
|
||||||
|
%83 = OpLoad %int %index
|
||||||
|
OpStore %param_1 %83
|
||||||
|
OpStore %param_2 %81
|
||||||
|
%84 = OpFunctionCall %void %setOutput_i1_f1_ %param_1 %param_2
|
||||||
|
OpBranch %77
|
||||||
|
%77 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %void None %88
|
%main_inner = OpFunction %void None %87
|
||||||
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
||||||
%91 = OpLabel
|
%90 = OpLabel
|
||||||
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
||||||
%92 = OpFunctionCall %void %main_1
|
%91 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %59
|
%main = OpFunction %void None %59
|
||||||
%94 = OpLabel
|
%93 = OpLabel
|
||||||
%96 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
%95 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
||||||
%95 = OpFunctionCall %void %main_inner %96
|
%94 = OpFunctionCall %void %main_inner %95
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 103
|
; Bound: 102
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%43 = OpExtInstImport "GLSL.std.450"
|
%42 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
OpEntryPoint GLCompute %main "main" %gl_GlobalInvocationID_param_1
|
||||||
OpExecutionMode %main LocalSize 1 1 1
|
OpExecutionMode %main LocalSize 1 1 1
|
||||||
|
@ -84,93 +84,92 @@
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
|
%23 = OpTypeFunction %float %_ptr_Function_float %_ptr_Function_float
|
||||||
%30 = OpConstantNull %float
|
%30 = OpConstantNull %float
|
||||||
%float_0 = OpConstant %float 0
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%float_2 = OpConstant %float 2
|
%float_2 = OpConstant %float 2
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%70 = OpTypeFunction %void
|
%69 = OpTypeFunction %void
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%76 = OpConstantNull %int
|
%75 = OpConstantNull %int
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
%int_n10 = OpConstant %int -10
|
%int_n10 = OpConstant %int -10
|
||||||
%float_n4 = OpConstant %float -4
|
%float_n4 = OpConstant %float -4
|
||||||
%float_n3 = OpConstant %float -3
|
%float_n3 = OpConstant %float -3
|
||||||
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
%_ptr_StorageBuffer_float = OpTypePointer StorageBuffer %float
|
||||||
%94 = OpTypeFunction %void %v3uint
|
%93 = OpTypeFunction %void %v3uint
|
||||||
%binaryOperation_f1_f1_ = OpFunction %float None %23
|
%binaryOperation_f1_f1_ = OpFunction %float None %23
|
||||||
%a = OpFunctionParameter %_ptr_Function_float
|
%a = OpFunctionParameter %_ptr_Function_float
|
||||||
%b = OpFunctionParameter %_ptr_Function_float
|
%b = OpFunctionParameter %_ptr_Function_float
|
||||||
%28 = OpLabel
|
%28 = OpLabel
|
||||||
%x_26 = OpVariable %_ptr_Function_float Function %30
|
%x_26 = OpVariable %_ptr_Function_float Function %30
|
||||||
%32 = OpLoad %float %b
|
%32 = OpLoad %float %b
|
||||||
%34 = OpFOrdEqual %bool %32 %float_0
|
%33 = OpFOrdEqual %bool %32 %30
|
||||||
OpSelectionMerge %36 None
|
OpSelectionMerge %35 None
|
||||||
OpBranchConditional %34 %37 %36
|
OpBranchConditional %33 %36 %35
|
||||||
%37 = OpLabel
|
|
||||||
OpReturnValue %float_1
|
|
||||||
%36 = OpLabel
|
%36 = OpLabel
|
||||||
%40 = OpLoad %float %b
|
OpReturnValue %float_1
|
||||||
%46 = OpFDiv %float %40 %float_2
|
%35 = OpLabel
|
||||||
%45 = OpExtInst %float %43 Floor %46
|
%39 = OpLoad %float %b
|
||||||
%47 = OpFMul %float %float_2 %45
|
%45 = OpFDiv %float %39 %float_2
|
||||||
%48 = OpFSub %float %40 %47
|
%44 = OpExtInst %float %42 Floor %45
|
||||||
%42 = OpExtInst %float %43 RoundEven %48
|
%46 = OpFMul %float %float_2 %44
|
||||||
%49 = OpFOrdEqual %bool %42 %float_1
|
%47 = OpFSub %float %39 %46
|
||||||
%41 = OpLogicalNot %bool %49
|
%41 = OpExtInst %float %42 RoundEven %47
|
||||||
OpSelectionMerge %50 None
|
%48 = OpFOrdEqual %bool %41 %float_1
|
||||||
OpBranchConditional %41 %51 %52
|
%40 = OpLogicalNot %bool %48
|
||||||
%51 = OpLabel
|
OpSelectionMerge %49 None
|
||||||
%54 = OpLoad %float %a
|
OpBranchConditional %40 %50 %51
|
||||||
%56 = OpLoad %float %b
|
|
||||||
%58 = OpExtInst %float %43 FAbs %54
|
|
||||||
%57 = OpExtInst %float %43 Pow %58 %56
|
|
||||||
OpStore %x_26 %57
|
|
||||||
OpBranch %50
|
|
||||||
%52 = OpLabel
|
|
||||||
%60 = OpLoad %float %a
|
|
||||||
%62 = OpLoad %float %a
|
|
||||||
%64 = OpLoad %float %b
|
|
||||||
%65 = OpExtInst %float %43 FSign %60
|
|
||||||
%67 = OpExtInst %float %43 FAbs %62
|
|
||||||
%66 = OpExtInst %float %43 Pow %67 %64
|
|
||||||
%68 = OpFMul %float %65 %66
|
|
||||||
OpStore %x_26 %68
|
|
||||||
OpBranch %50
|
|
||||||
%50 = OpLabel
|
%50 = OpLabel
|
||||||
%69 = OpLoad %float %x_26
|
%53 = OpLoad %float %a
|
||||||
OpReturnValue %69
|
%55 = OpLoad %float %b
|
||||||
|
%57 = OpExtInst %float %42 FAbs %53
|
||||||
|
%56 = OpExtInst %float %42 Pow %57 %55
|
||||||
|
OpStore %x_26 %56
|
||||||
|
OpBranch %49
|
||||||
|
%51 = OpLabel
|
||||||
|
%59 = OpLoad %float %a
|
||||||
|
%61 = OpLoad %float %a
|
||||||
|
%63 = OpLoad %float %b
|
||||||
|
%64 = OpExtInst %float %42 FSign %59
|
||||||
|
%66 = OpExtInst %float %42 FAbs %61
|
||||||
|
%65 = OpExtInst %float %42 Pow %66 %63
|
||||||
|
%67 = OpFMul %float %64 %65
|
||||||
|
OpStore %x_26 %67
|
||||||
|
OpBranch %49
|
||||||
|
%49 = OpLabel
|
||||||
|
%68 = OpLoad %float %x_26
|
||||||
|
OpReturnValue %68
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_1 = OpFunction %void None %70
|
%main_1 = OpFunction %void None %69
|
||||||
%73 = OpLabel
|
%72 = OpLabel
|
||||||
%index = OpVariable %_ptr_Function_int Function %76
|
%index = OpVariable %_ptr_Function_int Function %75
|
||||||
%a_1 = OpVariable %_ptr_Function_int Function %76
|
%a_1 = OpVariable %_ptr_Function_int Function %75
|
||||||
%param = OpVariable %_ptr_Function_float Function %30
|
%param = OpVariable %_ptr_Function_float Function %30
|
||||||
%param_1 = OpVariable %_ptr_Function_float Function %30
|
%param_1 = OpVariable %_ptr_Function_float Function %30
|
||||||
%82 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
%81 = OpAccessChain %_ptr_Private_uint %gl_GlobalInvocationID %uint_0
|
||||||
%83 = OpLoad %uint %82
|
%82 = OpLoad %uint %81
|
||||||
%84 = OpBitcast %int %83
|
%83 = OpBitcast %int %82
|
||||||
OpStore %index %84
|
OpStore %index %83
|
||||||
OpStore %a_1 %int_n10
|
OpStore %a_1 %int_n10
|
||||||
%86 = OpLoad %int %index
|
%85 = OpLoad %int %index
|
||||||
OpStore %param %float_n4
|
OpStore %param %float_n4
|
||||||
OpStore %param_1 %float_n3
|
OpStore %param_1 %float_n3
|
||||||
%89 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
|
%88 = OpFunctionCall %float %binaryOperation_f1_f1_ %param %param_1
|
||||||
%93 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %86
|
%92 = OpAccessChain %_ptr_StorageBuffer_float %resultMatrix %uint_0 %85
|
||||||
OpStore %93 %89
|
OpStore %92 %88
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %void None %94
|
%main_inner = OpFunction %void None %93
|
||||||
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
%gl_GlobalInvocationID_param = OpFunctionParameter %v3uint
|
||||||
%97 = OpLabel
|
%96 = OpLabel
|
||||||
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
OpStore %gl_GlobalInvocationID %gl_GlobalInvocationID_param
|
||||||
%98 = OpFunctionCall %void %main_1
|
%97 = OpFunctionCall %void %main_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %70
|
%main = OpFunction %void None %69
|
||||||
%100 = OpLabel
|
%99 = OpLabel
|
||||||
%102 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
%101 = OpLoad %v3uint %gl_GlobalInvocationID_param_1
|
||||||
%101 = OpFunctionCall %void %main_inner %102
|
%100 = OpFunctionCall %void %main_inner %101
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
; SPIR-V
|
; SPIR-V
|
||||||
; Version: 1.3
|
; Version: 1.3
|
||||||
; Generator: Google Tint Compiler; 0
|
; Generator: Google Tint Compiler; 0
|
||||||
; Bound: 47
|
; Bound: 45
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%23 = OpExtInstImport "GLSL.std.450"
|
%21 = OpExtInstImport "GLSL.std.450"
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
OpEntryPoint GLCompute %main "main" %idx_1
|
OpEntryPoint GLCompute %main "main" %idx_1
|
||||||
OpExecutionMode %main LocalSize 1 1 1
|
OpExecutionMode %main LocalSize 1 1 1
|
||||||
|
@ -35,48 +35,46 @@
|
||||||
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
%_ptr_StorageBuffer_S = OpTypePointer StorageBuffer %S
|
||||||
%io = OpVariable %_ptr_StorageBuffer_S StorageBuffer
|
%io = OpVariable %_ptr_StorageBuffer_S StorageBuffer
|
||||||
%9 = OpTypeFunction %v3float %uint %v3float
|
%9 = OpTypeFunction %v3float %uint %v3float
|
||||||
%float_0 = OpConstant %float 0
|
%14 = OpConstantNull %v3float
|
||||||
%15 = OpConstantComposite %v3float %float_0 %float_0 %float_0
|
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%18 = OpConstantNull %v3float
|
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%27 = OpTypeFunction %void %uint
|
%25 = OpTypeFunction %void %uint
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
|
%_ptr_StorageBuffer_v3float = OpTypePointer StorageBuffer %v3float
|
||||||
%42 = OpTypeFunction %void
|
%40 = OpTypeFunction %void
|
||||||
%Bad = OpFunction %v3float None %9
|
%Bad = OpFunction %v3float None %9
|
||||||
%index = OpFunctionParameter %uint
|
%index = OpFunctionParameter %uint
|
||||||
%rd = OpFunctionParameter %v3float
|
%rd = OpFunctionParameter %v3float
|
||||||
%13 = OpLabel
|
%13 = OpLabel
|
||||||
%normal = OpVariable %_ptr_Function_v3float Function %18
|
%normal = OpVariable %_ptr_Function_v3float Function %14
|
||||||
OpStore %normal %15
|
OpStore %normal %14
|
||||||
%20 = OpAccessChain %_ptr_Function_float %normal %index
|
%18 = OpAccessChain %_ptr_Function_float %normal %index
|
||||||
%24 = OpVectorExtractDynamic %float %rd %index
|
%22 = OpVectorExtractDynamic %float %rd %index
|
||||||
%22 = OpExtInst %float %23 FSign %24
|
%20 = OpExtInst %float %21 FSign %22
|
||||||
%21 = OpFNegate %float %22
|
%19 = OpFNegate %float %20
|
||||||
OpStore %20 %21
|
OpStore %18 %19
|
||||||
%26 = OpLoad %v3float %normal
|
%24 = OpLoad %v3float %normal
|
||||||
%25 = OpExtInst %v3float %23 Normalize %26
|
%23 = OpExtInst %v3float %21 Normalize %24
|
||||||
OpReturnValue %25
|
OpReturnValue %23
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main_inner = OpFunction %void None %27
|
%main_inner = OpFunction %void None %25
|
||||||
%idx = OpFunctionParameter %uint
|
%idx = OpFunctionParameter %uint
|
||||||
%31 = OpLabel
|
%29 = OpLabel
|
||||||
%35 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
|
%33 = OpAccessChain %_ptr_StorageBuffer_uint %io %uint_1
|
||||||
%36 = OpLoad %uint %35
|
%34 = OpLoad %uint %33
|
||||||
|
%37 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
|
||||||
|
%38 = OpLoad %v3float %37
|
||||||
|
%30 = OpFunctionCall %v3float %Bad %34 %38
|
||||||
%39 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
|
%39 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
|
||||||
%40 = OpLoad %v3float %39
|
OpStore %39 %30
|
||||||
%32 = OpFunctionCall %v3float %Bad %36 %40
|
|
||||||
%41 = OpAccessChain %_ptr_StorageBuffer_v3float %io %uint_0
|
|
||||||
OpStore %41 %32
|
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %42
|
%main = OpFunction %void None %40
|
||||||
%44 = OpLabel
|
%42 = OpLabel
|
||||||
%46 = OpLoad %uint %idx_1
|
%44 = OpLoad %uint %idx_1
|
||||||
%45 = OpFunctionCall %void %main_inner %46
|
%43 = OpFunctionCall %void %main_inner %44
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%10 = OpConstantNull %int
|
%10 = OpConstantNull %int
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%false = OpConstantFalse %bool
|
%17 = OpConstantNull %bool
|
||||||
%unused_entry_point = OpFunction %void None %1
|
%unused_entry_point = OpFunction %void None %1
|
||||||
%4 = OpLabel
|
%4 = OpLabel
|
||||||
OpReturn
|
OpReturn
|
||||||
|
@ -29,7 +29,7 @@
|
||||||
OpLoopMerge %12 %13 None
|
OpLoopMerge %12 %13 None
|
||||||
OpBranch %14
|
OpBranch %14
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%15 = OpLogicalNot %bool %false
|
%15 = OpLogicalNot %bool %17
|
||||||
OpSelectionMerge %18 None
|
OpSelectionMerge %18 None
|
||||||
OpBranchConditional %15 %19 %18
|
OpBranchConditional %15 %19 %18
|
||||||
%19 = OpLabel
|
%19 = OpLabel
|
||||||
|
|
|
@ -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: 30
|
; Bound: 29
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -19,33 +19,32 @@
|
||||||
%5 = OpConstantNull %v4float
|
%5 = OpConstantNull %v4float
|
||||||
%value = OpVariable %_ptr_Output_v4float Output %5
|
%value = OpVariable %_ptr_Output_v4float Output %5
|
||||||
%6 = OpTypeFunction %v4float
|
%6 = OpTypeFunction %v4float
|
||||||
%float_0 = OpConstant %float 0
|
%9 = OpConstantNull %float
|
||||||
%_ptr_Function_float = OpTypePointer Function %float
|
%_ptr_Function_float = OpTypePointer Function %float
|
||||||
%12 = OpConstantNull %float
|
|
||||||
%v3float = OpTypeVector %float 3
|
%v3float = OpTypeVector %float 3
|
||||||
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
%_ptr_Function_v3float = OpTypePointer Function %v3float
|
||||||
%18 = OpConstantNull %v3float
|
%17 = OpConstantNull %v3float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%25 = OpTypeFunction %void
|
%24 = OpTypeFunction %void
|
||||||
%frag_main_inner = OpFunction %v4float None %6
|
%frag_main_inner = OpFunction %v4float None %6
|
||||||
%8 = OpLabel
|
%8 = OpLabel
|
||||||
%b = OpVariable %_ptr_Function_float Function %12
|
%b = OpVariable %_ptr_Function_float Function %9
|
||||||
%v = OpVariable %_ptr_Function_v3float Function %18
|
%v = OpVariable %_ptr_Function_v3float Function %17
|
||||||
OpStore %b %float_0
|
OpStore %b %9
|
||||||
%14 = OpLoad %float %b
|
%13 = OpLoad %float %b
|
||||||
%15 = OpCompositeConstruct %v3float %14 %14 %14
|
%14 = OpCompositeConstruct %v3float %13 %13 %13
|
||||||
OpStore %v %15
|
OpStore %v %14
|
||||||
%19 = OpLoad %v3float %v
|
%18 = OpLoad %v3float %v
|
||||||
%20 = OpCompositeExtract %float %19 0
|
%19 = OpCompositeExtract %float %18 0
|
||||||
%21 = OpCompositeExtract %float %19 1
|
%20 = OpCompositeExtract %float %18 1
|
||||||
%22 = OpCompositeExtract %float %19 2
|
%21 = OpCompositeExtract %float %18 2
|
||||||
%24 = OpCompositeConstruct %v4float %20 %21 %22 %float_1
|
%23 = OpCompositeConstruct %v4float %19 %20 %21 %float_1
|
||||||
OpReturnValue %24
|
OpReturnValue %23
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%frag_main = OpFunction %void None %25
|
%frag_main = OpFunction %void None %24
|
||||||
%28 = OpLabel
|
%27 = OpLabel
|
||||||
%29 = OpFunctionCall %v4float %frag_main_inner
|
%28 = OpFunctionCall %v4float %frag_main_inner
|
||||||
OpStore %value %29
|
OpStore %value %28
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 36
|
; Bound: 37
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -49,25 +49,26 @@
|
||||||
%14 = OpTypeFunction %int
|
%14 = OpTypeFunction %int
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
|
%21 = OpConstantNull %uint
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
%_ptr_StorageBuffer_int = OpTypePointer StorageBuffer %int
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%28 = OpTypeFunction %void
|
%29 = OpTypeFunction %void
|
||||||
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
%_ptr_StorageBuffer_uint = OpTypePointer StorageBuffer %uint
|
||||||
%runTest = OpFunction %int None %14
|
%runTest = OpFunction %int None %14
|
||||||
%16 = OpLabel
|
%16 = OpLabel
|
||||||
%23 = OpAccessChain %_ptr_Uniform_uint %constants %uint_0
|
%24 = OpAccessChain %_ptr_Uniform_uint %constants %uint_0
|
||||||
%24 = OpLoad %uint %23
|
%25 = OpLoad %uint %24
|
||||||
%25 = OpIAdd %uint %uint_0 %24
|
%26 = OpIAdd %uint %21 %25
|
||||||
%27 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %25
|
%28 = OpAccessChain %_ptr_StorageBuffer_int %s %uint_0 %26
|
||||||
%17 = OpAtomicLoad %int %27 %uint_1 %uint_0
|
%17 = OpAtomicLoad %int %28 %uint_1 %uint_0
|
||||||
OpReturnValue %17
|
OpReturnValue %17
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%main = OpFunction %void None %28
|
%main = OpFunction %void None %29
|
||||||
%31 = OpLabel
|
%32 = OpLabel
|
||||||
%32 = OpFunctionCall %int %runTest
|
%33 = OpFunctionCall %int %runTest
|
||||||
%33 = OpBitcast %uint %32
|
%34 = OpBitcast %uint %33
|
||||||
%35 = OpAccessChain %_ptr_StorageBuffer_uint %result %uint_0
|
%36 = OpAccessChain %_ptr_StorageBuffer_uint %result %uint_0
|
||||||
OpStore %35 %33
|
OpStore %36 %34
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 24
|
; Bound: 25
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -47,11 +47,12 @@
|
||||||
%uint_0 = OpConstant %uint 0
|
%uint_0 = OpConstant %uint 0
|
||||||
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
%_ptr_Uniform_uint = OpTypePointer Uniform %uint
|
||||||
%_ptr_Private_uint = OpTypePointer Private %uint
|
%_ptr_Private_uint = OpTypePointer Private %uint
|
||||||
|
%24 = OpConstantNull %uint
|
||||||
%main = OpFunction %void None %14
|
%main = OpFunction %void None %14
|
||||||
%17 = OpLabel
|
%17 = OpLabel
|
||||||
%20 = OpAccessChain %_ptr_Uniform_uint %constants %uint_0
|
%20 = OpAccessChain %_ptr_Uniform_uint %constants %uint_0
|
||||||
%21 = OpLoad %uint %20
|
%21 = OpLoad %uint %20
|
||||||
%23 = OpAccessChain %_ptr_Private_uint %s %uint_0 %21
|
%23 = OpAccessChain %_ptr_Private_uint %s %uint_0 %21
|
||||||
OpStore %23 %uint_0
|
OpStore %23 %24
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 36
|
; Bound: 34
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%10 = OpExtInstImport "GLSL.std.450"
|
%10 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -23,12 +23,10 @@
|
||||||
%uint_32 = OpConstant %uint 32
|
%uint_32 = OpConstant %uint 32
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%16 = OpTypeFunction %void
|
%16 = OpTypeFunction %void
|
||||||
%int_0 = OpConstant %int 0
|
%20 = OpConstantNull %int
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%23 = OpConstantNull %int
|
%23 = OpConstantNull %uint
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%27 = OpConstantNull %uint
|
|
||||||
%tint_extract_bits = OpFunction %int None %1
|
%tint_extract_bits = OpFunction %int None %1
|
||||||
%v = OpFunctionParameter %int
|
%v = OpFunctionParameter %int
|
||||||
%offset = OpFunctionParameter %uint
|
%offset = OpFunctionParameter %uint
|
||||||
|
@ -43,20 +41,20 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f_1 = OpFunction %void None %16
|
%f_1 = OpFunction %void None %16
|
||||||
%19 = OpLabel
|
%19 = OpLabel
|
||||||
%v_0 = OpVariable %_ptr_Function_int Function %23
|
%v_0 = OpVariable %_ptr_Function_int Function %20
|
||||||
%offset_1 = OpVariable %_ptr_Function_uint Function %27
|
%offset_1 = OpVariable %_ptr_Function_uint Function %23
|
||||||
%count_0 = OpVariable %_ptr_Function_uint Function %27
|
%count_0 = OpVariable %_ptr_Function_uint Function %23
|
||||||
OpStore %v_0 %int_0
|
OpStore %v_0 %20
|
||||||
OpStore %offset_1 %uint_0
|
OpStore %offset_1 %23
|
||||||
OpStore %count_0 %uint_0
|
OpStore %count_0 %23
|
||||||
%29 = OpLoad %int %v_0
|
%27 = OpLoad %int %v_0
|
||||||
%30 = OpLoad %uint %offset_1
|
%28 = OpLoad %uint %offset_1
|
||||||
%31 = OpLoad %uint %count_0
|
%29 = OpLoad %uint %count_0
|
||||||
%32 = OpFunctionCall %int %tint_extract_bits %29 %30 %31
|
%30 = OpFunctionCall %int %tint_extract_bits %27 %28 %29
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %16
|
%f = OpFunction %void None %16
|
||||||
%34 = OpLabel
|
%32 = OpLabel
|
||||||
%35 = OpFunctionCall %void %f_1
|
%33 = OpFunctionCall %void %f_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 32
|
; Bound: 31
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%9 = OpExtInstImport "GLSL.std.450"
|
%9 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -22,9 +22,8 @@
|
||||||
%uint_32 = OpConstant %uint 32
|
%uint_32 = OpConstant %uint 32
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%15 = OpTypeFunction %void
|
%15 = OpTypeFunction %void
|
||||||
%uint_0 = OpConstant %uint 0
|
%19 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%22 = OpConstantNull %uint
|
|
||||||
%tint_extract_bits = OpFunction %uint None %1
|
%tint_extract_bits = OpFunction %uint None %1
|
||||||
%v = OpFunctionParameter %uint
|
%v = OpFunctionParameter %uint
|
||||||
%offset = OpFunctionParameter %uint
|
%offset = OpFunctionParameter %uint
|
||||||
|
@ -39,20 +38,20 @@
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f_1 = OpFunction %void None %15
|
%f_1 = OpFunction %void None %15
|
||||||
%18 = OpLabel
|
%18 = OpLabel
|
||||||
%v_0 = OpVariable %_ptr_Function_uint Function %22
|
%v_0 = OpVariable %_ptr_Function_uint Function %19
|
||||||
%offset_1 = OpVariable %_ptr_Function_uint Function %22
|
%offset_1 = OpVariable %_ptr_Function_uint Function %19
|
||||||
%count_0 = OpVariable %_ptr_Function_uint Function %22
|
%count_0 = OpVariable %_ptr_Function_uint Function %19
|
||||||
OpStore %v_0 %uint_0
|
OpStore %v_0 %19
|
||||||
OpStore %offset_1 %uint_0
|
OpStore %offset_1 %19
|
||||||
OpStore %count_0 %uint_0
|
OpStore %count_0 %19
|
||||||
%25 = OpLoad %uint %v_0
|
%24 = OpLoad %uint %v_0
|
||||||
%26 = OpLoad %uint %offset_1
|
%25 = OpLoad %uint %offset_1
|
||||||
%27 = OpLoad %uint %count_0
|
%26 = OpLoad %uint %count_0
|
||||||
%28 = OpFunctionCall %uint %tint_extract_bits %25 %26 %27
|
%27 = OpFunctionCall %uint %tint_extract_bits %24 %25 %26
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %15
|
%f = OpFunction %void None %15
|
||||||
%30 = OpLabel
|
%29 = OpLabel
|
||||||
%31 = OpFunctionCall %void %f_1
|
%30 = OpFunctionCall %void %f_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 36
|
; Bound: 35
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%11 = OpExtInstImport "GLSL.std.450"
|
%11 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -26,9 +26,8 @@
|
||||||
%17 = OpTypeFunction %void
|
%17 = OpTypeFunction %void
|
||||||
%21 = OpConstantNull %v3int
|
%21 = OpConstantNull %v3int
|
||||||
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
%uint_0 = OpConstant %uint 0
|
%24 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%27 = OpConstantNull %uint
|
|
||||||
%tint_extract_bits = OpFunction %v3int None %1
|
%tint_extract_bits = OpFunction %v3int None %1
|
||||||
%v = OpFunctionParameter %v3int
|
%v = OpFunctionParameter %v3int
|
||||||
%offset = OpFunctionParameter %uint
|
%offset = OpFunctionParameter %uint
|
||||||
|
@ -44,19 +43,19 @@
|
||||||
%f_1 = OpFunction %void None %17
|
%f_1 = OpFunction %void None %17
|
||||||
%20 = OpLabel
|
%20 = OpLabel
|
||||||
%v_0 = OpVariable %_ptr_Function_v3int Function %21
|
%v_0 = OpVariable %_ptr_Function_v3int Function %21
|
||||||
%offset_1 = OpVariable %_ptr_Function_uint Function %27
|
%offset_1 = OpVariable %_ptr_Function_uint Function %24
|
||||||
%count_0 = OpVariable %_ptr_Function_uint Function %27
|
%count_0 = OpVariable %_ptr_Function_uint Function %24
|
||||||
OpStore %v_0 %21
|
OpStore %v_0 %21
|
||||||
OpStore %offset_1 %uint_0
|
OpStore %offset_1 %24
|
||||||
OpStore %count_0 %uint_0
|
OpStore %count_0 %24
|
||||||
%29 = OpLoad %v3int %v_0
|
%28 = OpLoad %v3int %v_0
|
||||||
%30 = OpLoad %uint %offset_1
|
%29 = OpLoad %uint %offset_1
|
||||||
%31 = OpLoad %uint %count_0
|
%30 = OpLoad %uint %count_0
|
||||||
%32 = OpFunctionCall %v3int %tint_extract_bits %29 %30 %31
|
%31 = OpFunctionCall %v3int %tint_extract_bits %28 %29 %30
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %17
|
%f = OpFunction %void None %17
|
||||||
%34 = OpLabel
|
%33 = OpLabel
|
||||||
%35 = OpFunctionCall %void %f_1
|
%34 = OpFunctionCall %void %f_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 35
|
; Bound: 34
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
%10 = OpExtInstImport "GLSL.std.450"
|
%10 = OpExtInstImport "GLSL.std.450"
|
||||||
|
@ -25,9 +25,8 @@
|
||||||
%16 = OpTypeFunction %void
|
%16 = OpTypeFunction %void
|
||||||
%20 = OpConstantNull %v3uint
|
%20 = OpConstantNull %v3uint
|
||||||
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
||||||
%uint_0 = OpConstant %uint 0
|
%23 = OpConstantNull %uint
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%26 = OpConstantNull %uint
|
|
||||||
%tint_extract_bits = OpFunction %v3uint None %1
|
%tint_extract_bits = OpFunction %v3uint None %1
|
||||||
%v = OpFunctionParameter %v3uint
|
%v = OpFunctionParameter %v3uint
|
||||||
%offset = OpFunctionParameter %uint
|
%offset = OpFunctionParameter %uint
|
||||||
|
@ -43,19 +42,19 @@
|
||||||
%f_1 = OpFunction %void None %16
|
%f_1 = OpFunction %void None %16
|
||||||
%19 = OpLabel
|
%19 = OpLabel
|
||||||
%v_0 = OpVariable %_ptr_Function_v3uint Function %20
|
%v_0 = OpVariable %_ptr_Function_v3uint Function %20
|
||||||
%offset_1 = OpVariable %_ptr_Function_uint Function %26
|
%offset_1 = OpVariable %_ptr_Function_uint Function %23
|
||||||
%count_0 = OpVariable %_ptr_Function_uint Function %26
|
%count_0 = OpVariable %_ptr_Function_uint Function %23
|
||||||
OpStore %v_0 %20
|
OpStore %v_0 %20
|
||||||
OpStore %offset_1 %uint_0
|
OpStore %offset_1 %23
|
||||||
OpStore %count_0 %uint_0
|
OpStore %count_0 %23
|
||||||
%28 = OpLoad %v3uint %v_0
|
%27 = OpLoad %v3uint %v_0
|
||||||
%29 = OpLoad %uint %offset_1
|
%28 = OpLoad %uint %offset_1
|
||||||
%30 = OpLoad %uint %count_0
|
%29 = OpLoad %uint %count_0
|
||||||
%31 = OpFunctionCall %v3uint %tint_extract_bits %28 %29 %30
|
%30 = OpFunctionCall %v3uint %tint_extract_bits %27 %28 %29
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%f = OpFunction %void None %16
|
%f = OpFunction %void None %16
|
||||||
%33 = OpLabel
|
%32 = OpLabel
|
||||||
%34 = OpFunctionCall %void %f_1
|
%33 = OpFunctionCall %void %f_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 82
|
; Bound: 81
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
|
@ -48,8 +47,8 @@
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%62 = OpTypeFunction %void
|
%61 = OpTypeFunction %void
|
||||||
%68 = OpTypeFunction %v4float
|
%67 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %uint None %9
|
%tint_count_leading_zeros = OpFunction %uint None %9
|
||||||
%v = OpFunctionParameter %uint
|
%v = OpFunctionParameter %uint
|
||||||
|
@ -58,67 +57,67 @@
|
||||||
OpStore %x %v
|
OpStore %x %v
|
||||||
%19 = OpLoad %uint %x
|
%19 = OpLoad %uint %x
|
||||||
%21 = OpULessThanEqual %bool %19 %uint_65535
|
%21 = OpULessThanEqual %bool %19 %uint_65535
|
||||||
%18 = OpSelect %uint %21 %uint_16 %uint_0
|
%18 = OpSelect %uint %21 %uint_16 %17
|
||||||
%25 = OpLoad %uint %x
|
%24 = OpLoad %uint %x
|
||||||
%26 = OpShiftLeftLogical %uint %25 %18
|
%25 = OpShiftLeftLogical %uint %24 %18
|
||||||
OpStore %x %26
|
OpStore %x %25
|
||||||
%28 = OpLoad %uint %x
|
%27 = OpLoad %uint %x
|
||||||
%30 = OpULessThanEqual %bool %28 %uint_16777215
|
%29 = OpULessThanEqual %bool %27 %uint_16777215
|
||||||
%27 = OpSelect %uint %30 %uint_8 %uint_0
|
%26 = OpSelect %uint %29 %uint_8 %17
|
||||||
%32 = OpLoad %uint %x
|
%31 = OpLoad %uint %x
|
||||||
%33 = OpShiftLeftLogical %uint %32 %27
|
%32 = OpShiftLeftLogical %uint %31 %26
|
||||||
OpStore %x %33
|
OpStore %x %32
|
||||||
%35 = OpLoad %uint %x
|
%34 = OpLoad %uint %x
|
||||||
%37 = OpULessThanEqual %bool %35 %uint_268435455
|
%36 = OpULessThanEqual %bool %34 %uint_268435455
|
||||||
%34 = OpSelect %uint %37 %uint_4 %uint_0
|
%33 = OpSelect %uint %36 %uint_4 %17
|
||||||
%39 = OpLoad %uint %x
|
%38 = OpLoad %uint %x
|
||||||
%40 = OpShiftLeftLogical %uint %39 %34
|
%39 = OpShiftLeftLogical %uint %38 %33
|
||||||
OpStore %x %40
|
OpStore %x %39
|
||||||
%42 = OpLoad %uint %x
|
%41 = OpLoad %uint %x
|
||||||
%44 = OpULessThanEqual %bool %42 %uint_1073741823
|
%43 = OpULessThanEqual %bool %41 %uint_1073741823
|
||||||
%41 = OpSelect %uint %44 %uint_2 %uint_0
|
%40 = OpSelect %uint %43 %uint_2 %17
|
||||||
%46 = OpLoad %uint %x
|
%45 = OpLoad %uint %x
|
||||||
%47 = OpShiftLeftLogical %uint %46 %41
|
%46 = OpShiftLeftLogical %uint %45 %40
|
||||||
OpStore %x %47
|
OpStore %x %46
|
||||||
%49 = OpLoad %uint %x
|
%48 = OpLoad %uint %x
|
||||||
%51 = OpULessThanEqual %bool %49 %uint_2147483647
|
%50 = OpULessThanEqual %bool %48 %uint_2147483647
|
||||||
%48 = OpSelect %uint %51 %uint_1 %uint_0
|
%47 = OpSelect %uint %50 %uint_1 %17
|
||||||
%54 = OpLoad %uint %x
|
%53 = OpLoad %uint %x
|
||||||
%55 = OpIEqual %bool %54 %uint_0
|
%54 = OpIEqual %bool %53 %17
|
||||||
%53 = OpSelect %uint %55 %uint_1 %uint_0
|
%52 = OpSelect %uint %54 %uint_1 %17
|
||||||
%57 = OpBitwiseOr %uint %18 %27
|
%56 = OpBitwiseOr %uint %18 %26
|
||||||
%58 = OpBitwiseOr %uint %57 %34
|
%57 = OpBitwiseOr %uint %56 %33
|
||||||
%59 = OpBitwiseOr %uint %58 %41
|
%58 = OpBitwiseOr %uint %57 %40
|
||||||
%60 = OpBitwiseOr %uint %59 %48
|
%59 = OpBitwiseOr %uint %58 %47
|
||||||
%61 = OpIAdd %uint %60 %53
|
%60 = OpIAdd %uint %59 %52
|
||||||
OpReturnValue %61
|
OpReturnValue %60
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_208d46 = OpFunction %void None %62
|
%countLeadingZeros_208d46 = OpFunction %void None %61
|
||||||
%65 = OpLabel
|
%64 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_uint Function %17
|
%res = OpVariable %_ptr_Function_uint Function %17
|
||||||
%66 = OpFunctionCall %uint %tint_count_leading_zeros %uint_1
|
%65 = OpFunctionCall %uint %tint_count_leading_zeros %uint_1
|
||||||
OpStore %res %66
|
OpStore %res %65
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %68
|
%vertex_main_inner = OpFunction %v4float None %67
|
||||||
%70 = OpLabel
|
%69 = OpLabel
|
||||||
%71 = OpFunctionCall %void %countLeadingZeros_208d46
|
%70 = OpFunctionCall %void %countLeadingZeros_208d46
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %62
|
%vertex_main = OpFunction %void None %61
|
||||||
%73 = OpLabel
|
%72 = OpLabel
|
||||||
%74 = OpFunctionCall %v4float %vertex_main_inner
|
%73 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %74
|
OpStore %value %73
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %62
|
%fragment_main = OpFunction %void None %61
|
||||||
%77 = OpLabel
|
%76 = OpLabel
|
||||||
%78 = OpFunctionCall %void %countLeadingZeros_208d46
|
%77 = OpFunctionCall %void %countLeadingZeros_208d46
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %62
|
%compute_main = OpFunction %void None %61
|
||||||
%80 = OpLabel
|
%79 = OpLabel
|
||||||
%81 = OpFunctionCall %void %countLeadingZeros_208d46
|
%80 = OpFunctionCall %void %countLeadingZeros_208d46
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 86
|
; Bound: 85
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -39,7 +39,6 @@
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
|
@ -49,11 +48,11 @@
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%63 = OpTypeFunction %void
|
%62 = OpTypeFunction %void
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%71 = OpConstantNull %int
|
%70 = OpConstantNull %int
|
||||||
%72 = OpTypeFunction %v4float
|
%71 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %int None %9
|
%tint_count_leading_zeros = OpFunction %int None %9
|
||||||
%v = OpFunctionParameter %int
|
%v = OpFunctionParameter %int
|
||||||
|
@ -63,68 +62,68 @@
|
||||||
OpStore %x %14
|
OpStore %x %14
|
||||||
%20 = OpLoad %uint %x
|
%20 = OpLoad %uint %x
|
||||||
%22 = OpULessThanEqual %bool %20 %uint_65535
|
%22 = OpULessThanEqual %bool %20 %uint_65535
|
||||||
%19 = OpSelect %uint %22 %uint_16 %uint_0
|
%19 = OpSelect %uint %22 %uint_16 %18
|
||||||
%26 = OpLoad %uint %x
|
%25 = OpLoad %uint %x
|
||||||
%27 = OpShiftLeftLogical %uint %26 %19
|
%26 = OpShiftLeftLogical %uint %25 %19
|
||||||
OpStore %x %27
|
OpStore %x %26
|
||||||
%29 = OpLoad %uint %x
|
%28 = OpLoad %uint %x
|
||||||
%31 = OpULessThanEqual %bool %29 %uint_16777215
|
%30 = OpULessThanEqual %bool %28 %uint_16777215
|
||||||
%28 = OpSelect %uint %31 %uint_8 %uint_0
|
%27 = OpSelect %uint %30 %uint_8 %18
|
||||||
%33 = OpLoad %uint %x
|
%32 = OpLoad %uint %x
|
||||||
%34 = OpShiftLeftLogical %uint %33 %28
|
%33 = OpShiftLeftLogical %uint %32 %27
|
||||||
OpStore %x %34
|
OpStore %x %33
|
||||||
%36 = OpLoad %uint %x
|
%35 = OpLoad %uint %x
|
||||||
%38 = OpULessThanEqual %bool %36 %uint_268435455
|
%37 = OpULessThanEqual %bool %35 %uint_268435455
|
||||||
%35 = OpSelect %uint %38 %uint_4 %uint_0
|
%34 = OpSelect %uint %37 %uint_4 %18
|
||||||
%40 = OpLoad %uint %x
|
%39 = OpLoad %uint %x
|
||||||
%41 = OpShiftLeftLogical %uint %40 %35
|
%40 = OpShiftLeftLogical %uint %39 %34
|
||||||
OpStore %x %41
|
OpStore %x %40
|
||||||
%43 = OpLoad %uint %x
|
%42 = OpLoad %uint %x
|
||||||
%45 = OpULessThanEqual %bool %43 %uint_1073741823
|
%44 = OpULessThanEqual %bool %42 %uint_1073741823
|
||||||
%42 = OpSelect %uint %45 %uint_2 %uint_0
|
%41 = OpSelect %uint %44 %uint_2 %18
|
||||||
%47 = OpLoad %uint %x
|
%46 = OpLoad %uint %x
|
||||||
%48 = OpShiftLeftLogical %uint %47 %42
|
%47 = OpShiftLeftLogical %uint %46 %41
|
||||||
OpStore %x %48
|
OpStore %x %47
|
||||||
%50 = OpLoad %uint %x
|
%49 = OpLoad %uint %x
|
||||||
%52 = OpULessThanEqual %bool %50 %uint_2147483647
|
%51 = OpULessThanEqual %bool %49 %uint_2147483647
|
||||||
%49 = OpSelect %uint %52 %uint_1 %uint_0
|
%48 = OpSelect %uint %51 %uint_1 %18
|
||||||
%55 = OpLoad %uint %x
|
%54 = OpLoad %uint %x
|
||||||
%56 = OpIEqual %bool %55 %uint_0
|
%55 = OpIEqual %bool %54 %18
|
||||||
%54 = OpSelect %uint %56 %uint_1 %uint_0
|
%53 = OpSelect %uint %55 %uint_1 %18
|
||||||
%58 = OpBitwiseOr %uint %19 %28
|
%57 = OpBitwiseOr %uint %19 %27
|
||||||
%59 = OpBitwiseOr %uint %58 %35
|
%58 = OpBitwiseOr %uint %57 %34
|
||||||
%60 = OpBitwiseOr %uint %59 %42
|
%59 = OpBitwiseOr %uint %58 %41
|
||||||
%61 = OpBitwiseOr %uint %60 %49
|
%60 = OpBitwiseOr %uint %59 %48
|
||||||
%62 = OpIAdd %uint %61 %54
|
%61 = OpIAdd %uint %60 %53
|
||||||
%57 = OpBitcast %int %62
|
%56 = OpBitcast %int %61
|
||||||
OpReturnValue %57
|
OpReturnValue %56
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_6d4656 = OpFunction %void None %63
|
%countLeadingZeros_6d4656 = OpFunction %void None %62
|
||||||
%66 = OpLabel
|
%65 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_int Function %71
|
%res = OpVariable %_ptr_Function_int Function %70
|
||||||
%67 = OpFunctionCall %int %tint_count_leading_zeros %int_1
|
%66 = OpFunctionCall %int %tint_count_leading_zeros %int_1
|
||||||
OpStore %res %67
|
OpStore %res %66
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %72
|
%vertex_main_inner = OpFunction %v4float None %71
|
||||||
%74 = OpLabel
|
%73 = OpLabel
|
||||||
%75 = OpFunctionCall %void %countLeadingZeros_6d4656
|
%74 = OpFunctionCall %void %countLeadingZeros_6d4656
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %63
|
%vertex_main = OpFunction %void None %62
|
||||||
%77 = OpLabel
|
%76 = OpLabel
|
||||||
%78 = OpFunctionCall %v4float %vertex_main_inner
|
%77 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %78
|
OpStore %value %77
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %63
|
%fragment_main = OpFunction %void None %62
|
||||||
%81 = OpLabel
|
%80 = OpLabel
|
||||||
%82 = OpFunctionCall %void %countLeadingZeros_6d4656
|
%81 = OpFunctionCall %void %countLeadingZeros_6d4656
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %63
|
%compute_main = OpFunction %void None %62
|
||||||
%84 = OpLabel
|
%83 = OpLabel
|
||||||
%85 = OpFunctionCall %void %countLeadingZeros_6d4656
|
%84 = OpFunctionCall %void %countLeadingZeros_6d4656
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 95
|
; Bound: 93
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%27 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%35 = OpConstantComposite %v2uint %uint_16777215 %uint_16777215
|
%33 = OpConstantComposite %v2uint %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%38 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%36 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%44 = OpConstantComposite %v2uint %uint_268435455 %uint_268435455
|
%42 = OpConstantComposite %v2uint %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%47 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%45 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%53 = OpConstantComposite %v2uint %uint_1073741823 %uint_1073741823
|
%51 = OpConstantComposite %v2uint %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%56 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%54 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%62 = OpConstantComposite %v2uint %uint_2147483647 %uint_2147483647
|
%60 = OpConstantComposite %v2uint %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%65 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%63 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%75 = OpTypeFunction %void
|
%73 = OpTypeFunction %void
|
||||||
%81 = OpTypeFunction %v4float
|
%79 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v2uint None %9
|
%tint_count_leading_zeros = OpFunction %v2uint None %9
|
||||||
%v = OpFunctionParameter %v2uint
|
%v = OpFunctionParameter %v2uint
|
||||||
|
@ -71,67 +69,67 @@
|
||||||
OpStore %x %v
|
OpStore %x %v
|
||||||
%20 = OpLoad %v2uint %x
|
%20 = OpLoad %v2uint %x
|
||||||
%23 = OpULessThanEqual %v2bool %20 %22
|
%23 = OpULessThanEqual %v2bool %20 %22
|
||||||
%19 = OpSelect %v2uint %23 %27 %29
|
%19 = OpSelect %v2uint %23 %27 %18
|
||||||
%30 = OpLoad %v2uint %x
|
%28 = OpLoad %v2uint %x
|
||||||
%31 = OpShiftLeftLogical %v2uint %30 %19
|
%29 = OpShiftLeftLogical %v2uint %28 %19
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%33 = OpLoad %v2uint %x
|
%31 = OpLoad %v2uint %x
|
||||||
%36 = OpULessThanEqual %v2bool %33 %35
|
%34 = OpULessThanEqual %v2bool %31 %33
|
||||||
%32 = OpSelect %v2uint %36 %38 %29
|
%30 = OpSelect %v2uint %34 %36 %18
|
||||||
%39 = OpLoad %v2uint %x
|
%37 = OpLoad %v2uint %x
|
||||||
%40 = OpShiftLeftLogical %v2uint %39 %32
|
%38 = OpShiftLeftLogical %v2uint %37 %30
|
||||||
OpStore %x %40
|
OpStore %x %38
|
||||||
%42 = OpLoad %v2uint %x
|
%40 = OpLoad %v2uint %x
|
||||||
%45 = OpULessThanEqual %v2bool %42 %44
|
%43 = OpULessThanEqual %v2bool %40 %42
|
||||||
%41 = OpSelect %v2uint %45 %47 %29
|
%39 = OpSelect %v2uint %43 %45 %18
|
||||||
%48 = OpLoad %v2uint %x
|
%46 = OpLoad %v2uint %x
|
||||||
%49 = OpShiftLeftLogical %v2uint %48 %41
|
%47 = OpShiftLeftLogical %v2uint %46 %39
|
||||||
OpStore %x %49
|
OpStore %x %47
|
||||||
%51 = OpLoad %v2uint %x
|
%49 = OpLoad %v2uint %x
|
||||||
%54 = OpULessThanEqual %v2bool %51 %53
|
%52 = OpULessThanEqual %v2bool %49 %51
|
||||||
%50 = OpSelect %v2uint %54 %56 %29
|
%48 = OpSelect %v2uint %52 %54 %18
|
||||||
%57 = OpLoad %v2uint %x
|
%55 = OpLoad %v2uint %x
|
||||||
%58 = OpShiftLeftLogical %v2uint %57 %50
|
%56 = OpShiftLeftLogical %v2uint %55 %48
|
||||||
OpStore %x %58
|
OpStore %x %56
|
||||||
%60 = OpLoad %v2uint %x
|
%58 = OpLoad %v2uint %x
|
||||||
%63 = OpULessThanEqual %v2bool %60 %62
|
%61 = OpULessThanEqual %v2bool %58 %60
|
||||||
%59 = OpSelect %v2uint %63 %65 %29
|
%57 = OpSelect %v2uint %61 %63 %18
|
||||||
%67 = OpLoad %v2uint %x
|
%65 = OpLoad %v2uint %x
|
||||||
%68 = OpIEqual %v2bool %67 %29
|
%66 = OpIEqual %v2bool %65 %18
|
||||||
%66 = OpSelect %v2uint %68 %65 %29
|
%64 = OpSelect %v2uint %66 %63 %18
|
||||||
%70 = OpBitwiseOr %v2uint %19 %32
|
%68 = OpBitwiseOr %v2uint %19 %30
|
||||||
%71 = OpBitwiseOr %v2uint %70 %41
|
%69 = OpBitwiseOr %v2uint %68 %39
|
||||||
%72 = OpBitwiseOr %v2uint %71 %50
|
%70 = OpBitwiseOr %v2uint %69 %48
|
||||||
%73 = OpBitwiseOr %v2uint %72 %59
|
%71 = OpBitwiseOr %v2uint %70 %57
|
||||||
%74 = OpIAdd %v2uint %73 %66
|
%72 = OpIAdd %v2uint %71 %64
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_70783f = OpFunction %void None %75
|
%countLeadingZeros_70783f = OpFunction %void None %73
|
||||||
%78 = OpLabel
|
%76 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2uint Function %18
|
%res = OpVariable %_ptr_Function_v2uint Function %18
|
||||||
%79 = OpFunctionCall %v2uint %tint_count_leading_zeros %18
|
%77 = OpFunctionCall %v2uint %tint_count_leading_zeros %18
|
||||||
OpStore %res %79
|
OpStore %res %77
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %81
|
%vertex_main_inner = OpFunction %v4float None %79
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%84 = OpFunctionCall %void %countLeadingZeros_70783f
|
%82 = OpFunctionCall %void %countLeadingZeros_70783f
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %75
|
%vertex_main = OpFunction %void None %73
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %v4float %vertex_main_inner
|
%85 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %87
|
OpStore %value %85
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %75
|
%fragment_main = OpFunction %void None %73
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countLeadingZeros_70783f
|
%89 = OpFunctionCall %void %countLeadingZeros_70783f
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %75
|
%compute_main = OpFunction %void None %73
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countLeadingZeros_70783f
|
%92 = OpFunctionCall %void %countLeadingZeros_70783f
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -44,29 +44,27 @@
|
||||||
%v3bool = OpTypeVector %bool 3
|
%v3bool = OpTypeVector %bool 3
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%29 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%29 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%31 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%37 = OpConstantComposite %v3uint %uint_16777215 %uint_16777215 %uint_16777215
|
%35 = OpConstantComposite %v3uint %uint_16777215 %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%38 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%46 = OpConstantComposite %v3uint %uint_268435455 %uint_268435455 %uint_268435455
|
%44 = OpConstantComposite %v3uint %uint_268435455 %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%47 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%55 = OpConstantComposite %v3uint %uint_1073741823 %uint_1073741823 %uint_1073741823
|
%53 = OpConstantComposite %v3uint %uint_1073741823 %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%58 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%56 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%64 = OpConstantComposite %v3uint %uint_2147483647 %uint_2147483647 %uint_2147483647
|
%62 = OpConstantComposite %v3uint %uint_2147483647 %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%77 = OpTypeFunction %void
|
%75 = OpTypeFunction %void
|
||||||
%82 = OpConstantNull %v3int
|
%80 = OpConstantNull %v3int
|
||||||
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v3int None %9
|
%tint_count_leading_zeros = OpFunction %v3int None %9
|
||||||
%v = OpFunctionParameter %v3int
|
%v = OpFunctionParameter %v3int
|
||||||
|
@ -76,68 +74,68 @@
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%22 = OpLoad %v3uint %x
|
%22 = OpLoad %v3uint %x
|
||||||
%25 = OpULessThanEqual %v3bool %22 %24
|
%25 = OpULessThanEqual %v3bool %22 %24
|
||||||
%21 = OpSelect %v3uint %25 %29 %31
|
%21 = OpSelect %v3uint %25 %29 %20
|
||||||
%32 = OpLoad %v3uint %x
|
%30 = OpLoad %v3uint %x
|
||||||
%33 = OpShiftLeftLogical %v3uint %32 %21
|
%31 = OpShiftLeftLogical %v3uint %30 %21
|
||||||
OpStore %x %33
|
OpStore %x %31
|
||||||
%35 = OpLoad %v3uint %x
|
%33 = OpLoad %v3uint %x
|
||||||
%38 = OpULessThanEqual %v3bool %35 %37
|
%36 = OpULessThanEqual %v3bool %33 %35
|
||||||
%34 = OpSelect %v3uint %38 %40 %31
|
%32 = OpSelect %v3uint %36 %38 %20
|
||||||
%41 = OpLoad %v3uint %x
|
%39 = OpLoad %v3uint %x
|
||||||
%42 = OpShiftLeftLogical %v3uint %41 %34
|
%40 = OpShiftLeftLogical %v3uint %39 %32
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%44 = OpLoad %v3uint %x
|
%42 = OpLoad %v3uint %x
|
||||||
%47 = OpULessThanEqual %v3bool %44 %46
|
%45 = OpULessThanEqual %v3bool %42 %44
|
||||||
%43 = OpSelect %v3uint %47 %49 %31
|
%41 = OpSelect %v3uint %45 %47 %20
|
||||||
%50 = OpLoad %v3uint %x
|
%48 = OpLoad %v3uint %x
|
||||||
%51 = OpShiftLeftLogical %v3uint %50 %43
|
%49 = OpShiftLeftLogical %v3uint %48 %41
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%53 = OpLoad %v3uint %x
|
%51 = OpLoad %v3uint %x
|
||||||
%56 = OpULessThanEqual %v3bool %53 %55
|
%54 = OpULessThanEqual %v3bool %51 %53
|
||||||
%52 = OpSelect %v3uint %56 %58 %31
|
%50 = OpSelect %v3uint %54 %56 %20
|
||||||
%59 = OpLoad %v3uint %x
|
%57 = OpLoad %v3uint %x
|
||||||
%60 = OpShiftLeftLogical %v3uint %59 %52
|
%58 = OpShiftLeftLogical %v3uint %57 %50
|
||||||
OpStore %x %60
|
OpStore %x %58
|
||||||
%62 = OpLoad %v3uint %x
|
%60 = OpLoad %v3uint %x
|
||||||
%65 = OpULessThanEqual %v3bool %62 %64
|
%63 = OpULessThanEqual %v3bool %60 %62
|
||||||
%61 = OpSelect %v3uint %65 %67 %31
|
%59 = OpSelect %v3uint %63 %65 %20
|
||||||
%69 = OpLoad %v3uint %x
|
%67 = OpLoad %v3uint %x
|
||||||
%70 = OpIEqual %v3bool %69 %31
|
%68 = OpIEqual %v3bool %67 %20
|
||||||
%68 = OpSelect %v3uint %70 %67 %31
|
%66 = OpSelect %v3uint %68 %65 %20
|
||||||
%72 = OpBitwiseOr %v3uint %21 %34
|
%70 = OpBitwiseOr %v3uint %21 %32
|
||||||
%73 = OpBitwiseOr %v3uint %72 %43
|
%71 = OpBitwiseOr %v3uint %70 %41
|
||||||
%74 = OpBitwiseOr %v3uint %73 %52
|
%72 = OpBitwiseOr %v3uint %71 %50
|
||||||
%75 = OpBitwiseOr %v3uint %74 %61
|
%73 = OpBitwiseOr %v3uint %72 %59
|
||||||
%76 = OpIAdd %v3uint %75 %68
|
%74 = OpIAdd %v3uint %73 %66
|
||||||
%71 = OpBitcast %v3int %76
|
%69 = OpBitcast %v3int %74
|
||||||
OpReturnValue %71
|
OpReturnValue %69
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_7c38a6 = OpFunction %void None %77
|
%countLeadingZeros_7c38a6 = OpFunction %void None %75
|
||||||
%80 = OpLabel
|
%78 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3int Function %82
|
%res = OpVariable %_ptr_Function_v3int Function %80
|
||||||
%81 = OpFunctionCall %v3int %tint_count_leading_zeros %82
|
%79 = OpFunctionCall %v3int %tint_count_leading_zeros %80
|
||||||
OpStore %res %81
|
OpStore %res %79
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
%86 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %77
|
%vertex_main = OpFunction %void None %75
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %77
|
%fragment_main = OpFunction %void None %75
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
%93 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %77
|
%compute_main = OpFunction %void None %75
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
%96 = OpFunctionCall %void %countLeadingZeros_7c38a6
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -44,29 +44,27 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%29 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%29 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%31 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%37 = OpConstantComposite %v2uint %uint_16777215 %uint_16777215
|
%35 = OpConstantComposite %v2uint %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%38 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%46 = OpConstantComposite %v2uint %uint_268435455 %uint_268435455
|
%44 = OpConstantComposite %v2uint %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%47 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%55 = OpConstantComposite %v2uint %uint_1073741823 %uint_1073741823
|
%53 = OpConstantComposite %v2uint %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%58 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%56 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%64 = OpConstantComposite %v2uint %uint_2147483647 %uint_2147483647
|
%62 = OpConstantComposite %v2uint %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%65 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%77 = OpTypeFunction %void
|
%75 = OpTypeFunction %void
|
||||||
%82 = OpConstantNull %v2int
|
%80 = OpConstantNull %v2int
|
||||||
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v2int None %9
|
%tint_count_leading_zeros = OpFunction %v2int None %9
|
||||||
%v = OpFunctionParameter %v2int
|
%v = OpFunctionParameter %v2int
|
||||||
|
@ -76,68 +74,68 @@
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%22 = OpLoad %v2uint %x
|
%22 = OpLoad %v2uint %x
|
||||||
%25 = OpULessThanEqual %v2bool %22 %24
|
%25 = OpULessThanEqual %v2bool %22 %24
|
||||||
%21 = OpSelect %v2uint %25 %29 %31
|
%21 = OpSelect %v2uint %25 %29 %20
|
||||||
%32 = OpLoad %v2uint %x
|
%30 = OpLoad %v2uint %x
|
||||||
%33 = OpShiftLeftLogical %v2uint %32 %21
|
%31 = OpShiftLeftLogical %v2uint %30 %21
|
||||||
OpStore %x %33
|
OpStore %x %31
|
||||||
%35 = OpLoad %v2uint %x
|
%33 = OpLoad %v2uint %x
|
||||||
%38 = OpULessThanEqual %v2bool %35 %37
|
%36 = OpULessThanEqual %v2bool %33 %35
|
||||||
%34 = OpSelect %v2uint %38 %40 %31
|
%32 = OpSelect %v2uint %36 %38 %20
|
||||||
%41 = OpLoad %v2uint %x
|
%39 = OpLoad %v2uint %x
|
||||||
%42 = OpShiftLeftLogical %v2uint %41 %34
|
%40 = OpShiftLeftLogical %v2uint %39 %32
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%44 = OpLoad %v2uint %x
|
%42 = OpLoad %v2uint %x
|
||||||
%47 = OpULessThanEqual %v2bool %44 %46
|
%45 = OpULessThanEqual %v2bool %42 %44
|
||||||
%43 = OpSelect %v2uint %47 %49 %31
|
%41 = OpSelect %v2uint %45 %47 %20
|
||||||
%50 = OpLoad %v2uint %x
|
%48 = OpLoad %v2uint %x
|
||||||
%51 = OpShiftLeftLogical %v2uint %50 %43
|
%49 = OpShiftLeftLogical %v2uint %48 %41
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%53 = OpLoad %v2uint %x
|
%51 = OpLoad %v2uint %x
|
||||||
%56 = OpULessThanEqual %v2bool %53 %55
|
%54 = OpULessThanEqual %v2bool %51 %53
|
||||||
%52 = OpSelect %v2uint %56 %58 %31
|
%50 = OpSelect %v2uint %54 %56 %20
|
||||||
%59 = OpLoad %v2uint %x
|
%57 = OpLoad %v2uint %x
|
||||||
%60 = OpShiftLeftLogical %v2uint %59 %52
|
%58 = OpShiftLeftLogical %v2uint %57 %50
|
||||||
OpStore %x %60
|
OpStore %x %58
|
||||||
%62 = OpLoad %v2uint %x
|
%60 = OpLoad %v2uint %x
|
||||||
%65 = OpULessThanEqual %v2bool %62 %64
|
%63 = OpULessThanEqual %v2bool %60 %62
|
||||||
%61 = OpSelect %v2uint %65 %67 %31
|
%59 = OpSelect %v2uint %63 %65 %20
|
||||||
%69 = OpLoad %v2uint %x
|
%67 = OpLoad %v2uint %x
|
||||||
%70 = OpIEqual %v2bool %69 %31
|
%68 = OpIEqual %v2bool %67 %20
|
||||||
%68 = OpSelect %v2uint %70 %67 %31
|
%66 = OpSelect %v2uint %68 %65 %20
|
||||||
%72 = OpBitwiseOr %v2uint %21 %34
|
%70 = OpBitwiseOr %v2uint %21 %32
|
||||||
%73 = OpBitwiseOr %v2uint %72 %43
|
%71 = OpBitwiseOr %v2uint %70 %41
|
||||||
%74 = OpBitwiseOr %v2uint %73 %52
|
%72 = OpBitwiseOr %v2uint %71 %50
|
||||||
%75 = OpBitwiseOr %v2uint %74 %61
|
%73 = OpBitwiseOr %v2uint %72 %59
|
||||||
%76 = OpIAdd %v2uint %75 %68
|
%74 = OpIAdd %v2uint %73 %66
|
||||||
%71 = OpBitcast %v2int %76
|
%69 = OpBitcast %v2int %74
|
||||||
OpReturnValue %71
|
OpReturnValue %69
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_858d40 = OpFunction %void None %77
|
%countLeadingZeros_858d40 = OpFunction %void None %75
|
||||||
%80 = OpLabel
|
%78 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2int Function %82
|
%res = OpVariable %_ptr_Function_v2int Function %80
|
||||||
%81 = OpFunctionCall %v2int %tint_count_leading_zeros %82
|
%79 = OpFunctionCall %v2int %tint_count_leading_zeros %80
|
||||||
OpStore %res %81
|
OpStore %res %79
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %countLeadingZeros_858d40
|
%86 = OpFunctionCall %void %countLeadingZeros_858d40
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %77
|
%vertex_main = OpFunction %void None %75
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %77
|
%fragment_main = OpFunction %void None %75
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %countLeadingZeros_858d40
|
%93 = OpFunctionCall %void %countLeadingZeros_858d40
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %77
|
%compute_main = OpFunction %void None %75
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countLeadingZeros_858d40
|
%96 = OpFunctionCall %void %countLeadingZeros_858d40
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 95
|
; Bound: 93
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%v3bool = OpTypeVector %bool 3
|
%v3bool = OpTypeVector %bool 3
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%27 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%35 = OpConstantComposite %v3uint %uint_16777215 %uint_16777215 %uint_16777215
|
%33 = OpConstantComposite %v3uint %uint_16777215 %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%38 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%36 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%44 = OpConstantComposite %v3uint %uint_268435455 %uint_268435455 %uint_268435455
|
%42 = OpConstantComposite %v3uint %uint_268435455 %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%47 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%45 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%53 = OpConstantComposite %v3uint %uint_1073741823 %uint_1073741823 %uint_1073741823
|
%51 = OpConstantComposite %v3uint %uint_1073741823 %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%56 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%54 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%62 = OpConstantComposite %v3uint %uint_2147483647 %uint_2147483647 %uint_2147483647
|
%60 = OpConstantComposite %v3uint %uint_2147483647 %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%65 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%63 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%75 = OpTypeFunction %void
|
%73 = OpTypeFunction %void
|
||||||
%81 = OpTypeFunction %v4float
|
%79 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v3uint None %9
|
%tint_count_leading_zeros = OpFunction %v3uint None %9
|
||||||
%v = OpFunctionParameter %v3uint
|
%v = OpFunctionParameter %v3uint
|
||||||
|
@ -71,67 +69,67 @@
|
||||||
OpStore %x %v
|
OpStore %x %v
|
||||||
%20 = OpLoad %v3uint %x
|
%20 = OpLoad %v3uint %x
|
||||||
%23 = OpULessThanEqual %v3bool %20 %22
|
%23 = OpULessThanEqual %v3bool %20 %22
|
||||||
%19 = OpSelect %v3uint %23 %27 %29
|
%19 = OpSelect %v3uint %23 %27 %18
|
||||||
%30 = OpLoad %v3uint %x
|
%28 = OpLoad %v3uint %x
|
||||||
%31 = OpShiftLeftLogical %v3uint %30 %19
|
%29 = OpShiftLeftLogical %v3uint %28 %19
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%33 = OpLoad %v3uint %x
|
%31 = OpLoad %v3uint %x
|
||||||
%36 = OpULessThanEqual %v3bool %33 %35
|
%34 = OpULessThanEqual %v3bool %31 %33
|
||||||
%32 = OpSelect %v3uint %36 %38 %29
|
%30 = OpSelect %v3uint %34 %36 %18
|
||||||
%39 = OpLoad %v3uint %x
|
%37 = OpLoad %v3uint %x
|
||||||
%40 = OpShiftLeftLogical %v3uint %39 %32
|
%38 = OpShiftLeftLogical %v3uint %37 %30
|
||||||
OpStore %x %40
|
OpStore %x %38
|
||||||
%42 = OpLoad %v3uint %x
|
%40 = OpLoad %v3uint %x
|
||||||
%45 = OpULessThanEqual %v3bool %42 %44
|
%43 = OpULessThanEqual %v3bool %40 %42
|
||||||
%41 = OpSelect %v3uint %45 %47 %29
|
%39 = OpSelect %v3uint %43 %45 %18
|
||||||
%48 = OpLoad %v3uint %x
|
%46 = OpLoad %v3uint %x
|
||||||
%49 = OpShiftLeftLogical %v3uint %48 %41
|
%47 = OpShiftLeftLogical %v3uint %46 %39
|
||||||
OpStore %x %49
|
OpStore %x %47
|
||||||
%51 = OpLoad %v3uint %x
|
%49 = OpLoad %v3uint %x
|
||||||
%54 = OpULessThanEqual %v3bool %51 %53
|
%52 = OpULessThanEqual %v3bool %49 %51
|
||||||
%50 = OpSelect %v3uint %54 %56 %29
|
%48 = OpSelect %v3uint %52 %54 %18
|
||||||
%57 = OpLoad %v3uint %x
|
%55 = OpLoad %v3uint %x
|
||||||
%58 = OpShiftLeftLogical %v3uint %57 %50
|
%56 = OpShiftLeftLogical %v3uint %55 %48
|
||||||
OpStore %x %58
|
OpStore %x %56
|
||||||
%60 = OpLoad %v3uint %x
|
%58 = OpLoad %v3uint %x
|
||||||
%63 = OpULessThanEqual %v3bool %60 %62
|
%61 = OpULessThanEqual %v3bool %58 %60
|
||||||
%59 = OpSelect %v3uint %63 %65 %29
|
%57 = OpSelect %v3uint %61 %63 %18
|
||||||
%67 = OpLoad %v3uint %x
|
%65 = OpLoad %v3uint %x
|
||||||
%68 = OpIEqual %v3bool %67 %29
|
%66 = OpIEqual %v3bool %65 %18
|
||||||
%66 = OpSelect %v3uint %68 %65 %29
|
%64 = OpSelect %v3uint %66 %63 %18
|
||||||
%70 = OpBitwiseOr %v3uint %19 %32
|
%68 = OpBitwiseOr %v3uint %19 %30
|
||||||
%71 = OpBitwiseOr %v3uint %70 %41
|
%69 = OpBitwiseOr %v3uint %68 %39
|
||||||
%72 = OpBitwiseOr %v3uint %71 %50
|
%70 = OpBitwiseOr %v3uint %69 %48
|
||||||
%73 = OpBitwiseOr %v3uint %72 %59
|
%71 = OpBitwiseOr %v3uint %70 %57
|
||||||
%74 = OpIAdd %v3uint %73 %66
|
%72 = OpIAdd %v3uint %71 %64
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_ab6345 = OpFunction %void None %75
|
%countLeadingZeros_ab6345 = OpFunction %void None %73
|
||||||
%78 = OpLabel
|
%76 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3uint Function %18
|
%res = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
%79 = OpFunctionCall %v3uint %tint_count_leading_zeros %18
|
%77 = OpFunctionCall %v3uint %tint_count_leading_zeros %18
|
||||||
OpStore %res %79
|
OpStore %res %77
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %81
|
%vertex_main_inner = OpFunction %v4float None %79
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%84 = OpFunctionCall %void %countLeadingZeros_ab6345
|
%82 = OpFunctionCall %void %countLeadingZeros_ab6345
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %75
|
%vertex_main = OpFunction %void None %73
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %v4float %vertex_main_inner
|
%85 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %87
|
OpStore %value %85
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %75
|
%fragment_main = OpFunction %void None %73
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countLeadingZeros_ab6345
|
%89 = OpFunctionCall %void %countLeadingZeros_ab6345
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %75
|
%compute_main = OpFunction %void None %73
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countLeadingZeros_ab6345
|
%92 = OpFunctionCall %void %countLeadingZeros_ab6345
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -44,29 +44,27 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%29 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%29 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%31 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%37 = OpConstantComposite %v4uint %uint_16777215 %uint_16777215 %uint_16777215 %uint_16777215
|
%35 = OpConstantComposite %v4uint %uint_16777215 %uint_16777215 %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%38 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%46 = OpConstantComposite %v4uint %uint_268435455 %uint_268435455 %uint_268435455 %uint_268435455
|
%44 = OpConstantComposite %v4uint %uint_268435455 %uint_268435455 %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%47 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%55 = OpConstantComposite %v4uint %uint_1073741823 %uint_1073741823 %uint_1073741823 %uint_1073741823
|
%53 = OpConstantComposite %v4uint %uint_1073741823 %uint_1073741823 %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%58 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%56 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%64 = OpConstantComposite %v4uint %uint_2147483647 %uint_2147483647 %uint_2147483647 %uint_2147483647
|
%62 = OpConstantComposite %v4uint %uint_2147483647 %uint_2147483647 %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%77 = OpTypeFunction %void
|
%75 = OpTypeFunction %void
|
||||||
%82 = OpConstantNull %v4int
|
%80 = OpConstantNull %v4int
|
||||||
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v4int None %9
|
%tint_count_leading_zeros = OpFunction %v4int None %9
|
||||||
%v = OpFunctionParameter %v4int
|
%v = OpFunctionParameter %v4int
|
||||||
|
@ -76,68 +74,68 @@
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%22 = OpLoad %v4uint %x
|
%22 = OpLoad %v4uint %x
|
||||||
%25 = OpULessThanEqual %v4bool %22 %24
|
%25 = OpULessThanEqual %v4bool %22 %24
|
||||||
%21 = OpSelect %v4uint %25 %29 %31
|
%21 = OpSelect %v4uint %25 %29 %20
|
||||||
%32 = OpLoad %v4uint %x
|
%30 = OpLoad %v4uint %x
|
||||||
%33 = OpShiftLeftLogical %v4uint %32 %21
|
%31 = OpShiftLeftLogical %v4uint %30 %21
|
||||||
OpStore %x %33
|
OpStore %x %31
|
||||||
%35 = OpLoad %v4uint %x
|
%33 = OpLoad %v4uint %x
|
||||||
%38 = OpULessThanEqual %v4bool %35 %37
|
%36 = OpULessThanEqual %v4bool %33 %35
|
||||||
%34 = OpSelect %v4uint %38 %40 %31
|
%32 = OpSelect %v4uint %36 %38 %20
|
||||||
%41 = OpLoad %v4uint %x
|
%39 = OpLoad %v4uint %x
|
||||||
%42 = OpShiftLeftLogical %v4uint %41 %34
|
%40 = OpShiftLeftLogical %v4uint %39 %32
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%44 = OpLoad %v4uint %x
|
%42 = OpLoad %v4uint %x
|
||||||
%47 = OpULessThanEqual %v4bool %44 %46
|
%45 = OpULessThanEqual %v4bool %42 %44
|
||||||
%43 = OpSelect %v4uint %47 %49 %31
|
%41 = OpSelect %v4uint %45 %47 %20
|
||||||
%50 = OpLoad %v4uint %x
|
%48 = OpLoad %v4uint %x
|
||||||
%51 = OpShiftLeftLogical %v4uint %50 %43
|
%49 = OpShiftLeftLogical %v4uint %48 %41
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%53 = OpLoad %v4uint %x
|
%51 = OpLoad %v4uint %x
|
||||||
%56 = OpULessThanEqual %v4bool %53 %55
|
%54 = OpULessThanEqual %v4bool %51 %53
|
||||||
%52 = OpSelect %v4uint %56 %58 %31
|
%50 = OpSelect %v4uint %54 %56 %20
|
||||||
%59 = OpLoad %v4uint %x
|
%57 = OpLoad %v4uint %x
|
||||||
%60 = OpShiftLeftLogical %v4uint %59 %52
|
%58 = OpShiftLeftLogical %v4uint %57 %50
|
||||||
OpStore %x %60
|
OpStore %x %58
|
||||||
%62 = OpLoad %v4uint %x
|
%60 = OpLoad %v4uint %x
|
||||||
%65 = OpULessThanEqual %v4bool %62 %64
|
%63 = OpULessThanEqual %v4bool %60 %62
|
||||||
%61 = OpSelect %v4uint %65 %67 %31
|
%59 = OpSelect %v4uint %63 %65 %20
|
||||||
%69 = OpLoad %v4uint %x
|
%67 = OpLoad %v4uint %x
|
||||||
%70 = OpIEqual %v4bool %69 %31
|
%68 = OpIEqual %v4bool %67 %20
|
||||||
%68 = OpSelect %v4uint %70 %67 %31
|
%66 = OpSelect %v4uint %68 %65 %20
|
||||||
%72 = OpBitwiseOr %v4uint %21 %34
|
%70 = OpBitwiseOr %v4uint %21 %32
|
||||||
%73 = OpBitwiseOr %v4uint %72 %43
|
%71 = OpBitwiseOr %v4uint %70 %41
|
||||||
%74 = OpBitwiseOr %v4uint %73 %52
|
%72 = OpBitwiseOr %v4uint %71 %50
|
||||||
%75 = OpBitwiseOr %v4uint %74 %61
|
%73 = OpBitwiseOr %v4uint %72 %59
|
||||||
%76 = OpIAdd %v4uint %75 %68
|
%74 = OpIAdd %v4uint %73 %66
|
||||||
%71 = OpBitcast %v4int %76
|
%69 = OpBitcast %v4int %74
|
||||||
OpReturnValue %71
|
OpReturnValue %69
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_eab32b = OpFunction %void None %77
|
%countLeadingZeros_eab32b = OpFunction %void None %75
|
||||||
%80 = OpLabel
|
%78 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4int Function %82
|
%res = OpVariable %_ptr_Function_v4int Function %80
|
||||||
%81 = OpFunctionCall %v4int %tint_count_leading_zeros %82
|
%79 = OpFunctionCall %v4int %tint_count_leading_zeros %80
|
||||||
OpStore %res %81
|
OpStore %res %79
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %countLeadingZeros_eab32b
|
%86 = OpFunctionCall %void %countLeadingZeros_eab32b
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %77
|
%vertex_main = OpFunction %void None %75
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %77
|
%fragment_main = OpFunction %void None %75
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %countLeadingZeros_eab32b
|
%93 = OpFunctionCall %void %countLeadingZeros_eab32b
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %77
|
%compute_main = OpFunction %void None %75
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countLeadingZeros_eab32b
|
%96 = OpFunctionCall %void %countLeadingZeros_eab32b
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 95
|
; Bound: 93
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%27 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16777215 = OpConstant %uint 16777215
|
%uint_16777215 = OpConstant %uint 16777215
|
||||||
%35 = OpConstantComposite %v4uint %uint_16777215 %uint_16777215 %uint_16777215 %uint_16777215
|
%33 = OpConstantComposite %v4uint %uint_16777215 %uint_16777215 %uint_16777215 %uint_16777215
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%38 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%36 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_268435455 = OpConstant %uint 268435455
|
%uint_268435455 = OpConstant %uint 268435455
|
||||||
%44 = OpConstantComposite %v4uint %uint_268435455 %uint_268435455 %uint_268435455 %uint_268435455
|
%42 = OpConstantComposite %v4uint %uint_268435455 %uint_268435455 %uint_268435455 %uint_268435455
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%47 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%45 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_1073741823 = OpConstant %uint 1073741823
|
%uint_1073741823 = OpConstant %uint 1073741823
|
||||||
%53 = OpConstantComposite %v4uint %uint_1073741823 %uint_1073741823 %uint_1073741823 %uint_1073741823
|
%51 = OpConstantComposite %v4uint %uint_1073741823 %uint_1073741823 %uint_1073741823 %uint_1073741823
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%56 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%54 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_2147483647 = OpConstant %uint 2147483647
|
%uint_2147483647 = OpConstant %uint 2147483647
|
||||||
%62 = OpConstantComposite %v4uint %uint_2147483647 %uint_2147483647 %uint_2147483647 %uint_2147483647
|
%60 = OpConstantComposite %v4uint %uint_2147483647 %uint_2147483647 %uint_2147483647 %uint_2147483647
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%65 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%63 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%75 = OpTypeFunction %void
|
%73 = OpTypeFunction %void
|
||||||
%81 = OpTypeFunction %v4float
|
%79 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_leading_zeros = OpFunction %v4uint None %9
|
%tint_count_leading_zeros = OpFunction %v4uint None %9
|
||||||
%v = OpFunctionParameter %v4uint
|
%v = OpFunctionParameter %v4uint
|
||||||
|
@ -71,67 +69,67 @@
|
||||||
OpStore %x %v
|
OpStore %x %v
|
||||||
%20 = OpLoad %v4uint %x
|
%20 = OpLoad %v4uint %x
|
||||||
%23 = OpULessThanEqual %v4bool %20 %22
|
%23 = OpULessThanEqual %v4bool %20 %22
|
||||||
%19 = OpSelect %v4uint %23 %27 %29
|
%19 = OpSelect %v4uint %23 %27 %18
|
||||||
%30 = OpLoad %v4uint %x
|
%28 = OpLoad %v4uint %x
|
||||||
%31 = OpShiftLeftLogical %v4uint %30 %19
|
%29 = OpShiftLeftLogical %v4uint %28 %19
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%33 = OpLoad %v4uint %x
|
%31 = OpLoad %v4uint %x
|
||||||
%36 = OpULessThanEqual %v4bool %33 %35
|
%34 = OpULessThanEqual %v4bool %31 %33
|
||||||
%32 = OpSelect %v4uint %36 %38 %29
|
%30 = OpSelect %v4uint %34 %36 %18
|
||||||
%39 = OpLoad %v4uint %x
|
%37 = OpLoad %v4uint %x
|
||||||
%40 = OpShiftLeftLogical %v4uint %39 %32
|
%38 = OpShiftLeftLogical %v4uint %37 %30
|
||||||
OpStore %x %40
|
OpStore %x %38
|
||||||
%42 = OpLoad %v4uint %x
|
%40 = OpLoad %v4uint %x
|
||||||
%45 = OpULessThanEqual %v4bool %42 %44
|
%43 = OpULessThanEqual %v4bool %40 %42
|
||||||
%41 = OpSelect %v4uint %45 %47 %29
|
%39 = OpSelect %v4uint %43 %45 %18
|
||||||
%48 = OpLoad %v4uint %x
|
%46 = OpLoad %v4uint %x
|
||||||
%49 = OpShiftLeftLogical %v4uint %48 %41
|
%47 = OpShiftLeftLogical %v4uint %46 %39
|
||||||
OpStore %x %49
|
OpStore %x %47
|
||||||
%51 = OpLoad %v4uint %x
|
%49 = OpLoad %v4uint %x
|
||||||
%54 = OpULessThanEqual %v4bool %51 %53
|
%52 = OpULessThanEqual %v4bool %49 %51
|
||||||
%50 = OpSelect %v4uint %54 %56 %29
|
%48 = OpSelect %v4uint %52 %54 %18
|
||||||
%57 = OpLoad %v4uint %x
|
%55 = OpLoad %v4uint %x
|
||||||
%58 = OpShiftLeftLogical %v4uint %57 %50
|
%56 = OpShiftLeftLogical %v4uint %55 %48
|
||||||
OpStore %x %58
|
OpStore %x %56
|
||||||
%60 = OpLoad %v4uint %x
|
%58 = OpLoad %v4uint %x
|
||||||
%63 = OpULessThanEqual %v4bool %60 %62
|
%61 = OpULessThanEqual %v4bool %58 %60
|
||||||
%59 = OpSelect %v4uint %63 %65 %29
|
%57 = OpSelect %v4uint %61 %63 %18
|
||||||
%67 = OpLoad %v4uint %x
|
%65 = OpLoad %v4uint %x
|
||||||
%68 = OpIEqual %v4bool %67 %29
|
%66 = OpIEqual %v4bool %65 %18
|
||||||
%66 = OpSelect %v4uint %68 %65 %29
|
%64 = OpSelect %v4uint %66 %63 %18
|
||||||
%70 = OpBitwiseOr %v4uint %19 %32
|
%68 = OpBitwiseOr %v4uint %19 %30
|
||||||
%71 = OpBitwiseOr %v4uint %70 %41
|
%69 = OpBitwiseOr %v4uint %68 %39
|
||||||
%72 = OpBitwiseOr %v4uint %71 %50
|
%70 = OpBitwiseOr %v4uint %69 %48
|
||||||
%73 = OpBitwiseOr %v4uint %72 %59
|
%71 = OpBitwiseOr %v4uint %70 %57
|
||||||
%74 = OpIAdd %v4uint %73 %66
|
%72 = OpIAdd %v4uint %71 %64
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countLeadingZeros_f70103 = OpFunction %void None %75
|
%countLeadingZeros_f70103 = OpFunction %void None %73
|
||||||
%78 = OpLabel
|
%76 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4uint Function %18
|
%res = OpVariable %_ptr_Function_v4uint Function %18
|
||||||
%79 = OpFunctionCall %v4uint %tint_count_leading_zeros %18
|
%77 = OpFunctionCall %v4uint %tint_count_leading_zeros %18
|
||||||
OpStore %res %79
|
OpStore %res %77
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %81
|
%vertex_main_inner = OpFunction %v4float None %79
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%84 = OpFunctionCall %void %countLeadingZeros_f70103
|
%82 = OpFunctionCall %void %countLeadingZeros_f70103
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %75
|
%vertex_main = OpFunction %void None %73
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %v4float %vertex_main_inner
|
%85 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %87
|
OpStore %value %85
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %75
|
%fragment_main = OpFunction %void None %73
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countLeadingZeros_f70103
|
%89 = OpFunctionCall %void %countLeadingZeros_f70103
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %75
|
%compute_main = OpFunction %void None %73
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countLeadingZeros_f70103
|
%92 = OpFunctionCall %void %countLeadingZeros_f70103
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 98
|
; Bound: 96
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -40,27 +40,25 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%25 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
%25 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%28 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%30 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%28 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%37 = OpConstantComposite %v2uint %uint_255 %uint_255
|
%35 = OpConstantComposite %v2uint %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%38 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%47 = OpConstantComposite %v2uint %uint_15 %uint_15
|
%45 = OpConstantComposite %v2uint %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%50 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%48 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%57 = OpConstantComposite %v2uint %uint_3 %uint_3
|
%55 = OpConstantComposite %v2uint %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%60 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%58 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%65 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%78 = OpTypeFunction %void
|
%76 = OpTypeFunction %void
|
||||||
%84 = OpTypeFunction %v4float
|
%82 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v2uint None %9
|
%tint_count_trailing_zeros = OpFunction %v2uint None %9
|
||||||
%v = OpFunctionParameter %v2uint
|
%v = OpFunctionParameter %v2uint
|
||||||
|
@ -70,71 +68,71 @@
|
||||||
%23 = OpLoad %v2uint %x
|
%23 = OpLoad %v2uint %x
|
||||||
%26 = OpBitwiseAnd %v2uint %23 %25
|
%26 = OpBitwiseAnd %v2uint %23 %25
|
||||||
%20 = OpINotEqual %v2bool %26 %18
|
%20 = OpINotEqual %v2bool %26 %18
|
||||||
%19 = OpSelect %v2uint %20 %28 %30
|
%19 = OpSelect %v2uint %20 %18 %28
|
||||||
%31 = OpLoad %v2uint %x
|
%29 = OpLoad %v2uint %x
|
||||||
%32 = OpShiftRightLogical %v2uint %31 %19
|
%30 = OpShiftRightLogical %v2uint %29 %19
|
||||||
OpStore %x %32
|
OpStore %x %30
|
||||||
%35 = OpLoad %v2uint %x
|
%33 = OpLoad %v2uint %x
|
||||||
%38 = OpBitwiseAnd %v2uint %35 %37
|
%36 = OpBitwiseAnd %v2uint %33 %35
|
||||||
%34 = OpINotEqual %v2bool %38 %18
|
%32 = OpINotEqual %v2bool %36 %18
|
||||||
%33 = OpSelect %v2uint %34 %28 %40
|
%31 = OpSelect %v2uint %32 %18 %38
|
||||||
%41 = OpLoad %v2uint %x
|
%39 = OpLoad %v2uint %x
|
||||||
%42 = OpShiftRightLogical %v2uint %41 %33
|
%40 = OpShiftRightLogical %v2uint %39 %31
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%45 = OpLoad %v2uint %x
|
%43 = OpLoad %v2uint %x
|
||||||
%48 = OpBitwiseAnd %v2uint %45 %47
|
%46 = OpBitwiseAnd %v2uint %43 %45
|
||||||
%44 = OpINotEqual %v2bool %48 %18
|
%42 = OpINotEqual %v2bool %46 %18
|
||||||
%43 = OpSelect %v2uint %44 %28 %50
|
%41 = OpSelect %v2uint %42 %18 %48
|
||||||
%51 = OpLoad %v2uint %x
|
%49 = OpLoad %v2uint %x
|
||||||
%52 = OpShiftRightLogical %v2uint %51 %43
|
%50 = OpShiftRightLogical %v2uint %49 %41
|
||||||
OpStore %x %52
|
OpStore %x %50
|
||||||
%55 = OpLoad %v2uint %x
|
%53 = OpLoad %v2uint %x
|
||||||
%58 = OpBitwiseAnd %v2uint %55 %57
|
%56 = OpBitwiseAnd %v2uint %53 %55
|
||||||
%54 = OpINotEqual %v2bool %58 %18
|
%52 = OpINotEqual %v2bool %56 %18
|
||||||
%53 = OpSelect %v2uint %54 %28 %60
|
%51 = OpSelect %v2uint %52 %18 %58
|
||||||
%61 = OpLoad %v2uint %x
|
%59 = OpLoad %v2uint %x
|
||||||
%62 = OpShiftRightLogical %v2uint %61 %53
|
%60 = OpShiftRightLogical %v2uint %59 %51
|
||||||
OpStore %x %62
|
OpStore %x %60
|
||||||
%65 = OpLoad %v2uint %x
|
%63 = OpLoad %v2uint %x
|
||||||
%68 = OpBitwiseAnd %v2uint %65 %67
|
%66 = OpBitwiseAnd %v2uint %63 %65
|
||||||
%64 = OpINotEqual %v2bool %68 %18
|
%62 = OpINotEqual %v2bool %66 %18
|
||||||
%63 = OpSelect %v2uint %64 %28 %67
|
%61 = OpSelect %v2uint %62 %18 %65
|
||||||
%70 = OpLoad %v2uint %x
|
%68 = OpLoad %v2uint %x
|
||||||
%71 = OpIEqual %v2bool %70 %28
|
%69 = OpIEqual %v2bool %68 %18
|
||||||
%69 = OpSelect %v2uint %71 %67 %28
|
%67 = OpSelect %v2uint %69 %65 %18
|
||||||
%73 = OpBitwiseOr %v2uint %19 %33
|
%71 = OpBitwiseOr %v2uint %19 %31
|
||||||
%74 = OpBitwiseOr %v2uint %73 %43
|
%72 = OpBitwiseOr %v2uint %71 %41
|
||||||
%75 = OpBitwiseOr %v2uint %74 %53
|
%73 = OpBitwiseOr %v2uint %72 %51
|
||||||
%76 = OpBitwiseOr %v2uint %75 %63
|
%74 = OpBitwiseOr %v2uint %73 %61
|
||||||
%77 = OpIAdd %v2uint %76 %69
|
%75 = OpIAdd %v2uint %74 %67
|
||||||
OpReturnValue %77
|
OpReturnValue %75
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_1ad138 = OpFunction %void None %78
|
%countTrailingZeros_1ad138 = OpFunction %void None %76
|
||||||
%81 = OpLabel
|
%79 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2uint Function %18
|
%res = OpVariable %_ptr_Function_v2uint Function %18
|
||||||
%82 = OpFunctionCall %v2uint %tint_count_trailing_zeros %18
|
%80 = OpFunctionCall %v2uint %tint_count_trailing_zeros %18
|
||||||
OpStore %res %82
|
OpStore %res %80
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %84
|
%vertex_main_inner = OpFunction %v4float None %82
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %void %countTrailingZeros_1ad138
|
%85 = OpFunctionCall %void %countTrailingZeros_1ad138
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %78
|
%vertex_main = OpFunction %void None %76
|
||||||
%89 = OpLabel
|
%87 = OpLabel
|
||||||
%90 = OpFunctionCall %v4float %vertex_main_inner
|
%88 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %90
|
OpStore %value %88
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %78
|
%fragment_main = OpFunction %void None %76
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countTrailingZeros_1ad138
|
%92 = OpFunctionCall %void %countTrailingZeros_1ad138
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %78
|
%compute_main = OpFunction %void None %76
|
||||||
%96 = OpLabel
|
%94 = OpLabel
|
||||||
%97 = OpFunctionCall %void %countTrailingZeros_1ad138
|
%95 = OpFunctionCall %void %countTrailingZeros_1ad138
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 102
|
; Bound: 100
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,29 +42,27 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%27 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
%27 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%30 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%32 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%30 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%39 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
%37 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%42 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%40 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%49 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
%47 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%52 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%50 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%59 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
%57 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%62 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%60 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%69 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%80 = OpTypeFunction %void
|
%78 = OpTypeFunction %void
|
||||||
%85 = OpConstantNull %v4int
|
%83 = OpConstantNull %v4int
|
||||||
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||||
%88 = OpTypeFunction %v4float
|
%86 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v4int None %9
|
%tint_count_trailing_zeros = OpFunction %v4int None %9
|
||||||
%v = OpFunctionParameter %v4int
|
%v = OpFunctionParameter %v4int
|
||||||
|
@ -75,72 +73,72 @@
|
||||||
%25 = OpLoad %v4uint %x
|
%25 = OpLoad %v4uint %x
|
||||||
%28 = OpBitwiseAnd %v4uint %25 %27
|
%28 = OpBitwiseAnd %v4uint %25 %27
|
||||||
%22 = OpINotEqual %v4bool %28 %20
|
%22 = OpINotEqual %v4bool %28 %20
|
||||||
%21 = OpSelect %v4uint %22 %30 %32
|
%21 = OpSelect %v4uint %22 %20 %30
|
||||||
%33 = OpLoad %v4uint %x
|
%31 = OpLoad %v4uint %x
|
||||||
%34 = OpShiftRightLogical %v4uint %33 %21
|
%32 = OpShiftRightLogical %v4uint %31 %21
|
||||||
OpStore %x %34
|
OpStore %x %32
|
||||||
%37 = OpLoad %v4uint %x
|
%35 = OpLoad %v4uint %x
|
||||||
%40 = OpBitwiseAnd %v4uint %37 %39
|
%38 = OpBitwiseAnd %v4uint %35 %37
|
||||||
%36 = OpINotEqual %v4bool %40 %20
|
%34 = OpINotEqual %v4bool %38 %20
|
||||||
%35 = OpSelect %v4uint %36 %30 %42
|
%33 = OpSelect %v4uint %34 %20 %40
|
||||||
%43 = OpLoad %v4uint %x
|
%41 = OpLoad %v4uint %x
|
||||||
%44 = OpShiftRightLogical %v4uint %43 %35
|
%42 = OpShiftRightLogical %v4uint %41 %33
|
||||||
OpStore %x %44
|
OpStore %x %42
|
||||||
%47 = OpLoad %v4uint %x
|
%45 = OpLoad %v4uint %x
|
||||||
%50 = OpBitwiseAnd %v4uint %47 %49
|
%48 = OpBitwiseAnd %v4uint %45 %47
|
||||||
%46 = OpINotEqual %v4bool %50 %20
|
%44 = OpINotEqual %v4bool %48 %20
|
||||||
%45 = OpSelect %v4uint %46 %30 %52
|
%43 = OpSelect %v4uint %44 %20 %50
|
||||||
%53 = OpLoad %v4uint %x
|
%51 = OpLoad %v4uint %x
|
||||||
%54 = OpShiftRightLogical %v4uint %53 %45
|
%52 = OpShiftRightLogical %v4uint %51 %43
|
||||||
OpStore %x %54
|
OpStore %x %52
|
||||||
%57 = OpLoad %v4uint %x
|
%55 = OpLoad %v4uint %x
|
||||||
%60 = OpBitwiseAnd %v4uint %57 %59
|
%58 = OpBitwiseAnd %v4uint %55 %57
|
||||||
%56 = OpINotEqual %v4bool %60 %20
|
%54 = OpINotEqual %v4bool %58 %20
|
||||||
%55 = OpSelect %v4uint %56 %30 %62
|
%53 = OpSelect %v4uint %54 %20 %60
|
||||||
%63 = OpLoad %v4uint %x
|
%61 = OpLoad %v4uint %x
|
||||||
%64 = OpShiftRightLogical %v4uint %63 %55
|
%62 = OpShiftRightLogical %v4uint %61 %53
|
||||||
OpStore %x %64
|
OpStore %x %62
|
||||||
%67 = OpLoad %v4uint %x
|
%65 = OpLoad %v4uint %x
|
||||||
%70 = OpBitwiseAnd %v4uint %67 %69
|
%68 = OpBitwiseAnd %v4uint %65 %67
|
||||||
%66 = OpINotEqual %v4bool %70 %20
|
%64 = OpINotEqual %v4bool %68 %20
|
||||||
%65 = OpSelect %v4uint %66 %30 %69
|
%63 = OpSelect %v4uint %64 %20 %67
|
||||||
%72 = OpLoad %v4uint %x
|
%70 = OpLoad %v4uint %x
|
||||||
%73 = OpIEqual %v4bool %72 %30
|
%71 = OpIEqual %v4bool %70 %20
|
||||||
%71 = OpSelect %v4uint %73 %69 %30
|
%69 = OpSelect %v4uint %71 %67 %20
|
||||||
%75 = OpBitwiseOr %v4uint %21 %35
|
%73 = OpBitwiseOr %v4uint %21 %33
|
||||||
%76 = OpBitwiseOr %v4uint %75 %45
|
%74 = OpBitwiseOr %v4uint %73 %43
|
||||||
%77 = OpBitwiseOr %v4uint %76 %55
|
%75 = OpBitwiseOr %v4uint %74 %53
|
||||||
%78 = OpBitwiseOr %v4uint %77 %65
|
%76 = OpBitwiseOr %v4uint %75 %63
|
||||||
%79 = OpIAdd %v4uint %78 %71
|
%77 = OpIAdd %v4uint %76 %69
|
||||||
%74 = OpBitcast %v4int %79
|
%72 = OpBitcast %v4int %77
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_1dc84a = OpFunction %void None %80
|
%countTrailingZeros_1dc84a = OpFunction %void None %78
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4int Function %85
|
%res = OpVariable %_ptr_Function_v4int Function %83
|
||||||
%84 = OpFunctionCall %v4int %tint_count_trailing_zeros %85
|
%82 = OpFunctionCall %v4int %tint_count_trailing_zeros %83
|
||||||
OpStore %res %84
|
OpStore %res %82
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %88
|
%vertex_main_inner = OpFunction %v4float None %86
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
%89 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %80
|
%vertex_main = OpFunction %void None %78
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %v4float %vertex_main_inner
|
%92 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %94
|
OpStore %value %92
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %80
|
%fragment_main = OpFunction %void None %78
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
%96 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %80
|
%compute_main = OpFunction %void None %78
|
||||||
%100 = OpLabel
|
%98 = OpLabel
|
||||||
%101 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
%99 = OpFunctionCall %void %countTrailingZeros_1dc84a
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 86
|
; Bound: 85
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -37,7 +37,6 @@
|
||||||
%17 = OpConstantNull %uint
|
%17 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
|
@ -47,8 +46,8 @@
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%66 = OpTypeFunction %void
|
%65 = OpTypeFunction %void
|
||||||
%72 = OpTypeFunction %v4float
|
%71 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %uint None %9
|
%tint_count_trailing_zeros = OpFunction %uint None %9
|
||||||
%v = OpFunctionParameter %uint
|
%v = OpFunctionParameter %uint
|
||||||
|
@ -58,71 +57,71 @@
|
||||||
%21 = OpLoad %uint %x
|
%21 = OpLoad %uint %x
|
||||||
%23 = OpBitwiseAnd %uint %21 %uint_65535
|
%23 = OpBitwiseAnd %uint %21 %uint_65535
|
||||||
%19 = OpINotEqual %bool %23 %17
|
%19 = OpINotEqual %bool %23 %17
|
||||||
%18 = OpSelect %uint %19 %uint_0 %uint_16
|
%18 = OpSelect %uint %19 %17 %uint_16
|
||||||
%26 = OpLoad %uint %x
|
%25 = OpLoad %uint %x
|
||||||
%27 = OpShiftRightLogical %uint %26 %18
|
%26 = OpShiftRightLogical %uint %25 %18
|
||||||
OpStore %x %27
|
OpStore %x %26
|
||||||
%30 = OpLoad %uint %x
|
%29 = OpLoad %uint %x
|
||||||
%32 = OpBitwiseAnd %uint %30 %uint_255
|
%31 = OpBitwiseAnd %uint %29 %uint_255
|
||||||
%29 = OpINotEqual %bool %32 %17
|
%28 = OpINotEqual %bool %31 %17
|
||||||
%28 = OpSelect %uint %29 %uint_0 %uint_8
|
%27 = OpSelect %uint %28 %17 %uint_8
|
||||||
%34 = OpLoad %uint %x
|
%33 = OpLoad %uint %x
|
||||||
%35 = OpShiftRightLogical %uint %34 %28
|
%34 = OpShiftRightLogical %uint %33 %27
|
||||||
OpStore %x %35
|
OpStore %x %34
|
||||||
%38 = OpLoad %uint %x
|
%37 = OpLoad %uint %x
|
||||||
%40 = OpBitwiseAnd %uint %38 %uint_15
|
%39 = OpBitwiseAnd %uint %37 %uint_15
|
||||||
%37 = OpINotEqual %bool %40 %17
|
%36 = OpINotEqual %bool %39 %17
|
||||||
%36 = OpSelect %uint %37 %uint_0 %uint_4
|
%35 = OpSelect %uint %36 %17 %uint_4
|
||||||
%42 = OpLoad %uint %x
|
%41 = OpLoad %uint %x
|
||||||
%43 = OpShiftRightLogical %uint %42 %36
|
%42 = OpShiftRightLogical %uint %41 %35
|
||||||
OpStore %x %43
|
OpStore %x %42
|
||||||
%46 = OpLoad %uint %x
|
%45 = OpLoad %uint %x
|
||||||
%48 = OpBitwiseAnd %uint %46 %uint_3
|
%47 = OpBitwiseAnd %uint %45 %uint_3
|
||||||
%45 = OpINotEqual %bool %48 %17
|
%44 = OpINotEqual %bool %47 %17
|
||||||
%44 = OpSelect %uint %45 %uint_0 %uint_2
|
%43 = OpSelect %uint %44 %17 %uint_2
|
||||||
%50 = OpLoad %uint %x
|
%49 = OpLoad %uint %x
|
||||||
%51 = OpShiftRightLogical %uint %50 %44
|
%50 = OpShiftRightLogical %uint %49 %43
|
||||||
OpStore %x %51
|
OpStore %x %50
|
||||||
%54 = OpLoad %uint %x
|
%53 = OpLoad %uint %x
|
||||||
%56 = OpBitwiseAnd %uint %54 %uint_1
|
%55 = OpBitwiseAnd %uint %53 %uint_1
|
||||||
%53 = OpINotEqual %bool %56 %17
|
%52 = OpINotEqual %bool %55 %17
|
||||||
%52 = OpSelect %uint %53 %uint_0 %uint_1
|
%51 = OpSelect %uint %52 %17 %uint_1
|
||||||
%58 = OpLoad %uint %x
|
%57 = OpLoad %uint %x
|
||||||
%59 = OpIEqual %bool %58 %uint_0
|
%58 = OpIEqual %bool %57 %17
|
||||||
%57 = OpSelect %uint %59 %uint_1 %uint_0
|
%56 = OpSelect %uint %58 %uint_1 %17
|
||||||
%61 = OpBitwiseOr %uint %18 %28
|
%60 = OpBitwiseOr %uint %18 %27
|
||||||
%62 = OpBitwiseOr %uint %61 %36
|
%61 = OpBitwiseOr %uint %60 %35
|
||||||
%63 = OpBitwiseOr %uint %62 %44
|
%62 = OpBitwiseOr %uint %61 %43
|
||||||
%64 = OpBitwiseOr %uint %63 %52
|
%63 = OpBitwiseOr %uint %62 %51
|
||||||
%65 = OpIAdd %uint %64 %57
|
%64 = OpIAdd %uint %63 %56
|
||||||
OpReturnValue %65
|
OpReturnValue %64
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_21e394 = OpFunction %void None %66
|
%countTrailingZeros_21e394 = OpFunction %void None %65
|
||||||
%69 = OpLabel
|
%68 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_uint Function %17
|
%res = OpVariable %_ptr_Function_uint Function %17
|
||||||
%70 = OpFunctionCall %uint %tint_count_trailing_zeros %uint_1
|
%69 = OpFunctionCall %uint %tint_count_trailing_zeros %uint_1
|
||||||
OpStore %res %70
|
OpStore %res %69
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %72
|
%vertex_main_inner = OpFunction %v4float None %71
|
||||||
%74 = OpLabel
|
%73 = OpLabel
|
||||||
%75 = OpFunctionCall %void %countTrailingZeros_21e394
|
%74 = OpFunctionCall %void %countTrailingZeros_21e394
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %66
|
%vertex_main = OpFunction %void None %65
|
||||||
%77 = OpLabel
|
%76 = OpLabel
|
||||||
%78 = OpFunctionCall %v4float %vertex_main_inner
|
%77 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %78
|
OpStore %value %77
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %66
|
%fragment_main = OpFunction %void None %65
|
||||||
%81 = OpLabel
|
%80 = OpLabel
|
||||||
%82 = OpFunctionCall %void %countTrailingZeros_21e394
|
%81 = OpFunctionCall %void %countTrailingZeros_21e394
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %66
|
%compute_main = OpFunction %void None %65
|
||||||
%84 = OpLabel
|
%83 = OpLabel
|
||||||
%85 = OpFunctionCall %void %countTrailingZeros_21e394
|
%84 = OpFunctionCall %void %countTrailingZeros_21e394
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 102
|
; Bound: 100
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,29 +42,27 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%27 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
%27 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%30 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%32 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%30 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%39 = OpConstantComposite %v2uint %uint_255 %uint_255
|
%37 = OpConstantComposite %v2uint %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%42 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%40 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%49 = OpConstantComposite %v2uint %uint_15 %uint_15
|
%47 = OpConstantComposite %v2uint %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%52 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%50 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%59 = OpConstantComposite %v2uint %uint_3 %uint_3
|
%57 = OpConstantComposite %v2uint %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%62 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%60 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%69 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%67 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%80 = OpTypeFunction %void
|
%78 = OpTypeFunction %void
|
||||||
%85 = OpConstantNull %v2int
|
%83 = OpConstantNull %v2int
|
||||||
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
%88 = OpTypeFunction %v4float
|
%86 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v2int None %9
|
%tint_count_trailing_zeros = OpFunction %v2int None %9
|
||||||
%v = OpFunctionParameter %v2int
|
%v = OpFunctionParameter %v2int
|
||||||
|
@ -75,72 +73,72 @@
|
||||||
%25 = OpLoad %v2uint %x
|
%25 = OpLoad %v2uint %x
|
||||||
%28 = OpBitwiseAnd %v2uint %25 %27
|
%28 = OpBitwiseAnd %v2uint %25 %27
|
||||||
%22 = OpINotEqual %v2bool %28 %20
|
%22 = OpINotEqual %v2bool %28 %20
|
||||||
%21 = OpSelect %v2uint %22 %30 %32
|
%21 = OpSelect %v2uint %22 %20 %30
|
||||||
%33 = OpLoad %v2uint %x
|
%31 = OpLoad %v2uint %x
|
||||||
%34 = OpShiftRightLogical %v2uint %33 %21
|
%32 = OpShiftRightLogical %v2uint %31 %21
|
||||||
OpStore %x %34
|
OpStore %x %32
|
||||||
%37 = OpLoad %v2uint %x
|
%35 = OpLoad %v2uint %x
|
||||||
%40 = OpBitwiseAnd %v2uint %37 %39
|
%38 = OpBitwiseAnd %v2uint %35 %37
|
||||||
%36 = OpINotEqual %v2bool %40 %20
|
%34 = OpINotEqual %v2bool %38 %20
|
||||||
%35 = OpSelect %v2uint %36 %30 %42
|
%33 = OpSelect %v2uint %34 %20 %40
|
||||||
%43 = OpLoad %v2uint %x
|
%41 = OpLoad %v2uint %x
|
||||||
%44 = OpShiftRightLogical %v2uint %43 %35
|
%42 = OpShiftRightLogical %v2uint %41 %33
|
||||||
OpStore %x %44
|
OpStore %x %42
|
||||||
%47 = OpLoad %v2uint %x
|
%45 = OpLoad %v2uint %x
|
||||||
%50 = OpBitwiseAnd %v2uint %47 %49
|
%48 = OpBitwiseAnd %v2uint %45 %47
|
||||||
%46 = OpINotEqual %v2bool %50 %20
|
%44 = OpINotEqual %v2bool %48 %20
|
||||||
%45 = OpSelect %v2uint %46 %30 %52
|
%43 = OpSelect %v2uint %44 %20 %50
|
||||||
%53 = OpLoad %v2uint %x
|
%51 = OpLoad %v2uint %x
|
||||||
%54 = OpShiftRightLogical %v2uint %53 %45
|
%52 = OpShiftRightLogical %v2uint %51 %43
|
||||||
OpStore %x %54
|
OpStore %x %52
|
||||||
%57 = OpLoad %v2uint %x
|
%55 = OpLoad %v2uint %x
|
||||||
%60 = OpBitwiseAnd %v2uint %57 %59
|
%58 = OpBitwiseAnd %v2uint %55 %57
|
||||||
%56 = OpINotEqual %v2bool %60 %20
|
%54 = OpINotEqual %v2bool %58 %20
|
||||||
%55 = OpSelect %v2uint %56 %30 %62
|
%53 = OpSelect %v2uint %54 %20 %60
|
||||||
%63 = OpLoad %v2uint %x
|
%61 = OpLoad %v2uint %x
|
||||||
%64 = OpShiftRightLogical %v2uint %63 %55
|
%62 = OpShiftRightLogical %v2uint %61 %53
|
||||||
OpStore %x %64
|
OpStore %x %62
|
||||||
%67 = OpLoad %v2uint %x
|
%65 = OpLoad %v2uint %x
|
||||||
%70 = OpBitwiseAnd %v2uint %67 %69
|
%68 = OpBitwiseAnd %v2uint %65 %67
|
||||||
%66 = OpINotEqual %v2bool %70 %20
|
%64 = OpINotEqual %v2bool %68 %20
|
||||||
%65 = OpSelect %v2uint %66 %30 %69
|
%63 = OpSelect %v2uint %64 %20 %67
|
||||||
%72 = OpLoad %v2uint %x
|
%70 = OpLoad %v2uint %x
|
||||||
%73 = OpIEqual %v2bool %72 %30
|
%71 = OpIEqual %v2bool %70 %20
|
||||||
%71 = OpSelect %v2uint %73 %69 %30
|
%69 = OpSelect %v2uint %71 %67 %20
|
||||||
%75 = OpBitwiseOr %v2uint %21 %35
|
%73 = OpBitwiseOr %v2uint %21 %33
|
||||||
%76 = OpBitwiseOr %v2uint %75 %45
|
%74 = OpBitwiseOr %v2uint %73 %43
|
||||||
%77 = OpBitwiseOr %v2uint %76 %55
|
%75 = OpBitwiseOr %v2uint %74 %53
|
||||||
%78 = OpBitwiseOr %v2uint %77 %65
|
%76 = OpBitwiseOr %v2uint %75 %63
|
||||||
%79 = OpIAdd %v2uint %78 %71
|
%77 = OpIAdd %v2uint %76 %69
|
||||||
%74 = OpBitcast %v2int %79
|
%72 = OpBitcast %v2int %77
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_327c37 = OpFunction %void None %80
|
%countTrailingZeros_327c37 = OpFunction %void None %78
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2int Function %85
|
%res = OpVariable %_ptr_Function_v2int Function %83
|
||||||
%84 = OpFunctionCall %v2int %tint_count_trailing_zeros %85
|
%82 = OpFunctionCall %v2int %tint_count_trailing_zeros %83
|
||||||
OpStore %res %84
|
OpStore %res %82
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %88
|
%vertex_main_inner = OpFunction %v4float None %86
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countTrailingZeros_327c37
|
%89 = OpFunctionCall %void %countTrailingZeros_327c37
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %80
|
%vertex_main = OpFunction %void None %78
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %v4float %vertex_main_inner
|
%92 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %94
|
OpStore %value %92
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %80
|
%fragment_main = OpFunction %void None %78
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countTrailingZeros_327c37
|
%96 = OpFunctionCall %void %countTrailingZeros_327c37
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %80
|
%compute_main = OpFunction %void None %78
|
||||||
%100 = OpLabel
|
%98 = OpLabel
|
||||||
%101 = OpFunctionCall %void %countTrailingZeros_327c37
|
%99 = OpFunctionCall %void %countTrailingZeros_327c37
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 90
|
; Bound: 89
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
%18 = OpConstantNull %uint
|
%18 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
|
@ -48,11 +47,11 @@
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%67 = OpTypeFunction %void
|
%66 = OpTypeFunction %void
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%75 = OpConstantNull %int
|
%74 = OpConstantNull %int
|
||||||
%76 = OpTypeFunction %v4float
|
%75 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %int None %9
|
%tint_count_trailing_zeros = OpFunction %int None %9
|
||||||
%v = OpFunctionParameter %int
|
%v = OpFunctionParameter %int
|
||||||
|
@ -63,72 +62,72 @@
|
||||||
%22 = OpLoad %uint %x
|
%22 = OpLoad %uint %x
|
||||||
%24 = OpBitwiseAnd %uint %22 %uint_65535
|
%24 = OpBitwiseAnd %uint %22 %uint_65535
|
||||||
%20 = OpINotEqual %bool %24 %18
|
%20 = OpINotEqual %bool %24 %18
|
||||||
%19 = OpSelect %uint %20 %uint_0 %uint_16
|
%19 = OpSelect %uint %20 %18 %uint_16
|
||||||
%27 = OpLoad %uint %x
|
%26 = OpLoad %uint %x
|
||||||
%28 = OpShiftRightLogical %uint %27 %19
|
%27 = OpShiftRightLogical %uint %26 %19
|
||||||
OpStore %x %28
|
OpStore %x %27
|
||||||
%31 = OpLoad %uint %x
|
%30 = OpLoad %uint %x
|
||||||
%33 = OpBitwiseAnd %uint %31 %uint_255
|
%32 = OpBitwiseAnd %uint %30 %uint_255
|
||||||
%30 = OpINotEqual %bool %33 %18
|
%29 = OpINotEqual %bool %32 %18
|
||||||
%29 = OpSelect %uint %30 %uint_0 %uint_8
|
%28 = OpSelect %uint %29 %18 %uint_8
|
||||||
%35 = OpLoad %uint %x
|
%34 = OpLoad %uint %x
|
||||||
%36 = OpShiftRightLogical %uint %35 %29
|
%35 = OpShiftRightLogical %uint %34 %28
|
||||||
OpStore %x %36
|
OpStore %x %35
|
||||||
%39 = OpLoad %uint %x
|
%38 = OpLoad %uint %x
|
||||||
%41 = OpBitwiseAnd %uint %39 %uint_15
|
%40 = OpBitwiseAnd %uint %38 %uint_15
|
||||||
%38 = OpINotEqual %bool %41 %18
|
%37 = OpINotEqual %bool %40 %18
|
||||||
%37 = OpSelect %uint %38 %uint_0 %uint_4
|
%36 = OpSelect %uint %37 %18 %uint_4
|
||||||
%43 = OpLoad %uint %x
|
%42 = OpLoad %uint %x
|
||||||
%44 = OpShiftRightLogical %uint %43 %37
|
%43 = OpShiftRightLogical %uint %42 %36
|
||||||
OpStore %x %44
|
OpStore %x %43
|
||||||
%47 = OpLoad %uint %x
|
%46 = OpLoad %uint %x
|
||||||
%49 = OpBitwiseAnd %uint %47 %uint_3
|
%48 = OpBitwiseAnd %uint %46 %uint_3
|
||||||
%46 = OpINotEqual %bool %49 %18
|
%45 = OpINotEqual %bool %48 %18
|
||||||
%45 = OpSelect %uint %46 %uint_0 %uint_2
|
%44 = OpSelect %uint %45 %18 %uint_2
|
||||||
%51 = OpLoad %uint %x
|
%50 = OpLoad %uint %x
|
||||||
%52 = OpShiftRightLogical %uint %51 %45
|
%51 = OpShiftRightLogical %uint %50 %44
|
||||||
OpStore %x %52
|
OpStore %x %51
|
||||||
%55 = OpLoad %uint %x
|
%54 = OpLoad %uint %x
|
||||||
%57 = OpBitwiseAnd %uint %55 %uint_1
|
%56 = OpBitwiseAnd %uint %54 %uint_1
|
||||||
%54 = OpINotEqual %bool %57 %18
|
%53 = OpINotEqual %bool %56 %18
|
||||||
%53 = OpSelect %uint %54 %uint_0 %uint_1
|
%52 = OpSelect %uint %53 %18 %uint_1
|
||||||
%59 = OpLoad %uint %x
|
%58 = OpLoad %uint %x
|
||||||
%60 = OpIEqual %bool %59 %uint_0
|
%59 = OpIEqual %bool %58 %18
|
||||||
%58 = OpSelect %uint %60 %uint_1 %uint_0
|
%57 = OpSelect %uint %59 %uint_1 %18
|
||||||
%62 = OpBitwiseOr %uint %19 %29
|
%61 = OpBitwiseOr %uint %19 %28
|
||||||
%63 = OpBitwiseOr %uint %62 %37
|
%62 = OpBitwiseOr %uint %61 %36
|
||||||
%64 = OpBitwiseOr %uint %63 %45
|
%63 = OpBitwiseOr %uint %62 %44
|
||||||
%65 = OpBitwiseOr %uint %64 %53
|
%64 = OpBitwiseOr %uint %63 %52
|
||||||
%66 = OpIAdd %uint %65 %58
|
%65 = OpIAdd %uint %64 %57
|
||||||
%61 = OpBitcast %int %66
|
%60 = OpBitcast %int %65
|
||||||
OpReturnValue %61
|
OpReturnValue %60
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_42fed6 = OpFunction %void None %67
|
%countTrailingZeros_42fed6 = OpFunction %void None %66
|
||||||
%70 = OpLabel
|
%69 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_int Function %75
|
%res = OpVariable %_ptr_Function_int Function %74
|
||||||
%71 = OpFunctionCall %int %tint_count_trailing_zeros %int_1
|
%70 = OpFunctionCall %int %tint_count_trailing_zeros %int_1
|
||||||
OpStore %res %71
|
OpStore %res %70
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %76
|
%vertex_main_inner = OpFunction %v4float None %75
|
||||||
%78 = OpLabel
|
%77 = OpLabel
|
||||||
%79 = OpFunctionCall %void %countTrailingZeros_42fed6
|
%78 = OpFunctionCall %void %countTrailingZeros_42fed6
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %67
|
%vertex_main = OpFunction %void None %66
|
||||||
%81 = OpLabel
|
%80 = OpLabel
|
||||||
%82 = OpFunctionCall %v4float %vertex_main_inner
|
%81 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %82
|
OpStore %value %81
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %67
|
%fragment_main = OpFunction %void None %66
|
||||||
%85 = OpLabel
|
%84 = OpLabel
|
||||||
%86 = OpFunctionCall %void %countTrailingZeros_42fed6
|
%85 = OpFunctionCall %void %countTrailingZeros_42fed6
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %67
|
%compute_main = OpFunction %void None %66
|
||||||
%88 = OpLabel
|
%87 = OpLabel
|
||||||
%89 = OpFunctionCall %void %countTrailingZeros_42fed6
|
%88 = OpFunctionCall %void %countTrailingZeros_42fed6
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 98
|
; Bound: 96
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -40,27 +40,25 @@
|
||||||
%v3bool = OpTypeVector %bool 3
|
%v3bool = OpTypeVector %bool 3
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%25 = OpConstantComposite %v3uint %uint_65535 %uint_65535 %uint_65535
|
%25 = OpConstantComposite %v3uint %uint_65535 %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%28 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%30 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%28 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%37 = OpConstantComposite %v3uint %uint_255 %uint_255 %uint_255
|
%35 = OpConstantComposite %v3uint %uint_255 %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%38 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%47 = OpConstantComposite %v3uint %uint_15 %uint_15 %uint_15
|
%45 = OpConstantComposite %v3uint %uint_15 %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%50 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%48 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%57 = OpConstantComposite %v3uint %uint_3 %uint_3 %uint_3
|
%55 = OpConstantComposite %v3uint %uint_3 %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%60 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%58 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%78 = OpTypeFunction %void
|
%76 = OpTypeFunction %void
|
||||||
%84 = OpTypeFunction %v4float
|
%82 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v3uint None %9
|
%tint_count_trailing_zeros = OpFunction %v3uint None %9
|
||||||
%v = OpFunctionParameter %v3uint
|
%v = OpFunctionParameter %v3uint
|
||||||
|
@ -70,71 +68,71 @@
|
||||||
%23 = OpLoad %v3uint %x
|
%23 = OpLoad %v3uint %x
|
||||||
%26 = OpBitwiseAnd %v3uint %23 %25
|
%26 = OpBitwiseAnd %v3uint %23 %25
|
||||||
%20 = OpINotEqual %v3bool %26 %18
|
%20 = OpINotEqual %v3bool %26 %18
|
||||||
%19 = OpSelect %v3uint %20 %28 %30
|
%19 = OpSelect %v3uint %20 %18 %28
|
||||||
%31 = OpLoad %v3uint %x
|
%29 = OpLoad %v3uint %x
|
||||||
%32 = OpShiftRightLogical %v3uint %31 %19
|
%30 = OpShiftRightLogical %v3uint %29 %19
|
||||||
OpStore %x %32
|
OpStore %x %30
|
||||||
%35 = OpLoad %v3uint %x
|
%33 = OpLoad %v3uint %x
|
||||||
%38 = OpBitwiseAnd %v3uint %35 %37
|
%36 = OpBitwiseAnd %v3uint %33 %35
|
||||||
%34 = OpINotEqual %v3bool %38 %18
|
%32 = OpINotEqual %v3bool %36 %18
|
||||||
%33 = OpSelect %v3uint %34 %28 %40
|
%31 = OpSelect %v3uint %32 %18 %38
|
||||||
%41 = OpLoad %v3uint %x
|
%39 = OpLoad %v3uint %x
|
||||||
%42 = OpShiftRightLogical %v3uint %41 %33
|
%40 = OpShiftRightLogical %v3uint %39 %31
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%45 = OpLoad %v3uint %x
|
%43 = OpLoad %v3uint %x
|
||||||
%48 = OpBitwiseAnd %v3uint %45 %47
|
%46 = OpBitwiseAnd %v3uint %43 %45
|
||||||
%44 = OpINotEqual %v3bool %48 %18
|
%42 = OpINotEqual %v3bool %46 %18
|
||||||
%43 = OpSelect %v3uint %44 %28 %50
|
%41 = OpSelect %v3uint %42 %18 %48
|
||||||
%51 = OpLoad %v3uint %x
|
%49 = OpLoad %v3uint %x
|
||||||
%52 = OpShiftRightLogical %v3uint %51 %43
|
%50 = OpShiftRightLogical %v3uint %49 %41
|
||||||
OpStore %x %52
|
OpStore %x %50
|
||||||
%55 = OpLoad %v3uint %x
|
%53 = OpLoad %v3uint %x
|
||||||
%58 = OpBitwiseAnd %v3uint %55 %57
|
%56 = OpBitwiseAnd %v3uint %53 %55
|
||||||
%54 = OpINotEqual %v3bool %58 %18
|
%52 = OpINotEqual %v3bool %56 %18
|
||||||
%53 = OpSelect %v3uint %54 %28 %60
|
%51 = OpSelect %v3uint %52 %18 %58
|
||||||
%61 = OpLoad %v3uint %x
|
%59 = OpLoad %v3uint %x
|
||||||
%62 = OpShiftRightLogical %v3uint %61 %53
|
%60 = OpShiftRightLogical %v3uint %59 %51
|
||||||
OpStore %x %62
|
OpStore %x %60
|
||||||
%65 = OpLoad %v3uint %x
|
%63 = OpLoad %v3uint %x
|
||||||
%68 = OpBitwiseAnd %v3uint %65 %67
|
%66 = OpBitwiseAnd %v3uint %63 %65
|
||||||
%64 = OpINotEqual %v3bool %68 %18
|
%62 = OpINotEqual %v3bool %66 %18
|
||||||
%63 = OpSelect %v3uint %64 %28 %67
|
%61 = OpSelect %v3uint %62 %18 %65
|
||||||
%70 = OpLoad %v3uint %x
|
%68 = OpLoad %v3uint %x
|
||||||
%71 = OpIEqual %v3bool %70 %28
|
%69 = OpIEqual %v3bool %68 %18
|
||||||
%69 = OpSelect %v3uint %71 %67 %28
|
%67 = OpSelect %v3uint %69 %65 %18
|
||||||
%73 = OpBitwiseOr %v3uint %19 %33
|
%71 = OpBitwiseOr %v3uint %19 %31
|
||||||
%74 = OpBitwiseOr %v3uint %73 %43
|
%72 = OpBitwiseOr %v3uint %71 %41
|
||||||
%75 = OpBitwiseOr %v3uint %74 %53
|
%73 = OpBitwiseOr %v3uint %72 %51
|
||||||
%76 = OpBitwiseOr %v3uint %75 %63
|
%74 = OpBitwiseOr %v3uint %73 %61
|
||||||
%77 = OpIAdd %v3uint %76 %69
|
%75 = OpIAdd %v3uint %74 %67
|
||||||
OpReturnValue %77
|
OpReturnValue %75
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_8ed26f = OpFunction %void None %78
|
%countTrailingZeros_8ed26f = OpFunction %void None %76
|
||||||
%81 = OpLabel
|
%79 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3uint Function %18
|
%res = OpVariable %_ptr_Function_v3uint Function %18
|
||||||
%82 = OpFunctionCall %v3uint %tint_count_trailing_zeros %18
|
%80 = OpFunctionCall %v3uint %tint_count_trailing_zeros %18
|
||||||
OpStore %res %82
|
OpStore %res %80
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %84
|
%vertex_main_inner = OpFunction %v4float None %82
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
%85 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %78
|
%vertex_main = OpFunction %void None %76
|
||||||
%89 = OpLabel
|
%87 = OpLabel
|
||||||
%90 = OpFunctionCall %v4float %vertex_main_inner
|
%88 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %90
|
OpStore %value %88
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %78
|
%fragment_main = OpFunction %void None %76
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
%92 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %78
|
%compute_main = OpFunction %void None %76
|
||||||
%96 = OpLabel
|
%94 = OpLabel
|
||||||
%97 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
%95 = OpFunctionCall %void %countTrailingZeros_8ed26f
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 102
|
; Bound: 100
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,29 +42,27 @@
|
||||||
%v3bool = OpTypeVector %bool 3
|
%v3bool = OpTypeVector %bool 3
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%27 = OpConstantComposite %v3uint %uint_65535 %uint_65535 %uint_65535
|
%27 = OpConstantComposite %v3uint %uint_65535 %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%30 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%32 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%30 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%39 = OpConstantComposite %v3uint %uint_255 %uint_255 %uint_255
|
%37 = OpConstantComposite %v3uint %uint_255 %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%42 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%40 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%49 = OpConstantComposite %v3uint %uint_15 %uint_15 %uint_15
|
%47 = OpConstantComposite %v3uint %uint_15 %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%52 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%50 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%59 = OpConstantComposite %v3uint %uint_3 %uint_3 %uint_3
|
%57 = OpConstantComposite %v3uint %uint_3 %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%62 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%60 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%69 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%67 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%80 = OpTypeFunction %void
|
%78 = OpTypeFunction %void
|
||||||
%85 = OpConstantNull %v3int
|
%83 = OpConstantNull %v3int
|
||||||
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
%88 = OpTypeFunction %v4float
|
%86 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v3int None %9
|
%tint_count_trailing_zeros = OpFunction %v3int None %9
|
||||||
%v = OpFunctionParameter %v3int
|
%v = OpFunctionParameter %v3int
|
||||||
|
@ -75,72 +73,72 @@
|
||||||
%25 = OpLoad %v3uint %x
|
%25 = OpLoad %v3uint %x
|
||||||
%28 = OpBitwiseAnd %v3uint %25 %27
|
%28 = OpBitwiseAnd %v3uint %25 %27
|
||||||
%22 = OpINotEqual %v3bool %28 %20
|
%22 = OpINotEqual %v3bool %28 %20
|
||||||
%21 = OpSelect %v3uint %22 %30 %32
|
%21 = OpSelect %v3uint %22 %20 %30
|
||||||
%33 = OpLoad %v3uint %x
|
%31 = OpLoad %v3uint %x
|
||||||
%34 = OpShiftRightLogical %v3uint %33 %21
|
%32 = OpShiftRightLogical %v3uint %31 %21
|
||||||
OpStore %x %34
|
OpStore %x %32
|
||||||
%37 = OpLoad %v3uint %x
|
%35 = OpLoad %v3uint %x
|
||||||
%40 = OpBitwiseAnd %v3uint %37 %39
|
%38 = OpBitwiseAnd %v3uint %35 %37
|
||||||
%36 = OpINotEqual %v3bool %40 %20
|
%34 = OpINotEqual %v3bool %38 %20
|
||||||
%35 = OpSelect %v3uint %36 %30 %42
|
%33 = OpSelect %v3uint %34 %20 %40
|
||||||
%43 = OpLoad %v3uint %x
|
%41 = OpLoad %v3uint %x
|
||||||
%44 = OpShiftRightLogical %v3uint %43 %35
|
%42 = OpShiftRightLogical %v3uint %41 %33
|
||||||
OpStore %x %44
|
OpStore %x %42
|
||||||
%47 = OpLoad %v3uint %x
|
%45 = OpLoad %v3uint %x
|
||||||
%50 = OpBitwiseAnd %v3uint %47 %49
|
%48 = OpBitwiseAnd %v3uint %45 %47
|
||||||
%46 = OpINotEqual %v3bool %50 %20
|
%44 = OpINotEqual %v3bool %48 %20
|
||||||
%45 = OpSelect %v3uint %46 %30 %52
|
%43 = OpSelect %v3uint %44 %20 %50
|
||||||
%53 = OpLoad %v3uint %x
|
%51 = OpLoad %v3uint %x
|
||||||
%54 = OpShiftRightLogical %v3uint %53 %45
|
%52 = OpShiftRightLogical %v3uint %51 %43
|
||||||
OpStore %x %54
|
OpStore %x %52
|
||||||
%57 = OpLoad %v3uint %x
|
%55 = OpLoad %v3uint %x
|
||||||
%60 = OpBitwiseAnd %v3uint %57 %59
|
%58 = OpBitwiseAnd %v3uint %55 %57
|
||||||
%56 = OpINotEqual %v3bool %60 %20
|
%54 = OpINotEqual %v3bool %58 %20
|
||||||
%55 = OpSelect %v3uint %56 %30 %62
|
%53 = OpSelect %v3uint %54 %20 %60
|
||||||
%63 = OpLoad %v3uint %x
|
%61 = OpLoad %v3uint %x
|
||||||
%64 = OpShiftRightLogical %v3uint %63 %55
|
%62 = OpShiftRightLogical %v3uint %61 %53
|
||||||
OpStore %x %64
|
OpStore %x %62
|
||||||
%67 = OpLoad %v3uint %x
|
%65 = OpLoad %v3uint %x
|
||||||
%70 = OpBitwiseAnd %v3uint %67 %69
|
%68 = OpBitwiseAnd %v3uint %65 %67
|
||||||
%66 = OpINotEqual %v3bool %70 %20
|
%64 = OpINotEqual %v3bool %68 %20
|
||||||
%65 = OpSelect %v3uint %66 %30 %69
|
%63 = OpSelect %v3uint %64 %20 %67
|
||||||
%72 = OpLoad %v3uint %x
|
%70 = OpLoad %v3uint %x
|
||||||
%73 = OpIEqual %v3bool %72 %30
|
%71 = OpIEqual %v3bool %70 %20
|
||||||
%71 = OpSelect %v3uint %73 %69 %30
|
%69 = OpSelect %v3uint %71 %67 %20
|
||||||
%75 = OpBitwiseOr %v3uint %21 %35
|
%73 = OpBitwiseOr %v3uint %21 %33
|
||||||
%76 = OpBitwiseOr %v3uint %75 %45
|
%74 = OpBitwiseOr %v3uint %73 %43
|
||||||
%77 = OpBitwiseOr %v3uint %76 %55
|
%75 = OpBitwiseOr %v3uint %74 %53
|
||||||
%78 = OpBitwiseOr %v3uint %77 %65
|
%76 = OpBitwiseOr %v3uint %75 %63
|
||||||
%79 = OpIAdd %v3uint %78 %71
|
%77 = OpIAdd %v3uint %76 %69
|
||||||
%74 = OpBitcast %v3int %79
|
%72 = OpBitcast %v3int %77
|
||||||
OpReturnValue %74
|
OpReturnValue %72
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_acfacb = OpFunction %void None %80
|
%countTrailingZeros_acfacb = OpFunction %void None %78
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3int Function %85
|
%res = OpVariable %_ptr_Function_v3int Function %83
|
||||||
%84 = OpFunctionCall %v3int %tint_count_trailing_zeros %85
|
%82 = OpFunctionCall %v3int %tint_count_trailing_zeros %83
|
||||||
OpStore %res %84
|
OpStore %res %82
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %88
|
%vertex_main_inner = OpFunction %v4float None %86
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %void %countTrailingZeros_acfacb
|
%89 = OpFunctionCall %void %countTrailingZeros_acfacb
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %80
|
%vertex_main = OpFunction %void None %78
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %v4float %vertex_main_inner
|
%92 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %94
|
OpStore %value %92
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %80
|
%fragment_main = OpFunction %void None %78
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %countTrailingZeros_acfacb
|
%96 = OpFunctionCall %void %countTrailingZeros_acfacb
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %80
|
%compute_main = OpFunction %void None %78
|
||||||
%100 = OpLabel
|
%98 = OpLabel
|
||||||
%101 = OpFunctionCall %void %countTrailingZeros_acfacb
|
%99 = OpFunctionCall %void %countTrailingZeros_acfacb
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 98
|
; Bound: 96
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -40,27 +40,25 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%25 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
%25 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%28 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%30 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%28 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%37 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
%35 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%38 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%47 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
%45 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%50 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%48 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%57 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
%55 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%60 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%58 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%78 = OpTypeFunction %void
|
%76 = OpTypeFunction %void
|
||||||
%84 = OpTypeFunction %v4float
|
%82 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_count_trailing_zeros = OpFunction %v4uint None %9
|
%tint_count_trailing_zeros = OpFunction %v4uint None %9
|
||||||
%v = OpFunctionParameter %v4uint
|
%v = OpFunctionParameter %v4uint
|
||||||
|
@ -70,71 +68,71 @@
|
||||||
%23 = OpLoad %v4uint %x
|
%23 = OpLoad %v4uint %x
|
||||||
%26 = OpBitwiseAnd %v4uint %23 %25
|
%26 = OpBitwiseAnd %v4uint %23 %25
|
||||||
%20 = OpINotEqual %v4bool %26 %18
|
%20 = OpINotEqual %v4bool %26 %18
|
||||||
%19 = OpSelect %v4uint %20 %28 %30
|
%19 = OpSelect %v4uint %20 %18 %28
|
||||||
%31 = OpLoad %v4uint %x
|
%29 = OpLoad %v4uint %x
|
||||||
%32 = OpShiftRightLogical %v4uint %31 %19
|
%30 = OpShiftRightLogical %v4uint %29 %19
|
||||||
OpStore %x %32
|
OpStore %x %30
|
||||||
%35 = OpLoad %v4uint %x
|
%33 = OpLoad %v4uint %x
|
||||||
%38 = OpBitwiseAnd %v4uint %35 %37
|
%36 = OpBitwiseAnd %v4uint %33 %35
|
||||||
%34 = OpINotEqual %v4bool %38 %18
|
%32 = OpINotEqual %v4bool %36 %18
|
||||||
%33 = OpSelect %v4uint %34 %28 %40
|
%31 = OpSelect %v4uint %32 %18 %38
|
||||||
%41 = OpLoad %v4uint %x
|
%39 = OpLoad %v4uint %x
|
||||||
%42 = OpShiftRightLogical %v4uint %41 %33
|
%40 = OpShiftRightLogical %v4uint %39 %31
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%45 = OpLoad %v4uint %x
|
%43 = OpLoad %v4uint %x
|
||||||
%48 = OpBitwiseAnd %v4uint %45 %47
|
%46 = OpBitwiseAnd %v4uint %43 %45
|
||||||
%44 = OpINotEqual %v4bool %48 %18
|
%42 = OpINotEqual %v4bool %46 %18
|
||||||
%43 = OpSelect %v4uint %44 %28 %50
|
%41 = OpSelect %v4uint %42 %18 %48
|
||||||
%51 = OpLoad %v4uint %x
|
%49 = OpLoad %v4uint %x
|
||||||
%52 = OpShiftRightLogical %v4uint %51 %43
|
%50 = OpShiftRightLogical %v4uint %49 %41
|
||||||
OpStore %x %52
|
OpStore %x %50
|
||||||
%55 = OpLoad %v4uint %x
|
%53 = OpLoad %v4uint %x
|
||||||
%58 = OpBitwiseAnd %v4uint %55 %57
|
%56 = OpBitwiseAnd %v4uint %53 %55
|
||||||
%54 = OpINotEqual %v4bool %58 %18
|
%52 = OpINotEqual %v4bool %56 %18
|
||||||
%53 = OpSelect %v4uint %54 %28 %60
|
%51 = OpSelect %v4uint %52 %18 %58
|
||||||
%61 = OpLoad %v4uint %x
|
%59 = OpLoad %v4uint %x
|
||||||
%62 = OpShiftRightLogical %v4uint %61 %53
|
%60 = OpShiftRightLogical %v4uint %59 %51
|
||||||
OpStore %x %62
|
OpStore %x %60
|
||||||
%65 = OpLoad %v4uint %x
|
%63 = OpLoad %v4uint %x
|
||||||
%68 = OpBitwiseAnd %v4uint %65 %67
|
%66 = OpBitwiseAnd %v4uint %63 %65
|
||||||
%64 = OpINotEqual %v4bool %68 %18
|
%62 = OpINotEqual %v4bool %66 %18
|
||||||
%63 = OpSelect %v4uint %64 %28 %67
|
%61 = OpSelect %v4uint %62 %18 %65
|
||||||
%70 = OpLoad %v4uint %x
|
%68 = OpLoad %v4uint %x
|
||||||
%71 = OpIEqual %v4bool %70 %28
|
%69 = OpIEqual %v4bool %68 %18
|
||||||
%69 = OpSelect %v4uint %71 %67 %28
|
%67 = OpSelect %v4uint %69 %65 %18
|
||||||
%73 = OpBitwiseOr %v4uint %19 %33
|
%71 = OpBitwiseOr %v4uint %19 %31
|
||||||
%74 = OpBitwiseOr %v4uint %73 %43
|
%72 = OpBitwiseOr %v4uint %71 %41
|
||||||
%75 = OpBitwiseOr %v4uint %74 %53
|
%73 = OpBitwiseOr %v4uint %72 %51
|
||||||
%76 = OpBitwiseOr %v4uint %75 %63
|
%74 = OpBitwiseOr %v4uint %73 %61
|
||||||
%77 = OpIAdd %v4uint %76 %69
|
%75 = OpIAdd %v4uint %74 %67
|
||||||
OpReturnValue %77
|
OpReturnValue %75
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%countTrailingZeros_d2b4a0 = OpFunction %void None %78
|
%countTrailingZeros_d2b4a0 = OpFunction %void None %76
|
||||||
%81 = OpLabel
|
%79 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4uint Function %18
|
%res = OpVariable %_ptr_Function_v4uint Function %18
|
||||||
%82 = OpFunctionCall %v4uint %tint_count_trailing_zeros %18
|
%80 = OpFunctionCall %v4uint %tint_count_trailing_zeros %18
|
||||||
OpStore %res %82
|
OpStore %res %80
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %84
|
%vertex_main_inner = OpFunction %v4float None %82
|
||||||
%86 = OpLabel
|
%84 = OpLabel
|
||||||
%87 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
%85 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %78
|
%vertex_main = OpFunction %void None %76
|
||||||
%89 = OpLabel
|
%87 = OpLabel
|
||||||
%90 = OpFunctionCall %v4float %vertex_main_inner
|
%88 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %90
|
OpStore %value %88
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %78
|
%fragment_main = OpFunction %void None %76
|
||||||
%93 = OpLabel
|
%91 = OpLabel
|
||||||
%94 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
%92 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %78
|
%compute_main = OpFunction %void None %76
|
||||||
%96 = OpLabel
|
%94 = OpLabel
|
||||||
%97 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
%95 = OpFunctionCall %void %countTrailingZeros_d2b4a0
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%24 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
|
%24 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%27 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%36 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
|
%34 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%39 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%37 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%46 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
|
%44 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%47 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%56 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
|
%54 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%59 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%57 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%72 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
%70 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%79 = OpTypeFunction %void
|
%77 = OpTypeFunction %void
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v4uint None %9
|
%tint_first_leading_bit = OpFunction %v4uint None %9
|
||||||
%v = OpFunctionParameter %v4uint
|
%v = OpFunctionParameter %v4uint
|
||||||
|
@ -72,71 +70,71 @@
|
||||||
%22 = OpLoad %v4uint %x
|
%22 = OpLoad %v4uint %x
|
||||||
%25 = OpBitwiseAnd %v4uint %22 %24
|
%25 = OpBitwiseAnd %v4uint %22 %24
|
||||||
%19 = OpINotEqual %v4bool %25 %17
|
%19 = OpINotEqual %v4bool %25 %17
|
||||||
%18 = OpSelect %v4uint %19 %27 %29
|
%18 = OpSelect %v4uint %19 %27 %17
|
||||||
%30 = OpLoad %v4uint %x
|
%28 = OpLoad %v4uint %x
|
||||||
%31 = OpShiftRightLogical %v4uint %30 %18
|
%29 = OpShiftRightLogical %v4uint %28 %18
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%34 = OpLoad %v4uint %x
|
%32 = OpLoad %v4uint %x
|
||||||
%37 = OpBitwiseAnd %v4uint %34 %36
|
%35 = OpBitwiseAnd %v4uint %32 %34
|
||||||
%33 = OpINotEqual %v4bool %37 %17
|
%31 = OpINotEqual %v4bool %35 %17
|
||||||
%32 = OpSelect %v4uint %33 %39 %29
|
%30 = OpSelect %v4uint %31 %37 %17
|
||||||
%40 = OpLoad %v4uint %x
|
%38 = OpLoad %v4uint %x
|
||||||
%41 = OpShiftRightLogical %v4uint %40 %32
|
%39 = OpShiftRightLogical %v4uint %38 %30
|
||||||
OpStore %x %41
|
OpStore %x %39
|
||||||
%44 = OpLoad %v4uint %x
|
%42 = OpLoad %v4uint %x
|
||||||
%47 = OpBitwiseAnd %v4uint %44 %46
|
%45 = OpBitwiseAnd %v4uint %42 %44
|
||||||
%43 = OpINotEqual %v4bool %47 %17
|
%41 = OpINotEqual %v4bool %45 %17
|
||||||
%42 = OpSelect %v4uint %43 %49 %29
|
%40 = OpSelect %v4uint %41 %47 %17
|
||||||
%50 = OpLoad %v4uint %x
|
%48 = OpLoad %v4uint %x
|
||||||
%51 = OpShiftRightLogical %v4uint %50 %42
|
%49 = OpShiftRightLogical %v4uint %48 %40
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%54 = OpLoad %v4uint %x
|
%52 = OpLoad %v4uint %x
|
||||||
%57 = OpBitwiseAnd %v4uint %54 %56
|
%55 = OpBitwiseAnd %v4uint %52 %54
|
||||||
%53 = OpINotEqual %v4bool %57 %17
|
%51 = OpINotEqual %v4bool %55 %17
|
||||||
%52 = OpSelect %v4uint %53 %59 %29
|
%50 = OpSelect %v4uint %51 %57 %17
|
||||||
%60 = OpLoad %v4uint %x
|
%58 = OpLoad %v4uint %x
|
||||||
%61 = OpShiftRightLogical %v4uint %60 %52
|
%59 = OpShiftRightLogical %v4uint %58 %50
|
||||||
OpStore %x %61
|
OpStore %x %59
|
||||||
%64 = OpLoad %v4uint %x
|
%62 = OpLoad %v4uint %x
|
||||||
%65 = OpBitwiseAnd %v4uint %64 %59
|
%63 = OpBitwiseAnd %v4uint %62 %57
|
||||||
%63 = OpINotEqual %v4bool %65 %17
|
%61 = OpINotEqual %v4bool %63 %17
|
||||||
%62 = OpSelect %v4uint %63 %67 %29
|
%60 = OpSelect %v4uint %61 %65 %17
|
||||||
%69 = OpLoad %v4uint %x
|
%67 = OpLoad %v4uint %x
|
||||||
%70 = OpIEqual %v4bool %69 %29
|
%68 = OpIEqual %v4bool %67 %17
|
||||||
%68 = OpSelect %v4uint %70 %72 %29
|
%66 = OpSelect %v4uint %68 %70 %17
|
||||||
%74 = OpBitwiseOr %v4uint %18 %32
|
%72 = OpBitwiseOr %v4uint %18 %30
|
||||||
%75 = OpBitwiseOr %v4uint %74 %42
|
%73 = OpBitwiseOr %v4uint %72 %40
|
||||||
%76 = OpBitwiseOr %v4uint %75 %52
|
%74 = OpBitwiseOr %v4uint %73 %50
|
||||||
%77 = OpBitwiseOr %v4uint %76 %62
|
%75 = OpBitwiseOr %v4uint %74 %60
|
||||||
%78 = OpBitwiseOr %v4uint %77 %68
|
%76 = OpBitwiseOr %v4uint %75 %66
|
||||||
OpReturnValue %78
|
OpReturnValue %76
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_000ff3 = OpFunction %void None %79
|
%firstLeadingBit_000ff3 = OpFunction %void None %77
|
||||||
%82 = OpLabel
|
%80 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4uint Function %17
|
%res = OpVariable %_ptr_Function_v4uint Function %17
|
||||||
%83 = OpFunctionCall %v4uint %tint_first_leading_bit %17
|
%81 = OpFunctionCall %v4uint %tint_first_leading_bit %17
|
||||||
OpStore %res %83
|
OpStore %res %81
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %firstLeadingBit_000ff3
|
%86 = OpFunctionCall %void %firstLeadingBit_000ff3
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %79
|
%vertex_main = OpFunction %void None %77
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %79
|
%fragment_main = OpFunction %void None %77
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %firstLeadingBit_000ff3
|
%93 = OpFunctionCall %void %firstLeadingBit_000ff3
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %79
|
%compute_main = OpFunction %void None %77
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %firstLeadingBit_000ff3
|
%96 = OpFunctionCall %void %firstLeadingBit_000ff3
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 110
|
; Bound: 106
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -36,119 +36,115 @@
|
||||||
%9 = OpTypeFunction %v3int %v3int
|
%9 = OpTypeFunction %v3int %v3int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%v3uint = OpTypeVector %uint 3
|
%v3uint = OpTypeVector %uint 3
|
||||||
%int_0 = OpConstant %int 0
|
%18 = OpConstantNull %v3int
|
||||||
%19 = OpConstantComposite %v3int %int_0 %int_0 %int_0
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v3bool = OpTypeVector %bool 3
|
%v3bool = OpTypeVector %bool 3
|
||||||
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
%_ptr_Function_v3uint = OpTypePointer Function %v3uint
|
||||||
%28 = OpConstantNull %v3uint
|
%27 = OpConstantNull %v3uint
|
||||||
%uint_4294901760 = OpConstant %uint 4294901760
|
%uint_4294901760 = OpConstant %uint 4294901760
|
||||||
%33 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
|
%32 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%36 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%35 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%38 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%45 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
|
%42 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%48 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%45 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%55 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
|
%52 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%58 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%55 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%65 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
|
%62 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%68 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%65 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%76 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%73 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%81 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
|
%78 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%88 = OpTypeFunction %void
|
%85 = OpTypeFunction %void
|
||||||
%93 = OpConstantNull %v3int
|
|
||||||
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
%_ptr_Function_v3int = OpTypePointer Function %v3int
|
||||||
%96 = OpTypeFunction %v4float
|
%92 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v3int None %9
|
%tint_first_leading_bit = OpFunction %v3int None %9
|
||||||
%v = OpFunctionParameter %v3int
|
%v = OpFunctionParameter %v3int
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%x = OpVariable %_ptr_Function_v3uint Function %28
|
%x = OpVariable %_ptr_Function_v3uint Function %27
|
||||||
%20 = OpSLessThan %v3bool %v %19
|
%19 = OpSLessThan %v3bool %v %18
|
||||||
%24 = OpNot %v3int %v
|
%23 = OpNot %v3int %v
|
||||||
%23 = OpBitcast %v3uint %24
|
%22 = OpBitcast %v3uint %23
|
||||||
%25 = OpBitcast %v3uint %v
|
%24 = OpBitcast %v3uint %v
|
||||||
%15 = OpSelect %v3uint %20 %23 %25
|
%15 = OpSelect %v3uint %19 %22 %24
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%31 = OpLoad %v3uint %x
|
%30 = OpLoad %v3uint %x
|
||||||
%34 = OpBitwiseAnd %v3uint %31 %33
|
%33 = OpBitwiseAnd %v3uint %30 %32
|
||||||
%30 = OpINotEqual %v3bool %34 %28
|
%29 = OpINotEqual %v3bool %33 %27
|
||||||
%29 = OpSelect %v3uint %30 %36 %38
|
%28 = OpSelect %v3uint %29 %35 %27
|
||||||
%39 = OpLoad %v3uint %x
|
%36 = OpLoad %v3uint %x
|
||||||
%40 = OpShiftRightLogical %v3uint %39 %29
|
%37 = OpShiftRightLogical %v3uint %36 %28
|
||||||
OpStore %x %40
|
OpStore %x %37
|
||||||
%43 = OpLoad %v3uint %x
|
%40 = OpLoad %v3uint %x
|
||||||
%46 = OpBitwiseAnd %v3uint %43 %45
|
%43 = OpBitwiseAnd %v3uint %40 %42
|
||||||
%42 = OpINotEqual %v3bool %46 %28
|
%39 = OpINotEqual %v3bool %43 %27
|
||||||
%41 = OpSelect %v3uint %42 %48 %38
|
%38 = OpSelect %v3uint %39 %45 %27
|
||||||
%49 = OpLoad %v3uint %x
|
%46 = OpLoad %v3uint %x
|
||||||
%50 = OpShiftRightLogical %v3uint %49 %41
|
%47 = OpShiftRightLogical %v3uint %46 %38
|
||||||
OpStore %x %50
|
OpStore %x %47
|
||||||
%53 = OpLoad %v3uint %x
|
%50 = OpLoad %v3uint %x
|
||||||
%56 = OpBitwiseAnd %v3uint %53 %55
|
%53 = OpBitwiseAnd %v3uint %50 %52
|
||||||
%52 = OpINotEqual %v3bool %56 %28
|
%49 = OpINotEqual %v3bool %53 %27
|
||||||
%51 = OpSelect %v3uint %52 %58 %38
|
%48 = OpSelect %v3uint %49 %55 %27
|
||||||
%59 = OpLoad %v3uint %x
|
%56 = OpLoad %v3uint %x
|
||||||
%60 = OpShiftRightLogical %v3uint %59 %51
|
%57 = OpShiftRightLogical %v3uint %56 %48
|
||||||
OpStore %x %60
|
OpStore %x %57
|
||||||
%63 = OpLoad %v3uint %x
|
%60 = OpLoad %v3uint %x
|
||||||
%66 = OpBitwiseAnd %v3uint %63 %65
|
%63 = OpBitwiseAnd %v3uint %60 %62
|
||||||
%62 = OpINotEqual %v3bool %66 %28
|
%59 = OpINotEqual %v3bool %63 %27
|
||||||
%61 = OpSelect %v3uint %62 %68 %38
|
%58 = OpSelect %v3uint %59 %65 %27
|
||||||
%69 = OpLoad %v3uint %x
|
%66 = OpLoad %v3uint %x
|
||||||
%70 = OpShiftRightLogical %v3uint %69 %61
|
%67 = OpShiftRightLogical %v3uint %66 %58
|
||||||
OpStore %x %70
|
OpStore %x %67
|
||||||
%73 = OpLoad %v3uint %x
|
%70 = OpLoad %v3uint %x
|
||||||
%74 = OpBitwiseAnd %v3uint %73 %68
|
%71 = OpBitwiseAnd %v3uint %70 %65
|
||||||
%72 = OpINotEqual %v3bool %74 %28
|
%69 = OpINotEqual %v3bool %71 %27
|
||||||
%71 = OpSelect %v3uint %72 %76 %38
|
%68 = OpSelect %v3uint %69 %73 %27
|
||||||
%78 = OpLoad %v3uint %x
|
%75 = OpLoad %v3uint %x
|
||||||
%79 = OpIEqual %v3bool %78 %38
|
%76 = OpIEqual %v3bool %75 %27
|
||||||
%77 = OpSelect %v3uint %79 %81 %38
|
%74 = OpSelect %v3uint %76 %78 %27
|
||||||
%83 = OpBitwiseOr %v3uint %29 %41
|
%80 = OpBitwiseOr %v3uint %28 %38
|
||||||
%84 = OpBitwiseOr %v3uint %83 %51
|
%81 = OpBitwiseOr %v3uint %80 %48
|
||||||
%85 = OpBitwiseOr %v3uint %84 %61
|
%82 = OpBitwiseOr %v3uint %81 %58
|
||||||
%86 = OpBitwiseOr %v3uint %85 %71
|
%83 = OpBitwiseOr %v3uint %82 %68
|
||||||
%87 = OpBitwiseOr %v3uint %86 %77
|
%84 = OpBitwiseOr %v3uint %83 %74
|
||||||
%82 = OpBitcast %v3int %87
|
%79 = OpBitcast %v3int %84
|
||||||
OpReturnValue %82
|
OpReturnValue %79
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_35053e = OpFunction %void None %88
|
%firstLeadingBit_35053e = OpFunction %void None %85
|
||||||
%91 = OpLabel
|
%88 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3int Function %93
|
%res = OpVariable %_ptr_Function_v3int Function %18
|
||||||
%92 = OpFunctionCall %v3int %tint_first_leading_bit %93
|
%89 = OpFunctionCall %v3int %tint_first_leading_bit %18
|
||||||
OpStore %res %92
|
OpStore %res %89
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %96
|
%vertex_main_inner = OpFunction %v4float None %92
|
||||||
%98 = OpLabel
|
%94 = OpLabel
|
||||||
%99 = OpFunctionCall %void %firstLeadingBit_35053e
|
%95 = OpFunctionCall %void %firstLeadingBit_35053e
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %88
|
%vertex_main = OpFunction %void None %85
|
||||||
%101 = OpLabel
|
%97 = OpLabel
|
||||||
%102 = OpFunctionCall %v4float %vertex_main_inner
|
%98 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %102
|
OpStore %value %98
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %88
|
%fragment_main = OpFunction %void None %85
|
||||||
%105 = OpLabel
|
%101 = OpLabel
|
||||||
%106 = OpFunctionCall %void %firstLeadingBit_35053e
|
%102 = OpFunctionCall %void %firstLeadingBit_35053e
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %88
|
%compute_main = OpFunction %void None %85
|
||||||
%108 = OpLabel
|
%104 = OpLabel
|
||||||
%109 = OpFunctionCall %void %firstLeadingBit_35053e
|
%105 = OpFunctionCall %void %firstLeadingBit_35053e
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%24 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
|
%24 = OpConstantComposite %v3uint %uint_4294901760 %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
%27 = OpConstantComposite %v3uint %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v3uint %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%36 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
|
%34 = OpConstantComposite %v3uint %uint_65280 %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%39 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
%37 = OpConstantComposite %v3uint %uint_8 %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%46 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
|
%44 = OpConstantComposite %v3uint %uint_240 %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
%47 = OpConstantComposite %v3uint %uint_4 %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%56 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
|
%54 = OpConstantComposite %v3uint %uint_12 %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%59 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
%57 = OpConstantComposite %v3uint %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v3uint %uint_1 %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%72 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
|
%70 = OpConstantComposite %v3uint %uint_4294967295 %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%79 = OpTypeFunction %void
|
%77 = OpTypeFunction %void
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v3uint None %9
|
%tint_first_leading_bit = OpFunction %v3uint None %9
|
||||||
%v = OpFunctionParameter %v3uint
|
%v = OpFunctionParameter %v3uint
|
||||||
|
@ -72,71 +70,71 @@
|
||||||
%22 = OpLoad %v3uint %x
|
%22 = OpLoad %v3uint %x
|
||||||
%25 = OpBitwiseAnd %v3uint %22 %24
|
%25 = OpBitwiseAnd %v3uint %22 %24
|
||||||
%19 = OpINotEqual %v3bool %25 %17
|
%19 = OpINotEqual %v3bool %25 %17
|
||||||
%18 = OpSelect %v3uint %19 %27 %29
|
%18 = OpSelect %v3uint %19 %27 %17
|
||||||
%30 = OpLoad %v3uint %x
|
%28 = OpLoad %v3uint %x
|
||||||
%31 = OpShiftRightLogical %v3uint %30 %18
|
%29 = OpShiftRightLogical %v3uint %28 %18
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%34 = OpLoad %v3uint %x
|
%32 = OpLoad %v3uint %x
|
||||||
%37 = OpBitwiseAnd %v3uint %34 %36
|
%35 = OpBitwiseAnd %v3uint %32 %34
|
||||||
%33 = OpINotEqual %v3bool %37 %17
|
%31 = OpINotEqual %v3bool %35 %17
|
||||||
%32 = OpSelect %v3uint %33 %39 %29
|
%30 = OpSelect %v3uint %31 %37 %17
|
||||||
%40 = OpLoad %v3uint %x
|
%38 = OpLoad %v3uint %x
|
||||||
%41 = OpShiftRightLogical %v3uint %40 %32
|
%39 = OpShiftRightLogical %v3uint %38 %30
|
||||||
OpStore %x %41
|
OpStore %x %39
|
||||||
%44 = OpLoad %v3uint %x
|
%42 = OpLoad %v3uint %x
|
||||||
%47 = OpBitwiseAnd %v3uint %44 %46
|
%45 = OpBitwiseAnd %v3uint %42 %44
|
||||||
%43 = OpINotEqual %v3bool %47 %17
|
%41 = OpINotEqual %v3bool %45 %17
|
||||||
%42 = OpSelect %v3uint %43 %49 %29
|
%40 = OpSelect %v3uint %41 %47 %17
|
||||||
%50 = OpLoad %v3uint %x
|
%48 = OpLoad %v3uint %x
|
||||||
%51 = OpShiftRightLogical %v3uint %50 %42
|
%49 = OpShiftRightLogical %v3uint %48 %40
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%54 = OpLoad %v3uint %x
|
%52 = OpLoad %v3uint %x
|
||||||
%57 = OpBitwiseAnd %v3uint %54 %56
|
%55 = OpBitwiseAnd %v3uint %52 %54
|
||||||
%53 = OpINotEqual %v3bool %57 %17
|
%51 = OpINotEqual %v3bool %55 %17
|
||||||
%52 = OpSelect %v3uint %53 %59 %29
|
%50 = OpSelect %v3uint %51 %57 %17
|
||||||
%60 = OpLoad %v3uint %x
|
%58 = OpLoad %v3uint %x
|
||||||
%61 = OpShiftRightLogical %v3uint %60 %52
|
%59 = OpShiftRightLogical %v3uint %58 %50
|
||||||
OpStore %x %61
|
OpStore %x %59
|
||||||
%64 = OpLoad %v3uint %x
|
%62 = OpLoad %v3uint %x
|
||||||
%65 = OpBitwiseAnd %v3uint %64 %59
|
%63 = OpBitwiseAnd %v3uint %62 %57
|
||||||
%63 = OpINotEqual %v3bool %65 %17
|
%61 = OpINotEqual %v3bool %63 %17
|
||||||
%62 = OpSelect %v3uint %63 %67 %29
|
%60 = OpSelect %v3uint %61 %65 %17
|
||||||
%69 = OpLoad %v3uint %x
|
%67 = OpLoad %v3uint %x
|
||||||
%70 = OpIEqual %v3bool %69 %29
|
%68 = OpIEqual %v3bool %67 %17
|
||||||
%68 = OpSelect %v3uint %70 %72 %29
|
%66 = OpSelect %v3uint %68 %70 %17
|
||||||
%74 = OpBitwiseOr %v3uint %18 %32
|
%72 = OpBitwiseOr %v3uint %18 %30
|
||||||
%75 = OpBitwiseOr %v3uint %74 %42
|
%73 = OpBitwiseOr %v3uint %72 %40
|
||||||
%76 = OpBitwiseOr %v3uint %75 %52
|
%74 = OpBitwiseOr %v3uint %73 %50
|
||||||
%77 = OpBitwiseOr %v3uint %76 %62
|
%75 = OpBitwiseOr %v3uint %74 %60
|
||||||
%78 = OpBitwiseOr %v3uint %77 %68
|
%76 = OpBitwiseOr %v3uint %75 %66
|
||||||
OpReturnValue %78
|
OpReturnValue %76
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_3fd7d0 = OpFunction %void None %79
|
%firstLeadingBit_3fd7d0 = OpFunction %void None %77
|
||||||
%82 = OpLabel
|
%80 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v3uint Function %17
|
%res = OpVariable %_ptr_Function_v3uint Function %17
|
||||||
%83 = OpFunctionCall %v3uint %tint_first_leading_bit %17
|
%81 = OpFunctionCall %v3uint %tint_first_leading_bit %17
|
||||||
OpStore %res %83
|
OpStore %res %81
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
%86 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %79
|
%vertex_main = OpFunction %void None %77
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %79
|
%fragment_main = OpFunction %void None %77
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
%93 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %79
|
%compute_main = OpFunction %void None %77
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
%96 = OpFunctionCall %void %firstLeadingBit_3fd7d0
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 96
|
; Bound: 94
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -34,13 +34,12 @@
|
||||||
%int = OpTypeInt 32 1
|
%int = OpTypeInt 32 1
|
||||||
%9 = OpTypeFunction %int %int
|
%9 = OpTypeFunction %int %int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%int_0 = OpConstant %int 0
|
%16 = OpConstantNull %int
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%_ptr_Function_uint = OpTypePointer Function %uint
|
%_ptr_Function_uint = OpTypePointer Function %uint
|
||||||
%24 = OpConstantNull %uint
|
%24 = OpConstantNull %uint
|
||||||
%uint_4294901760 = OpConstant %uint 4294901760
|
%uint_4294901760 = OpConstant %uint 4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
|
@ -50,17 +49,16 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%73 = OpTypeFunction %void
|
%72 = OpTypeFunction %void
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%81 = OpConstantNull %int
|
%80 = OpTypeFunction %v4float
|
||||||
%82 = OpTypeFunction %v4float
|
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %int None %9
|
%tint_first_leading_bit = OpFunction %int None %9
|
||||||
%v = OpFunctionParameter %int
|
%v = OpFunctionParameter %int
|
||||||
%13 = OpLabel
|
%13 = OpLabel
|
||||||
%x = OpVariable %_ptr_Function_uint Function %24
|
%x = OpVariable %_ptr_Function_uint Function %24
|
||||||
%17 = OpSLessThan %bool %v %int_0
|
%17 = OpSLessThan %bool %v %16
|
||||||
%20 = OpNot %int %v
|
%20 = OpNot %int %v
|
||||||
%19 = OpBitcast %uint %20
|
%19 = OpBitcast %uint %20
|
||||||
%21 = OpBitcast %uint %v
|
%21 = OpBitcast %uint %v
|
||||||
|
@ -69,72 +67,72 @@
|
||||||
%27 = OpLoad %uint %x
|
%27 = OpLoad %uint %x
|
||||||
%29 = OpBitwiseAnd %uint %27 %uint_4294901760
|
%29 = OpBitwiseAnd %uint %27 %uint_4294901760
|
||||||
%26 = OpINotEqual %bool %29 %24
|
%26 = OpINotEqual %bool %29 %24
|
||||||
%25 = OpSelect %uint %26 %uint_16 %uint_0
|
%25 = OpSelect %uint %26 %uint_16 %24
|
||||||
%32 = OpLoad %uint %x
|
%31 = OpLoad %uint %x
|
||||||
%33 = OpShiftRightLogical %uint %32 %25
|
%32 = OpShiftRightLogical %uint %31 %25
|
||||||
OpStore %x %33
|
OpStore %x %32
|
||||||
%36 = OpLoad %uint %x
|
%35 = OpLoad %uint %x
|
||||||
%38 = OpBitwiseAnd %uint %36 %uint_65280
|
%37 = OpBitwiseAnd %uint %35 %uint_65280
|
||||||
%35 = OpINotEqual %bool %38 %24
|
%34 = OpINotEqual %bool %37 %24
|
||||||
%34 = OpSelect %uint %35 %uint_8 %uint_0
|
%33 = OpSelect %uint %34 %uint_8 %24
|
||||||
%40 = OpLoad %uint %x
|
%39 = OpLoad %uint %x
|
||||||
%41 = OpShiftRightLogical %uint %40 %34
|
%40 = OpShiftRightLogical %uint %39 %33
|
||||||
OpStore %x %41
|
OpStore %x %40
|
||||||
%44 = OpLoad %uint %x
|
%43 = OpLoad %uint %x
|
||||||
%46 = OpBitwiseAnd %uint %44 %uint_240
|
%45 = OpBitwiseAnd %uint %43 %uint_240
|
||||||
%43 = OpINotEqual %bool %46 %24
|
%42 = OpINotEqual %bool %45 %24
|
||||||
%42 = OpSelect %uint %43 %uint_4 %uint_0
|
%41 = OpSelect %uint %42 %uint_4 %24
|
||||||
%48 = OpLoad %uint %x
|
%47 = OpLoad %uint %x
|
||||||
%49 = OpShiftRightLogical %uint %48 %42
|
%48 = OpShiftRightLogical %uint %47 %41
|
||||||
OpStore %x %49
|
OpStore %x %48
|
||||||
%52 = OpLoad %uint %x
|
%51 = OpLoad %uint %x
|
||||||
%54 = OpBitwiseAnd %uint %52 %uint_12
|
%53 = OpBitwiseAnd %uint %51 %uint_12
|
||||||
%51 = OpINotEqual %bool %54 %24
|
%50 = OpINotEqual %bool %53 %24
|
||||||
%50 = OpSelect %uint %51 %uint_2 %uint_0
|
%49 = OpSelect %uint %50 %uint_2 %24
|
||||||
%56 = OpLoad %uint %x
|
%55 = OpLoad %uint %x
|
||||||
%57 = OpShiftRightLogical %uint %56 %50
|
%56 = OpShiftRightLogical %uint %55 %49
|
||||||
OpStore %x %57
|
OpStore %x %56
|
||||||
%60 = OpLoad %uint %x
|
%59 = OpLoad %uint %x
|
||||||
%61 = OpBitwiseAnd %uint %60 %uint_2
|
%60 = OpBitwiseAnd %uint %59 %uint_2
|
||||||
%59 = OpINotEqual %bool %61 %24
|
%58 = OpINotEqual %bool %60 %24
|
||||||
%58 = OpSelect %uint %59 %uint_1 %uint_0
|
%57 = OpSelect %uint %58 %uint_1 %24
|
||||||
%64 = OpLoad %uint %x
|
%63 = OpLoad %uint %x
|
||||||
%65 = OpIEqual %bool %64 %uint_0
|
%64 = OpIEqual %bool %63 %24
|
||||||
%63 = OpSelect %uint %65 %uint_4294967295 %uint_0
|
%62 = OpSelect %uint %64 %uint_4294967295 %24
|
||||||
%68 = OpBitwiseOr %uint %25 %34
|
%67 = OpBitwiseOr %uint %25 %33
|
||||||
%69 = OpBitwiseOr %uint %68 %42
|
%68 = OpBitwiseOr %uint %67 %41
|
||||||
%70 = OpBitwiseOr %uint %69 %50
|
%69 = OpBitwiseOr %uint %68 %49
|
||||||
%71 = OpBitwiseOr %uint %70 %58
|
%70 = OpBitwiseOr %uint %69 %57
|
||||||
%72 = OpBitwiseOr %uint %71 %63
|
%71 = OpBitwiseOr %uint %70 %62
|
||||||
%67 = OpBitcast %int %72
|
%66 = OpBitcast %int %71
|
||||||
OpReturnValue %67
|
OpReturnValue %66
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_57a1a3 = OpFunction %void None %73
|
%firstLeadingBit_57a1a3 = OpFunction %void None %72
|
||||||
%76 = OpLabel
|
%75 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_int Function %81
|
%res = OpVariable %_ptr_Function_int Function %16
|
||||||
%77 = OpFunctionCall %int %tint_first_leading_bit %int_1
|
%76 = OpFunctionCall %int %tint_first_leading_bit %int_1
|
||||||
OpStore %res %77
|
OpStore %res %76
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %82
|
%vertex_main_inner = OpFunction %v4float None %80
|
||||||
%84 = OpLabel
|
%82 = OpLabel
|
||||||
%85 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
%83 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %73
|
%vertex_main = OpFunction %void None %72
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %v4float %vertex_main_inner
|
%86 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %88
|
OpStore %value %86
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %73
|
%fragment_main = OpFunction %void None %72
|
||||||
%91 = OpLabel
|
%89 = OpLabel
|
||||||
%92 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
%90 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %73
|
%compute_main = OpFunction %void None %72
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
%93 = OpFunctionCall %void %firstLeadingBit_57a1a3
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 99
|
; Bound: 97
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -42,27 +42,25 @@
|
||||||
%24 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
|
%24 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%27 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%27 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%29 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%36 = OpConstantComposite %v2uint %uint_65280 %uint_65280
|
%34 = OpConstantComposite %v2uint %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%39 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%37 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%46 = OpConstantComposite %v2uint %uint_240 %uint_240
|
%44 = OpConstantComposite %v2uint %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%49 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%47 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%56 = OpConstantComposite %v2uint %uint_12 %uint_12
|
%54 = OpConstantComposite %v2uint %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%59 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%57 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%65 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%72 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
%70 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%79 = OpTypeFunction %void
|
%77 = OpTypeFunction %void
|
||||||
%85 = OpTypeFunction %v4float
|
%83 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v2uint None %9
|
%tint_first_leading_bit = OpFunction %v2uint None %9
|
||||||
%v = OpFunctionParameter %v2uint
|
%v = OpFunctionParameter %v2uint
|
||||||
|
@ -72,71 +70,71 @@
|
||||||
%22 = OpLoad %v2uint %x
|
%22 = OpLoad %v2uint %x
|
||||||
%25 = OpBitwiseAnd %v2uint %22 %24
|
%25 = OpBitwiseAnd %v2uint %22 %24
|
||||||
%19 = OpINotEqual %v2bool %25 %17
|
%19 = OpINotEqual %v2bool %25 %17
|
||||||
%18 = OpSelect %v2uint %19 %27 %29
|
%18 = OpSelect %v2uint %19 %27 %17
|
||||||
%30 = OpLoad %v2uint %x
|
%28 = OpLoad %v2uint %x
|
||||||
%31 = OpShiftRightLogical %v2uint %30 %18
|
%29 = OpShiftRightLogical %v2uint %28 %18
|
||||||
OpStore %x %31
|
OpStore %x %29
|
||||||
%34 = OpLoad %v2uint %x
|
%32 = OpLoad %v2uint %x
|
||||||
%37 = OpBitwiseAnd %v2uint %34 %36
|
%35 = OpBitwiseAnd %v2uint %32 %34
|
||||||
%33 = OpINotEqual %v2bool %37 %17
|
%31 = OpINotEqual %v2bool %35 %17
|
||||||
%32 = OpSelect %v2uint %33 %39 %29
|
%30 = OpSelect %v2uint %31 %37 %17
|
||||||
%40 = OpLoad %v2uint %x
|
%38 = OpLoad %v2uint %x
|
||||||
%41 = OpShiftRightLogical %v2uint %40 %32
|
%39 = OpShiftRightLogical %v2uint %38 %30
|
||||||
OpStore %x %41
|
OpStore %x %39
|
||||||
%44 = OpLoad %v2uint %x
|
%42 = OpLoad %v2uint %x
|
||||||
%47 = OpBitwiseAnd %v2uint %44 %46
|
%45 = OpBitwiseAnd %v2uint %42 %44
|
||||||
%43 = OpINotEqual %v2bool %47 %17
|
%41 = OpINotEqual %v2bool %45 %17
|
||||||
%42 = OpSelect %v2uint %43 %49 %29
|
%40 = OpSelect %v2uint %41 %47 %17
|
||||||
%50 = OpLoad %v2uint %x
|
%48 = OpLoad %v2uint %x
|
||||||
%51 = OpShiftRightLogical %v2uint %50 %42
|
%49 = OpShiftRightLogical %v2uint %48 %40
|
||||||
OpStore %x %51
|
OpStore %x %49
|
||||||
%54 = OpLoad %v2uint %x
|
%52 = OpLoad %v2uint %x
|
||||||
%57 = OpBitwiseAnd %v2uint %54 %56
|
%55 = OpBitwiseAnd %v2uint %52 %54
|
||||||
%53 = OpINotEqual %v2bool %57 %17
|
%51 = OpINotEqual %v2bool %55 %17
|
||||||
%52 = OpSelect %v2uint %53 %59 %29
|
%50 = OpSelect %v2uint %51 %57 %17
|
||||||
%60 = OpLoad %v2uint %x
|
%58 = OpLoad %v2uint %x
|
||||||
%61 = OpShiftRightLogical %v2uint %60 %52
|
%59 = OpShiftRightLogical %v2uint %58 %50
|
||||||
OpStore %x %61
|
OpStore %x %59
|
||||||
%64 = OpLoad %v2uint %x
|
%62 = OpLoad %v2uint %x
|
||||||
%65 = OpBitwiseAnd %v2uint %64 %59
|
%63 = OpBitwiseAnd %v2uint %62 %57
|
||||||
%63 = OpINotEqual %v2bool %65 %17
|
%61 = OpINotEqual %v2bool %63 %17
|
||||||
%62 = OpSelect %v2uint %63 %67 %29
|
%60 = OpSelect %v2uint %61 %65 %17
|
||||||
%69 = OpLoad %v2uint %x
|
%67 = OpLoad %v2uint %x
|
||||||
%70 = OpIEqual %v2bool %69 %29
|
%68 = OpIEqual %v2bool %67 %17
|
||||||
%68 = OpSelect %v2uint %70 %72 %29
|
%66 = OpSelect %v2uint %68 %70 %17
|
||||||
%74 = OpBitwiseOr %v2uint %18 %32
|
%72 = OpBitwiseOr %v2uint %18 %30
|
||||||
%75 = OpBitwiseOr %v2uint %74 %42
|
%73 = OpBitwiseOr %v2uint %72 %40
|
||||||
%76 = OpBitwiseOr %v2uint %75 %52
|
%74 = OpBitwiseOr %v2uint %73 %50
|
||||||
%77 = OpBitwiseOr %v2uint %76 %62
|
%75 = OpBitwiseOr %v2uint %74 %60
|
||||||
%78 = OpBitwiseOr %v2uint %77 %68
|
%76 = OpBitwiseOr %v2uint %75 %66
|
||||||
OpReturnValue %78
|
OpReturnValue %76
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_6fe804 = OpFunction %void None %79
|
%firstLeadingBit_6fe804 = OpFunction %void None %77
|
||||||
%82 = OpLabel
|
%80 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2uint Function %17
|
%res = OpVariable %_ptr_Function_v2uint Function %17
|
||||||
%83 = OpFunctionCall %v2uint %tint_first_leading_bit %17
|
%81 = OpFunctionCall %v2uint %tint_first_leading_bit %17
|
||||||
OpStore %res %83
|
OpStore %res %81
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %85
|
%vertex_main_inner = OpFunction %v4float None %83
|
||||||
%87 = OpLabel
|
%85 = OpLabel
|
||||||
%88 = OpFunctionCall %void %firstLeadingBit_6fe804
|
%86 = OpFunctionCall %void %firstLeadingBit_6fe804
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %79
|
%vertex_main = OpFunction %void None %77
|
||||||
%90 = OpLabel
|
%88 = OpLabel
|
||||||
%91 = OpFunctionCall %v4float %vertex_main_inner
|
%89 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %91
|
OpStore %value %89
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %79
|
%fragment_main = OpFunction %void None %77
|
||||||
%94 = OpLabel
|
%92 = OpLabel
|
||||||
%95 = OpFunctionCall %void %firstLeadingBit_6fe804
|
%93 = OpFunctionCall %void %firstLeadingBit_6fe804
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %79
|
%compute_main = OpFunction %void None %77
|
||||||
%97 = OpLabel
|
%95 = OpLabel
|
||||||
%98 = OpFunctionCall %void %firstLeadingBit_6fe804
|
%96 = OpFunctionCall %void %firstLeadingBit_6fe804
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 110
|
; Bound: 106
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -36,119 +36,115 @@
|
||||||
%9 = OpTypeFunction %v2int %v2int
|
%9 = OpTypeFunction %v2int %v2int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%v2uint = OpTypeVector %uint 2
|
%v2uint = OpTypeVector %uint 2
|
||||||
%int_0 = OpConstant %int 0
|
%18 = OpConstantNull %v2int
|
||||||
%19 = OpConstantComposite %v2int %int_0 %int_0
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
%_ptr_Function_v2uint = OpTypePointer Function %v2uint
|
||||||
%28 = OpConstantNull %v2uint
|
%27 = OpConstantNull %v2uint
|
||||||
%uint_4294901760 = OpConstant %uint 4294901760
|
%uint_4294901760 = OpConstant %uint 4294901760
|
||||||
%33 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
|
%32 = OpConstantComposite %v2uint %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%36 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%35 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%38 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%45 = OpConstantComposite %v2uint %uint_65280 %uint_65280
|
%42 = OpConstantComposite %v2uint %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%48 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%45 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%55 = OpConstantComposite %v2uint %uint_240 %uint_240
|
%52 = OpConstantComposite %v2uint %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%58 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%55 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%65 = OpConstantComposite %v2uint %uint_12 %uint_12
|
%62 = OpConstantComposite %v2uint %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%68 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%65 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%76 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%73 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%81 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
%78 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%88 = OpTypeFunction %void
|
%85 = OpTypeFunction %void
|
||||||
%93 = OpConstantNull %v2int
|
|
||||||
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
%_ptr_Function_v2int = OpTypePointer Function %v2int
|
||||||
%96 = OpTypeFunction %v4float
|
%92 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v2int None %9
|
%tint_first_leading_bit = OpFunction %v2int None %9
|
||||||
%v = OpFunctionParameter %v2int
|
%v = OpFunctionParameter %v2int
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%x = OpVariable %_ptr_Function_v2uint Function %28
|
%x = OpVariable %_ptr_Function_v2uint Function %27
|
||||||
%20 = OpSLessThan %v2bool %v %19
|
%19 = OpSLessThan %v2bool %v %18
|
||||||
%24 = OpNot %v2int %v
|
%23 = OpNot %v2int %v
|
||||||
%23 = OpBitcast %v2uint %24
|
%22 = OpBitcast %v2uint %23
|
||||||
%25 = OpBitcast %v2uint %v
|
%24 = OpBitcast %v2uint %v
|
||||||
%15 = OpSelect %v2uint %20 %23 %25
|
%15 = OpSelect %v2uint %19 %22 %24
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%31 = OpLoad %v2uint %x
|
%30 = OpLoad %v2uint %x
|
||||||
%34 = OpBitwiseAnd %v2uint %31 %33
|
%33 = OpBitwiseAnd %v2uint %30 %32
|
||||||
%30 = OpINotEqual %v2bool %34 %28
|
%29 = OpINotEqual %v2bool %33 %27
|
||||||
%29 = OpSelect %v2uint %30 %36 %38
|
%28 = OpSelect %v2uint %29 %35 %27
|
||||||
%39 = OpLoad %v2uint %x
|
%36 = OpLoad %v2uint %x
|
||||||
%40 = OpShiftRightLogical %v2uint %39 %29
|
%37 = OpShiftRightLogical %v2uint %36 %28
|
||||||
OpStore %x %40
|
OpStore %x %37
|
||||||
%43 = OpLoad %v2uint %x
|
%40 = OpLoad %v2uint %x
|
||||||
%46 = OpBitwiseAnd %v2uint %43 %45
|
%43 = OpBitwiseAnd %v2uint %40 %42
|
||||||
%42 = OpINotEqual %v2bool %46 %28
|
%39 = OpINotEqual %v2bool %43 %27
|
||||||
%41 = OpSelect %v2uint %42 %48 %38
|
%38 = OpSelect %v2uint %39 %45 %27
|
||||||
%49 = OpLoad %v2uint %x
|
%46 = OpLoad %v2uint %x
|
||||||
%50 = OpShiftRightLogical %v2uint %49 %41
|
%47 = OpShiftRightLogical %v2uint %46 %38
|
||||||
OpStore %x %50
|
OpStore %x %47
|
||||||
%53 = OpLoad %v2uint %x
|
%50 = OpLoad %v2uint %x
|
||||||
%56 = OpBitwiseAnd %v2uint %53 %55
|
%53 = OpBitwiseAnd %v2uint %50 %52
|
||||||
%52 = OpINotEqual %v2bool %56 %28
|
%49 = OpINotEqual %v2bool %53 %27
|
||||||
%51 = OpSelect %v2uint %52 %58 %38
|
%48 = OpSelect %v2uint %49 %55 %27
|
||||||
%59 = OpLoad %v2uint %x
|
%56 = OpLoad %v2uint %x
|
||||||
%60 = OpShiftRightLogical %v2uint %59 %51
|
%57 = OpShiftRightLogical %v2uint %56 %48
|
||||||
OpStore %x %60
|
OpStore %x %57
|
||||||
%63 = OpLoad %v2uint %x
|
%60 = OpLoad %v2uint %x
|
||||||
%66 = OpBitwiseAnd %v2uint %63 %65
|
%63 = OpBitwiseAnd %v2uint %60 %62
|
||||||
%62 = OpINotEqual %v2bool %66 %28
|
%59 = OpINotEqual %v2bool %63 %27
|
||||||
%61 = OpSelect %v2uint %62 %68 %38
|
%58 = OpSelect %v2uint %59 %65 %27
|
||||||
%69 = OpLoad %v2uint %x
|
%66 = OpLoad %v2uint %x
|
||||||
%70 = OpShiftRightLogical %v2uint %69 %61
|
%67 = OpShiftRightLogical %v2uint %66 %58
|
||||||
OpStore %x %70
|
OpStore %x %67
|
||||||
%73 = OpLoad %v2uint %x
|
%70 = OpLoad %v2uint %x
|
||||||
%74 = OpBitwiseAnd %v2uint %73 %68
|
%71 = OpBitwiseAnd %v2uint %70 %65
|
||||||
%72 = OpINotEqual %v2bool %74 %28
|
%69 = OpINotEqual %v2bool %71 %27
|
||||||
%71 = OpSelect %v2uint %72 %76 %38
|
%68 = OpSelect %v2uint %69 %73 %27
|
||||||
%78 = OpLoad %v2uint %x
|
%75 = OpLoad %v2uint %x
|
||||||
%79 = OpIEqual %v2bool %78 %38
|
%76 = OpIEqual %v2bool %75 %27
|
||||||
%77 = OpSelect %v2uint %79 %81 %38
|
%74 = OpSelect %v2uint %76 %78 %27
|
||||||
%83 = OpBitwiseOr %v2uint %29 %41
|
%80 = OpBitwiseOr %v2uint %28 %38
|
||||||
%84 = OpBitwiseOr %v2uint %83 %51
|
%81 = OpBitwiseOr %v2uint %80 %48
|
||||||
%85 = OpBitwiseOr %v2uint %84 %61
|
%82 = OpBitwiseOr %v2uint %81 %58
|
||||||
%86 = OpBitwiseOr %v2uint %85 %71
|
%83 = OpBitwiseOr %v2uint %82 %68
|
||||||
%87 = OpBitwiseOr %v2uint %86 %77
|
%84 = OpBitwiseOr %v2uint %83 %74
|
||||||
%82 = OpBitcast %v2int %87
|
%79 = OpBitcast %v2int %84
|
||||||
OpReturnValue %82
|
OpReturnValue %79
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_a622c2 = OpFunction %void None %88
|
%firstLeadingBit_a622c2 = OpFunction %void None %85
|
||||||
%91 = OpLabel
|
%88 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2int Function %93
|
%res = OpVariable %_ptr_Function_v2int Function %18
|
||||||
%92 = OpFunctionCall %v2int %tint_first_leading_bit %93
|
%89 = OpFunctionCall %v2int %tint_first_leading_bit %18
|
||||||
OpStore %res %92
|
OpStore %res %89
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %96
|
%vertex_main_inner = OpFunction %v4float None %92
|
||||||
%98 = OpLabel
|
%94 = OpLabel
|
||||||
%99 = OpFunctionCall %void %firstLeadingBit_a622c2
|
%95 = OpFunctionCall %void %firstLeadingBit_a622c2
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %88
|
%vertex_main = OpFunction %void None %85
|
||||||
%101 = OpLabel
|
%97 = OpLabel
|
||||||
%102 = OpFunctionCall %v4float %vertex_main_inner
|
%98 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %102
|
OpStore %value %98
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %88
|
%fragment_main = OpFunction %void None %85
|
||||||
%105 = OpLabel
|
%101 = OpLabel
|
||||||
%106 = OpFunctionCall %void %firstLeadingBit_a622c2
|
%102 = OpFunctionCall %void %firstLeadingBit_a622c2
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %88
|
%compute_main = OpFunction %void None %85
|
||||||
%108 = OpLabel
|
%104 = OpLabel
|
||||||
%109 = OpFunctionCall %void %firstLeadingBit_a622c2
|
%105 = OpFunctionCall %void %firstLeadingBit_a622c2
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 110
|
; Bound: 106
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -36,119 +36,115 @@
|
||||||
%9 = OpTypeFunction %v4int %v4int
|
%9 = OpTypeFunction %v4int %v4int
|
||||||
%uint = OpTypeInt 32 0
|
%uint = OpTypeInt 32 0
|
||||||
%v4uint = OpTypeVector %uint 4
|
%v4uint = OpTypeVector %uint 4
|
||||||
%int_0 = OpConstant %int 0
|
%18 = OpConstantNull %v4int
|
||||||
%19 = OpConstantComposite %v4int %int_0 %int_0 %int_0 %int_0
|
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
%_ptr_Function_v4uint = OpTypePointer Function %v4uint
|
||||||
%28 = OpConstantNull %v4uint
|
%27 = OpConstantNull %v4uint
|
||||||
%uint_4294901760 = OpConstant %uint 4294901760
|
%uint_4294901760 = OpConstant %uint 4294901760
|
||||||
%33 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
|
%32 = OpConstantComposite %v4uint %uint_4294901760 %uint_4294901760 %uint_4294901760 %uint_4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%36 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%35 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%38 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%45 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
|
%42 = OpConstantComposite %v4uint %uint_65280 %uint_65280 %uint_65280 %uint_65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%48 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%45 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
%55 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
|
%52 = OpConstantComposite %v4uint %uint_240 %uint_240 %uint_240 %uint_240
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%58 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%55 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_12 = OpConstant %uint 12
|
%uint_12 = OpConstant %uint 12
|
||||||
%65 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
|
%62 = OpConstantComposite %v4uint %uint_12 %uint_12 %uint_12 %uint_12
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%68 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%65 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%76 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%73 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%81 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
%78 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%88 = OpTypeFunction %void
|
%85 = OpTypeFunction %void
|
||||||
%93 = OpConstantNull %v4int
|
|
||||||
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
%_ptr_Function_v4int = OpTypePointer Function %v4int
|
||||||
%96 = OpTypeFunction %v4float
|
%92 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %v4int None %9
|
%tint_first_leading_bit = OpFunction %v4int None %9
|
||||||
%v = OpFunctionParameter %v4int
|
%v = OpFunctionParameter %v4int
|
||||||
%14 = OpLabel
|
%14 = OpLabel
|
||||||
%x = OpVariable %_ptr_Function_v4uint Function %28
|
%x = OpVariable %_ptr_Function_v4uint Function %27
|
||||||
%20 = OpSLessThan %v4bool %v %19
|
%19 = OpSLessThan %v4bool %v %18
|
||||||
%24 = OpNot %v4int %v
|
%23 = OpNot %v4int %v
|
||||||
%23 = OpBitcast %v4uint %24
|
%22 = OpBitcast %v4uint %23
|
||||||
%25 = OpBitcast %v4uint %v
|
%24 = OpBitcast %v4uint %v
|
||||||
%15 = OpSelect %v4uint %20 %23 %25
|
%15 = OpSelect %v4uint %19 %22 %24
|
||||||
OpStore %x %15
|
OpStore %x %15
|
||||||
%31 = OpLoad %v4uint %x
|
%30 = OpLoad %v4uint %x
|
||||||
%34 = OpBitwiseAnd %v4uint %31 %33
|
%33 = OpBitwiseAnd %v4uint %30 %32
|
||||||
%30 = OpINotEqual %v4bool %34 %28
|
%29 = OpINotEqual %v4bool %33 %27
|
||||||
%29 = OpSelect %v4uint %30 %36 %38
|
%28 = OpSelect %v4uint %29 %35 %27
|
||||||
%39 = OpLoad %v4uint %x
|
%36 = OpLoad %v4uint %x
|
||||||
%40 = OpShiftRightLogical %v4uint %39 %29
|
%37 = OpShiftRightLogical %v4uint %36 %28
|
||||||
OpStore %x %40
|
OpStore %x %37
|
||||||
%43 = OpLoad %v4uint %x
|
%40 = OpLoad %v4uint %x
|
||||||
%46 = OpBitwiseAnd %v4uint %43 %45
|
%43 = OpBitwiseAnd %v4uint %40 %42
|
||||||
%42 = OpINotEqual %v4bool %46 %28
|
%39 = OpINotEqual %v4bool %43 %27
|
||||||
%41 = OpSelect %v4uint %42 %48 %38
|
%38 = OpSelect %v4uint %39 %45 %27
|
||||||
%49 = OpLoad %v4uint %x
|
%46 = OpLoad %v4uint %x
|
||||||
%50 = OpShiftRightLogical %v4uint %49 %41
|
%47 = OpShiftRightLogical %v4uint %46 %38
|
||||||
OpStore %x %50
|
OpStore %x %47
|
||||||
%53 = OpLoad %v4uint %x
|
%50 = OpLoad %v4uint %x
|
||||||
%56 = OpBitwiseAnd %v4uint %53 %55
|
%53 = OpBitwiseAnd %v4uint %50 %52
|
||||||
%52 = OpINotEqual %v4bool %56 %28
|
%49 = OpINotEqual %v4bool %53 %27
|
||||||
%51 = OpSelect %v4uint %52 %58 %38
|
%48 = OpSelect %v4uint %49 %55 %27
|
||||||
%59 = OpLoad %v4uint %x
|
%56 = OpLoad %v4uint %x
|
||||||
%60 = OpShiftRightLogical %v4uint %59 %51
|
%57 = OpShiftRightLogical %v4uint %56 %48
|
||||||
OpStore %x %60
|
OpStore %x %57
|
||||||
%63 = OpLoad %v4uint %x
|
%60 = OpLoad %v4uint %x
|
||||||
%66 = OpBitwiseAnd %v4uint %63 %65
|
%63 = OpBitwiseAnd %v4uint %60 %62
|
||||||
%62 = OpINotEqual %v4bool %66 %28
|
%59 = OpINotEqual %v4bool %63 %27
|
||||||
%61 = OpSelect %v4uint %62 %68 %38
|
%58 = OpSelect %v4uint %59 %65 %27
|
||||||
%69 = OpLoad %v4uint %x
|
%66 = OpLoad %v4uint %x
|
||||||
%70 = OpShiftRightLogical %v4uint %69 %61
|
%67 = OpShiftRightLogical %v4uint %66 %58
|
||||||
OpStore %x %70
|
OpStore %x %67
|
||||||
%73 = OpLoad %v4uint %x
|
%70 = OpLoad %v4uint %x
|
||||||
%74 = OpBitwiseAnd %v4uint %73 %68
|
%71 = OpBitwiseAnd %v4uint %70 %65
|
||||||
%72 = OpINotEqual %v4bool %74 %28
|
%69 = OpINotEqual %v4bool %71 %27
|
||||||
%71 = OpSelect %v4uint %72 %76 %38
|
%68 = OpSelect %v4uint %69 %73 %27
|
||||||
%78 = OpLoad %v4uint %x
|
%75 = OpLoad %v4uint %x
|
||||||
%79 = OpIEqual %v4bool %78 %38
|
%76 = OpIEqual %v4bool %75 %27
|
||||||
%77 = OpSelect %v4uint %79 %81 %38
|
%74 = OpSelect %v4uint %76 %78 %27
|
||||||
%83 = OpBitwiseOr %v4uint %29 %41
|
%80 = OpBitwiseOr %v4uint %28 %38
|
||||||
%84 = OpBitwiseOr %v4uint %83 %51
|
%81 = OpBitwiseOr %v4uint %80 %48
|
||||||
%85 = OpBitwiseOr %v4uint %84 %61
|
%82 = OpBitwiseOr %v4uint %81 %58
|
||||||
%86 = OpBitwiseOr %v4uint %85 %71
|
%83 = OpBitwiseOr %v4uint %82 %68
|
||||||
%87 = OpBitwiseOr %v4uint %86 %77
|
%84 = OpBitwiseOr %v4uint %83 %74
|
||||||
%82 = OpBitcast %v4int %87
|
%79 = OpBitcast %v4int %84
|
||||||
OpReturnValue %82
|
OpReturnValue %79
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_c1f940 = OpFunction %void None %88
|
%firstLeadingBit_c1f940 = OpFunction %void None %85
|
||||||
%91 = OpLabel
|
%88 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4int Function %93
|
%res = OpVariable %_ptr_Function_v4int Function %18
|
||||||
%92 = OpFunctionCall %v4int %tint_first_leading_bit %93
|
%89 = OpFunctionCall %v4int %tint_first_leading_bit %18
|
||||||
OpStore %res %92
|
OpStore %res %89
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %96
|
%vertex_main_inner = OpFunction %v4float None %92
|
||||||
%98 = OpLabel
|
%94 = OpLabel
|
||||||
%99 = OpFunctionCall %void %firstLeadingBit_c1f940
|
%95 = OpFunctionCall %void %firstLeadingBit_c1f940
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %88
|
%vertex_main = OpFunction %void None %85
|
||||||
%101 = OpLabel
|
%97 = OpLabel
|
||||||
%102 = OpFunctionCall %v4float %vertex_main_inner
|
%98 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %102
|
OpStore %value %98
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %88
|
%fragment_main = OpFunction %void None %85
|
||||||
%105 = OpLabel
|
%101 = OpLabel
|
||||||
%106 = OpFunctionCall %void %firstLeadingBit_c1f940
|
%102 = OpFunctionCall %void %firstLeadingBit_c1f940
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %88
|
%compute_main = OpFunction %void None %85
|
||||||
%108 = OpLabel
|
%104 = OpLabel
|
||||||
%109 = OpFunctionCall %void %firstLeadingBit_c1f940
|
%105 = OpFunctionCall %void %firstLeadingBit_c1f940
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 86
|
; Bound: 85
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_4294901760 = OpConstant %uint 4294901760
|
%uint_4294901760 = OpConstant %uint 4294901760
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_65280 = OpConstant %uint 65280
|
%uint_65280 = OpConstant %uint 65280
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%uint_240 = OpConstant %uint 240
|
%uint_240 = OpConstant %uint 240
|
||||||
|
@ -48,8 +47,8 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%66 = OpTypeFunction %void
|
%65 = OpTypeFunction %void
|
||||||
%72 = OpTypeFunction %v4float
|
%71 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_leading_bit = OpFunction %uint None %9
|
%tint_first_leading_bit = OpFunction %uint None %9
|
||||||
%v = OpFunctionParameter %uint
|
%v = OpFunctionParameter %uint
|
||||||
|
@ -59,71 +58,71 @@
|
||||||
%20 = OpLoad %uint %x
|
%20 = OpLoad %uint %x
|
||||||
%22 = OpBitwiseAnd %uint %20 %uint_4294901760
|
%22 = OpBitwiseAnd %uint %20 %uint_4294901760
|
||||||
%18 = OpINotEqual %bool %22 %16
|
%18 = OpINotEqual %bool %22 %16
|
||||||
%17 = OpSelect %uint %18 %uint_16 %uint_0
|
%17 = OpSelect %uint %18 %uint_16 %16
|
||||||
%25 = OpLoad %uint %x
|
%24 = OpLoad %uint %x
|
||||||
%26 = OpShiftRightLogical %uint %25 %17
|
%25 = OpShiftRightLogical %uint %24 %17
|
||||||
OpStore %x %26
|
OpStore %x %25
|
||||||
%29 = OpLoad %uint %x
|
%28 = OpLoad %uint %x
|
||||||
%31 = OpBitwiseAnd %uint %29 %uint_65280
|
%30 = OpBitwiseAnd %uint %28 %uint_65280
|
||||||
%28 = OpINotEqual %bool %31 %16
|
%27 = OpINotEqual %bool %30 %16
|
||||||
%27 = OpSelect %uint %28 %uint_8 %uint_0
|
%26 = OpSelect %uint %27 %uint_8 %16
|
||||||
%33 = OpLoad %uint %x
|
%32 = OpLoad %uint %x
|
||||||
%34 = OpShiftRightLogical %uint %33 %27
|
%33 = OpShiftRightLogical %uint %32 %26
|
||||||
OpStore %x %34
|
OpStore %x %33
|
||||||
%37 = OpLoad %uint %x
|
%36 = OpLoad %uint %x
|
||||||
%39 = OpBitwiseAnd %uint %37 %uint_240
|
%38 = OpBitwiseAnd %uint %36 %uint_240
|
||||||
%36 = OpINotEqual %bool %39 %16
|
%35 = OpINotEqual %bool %38 %16
|
||||||
%35 = OpSelect %uint %36 %uint_4 %uint_0
|
%34 = OpSelect %uint %35 %uint_4 %16
|
||||||
%41 = OpLoad %uint %x
|
%40 = OpLoad %uint %x
|
||||||
%42 = OpShiftRightLogical %uint %41 %35
|
%41 = OpShiftRightLogical %uint %40 %34
|
||||||
OpStore %x %42
|
OpStore %x %41
|
||||||
%45 = OpLoad %uint %x
|
%44 = OpLoad %uint %x
|
||||||
%47 = OpBitwiseAnd %uint %45 %uint_12
|
%46 = OpBitwiseAnd %uint %44 %uint_12
|
||||||
%44 = OpINotEqual %bool %47 %16
|
%43 = OpINotEqual %bool %46 %16
|
||||||
%43 = OpSelect %uint %44 %uint_2 %uint_0
|
%42 = OpSelect %uint %43 %uint_2 %16
|
||||||
%49 = OpLoad %uint %x
|
%48 = OpLoad %uint %x
|
||||||
%50 = OpShiftRightLogical %uint %49 %43
|
%49 = OpShiftRightLogical %uint %48 %42
|
||||||
OpStore %x %50
|
OpStore %x %49
|
||||||
%53 = OpLoad %uint %x
|
%52 = OpLoad %uint %x
|
||||||
%54 = OpBitwiseAnd %uint %53 %uint_2
|
%53 = OpBitwiseAnd %uint %52 %uint_2
|
||||||
%52 = OpINotEqual %bool %54 %16
|
%51 = OpINotEqual %bool %53 %16
|
||||||
%51 = OpSelect %uint %52 %uint_1 %uint_0
|
%50 = OpSelect %uint %51 %uint_1 %16
|
||||||
%57 = OpLoad %uint %x
|
%56 = OpLoad %uint %x
|
||||||
%58 = OpIEqual %bool %57 %uint_0
|
%57 = OpIEqual %bool %56 %16
|
||||||
%56 = OpSelect %uint %58 %uint_4294967295 %uint_0
|
%55 = OpSelect %uint %57 %uint_4294967295 %16
|
||||||
%61 = OpBitwiseOr %uint %17 %27
|
%60 = OpBitwiseOr %uint %17 %26
|
||||||
%62 = OpBitwiseOr %uint %61 %35
|
%61 = OpBitwiseOr %uint %60 %34
|
||||||
%63 = OpBitwiseOr %uint %62 %43
|
%62 = OpBitwiseOr %uint %61 %42
|
||||||
%64 = OpBitwiseOr %uint %63 %51
|
%63 = OpBitwiseOr %uint %62 %50
|
||||||
%65 = OpBitwiseOr %uint %64 %56
|
%64 = OpBitwiseOr %uint %63 %55
|
||||||
OpReturnValue %65
|
OpReturnValue %64
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstLeadingBit_f0779d = OpFunction %void None %66
|
%firstLeadingBit_f0779d = OpFunction %void None %65
|
||||||
%69 = OpLabel
|
%68 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_uint Function %16
|
%res = OpVariable %_ptr_Function_uint Function %16
|
||||||
%70 = OpFunctionCall %uint %tint_first_leading_bit %uint_1
|
%69 = OpFunctionCall %uint %tint_first_leading_bit %uint_1
|
||||||
OpStore %res %70
|
OpStore %res %69
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %72
|
%vertex_main_inner = OpFunction %v4float None %71
|
||||||
%74 = OpLabel
|
%73 = OpLabel
|
||||||
%75 = OpFunctionCall %void %firstLeadingBit_f0779d
|
%74 = OpFunctionCall %void %firstLeadingBit_f0779d
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %66
|
%vertex_main = OpFunction %void None %65
|
||||||
%77 = OpLabel
|
%76 = OpLabel
|
||||||
%78 = OpFunctionCall %v4float %vertex_main_inner
|
%77 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %78
|
OpStore %value %77
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %66
|
%fragment_main = OpFunction %void None %65
|
||||||
%81 = OpLabel
|
%80 = OpLabel
|
||||||
%82 = OpFunctionCall %void %firstLeadingBit_f0779d
|
%81 = OpFunctionCall %void %firstLeadingBit_f0779d
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %66
|
%compute_main = OpFunction %void None %65
|
||||||
%84 = OpLabel
|
%83 = OpLabel
|
||||||
%85 = OpFunctionCall %void %firstLeadingBit_f0779d
|
%84 = OpFunctionCall %void %firstLeadingBit_f0779d
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 100
|
; Bound: 98
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -40,29 +40,27 @@
|
||||||
%v4bool = OpTypeVector %bool 4
|
%v4bool = OpTypeVector %bool 4
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%25 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
%25 = OpConstantComposite %v4uint %uint_65535 %uint_65535 %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%28 = OpConstantComposite %v4uint %uint_0 %uint_0 %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%30 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
%28 = OpConstantComposite %v4uint %uint_16 %uint_16 %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%37 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
%35 = OpConstantComposite %v4uint %uint_255 %uint_255 %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
%38 = OpConstantComposite %v4uint %uint_8 %uint_8 %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%47 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
%45 = OpConstantComposite %v4uint %uint_15 %uint_15 %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%50 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
%48 = OpConstantComposite %v4uint %uint_4 %uint_4 %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%57 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
%55 = OpConstantComposite %v4uint %uint_3 %uint_3 %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%60 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
%58 = OpConstantComposite %v4uint %uint_2 %uint_2 %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
%65 = OpConstantComposite %v4uint %uint_1 %uint_1 %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%73 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
%71 = OpConstantComposite %v4uint %uint_4294967295 %uint_4294967295 %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%80 = OpTypeFunction %void
|
%78 = OpTypeFunction %void
|
||||||
%86 = OpTypeFunction %v4float
|
%84 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_trailing_bit = OpFunction %v4uint None %9
|
%tint_first_trailing_bit = OpFunction %v4uint None %9
|
||||||
%v = OpFunctionParameter %v4uint
|
%v = OpFunctionParameter %v4uint
|
||||||
|
@ -72,71 +70,71 @@
|
||||||
%23 = OpLoad %v4uint %x
|
%23 = OpLoad %v4uint %x
|
||||||
%26 = OpBitwiseAnd %v4uint %23 %25
|
%26 = OpBitwiseAnd %v4uint %23 %25
|
||||||
%20 = OpINotEqual %v4bool %26 %18
|
%20 = OpINotEqual %v4bool %26 %18
|
||||||
%19 = OpSelect %v4uint %20 %28 %30
|
%19 = OpSelect %v4uint %20 %18 %28
|
||||||
%31 = OpLoad %v4uint %x
|
%29 = OpLoad %v4uint %x
|
||||||
%32 = OpShiftRightLogical %v4uint %31 %19
|
%30 = OpShiftRightLogical %v4uint %29 %19
|
||||||
OpStore %x %32
|
OpStore %x %30
|
||||||
%35 = OpLoad %v4uint %x
|
%33 = OpLoad %v4uint %x
|
||||||
%38 = OpBitwiseAnd %v4uint %35 %37
|
%36 = OpBitwiseAnd %v4uint %33 %35
|
||||||
%34 = OpINotEqual %v4bool %38 %18
|
%32 = OpINotEqual %v4bool %36 %18
|
||||||
%33 = OpSelect %v4uint %34 %28 %40
|
%31 = OpSelect %v4uint %32 %18 %38
|
||||||
%41 = OpLoad %v4uint %x
|
%39 = OpLoad %v4uint %x
|
||||||
%42 = OpShiftRightLogical %v4uint %41 %33
|
%40 = OpShiftRightLogical %v4uint %39 %31
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%45 = OpLoad %v4uint %x
|
%43 = OpLoad %v4uint %x
|
||||||
%48 = OpBitwiseAnd %v4uint %45 %47
|
%46 = OpBitwiseAnd %v4uint %43 %45
|
||||||
%44 = OpINotEqual %v4bool %48 %18
|
%42 = OpINotEqual %v4bool %46 %18
|
||||||
%43 = OpSelect %v4uint %44 %28 %50
|
%41 = OpSelect %v4uint %42 %18 %48
|
||||||
%51 = OpLoad %v4uint %x
|
%49 = OpLoad %v4uint %x
|
||||||
%52 = OpShiftRightLogical %v4uint %51 %43
|
%50 = OpShiftRightLogical %v4uint %49 %41
|
||||||
OpStore %x %52
|
OpStore %x %50
|
||||||
%55 = OpLoad %v4uint %x
|
%53 = OpLoad %v4uint %x
|
||||||
%58 = OpBitwiseAnd %v4uint %55 %57
|
%56 = OpBitwiseAnd %v4uint %53 %55
|
||||||
%54 = OpINotEqual %v4bool %58 %18
|
%52 = OpINotEqual %v4bool %56 %18
|
||||||
%53 = OpSelect %v4uint %54 %28 %60
|
%51 = OpSelect %v4uint %52 %18 %58
|
||||||
%61 = OpLoad %v4uint %x
|
%59 = OpLoad %v4uint %x
|
||||||
%62 = OpShiftRightLogical %v4uint %61 %53
|
%60 = OpShiftRightLogical %v4uint %59 %51
|
||||||
OpStore %x %62
|
OpStore %x %60
|
||||||
%65 = OpLoad %v4uint %x
|
%63 = OpLoad %v4uint %x
|
||||||
%68 = OpBitwiseAnd %v4uint %65 %67
|
%66 = OpBitwiseAnd %v4uint %63 %65
|
||||||
%64 = OpINotEqual %v4bool %68 %18
|
%62 = OpINotEqual %v4bool %66 %18
|
||||||
%63 = OpSelect %v4uint %64 %28 %67
|
%61 = OpSelect %v4uint %62 %18 %65
|
||||||
%70 = OpLoad %v4uint %x
|
%68 = OpLoad %v4uint %x
|
||||||
%71 = OpIEqual %v4bool %70 %28
|
%69 = OpIEqual %v4bool %68 %18
|
||||||
%69 = OpSelect %v4uint %71 %73 %28
|
%67 = OpSelect %v4uint %69 %71 %18
|
||||||
%75 = OpBitwiseOr %v4uint %19 %33
|
%73 = OpBitwiseOr %v4uint %19 %31
|
||||||
%76 = OpBitwiseOr %v4uint %75 %43
|
%74 = OpBitwiseOr %v4uint %73 %41
|
||||||
%77 = OpBitwiseOr %v4uint %76 %53
|
%75 = OpBitwiseOr %v4uint %74 %51
|
||||||
%78 = OpBitwiseOr %v4uint %77 %63
|
%76 = OpBitwiseOr %v4uint %75 %61
|
||||||
%79 = OpBitwiseOr %v4uint %78 %69
|
%77 = OpBitwiseOr %v4uint %76 %67
|
||||||
OpReturnValue %79
|
OpReturnValue %77
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstTrailingBit_110f2c = OpFunction %void None %80
|
%firstTrailingBit_110f2c = OpFunction %void None %78
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v4uint Function %18
|
%res = OpVariable %_ptr_Function_v4uint Function %18
|
||||||
%84 = OpFunctionCall %v4uint %tint_first_trailing_bit %18
|
%82 = OpFunctionCall %v4uint %tint_first_trailing_bit %18
|
||||||
OpStore %res %84
|
OpStore %res %82
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %86
|
%vertex_main_inner = OpFunction %v4float None %84
|
||||||
%88 = OpLabel
|
%86 = OpLabel
|
||||||
%89 = OpFunctionCall %void %firstTrailingBit_110f2c
|
%87 = OpFunctionCall %void %firstTrailingBit_110f2c
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %80
|
%vertex_main = OpFunction %void None %78
|
||||||
%91 = OpLabel
|
%89 = OpLabel
|
||||||
%92 = OpFunctionCall %v4float %vertex_main_inner
|
%90 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %92
|
OpStore %value %90
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %80
|
%fragment_main = OpFunction %void None %78
|
||||||
%95 = OpLabel
|
%93 = OpLabel
|
||||||
%96 = OpFunctionCall %void %firstTrailingBit_110f2c
|
%94 = OpFunctionCall %void %firstTrailingBit_110f2c
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %80
|
%compute_main = OpFunction %void None %78
|
||||||
%98 = OpLabel
|
%96 = OpLabel
|
||||||
%99 = OpFunctionCall %void %firstTrailingBit_110f2c
|
%97 = OpFunctionCall %void %firstTrailingBit_110f2c
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 91
|
; Bound: 90
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -38,7 +38,6 @@
|
||||||
%18 = OpConstantNull %uint
|
%18 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
|
@ -49,11 +48,11 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%68 = OpTypeFunction %void
|
%67 = OpTypeFunction %void
|
||||||
%int_1 = OpConstant %int 1
|
%int_1 = OpConstant %int 1
|
||||||
%_ptr_Function_int = OpTypePointer Function %int
|
%_ptr_Function_int = OpTypePointer Function %int
|
||||||
%76 = OpConstantNull %int
|
%75 = OpConstantNull %int
|
||||||
%77 = OpTypeFunction %v4float
|
%76 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_trailing_bit = OpFunction %int None %9
|
%tint_first_trailing_bit = OpFunction %int None %9
|
||||||
%v = OpFunctionParameter %int
|
%v = OpFunctionParameter %int
|
||||||
|
@ -64,72 +63,72 @@
|
||||||
%22 = OpLoad %uint %x
|
%22 = OpLoad %uint %x
|
||||||
%24 = OpBitwiseAnd %uint %22 %uint_65535
|
%24 = OpBitwiseAnd %uint %22 %uint_65535
|
||||||
%20 = OpINotEqual %bool %24 %18
|
%20 = OpINotEqual %bool %24 %18
|
||||||
%19 = OpSelect %uint %20 %uint_0 %uint_16
|
%19 = OpSelect %uint %20 %18 %uint_16
|
||||||
%27 = OpLoad %uint %x
|
%26 = OpLoad %uint %x
|
||||||
%28 = OpShiftRightLogical %uint %27 %19
|
%27 = OpShiftRightLogical %uint %26 %19
|
||||||
OpStore %x %28
|
OpStore %x %27
|
||||||
%31 = OpLoad %uint %x
|
%30 = OpLoad %uint %x
|
||||||
%33 = OpBitwiseAnd %uint %31 %uint_255
|
%32 = OpBitwiseAnd %uint %30 %uint_255
|
||||||
%30 = OpINotEqual %bool %33 %18
|
%29 = OpINotEqual %bool %32 %18
|
||||||
%29 = OpSelect %uint %30 %uint_0 %uint_8
|
%28 = OpSelect %uint %29 %18 %uint_8
|
||||||
%35 = OpLoad %uint %x
|
%34 = OpLoad %uint %x
|
||||||
%36 = OpShiftRightLogical %uint %35 %29
|
%35 = OpShiftRightLogical %uint %34 %28
|
||||||
OpStore %x %36
|
OpStore %x %35
|
||||||
%39 = OpLoad %uint %x
|
%38 = OpLoad %uint %x
|
||||||
%41 = OpBitwiseAnd %uint %39 %uint_15
|
%40 = OpBitwiseAnd %uint %38 %uint_15
|
||||||
%38 = OpINotEqual %bool %41 %18
|
%37 = OpINotEqual %bool %40 %18
|
||||||
%37 = OpSelect %uint %38 %uint_0 %uint_4
|
%36 = OpSelect %uint %37 %18 %uint_4
|
||||||
%43 = OpLoad %uint %x
|
%42 = OpLoad %uint %x
|
||||||
%44 = OpShiftRightLogical %uint %43 %37
|
%43 = OpShiftRightLogical %uint %42 %36
|
||||||
OpStore %x %44
|
OpStore %x %43
|
||||||
%47 = OpLoad %uint %x
|
%46 = OpLoad %uint %x
|
||||||
%49 = OpBitwiseAnd %uint %47 %uint_3
|
%48 = OpBitwiseAnd %uint %46 %uint_3
|
||||||
%46 = OpINotEqual %bool %49 %18
|
%45 = OpINotEqual %bool %48 %18
|
||||||
%45 = OpSelect %uint %46 %uint_0 %uint_2
|
%44 = OpSelect %uint %45 %18 %uint_2
|
||||||
%51 = OpLoad %uint %x
|
%50 = OpLoad %uint %x
|
||||||
%52 = OpShiftRightLogical %uint %51 %45
|
%51 = OpShiftRightLogical %uint %50 %44
|
||||||
OpStore %x %52
|
OpStore %x %51
|
||||||
%55 = OpLoad %uint %x
|
%54 = OpLoad %uint %x
|
||||||
%57 = OpBitwiseAnd %uint %55 %uint_1
|
%56 = OpBitwiseAnd %uint %54 %uint_1
|
||||||
%54 = OpINotEqual %bool %57 %18
|
%53 = OpINotEqual %bool %56 %18
|
||||||
%53 = OpSelect %uint %54 %uint_0 %uint_1
|
%52 = OpSelect %uint %53 %18 %uint_1
|
||||||
%59 = OpLoad %uint %x
|
%58 = OpLoad %uint %x
|
||||||
%60 = OpIEqual %bool %59 %uint_0
|
%59 = OpIEqual %bool %58 %18
|
||||||
%58 = OpSelect %uint %60 %uint_4294967295 %uint_0
|
%57 = OpSelect %uint %59 %uint_4294967295 %18
|
||||||
%63 = OpBitwiseOr %uint %19 %29
|
%62 = OpBitwiseOr %uint %19 %28
|
||||||
%64 = OpBitwiseOr %uint %63 %37
|
%63 = OpBitwiseOr %uint %62 %36
|
||||||
%65 = OpBitwiseOr %uint %64 %45
|
%64 = OpBitwiseOr %uint %63 %44
|
||||||
%66 = OpBitwiseOr %uint %65 %53
|
%65 = OpBitwiseOr %uint %64 %52
|
||||||
%67 = OpBitwiseOr %uint %66 %58
|
%66 = OpBitwiseOr %uint %65 %57
|
||||||
%62 = OpBitcast %int %67
|
%61 = OpBitcast %int %66
|
||||||
OpReturnValue %62
|
OpReturnValue %61
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstTrailingBit_3a2acc = OpFunction %void None %68
|
%firstTrailingBit_3a2acc = OpFunction %void None %67
|
||||||
%71 = OpLabel
|
%70 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_int Function %76
|
%res = OpVariable %_ptr_Function_int Function %75
|
||||||
%72 = OpFunctionCall %int %tint_first_trailing_bit %int_1
|
%71 = OpFunctionCall %int %tint_first_trailing_bit %int_1
|
||||||
OpStore %res %72
|
OpStore %res %71
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %77
|
%vertex_main_inner = OpFunction %v4float None %76
|
||||||
%79 = OpLabel
|
%78 = OpLabel
|
||||||
%80 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
%79 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %68
|
%vertex_main = OpFunction %void None %67
|
||||||
%82 = OpLabel
|
%81 = OpLabel
|
||||||
%83 = OpFunctionCall %v4float %vertex_main_inner
|
%82 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %83
|
OpStore %value %82
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %68
|
%fragment_main = OpFunction %void None %67
|
||||||
%86 = OpLabel
|
%85 = OpLabel
|
||||||
%87 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
%86 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %68
|
%compute_main = OpFunction %void None %67
|
||||||
%89 = OpLabel
|
%88 = OpLabel
|
||||||
%90 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
%89 = OpFunctionCall %void %firstTrailingBit_3a2acc
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 100
|
; Bound: 98
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -40,29 +40,27 @@
|
||||||
%v2bool = OpTypeVector %bool 2
|
%v2bool = OpTypeVector %bool 2
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%25 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
%25 = OpConstantComposite %v2uint %uint_65535 %uint_65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%28 = OpConstantComposite %v2uint %uint_0 %uint_0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%30 = OpConstantComposite %v2uint %uint_16 %uint_16
|
%28 = OpConstantComposite %v2uint %uint_16 %uint_16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%37 = OpConstantComposite %v2uint %uint_255 %uint_255
|
%35 = OpConstantComposite %v2uint %uint_255 %uint_255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
%40 = OpConstantComposite %v2uint %uint_8 %uint_8
|
%38 = OpConstantComposite %v2uint %uint_8 %uint_8
|
||||||
%uint_15 = OpConstant %uint 15
|
%uint_15 = OpConstant %uint 15
|
||||||
%47 = OpConstantComposite %v2uint %uint_15 %uint_15
|
%45 = OpConstantComposite %v2uint %uint_15 %uint_15
|
||||||
%uint_4 = OpConstant %uint 4
|
%uint_4 = OpConstant %uint 4
|
||||||
%50 = OpConstantComposite %v2uint %uint_4 %uint_4
|
%48 = OpConstantComposite %v2uint %uint_4 %uint_4
|
||||||
%uint_3 = OpConstant %uint 3
|
%uint_3 = OpConstant %uint 3
|
||||||
%57 = OpConstantComposite %v2uint %uint_3 %uint_3
|
%55 = OpConstantComposite %v2uint %uint_3 %uint_3
|
||||||
%uint_2 = OpConstant %uint 2
|
%uint_2 = OpConstant %uint 2
|
||||||
%60 = OpConstantComposite %v2uint %uint_2 %uint_2
|
%58 = OpConstantComposite %v2uint %uint_2 %uint_2
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%67 = OpConstantComposite %v2uint %uint_1 %uint_1
|
%65 = OpConstantComposite %v2uint %uint_1 %uint_1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%73 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
%71 = OpConstantComposite %v2uint %uint_4294967295 %uint_4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%80 = OpTypeFunction %void
|
%78 = OpTypeFunction %void
|
||||||
%86 = OpTypeFunction %v4float
|
%84 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_trailing_bit = OpFunction %v2uint None %9
|
%tint_first_trailing_bit = OpFunction %v2uint None %9
|
||||||
%v = OpFunctionParameter %v2uint
|
%v = OpFunctionParameter %v2uint
|
||||||
|
@ -72,71 +70,71 @@
|
||||||
%23 = OpLoad %v2uint %x
|
%23 = OpLoad %v2uint %x
|
||||||
%26 = OpBitwiseAnd %v2uint %23 %25
|
%26 = OpBitwiseAnd %v2uint %23 %25
|
||||||
%20 = OpINotEqual %v2bool %26 %18
|
%20 = OpINotEqual %v2bool %26 %18
|
||||||
%19 = OpSelect %v2uint %20 %28 %30
|
%19 = OpSelect %v2uint %20 %18 %28
|
||||||
%31 = OpLoad %v2uint %x
|
%29 = OpLoad %v2uint %x
|
||||||
%32 = OpShiftRightLogical %v2uint %31 %19
|
%30 = OpShiftRightLogical %v2uint %29 %19
|
||||||
OpStore %x %32
|
OpStore %x %30
|
||||||
%35 = OpLoad %v2uint %x
|
%33 = OpLoad %v2uint %x
|
||||||
%38 = OpBitwiseAnd %v2uint %35 %37
|
%36 = OpBitwiseAnd %v2uint %33 %35
|
||||||
%34 = OpINotEqual %v2bool %38 %18
|
%32 = OpINotEqual %v2bool %36 %18
|
||||||
%33 = OpSelect %v2uint %34 %28 %40
|
%31 = OpSelect %v2uint %32 %18 %38
|
||||||
%41 = OpLoad %v2uint %x
|
%39 = OpLoad %v2uint %x
|
||||||
%42 = OpShiftRightLogical %v2uint %41 %33
|
%40 = OpShiftRightLogical %v2uint %39 %31
|
||||||
OpStore %x %42
|
OpStore %x %40
|
||||||
%45 = OpLoad %v2uint %x
|
%43 = OpLoad %v2uint %x
|
||||||
%48 = OpBitwiseAnd %v2uint %45 %47
|
%46 = OpBitwiseAnd %v2uint %43 %45
|
||||||
%44 = OpINotEqual %v2bool %48 %18
|
%42 = OpINotEqual %v2bool %46 %18
|
||||||
%43 = OpSelect %v2uint %44 %28 %50
|
%41 = OpSelect %v2uint %42 %18 %48
|
||||||
%51 = OpLoad %v2uint %x
|
%49 = OpLoad %v2uint %x
|
||||||
%52 = OpShiftRightLogical %v2uint %51 %43
|
%50 = OpShiftRightLogical %v2uint %49 %41
|
||||||
OpStore %x %52
|
OpStore %x %50
|
||||||
%55 = OpLoad %v2uint %x
|
%53 = OpLoad %v2uint %x
|
||||||
%58 = OpBitwiseAnd %v2uint %55 %57
|
%56 = OpBitwiseAnd %v2uint %53 %55
|
||||||
%54 = OpINotEqual %v2bool %58 %18
|
%52 = OpINotEqual %v2bool %56 %18
|
||||||
%53 = OpSelect %v2uint %54 %28 %60
|
%51 = OpSelect %v2uint %52 %18 %58
|
||||||
%61 = OpLoad %v2uint %x
|
%59 = OpLoad %v2uint %x
|
||||||
%62 = OpShiftRightLogical %v2uint %61 %53
|
%60 = OpShiftRightLogical %v2uint %59 %51
|
||||||
OpStore %x %62
|
OpStore %x %60
|
||||||
%65 = OpLoad %v2uint %x
|
%63 = OpLoad %v2uint %x
|
||||||
%68 = OpBitwiseAnd %v2uint %65 %67
|
%66 = OpBitwiseAnd %v2uint %63 %65
|
||||||
%64 = OpINotEqual %v2bool %68 %18
|
%62 = OpINotEqual %v2bool %66 %18
|
||||||
%63 = OpSelect %v2uint %64 %28 %67
|
%61 = OpSelect %v2uint %62 %18 %65
|
||||||
%70 = OpLoad %v2uint %x
|
%68 = OpLoad %v2uint %x
|
||||||
%71 = OpIEqual %v2bool %70 %28
|
%69 = OpIEqual %v2bool %68 %18
|
||||||
%69 = OpSelect %v2uint %71 %73 %28
|
%67 = OpSelect %v2uint %69 %71 %18
|
||||||
%75 = OpBitwiseOr %v2uint %19 %33
|
%73 = OpBitwiseOr %v2uint %19 %31
|
||||||
%76 = OpBitwiseOr %v2uint %75 %43
|
%74 = OpBitwiseOr %v2uint %73 %41
|
||||||
%77 = OpBitwiseOr %v2uint %76 %53
|
%75 = OpBitwiseOr %v2uint %74 %51
|
||||||
%78 = OpBitwiseOr %v2uint %77 %63
|
%76 = OpBitwiseOr %v2uint %75 %61
|
||||||
%79 = OpBitwiseOr %v2uint %78 %69
|
%77 = OpBitwiseOr %v2uint %76 %67
|
||||||
OpReturnValue %79
|
OpReturnValue %77
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstTrailingBit_45eb10 = OpFunction %void None %80
|
%firstTrailingBit_45eb10 = OpFunction %void None %78
|
||||||
%83 = OpLabel
|
%81 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_v2uint Function %18
|
%res = OpVariable %_ptr_Function_v2uint Function %18
|
||||||
%84 = OpFunctionCall %v2uint %tint_first_trailing_bit %18
|
%82 = OpFunctionCall %v2uint %tint_first_trailing_bit %18
|
||||||
OpStore %res %84
|
OpStore %res %82
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %86
|
%vertex_main_inner = OpFunction %v4float None %84
|
||||||
%88 = OpLabel
|
%86 = OpLabel
|
||||||
%89 = OpFunctionCall %void %firstTrailingBit_45eb10
|
%87 = OpFunctionCall %void %firstTrailingBit_45eb10
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %80
|
%vertex_main = OpFunction %void None %78
|
||||||
%91 = OpLabel
|
%89 = OpLabel
|
||||||
%92 = OpFunctionCall %v4float %vertex_main_inner
|
%90 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %92
|
OpStore %value %90
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %80
|
%fragment_main = OpFunction %void None %78
|
||||||
%95 = OpLabel
|
%93 = OpLabel
|
||||||
%96 = OpFunctionCall %void %firstTrailingBit_45eb10
|
%94 = OpFunctionCall %void %firstTrailingBit_45eb10
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %80
|
%compute_main = OpFunction %void None %78
|
||||||
%98 = OpLabel
|
%96 = OpLabel
|
||||||
%99 = OpFunctionCall %void %firstTrailingBit_45eb10
|
%97 = OpFunctionCall %void %firstTrailingBit_45eb10
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
|
@ -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: 87
|
; Bound: 86
|
||||||
; Schema: 0
|
; Schema: 0
|
||||||
OpCapability Shader
|
OpCapability Shader
|
||||||
OpMemoryModel Logical GLSL450
|
OpMemoryModel Logical GLSL450
|
||||||
|
@ -37,7 +37,6 @@
|
||||||
%17 = OpConstantNull %uint
|
%17 = OpConstantNull %uint
|
||||||
%bool = OpTypeBool
|
%bool = OpTypeBool
|
||||||
%uint_65535 = OpConstant %uint 65535
|
%uint_65535 = OpConstant %uint 65535
|
||||||
%uint_0 = OpConstant %uint 0
|
|
||||||
%uint_16 = OpConstant %uint 16
|
%uint_16 = OpConstant %uint 16
|
||||||
%uint_255 = OpConstant %uint 255
|
%uint_255 = OpConstant %uint 255
|
||||||
%uint_8 = OpConstant %uint 8
|
%uint_8 = OpConstant %uint 8
|
||||||
|
@ -48,8 +47,8 @@
|
||||||
%uint_1 = OpConstant %uint 1
|
%uint_1 = OpConstant %uint 1
|
||||||
%uint_4294967295 = OpConstant %uint 4294967295
|
%uint_4294967295 = OpConstant %uint 4294967295
|
||||||
%void = OpTypeVoid
|
%void = OpTypeVoid
|
||||||
%67 = OpTypeFunction %void
|
%66 = OpTypeFunction %void
|
||||||
%73 = OpTypeFunction %v4float
|
%72 = OpTypeFunction %v4float
|
||||||
%float_1 = OpConstant %float 1
|
%float_1 = OpConstant %float 1
|
||||||
%tint_first_trailing_bit = OpFunction %uint None %9
|
%tint_first_trailing_bit = OpFunction %uint None %9
|
||||||
%v = OpFunctionParameter %uint
|
%v = OpFunctionParameter %uint
|
||||||
|
@ -59,71 +58,71 @@
|
||||||
%21 = OpLoad %uint %x
|
%21 = OpLoad %uint %x
|
||||||
%23 = OpBitwiseAnd %uint %21 %uint_65535
|
%23 = OpBitwiseAnd %uint %21 %uint_65535
|
||||||
%19 = OpINotEqual %bool %23 %17
|
%19 = OpINotEqual %bool %23 %17
|
||||||
%18 = OpSelect %uint %19 %uint_0 %uint_16
|
%18 = OpSelect %uint %19 %17 %uint_16
|
||||||
%26 = OpLoad %uint %x
|
%25 = OpLoad %uint %x
|
||||||
%27 = OpShiftRightLogical %uint %26 %18
|
%26 = OpShiftRightLogical %uint %25 %18
|
||||||
OpStore %x %27
|
OpStore %x %26
|
||||||
%30 = OpLoad %uint %x
|
%29 = OpLoad %uint %x
|
||||||
%32 = OpBitwiseAnd %uint %30 %uint_255
|
%31 = OpBitwiseAnd %uint %29 %uint_255
|
||||||
%29 = OpINotEqual %bool %32 %17
|
%28 = OpINotEqual %bool %31 %17
|
||||||
%28 = OpSelect %uint %29 %uint_0 %uint_8
|
%27 = OpSelect %uint %28 %17 %uint_8
|
||||||
%34 = OpLoad %uint %x
|
%33 = OpLoad %uint %x
|
||||||
%35 = OpShiftRightLogical %uint %34 %28
|
%34 = OpShiftRightLogical %uint %33 %27
|
||||||
OpStore %x %35
|
OpStore %x %34
|
||||||
%38 = OpLoad %uint %x
|
%37 = OpLoad %uint %x
|
||||||
%40 = OpBitwiseAnd %uint %38 %uint_15
|
%39 = OpBitwiseAnd %uint %37 %uint_15
|
||||||
%37 = OpINotEqual %bool %40 %17
|
%36 = OpINotEqual %bool %39 %17
|
||||||
%36 = OpSelect %uint %37 %uint_0 %uint_4
|
%35 = OpSelect %uint %36 %17 %uint_4
|
||||||
%42 = OpLoad %uint %x
|
%41 = OpLoad %uint %x
|
||||||
%43 = OpShiftRightLogical %uint %42 %36
|
%42 = OpShiftRightLogical %uint %41 %35
|
||||||
OpStore %x %43
|
OpStore %x %42
|
||||||
%46 = OpLoad %uint %x
|
%45 = OpLoad %uint %x
|
||||||
%48 = OpBitwiseAnd %uint %46 %uint_3
|
%47 = OpBitwiseAnd %uint %45 %uint_3
|
||||||
%45 = OpINotEqual %bool %48 %17
|
%44 = OpINotEqual %bool %47 %17
|
||||||
%44 = OpSelect %uint %45 %uint_0 %uint_2
|
%43 = OpSelect %uint %44 %17 %uint_2
|
||||||
%50 = OpLoad %uint %x
|
%49 = OpLoad %uint %x
|
||||||
%51 = OpShiftRightLogical %uint %50 %44
|
%50 = OpShiftRightLogical %uint %49 %43
|
||||||
OpStore %x %51
|
OpStore %x %50
|
||||||
%54 = OpLoad %uint %x
|
%53 = OpLoad %uint %x
|
||||||
%56 = OpBitwiseAnd %uint %54 %uint_1
|
%55 = OpBitwiseAnd %uint %53 %uint_1
|
||||||
%53 = OpINotEqual %bool %56 %17
|
%52 = OpINotEqual %bool %55 %17
|
||||||
%52 = OpSelect %uint %53 %uint_0 %uint_1
|
%51 = OpSelect %uint %52 %17 %uint_1
|
||||||
%58 = OpLoad %uint %x
|
%57 = OpLoad %uint %x
|
||||||
%59 = OpIEqual %bool %58 %uint_0
|
%58 = OpIEqual %bool %57 %17
|
||||||
%57 = OpSelect %uint %59 %uint_4294967295 %uint_0
|
%56 = OpSelect %uint %58 %uint_4294967295 %17
|
||||||
%62 = OpBitwiseOr %uint %18 %28
|
%61 = OpBitwiseOr %uint %18 %27
|
||||||
%63 = OpBitwiseOr %uint %62 %36
|
%62 = OpBitwiseOr %uint %61 %35
|
||||||
%64 = OpBitwiseOr %uint %63 %44
|
%63 = OpBitwiseOr %uint %62 %43
|
||||||
%65 = OpBitwiseOr %uint %64 %52
|
%64 = OpBitwiseOr %uint %63 %51
|
||||||
%66 = OpBitwiseOr %uint %65 %57
|
%65 = OpBitwiseOr %uint %64 %56
|
||||||
OpReturnValue %66
|
OpReturnValue %65
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%firstTrailingBit_47d475 = OpFunction %void None %67
|
%firstTrailingBit_47d475 = OpFunction %void None %66
|
||||||
%70 = OpLabel
|
%69 = OpLabel
|
||||||
%res = OpVariable %_ptr_Function_uint Function %17
|
%res = OpVariable %_ptr_Function_uint Function %17
|
||||||
%71 = OpFunctionCall %uint %tint_first_trailing_bit %uint_1
|
%70 = OpFunctionCall %uint %tint_first_trailing_bit %uint_1
|
||||||
OpStore %res %71
|
OpStore %res %70
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main_inner = OpFunction %v4float None %73
|
%vertex_main_inner = OpFunction %v4float None %72
|
||||||
%75 = OpLabel
|
%74 = OpLabel
|
||||||
%76 = OpFunctionCall %void %firstTrailingBit_47d475
|
%75 = OpFunctionCall %void %firstTrailingBit_47d475
|
||||||
OpReturnValue %5
|
OpReturnValue %5
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%vertex_main = OpFunction %void None %67
|
%vertex_main = OpFunction %void None %66
|
||||||
%78 = OpLabel
|
%77 = OpLabel
|
||||||
%79 = OpFunctionCall %v4float %vertex_main_inner
|
%78 = OpFunctionCall %v4float %vertex_main_inner
|
||||||
OpStore %value %79
|
OpStore %value %78
|
||||||
OpStore %vertex_point_size %float_1
|
OpStore %vertex_point_size %float_1
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%fragment_main = OpFunction %void None %67
|
%fragment_main = OpFunction %void None %66
|
||||||
%82 = OpLabel
|
%81 = OpLabel
|
||||||
%83 = OpFunctionCall %void %firstTrailingBit_47d475
|
%82 = OpFunctionCall %void %firstTrailingBit_47d475
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
%compute_main = OpFunction %void None %67
|
%compute_main = OpFunction %void None %66
|
||||||
%85 = OpLabel
|
%84 = OpLabel
|
||||||
%86 = OpFunctionCall %void %firstTrailingBit_47d475
|
%85 = OpFunctionCall %void %firstTrailingBit_47d475
|
||||||
OpReturn
|
OpReturn
|
||||||
OpFunctionEnd
|
OpFunctionEnd
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue