Import Tint changes from Dawn
Changes:
- 4a92a3c904d6a4ce477b077281ce178305f551c1 tint: Optimize sem node lookup by Ben Clayton <bclayton@google.com>
- 70f7a1ee51c5759bf104fdbe3e76051f0d8138fd tint: Optimization: Avoid dynamic cast in TINT_ASSERT by Ben Clayton <bclayton@google.com>
- b71bcdd45e6f071f79d07fc64063ed64d6e32687 tint: Optimization: Pre-allocate the ast -> sem map. by Ben Clayton <bclayton@google.com>
- 59e640b2087969b752623b1254d01846fed48045 tint: Add f16 support for operator by Zhaoming Jiang <zhaoming.jiang@intel.com>
GitOrigin-RevId: 4a92a3c904d6a4ce477b077281ce178305f551c1
Change-Id: I8139edea80c058a1bc783d6e66c26f8f56e3a875
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/96520
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Ben Clayton <bclayton@google.com>
diff --git a/src/tint/BUILD.gn b/src/tint/BUILD.gn
index c0c0b62..825741c 100644
--- a/src/tint/BUILD.gn
+++ b/src/tint/BUILD.gn
@@ -287,6 +287,7 @@
"ast/module.h",
"ast/multisampled_texture.cc",
"ast/multisampled_texture.h",
+ "ast/node_id.h",
"ast/node.cc",
"ast/node.h",
"ast/override.cc",
diff --git a/src/tint/CMakeLists.txt b/src/tint/CMakeLists.txt
index 6c611c3..ec0e78e 100644
--- a/src/tint/CMakeLists.txt
+++ b/src/tint/CMakeLists.txt
@@ -157,6 +157,7 @@
ast/module.h
ast/multisampled_texture.cc
ast/multisampled_texture.h
+ ast/node_id.h
ast/node.cc
ast/node.h
ast/override.cc
diff --git a/src/tint/ast/alias.cc b/src/tint/ast/alias.cc
index fa98cd4..8a23e8f 100644
--- a/src/tint/ast/alias.cc
+++ b/src/tint/ast/alias.cc
@@ -20,8 +20,8 @@
namespace tint::ast {
-Alias::Alias(ProgramID pid, const Source& src, const Symbol& n, const Type* subtype)
- : Base(pid, src, n), type(subtype) {
+Alias::Alias(ProgramID pid, NodeID nid, const Source& src, const Symbol& n, const Type* subtype)
+ : Base(pid, nid, src, n), type(subtype) {
TINT_ASSERT(AST, type);
}
diff --git a/src/tint/ast/alias.h b/src/tint/ast/alias.h
index 87ce578..74d91b0 100644
--- a/src/tint/ast/alias.h
+++ b/src/tint/ast/alias.h
@@ -26,10 +26,11 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param name the symbol for the alias
/// @param subtype the alias'd type
- Alias(ProgramID pid, const Source& src, const Symbol& name, const Type* subtype);
+ Alias(ProgramID pid, NodeID nid, const Source& src, const Symbol& name, const Type* subtype);
/// Move constructor
Alias(Alias&&);
/// Destructor
diff --git a/src/tint/ast/array.cc b/src/tint/ast/array.cc
index 0389ed0..cd1fc26 100644
--- a/src/tint/ast/array.cc
+++ b/src/tint/ast/array.cc
@@ -38,11 +38,12 @@
} // namespace
Array::Array(ProgramID pid,
+ NodeID nid,
const Source& src,
const Type* subtype,
const Expression* cnt,
AttributeList attrs)
- : Base(pid, src), type(subtype), count(cnt), attributes(attrs) {}
+ : Base(pid, nid, src), type(subtype), count(cnt), attributes(attrs) {}
Array::Array(Array&&) = default;
diff --git a/src/tint/ast/array.h b/src/tint/ast/array.h
index e92902d..ccc31ab 100644
--- a/src/tint/ast/array.h
+++ b/src/tint/ast/array.h
@@ -32,12 +32,14 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param subtype the type of the array elements
/// @param count the number of elements in the array. nullptr represents a
/// runtime-sized array.
/// @param attributes the array attributes
Array(ProgramID pid,
+ NodeID nid,
const Source& src,
const Type* subtype,
const Expression* count,
diff --git a/src/tint/ast/assignment_statement.cc b/src/tint/ast/assignment_statement.cc
index d7d7bc5..6a835b8 100644
--- a/src/tint/ast/assignment_statement.cc
+++ b/src/tint/ast/assignment_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
AssignmentStatement::AssignmentStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* l,
const Expression* r)
- : Base(pid, src), lhs(l), rhs(r) {
+ : Base(pid, nid, src), lhs(l), rhs(r) {
TINT_ASSERT(AST, lhs);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, lhs, program_id);
TINT_ASSERT(AST, rhs);
diff --git a/src/tint/ast/assignment_statement.h b/src/tint/ast/assignment_statement.h
index 9def075..6b8c412 100644
--- a/src/tint/ast/assignment_statement.h
+++ b/src/tint/ast/assignment_statement.h
@@ -24,11 +24,13 @@
class AssignmentStatement final : public Castable<AssignmentStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the assignment statement source
/// @param lhs the left side of the expression
/// @param rhs the right side of the expression
- AssignmentStatement(ProgramID program_id,
+ AssignmentStatement(ProgramID pid,
+ NodeID nid,
const Source& source,
const Expression* lhs,
const Expression* rhs);
diff --git a/src/tint/ast/ast_type.cc b/src/tint/ast/ast_type.cc
index ec247c9..768493f 100644
--- a/src/tint/ast/ast_type.cc
+++ b/src/tint/ast/ast_type.cc
@@ -30,7 +30,7 @@
namespace tint::ast {
-Type::Type(ProgramID pid, const Source& src) : Base(pid, src) {}
+Type::Type(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
Type::Type(Type&&) = default;
diff --git a/src/tint/ast/atomic.cc b/src/tint/ast/atomic.cc
index ce7019b..9914c6a 100644
--- a/src/tint/ast/atomic.cc
+++ b/src/tint/ast/atomic.cc
@@ -20,8 +20,8 @@
namespace tint::ast {
-Atomic::Atomic(ProgramID pid, const Source& src, const Type* const subtype)
- : Base(pid, src), type(subtype) {}
+Atomic::Atomic(ProgramID pid, NodeID nid, const Source& src, const Type* const subtype)
+ : Base(pid, nid, src), type(subtype) {}
std::string Atomic::FriendlyName(const SymbolTable& symbols) const {
std::ostringstream out;
diff --git a/src/tint/ast/atomic.h b/src/tint/ast/atomic.h
index 5f63422..689871e 100644
--- a/src/tint/ast/atomic.h
+++ b/src/tint/ast/atomic.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param subtype the pointee type
- Atomic(ProgramID pid, const Source& src, const Type* const subtype);
+ Atomic(ProgramID pid, NodeID nid, const Source& src, const Type* const subtype);
/// Move constructor
Atomic(Atomic&&);
~Atomic() override;
diff --git a/src/tint/ast/attribute.h b/src/tint/ast/attribute.h
index cb9bf76..68c4435 100644
--- a/src/tint/ast/attribute.h
+++ b/src/tint/ast/attribute.h
@@ -33,8 +33,9 @@
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Attribute(ProgramID pid, const Source& src) : Base(pid, src) {}
+ Attribute(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
};
/// A list of attributes
diff --git a/src/tint/ast/binary_expression.cc b/src/tint/ast/binary_expression.cc
index e3ccd8b..ebf704e 100644
--- a/src/tint/ast/binary_expression.cc
+++ b/src/tint/ast/binary_expression.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
BinaryExpression::BinaryExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
BinaryOp o,
const Expression* l,
const Expression* r)
- : Base(pid, src), op(o), lhs(l), rhs(r) {
+ : Base(pid, nid, src), op(o), lhs(l), rhs(r) {
TINT_ASSERT(AST, lhs);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, lhs, program_id);
TINT_ASSERT(AST, rhs);
diff --git a/src/tint/ast/binary_expression.h b/src/tint/ast/binary_expression.h
index ad59da4..cdc5960 100644
--- a/src/tint/ast/binary_expression.h
+++ b/src/tint/ast/binary_expression.h
@@ -46,12 +46,14 @@
class BinaryExpression final : public Castable<BinaryExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the binary expression source
/// @param op the operation type
/// @param lhs the left side of the expression
/// @param rhs the right side of the expression
- BinaryExpression(ProgramID program_id,
+ BinaryExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
BinaryOp op,
const Expression* lhs,
diff --git a/src/tint/ast/binding_attribute.cc b/src/tint/ast/binding_attribute.cc
index b9282f2..8180f99 100644
--- a/src/tint/ast/binding_attribute.cc
+++ b/src/tint/ast/binding_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-BindingAttribute::BindingAttribute(ProgramID pid, const Source& src, uint32_t val)
- : Base(pid, src), value(val) {}
+BindingAttribute::BindingAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t val)
+ : Base(pid, nid, src), value(val) {}
BindingAttribute::~BindingAttribute() = default;
diff --git a/src/tint/ast/binding_attribute.h b/src/tint/ast/binding_attribute.h
index 33c5f69..b5379b8 100644
--- a/src/tint/ast/binding_attribute.h
+++ b/src/tint/ast/binding_attribute.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param value the binding value
- BindingAttribute(ProgramID pid, const Source& src, uint32_t value);
+ BindingAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t value);
~BindingAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/bitcast_expression.cc b/src/tint/ast/bitcast_expression.cc
index a81c5dd..5cabf67 100644
--- a/src/tint/ast/bitcast_expression.cc
+++ b/src/tint/ast/bitcast_expression.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
BitcastExpression::BitcastExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
const Type* t,
const Expression* e)
- : Base(pid, src), type(t), expr(e) {
+ : Base(pid, nid, src), type(t), expr(e) {
TINT_ASSERT(AST, type);
TINT_ASSERT(AST, expr);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, expr, program_id);
diff --git a/src/tint/ast/bitcast_expression.h b/src/tint/ast/bitcast_expression.h
index a231cd2..66952b7 100644
--- a/src/tint/ast/bitcast_expression.h
+++ b/src/tint/ast/bitcast_expression.h
@@ -28,11 +28,13 @@
class BitcastExpression final : public Castable<BitcastExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the bitcast expression source
/// @param type the type
/// @param expr the expr
- BitcastExpression(ProgramID program_id,
+ BitcastExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
const Type* type,
const Expression* expr);
diff --git a/src/tint/ast/block_statement.cc b/src/tint/ast/block_statement.cc
index 7d4f492..4b39121 100644
--- a/src/tint/ast/block_statement.cc
+++ b/src/tint/ast/block_statement.cc
@@ -20,8 +20,11 @@
namespace tint::ast {
-BlockStatement::BlockStatement(ProgramID pid, const Source& src, const StatementList& stmts)
- : Base(pid, src), statements(std::move(stmts)) {
+BlockStatement::BlockStatement(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const StatementList& stmts)
+ : Base(pid, nid, src), statements(std::move(stmts)) {
for (auto* stmt : statements) {
TINT_ASSERT(AST, stmt);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, stmt, program_id);
diff --git a/src/tint/ast/block_statement.h b/src/tint/ast/block_statement.h
index 48ea35a..c67ecd0 100644
--- a/src/tint/ast/block_statement.h
+++ b/src/tint/ast/block_statement.h
@@ -25,10 +25,14 @@
class BlockStatement final : public Castable<BlockStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the block statement source
/// @param statements the statements
- BlockStatement(ProgramID program_id, const Source& source, const StatementList& statements);
+ BlockStatement(ProgramID pid,
+ NodeID nid,
+ const Source& source,
+ const StatementList& statements);
/// Move constructor
BlockStatement(BlockStatement&&);
~BlockStatement() override;
diff --git a/src/tint/ast/bool.cc b/src/tint/ast/bool.cc
index af951e7..9b326eb 100644
--- a/src/tint/ast/bool.cc
+++ b/src/tint/ast/bool.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-Bool::Bool(ProgramID pid, const Source& src) : Base(pid, src) {}
+Bool::Bool(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
Bool::Bool(Bool&&) = default;
diff --git a/src/tint/ast/bool.h b/src/tint/ast/bool.h
index bfe3b78..d61e49d 100644
--- a/src/tint/ast/bool.h
+++ b/src/tint/ast/bool.h
@@ -32,8 +32,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Bool(ProgramID pid, const Source& src);
+ Bool(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
Bool(Bool&&);
~Bool() override;
diff --git a/src/tint/ast/bool_literal_expression.cc b/src/tint/ast/bool_literal_expression.cc
index cfaacb9..10ab4f0 100644
--- a/src/tint/ast/bool_literal_expression.cc
+++ b/src/tint/ast/bool_literal_expression.cc
@@ -20,8 +20,8 @@
namespace tint::ast {
-BoolLiteralExpression::BoolLiteralExpression(ProgramID pid, const Source& src, bool val)
- : Base(pid, src), value(val) {}
+BoolLiteralExpression::BoolLiteralExpression(ProgramID pid, NodeID nid, const Source& src, bool val)
+ : Base(pid, nid, src), value(val) {}
BoolLiteralExpression::~BoolLiteralExpression() = default;
diff --git a/src/tint/ast/bool_literal_expression.h b/src/tint/ast/bool_literal_expression.h
index f2c4c3f..bebd924 100644
--- a/src/tint/ast/bool_literal_expression.h
+++ b/src/tint/ast/bool_literal_expression.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param value the bool literals value
- BoolLiteralExpression(ProgramID pid, const Source& src, bool value);
+ BoolLiteralExpression(ProgramID pid, NodeID nid, const Source& src, bool value);
~BoolLiteralExpression() override;
/// Clones this node and all transitive child nodes using the `CloneContext`
diff --git a/src/tint/ast/break_statement.cc b/src/tint/ast/break_statement.cc
index 0290014..ecd5f06 100644
--- a/src/tint/ast/break_statement.cc
+++ b/src/tint/ast/break_statement.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-BreakStatement::BreakStatement(ProgramID pid, const Source& src) : Base(pid, src) {}
+BreakStatement::BreakStatement(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
BreakStatement::BreakStatement(BreakStatement&&) = default;
diff --git a/src/tint/ast/break_statement.h b/src/tint/ast/break_statement.h
index 29e5eeb..92f67b7 100644
--- a/src/tint/ast/break_statement.h
+++ b/src/tint/ast/break_statement.h
@@ -24,8 +24,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- BreakStatement(ProgramID pid, const Source& src);
+ BreakStatement(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
BreakStatement(BreakStatement&&);
~BreakStatement() override;
diff --git a/src/tint/ast/builtin_attribute.cc b/src/tint/ast/builtin_attribute.cc
index 03e47b6..30e7cc6 100644
--- a/src/tint/ast/builtin_attribute.cc
+++ b/src/tint/ast/builtin_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-BuiltinAttribute::BuiltinAttribute(ProgramID pid, const Source& src, Builtin b)
- : Base(pid, src), builtin(b) {}
+BuiltinAttribute::BuiltinAttribute(ProgramID pid, NodeID nid, const Source& src, Builtin b)
+ : Base(pid, nid, src), builtin(b) {}
BuiltinAttribute::~BuiltinAttribute() = default;
diff --git a/src/tint/ast/builtin_attribute.h b/src/tint/ast/builtin_attribute.h
index 75898be..d0b3208 100644
--- a/src/tint/ast/builtin_attribute.h
+++ b/src/tint/ast/builtin_attribute.h
@@ -27,9 +27,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param builtin the builtin value
- BuiltinAttribute(ProgramID pid, const Source& src, Builtin builtin);
+ BuiltinAttribute(ProgramID pid, NodeID nid, const Source& src, Builtin builtin);
~BuiltinAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/call_expression.cc b/src/tint/ast/call_expression.cc
index 68b6dc3..03eecf5 100644
--- a/src/tint/ast/call_expression.cc
+++ b/src/tint/ast/call_expression.cc
@@ -34,10 +34,11 @@
} // namespace
CallExpression::CallExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
const IdentifierExpression* name,
ExpressionList a)
- : Base(pid, src), target(ToTarget(name)), args(a) {
+ : Base(pid, nid, src), target(ToTarget(name)), args(a) {
TINT_ASSERT(AST, name);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, name, program_id);
for (auto* arg : args) {
@@ -46,8 +47,12 @@
}
}
-CallExpression::CallExpression(ProgramID pid, const Source& src, const Type* type, ExpressionList a)
- : Base(pid, src), target(ToTarget(type)), args(a) {
+CallExpression::CallExpression(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Type* type,
+ ExpressionList a)
+ : Base(pid, nid, src), target(ToTarget(type)), args(a) {
TINT_ASSERT(AST, type);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, type, program_id);
for (auto* arg : args) {
diff --git a/src/tint/ast/call_expression.h b/src/tint/ast/call_expression.h
index 9f19711..e020429 100644
--- a/src/tint/ast/call_expression.h
+++ b/src/tint/ast/call_expression.h
@@ -33,21 +33,25 @@
class CallExpression final : public Castable<CallExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the call expression source
/// @param name the function or type name
/// @param args the arguments
- CallExpression(ProgramID program_id,
+ CallExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
const IdentifierExpression* name,
ExpressionList args);
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the call expression source
/// @param type the type
/// @param args the arguments
- CallExpression(ProgramID program_id,
+ CallExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
const Type* type,
ExpressionList args);
diff --git a/src/tint/ast/call_statement.cc b/src/tint/ast/call_statement.cc
index 5e98fc9..597e30f 100644
--- a/src/tint/ast/call_statement.cc
+++ b/src/tint/ast/call_statement.cc
@@ -20,8 +20,11 @@
namespace tint::ast {
-CallStatement::CallStatement(ProgramID pid, const Source& src, const CallExpression* call)
- : Base(pid, src), expr(call) {
+CallStatement::CallStatement(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const CallExpression* call)
+ : Base(pid, nid, src), expr(call) {
TINT_ASSERT(AST, expr);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, expr, program_id);
}
diff --git a/src/tint/ast/call_statement.h b/src/tint/ast/call_statement.h
index d0d9f53..daf0b3f 100644
--- a/src/tint/ast/call_statement.h
+++ b/src/tint/ast/call_statement.h
@@ -25,9 +25,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node for the statement
/// @param call the function
- CallStatement(ProgramID pid, const Source& src, const CallExpression* call);
+ CallStatement(ProgramID pid, NodeID nid, const Source& src, const CallExpression* call);
/// Move constructor
CallStatement(CallStatement&&);
~CallStatement() override;
diff --git a/src/tint/ast/case_statement.cc b/src/tint/ast/case_statement.cc
index bf1f0bf..55be8e3 100644
--- a/src/tint/ast/case_statement.cc
+++ b/src/tint/ast/case_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
CaseStatement::CaseStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
CaseSelectorList s,
const BlockStatement* b)
- : Base(pid, src), selectors(s), body(b) {
+ : Base(pid, nid, src), selectors(s), body(b) {
TINT_ASSERT(AST, body);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, body, program_id);
for (auto* selector : selectors) {
diff --git a/src/tint/ast/case_statement.h b/src/tint/ast/case_statement.h
index 19ca693..613b721 100644
--- a/src/tint/ast/case_statement.h
+++ b/src/tint/ast/case_statement.h
@@ -30,10 +30,12 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param selectors the case selectors
/// @param body the case body
CaseStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
CaseSelectorList selectors,
const BlockStatement* body);
diff --git a/src/tint/ast/compound_assignment_statement.cc b/src/tint/ast/compound_assignment_statement.cc
index 848d500..f752862 100644
--- a/src/tint/ast/compound_assignment_statement.cc
+++ b/src/tint/ast/compound_assignment_statement.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
CompoundAssignmentStatement::CompoundAssignmentStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* l,
const Expression* r,
BinaryOp o)
- : Base(pid, src), lhs(l), rhs(r), op(o) {
+ : Base(pid, nid, src), lhs(l), rhs(r), op(o) {
TINT_ASSERT(AST, lhs);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, lhs, program_id);
TINT_ASSERT(AST, rhs);
diff --git a/src/tint/ast/compound_assignment_statement.h b/src/tint/ast/compound_assignment_statement.h
index ba9a558..9fbd22c 100644
--- a/src/tint/ast/compound_assignment_statement.h
+++ b/src/tint/ast/compound_assignment_statement.h
@@ -25,12 +25,14 @@
class CompoundAssignmentStatement final : public Castable<CompoundAssignmentStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the compound assignment statement source
/// @param lhs the left side of the expression
/// @param rhs the right side of the expression
/// @param op the binary operator
- CompoundAssignmentStatement(ProgramID program_id,
+ CompoundAssignmentStatement(ProgramID pid,
+ NodeID nid,
const Source& source,
const Expression* lhs,
const Expression* rhs,
diff --git a/src/tint/ast/const.cc b/src/tint/ast/const.cc
index e13cc25..4dbbb86 100644
--- a/src/tint/ast/const.cc
+++ b/src/tint/ast/const.cc
@@ -21,12 +21,13 @@
namespace tint::ast {
Const::Const(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
const Expression* ctor,
AttributeList attrs)
- : Base(pid, src, sym, ty, ctor, attrs) {
+ : Base(pid, nid, src, sym, ty, ctor, attrs) {
TINT_ASSERT(AST, ctor != nullptr);
}
diff --git a/src/tint/ast/const.h b/src/tint/ast/const.h
index 32e3ddd..48cbab8 100644
--- a/src/tint/ast/const.h
+++ b/src/tint/ast/const.h
@@ -33,13 +33,15 @@
class Const final : public Castable<Const, Variable> {
public:
/// Create a 'const' creation-time value variable.
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
/// @param constructor the constructor expression. Must not be nullptr.
/// @param attributes the variable attributes
- Const(ProgramID program_id,
+ Const(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/continue_statement.cc b/src/tint/ast/continue_statement.cc
index 8ae4b9c..53bd6a9 100644
--- a/src/tint/ast/continue_statement.cc
+++ b/src/tint/ast/continue_statement.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-ContinueStatement::ContinueStatement(ProgramID pid, const Source& src) : Base(pid, src) {}
+ContinueStatement::ContinueStatement(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
ContinueStatement::ContinueStatement(ContinueStatement&&) = default;
diff --git a/src/tint/ast/continue_statement.h b/src/tint/ast/continue_statement.h
index 17d8586..09b8254 100644
--- a/src/tint/ast/continue_statement.h
+++ b/src/tint/ast/continue_statement.h
@@ -24,8 +24,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- ContinueStatement(ProgramID pid, const Source& src);
+ ContinueStatement(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
ContinueStatement(ContinueStatement&&);
~ContinueStatement() override;
diff --git a/src/tint/ast/depth_multisampled_texture.cc b/src/tint/ast/depth_multisampled_texture.cc
index 66c5a86..64998b5 100644
--- a/src/tint/ast/depth_multisampled_texture.cc
+++ b/src/tint/ast/depth_multisampled_texture.cc
@@ -28,9 +28,10 @@
} // namespace
DepthMultisampledTexture::DepthMultisampledTexture(ProgramID pid,
+ NodeID nid,
const Source& src,
TextureDimension d)
- : Base(pid, src, d) {
+ : Base(pid, nid, src, d) {
TINT_ASSERT(AST, IsValidDepthDimension(dim));
}
diff --git a/src/tint/ast/depth_multisampled_texture.h b/src/tint/ast/depth_multisampled_texture.h
index d15ac7a..2cc8d78 100644
--- a/src/tint/ast/depth_multisampled_texture.h
+++ b/src/tint/ast/depth_multisampled_texture.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- DepthMultisampledTexture(ProgramID pid, const Source& src, TextureDimension dim);
+ DepthMultisampledTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
/// Move constructor
DepthMultisampledTexture(DepthMultisampledTexture&&);
~DepthMultisampledTexture() override;
diff --git a/src/tint/ast/depth_texture.cc b/src/tint/ast/depth_texture.cc
index 6c0858f..4aae6f3 100644
--- a/src/tint/ast/depth_texture.cc
+++ b/src/tint/ast/depth_texture.cc
@@ -28,8 +28,8 @@
} // namespace
-DepthTexture::DepthTexture(ProgramID pid, const Source& src, TextureDimension d)
- : Base(pid, src, d) {
+DepthTexture::DepthTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension d)
+ : Base(pid, nid, src, d) {
TINT_ASSERT(AST, IsValidDepthDimension(dim));
}
diff --git a/src/tint/ast/depth_texture.h b/src/tint/ast/depth_texture.h
index 42349e3..7df34a2 100644
--- a/src/tint/ast/depth_texture.h
+++ b/src/tint/ast/depth_texture.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- DepthTexture(ProgramID pid, const Source& src, TextureDimension dim);
+ DepthTexture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
/// Move constructor
DepthTexture(DepthTexture&&);
~DepthTexture() override;
diff --git a/src/tint/ast/disable_validation_attribute.cc b/src/tint/ast/disable_validation_attribute.cc
index c5a6545..1f58799 100644
--- a/src/tint/ast/disable_validation_attribute.cc
+++ b/src/tint/ast/disable_validation_attribute.cc
@@ -20,8 +20,10 @@
namespace tint::ast {
-DisableValidationAttribute::DisableValidationAttribute(ProgramID pid, DisabledValidation val)
- : Base(pid), validation(val) {}
+DisableValidationAttribute::DisableValidationAttribute(ProgramID pid,
+ NodeID nid,
+ DisabledValidation val)
+ : Base(pid, nid), validation(val) {}
DisableValidationAttribute::~DisableValidationAttribute() = default;
@@ -46,7 +48,8 @@
}
const DisableValidationAttribute* DisableValidationAttribute::Clone(CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<DisableValidationAttribute>(ctx->dst->ID(), validation);
+ return ctx->dst->ASTNodes().Create<DisableValidationAttribute>(
+ ctx->dst->ID(), ctx->dst->AllocateNodeID(), validation);
}
} // namespace tint::ast
diff --git a/src/tint/ast/disable_validation_attribute.h b/src/tint/ast/disable_validation_attribute.h
index e44f7b8..a109d18 100644
--- a/src/tint/ast/disable_validation_attribute.h
+++ b/src/tint/ast/disable_validation_attribute.h
@@ -51,9 +51,10 @@
: public Castable<DisableValidationAttribute, InternalAttribute> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param validation the validation to disable
- explicit DisableValidationAttribute(ProgramID program_id, DisabledValidation validation);
+ explicit DisableValidationAttribute(ProgramID pid, NodeID nid, DisabledValidation validation);
/// Destructor
~DisableValidationAttribute() override;
diff --git a/src/tint/ast/discard_statement.cc b/src/tint/ast/discard_statement.cc
index 7ca673f..fc9e75b 100644
--- a/src/tint/ast/discard_statement.cc
+++ b/src/tint/ast/discard_statement.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-DiscardStatement::DiscardStatement(ProgramID pid, const Source& src) : Base(pid, src) {}
+DiscardStatement::DiscardStatement(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
DiscardStatement::DiscardStatement(DiscardStatement&&) = default;
diff --git a/src/tint/ast/discard_statement.h b/src/tint/ast/discard_statement.h
index 9d18c74..272cc2d 100644
--- a/src/tint/ast/discard_statement.h
+++ b/src/tint/ast/discard_statement.h
@@ -24,8 +24,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- DiscardStatement(ProgramID pid, const Source& src);
+ DiscardStatement(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
DiscardStatement(DiscardStatement&&);
~DiscardStatement() override;
diff --git a/src/tint/ast/enable.cc b/src/tint/ast/enable.cc
index ef43200..9da44c7 100644
--- a/src/tint/ast/enable.cc
+++ b/src/tint/ast/enable.cc
@@ -21,7 +21,8 @@
namespace tint::ast {
-Enable::Enable(ProgramID pid, const Source& src, Extension ext) : Base(pid, src), extension(ext) {}
+Enable::Enable(ProgramID pid, NodeID nid, const Source& src, Extension ext)
+ : Base(pid, nid, src), extension(ext) {}
Enable::Enable(Enable&&) = default;
diff --git a/src/tint/ast/enable.h b/src/tint/ast/enable.h
index 674d9cb..df8c5e9 100644
--- a/src/tint/ast/enable.h
+++ b/src/tint/ast/enable.h
@@ -33,9 +33,10 @@
public:
/// Create a extension
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param ext the extension
- Enable(ProgramID pid, const Source& src, Extension ext);
+ Enable(ProgramID pid, NodeID nid, const Source& src, Extension ext);
/// Move constructor
Enable(Enable&&);
diff --git a/src/tint/ast/expression.cc b/src/tint/ast/expression.cc
index a7f23aa..17b3dc2 100644
--- a/src/tint/ast/expression.cc
+++ b/src/tint/ast/expression.cc
@@ -21,7 +21,7 @@
namespace tint::ast {
-Expression::Expression(ProgramID pid, const Source& src) : Base(pid, src) {}
+Expression::Expression(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
Expression::Expression(Expression&&) = default;
diff --git a/src/tint/ast/expression.h b/src/tint/ast/expression.h
index dc69ff8..2690b93 100644
--- a/src/tint/ast/expression.h
+++ b/src/tint/ast/expression.h
@@ -31,8 +31,9 @@
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Expression(ProgramID pid, const Source& src);
+ Expression(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
Expression(Expression&&);
};
diff --git a/src/tint/ast/external_texture.cc b/src/tint/ast/external_texture.cc
index b88de90..4881913 100644
--- a/src/tint/ast/external_texture.cc
+++ b/src/tint/ast/external_texture.cc
@@ -21,8 +21,8 @@
namespace tint::ast {
// ExternalTexture::ExternalTexture() : Base(ast::TextureDimension::k2d) {}
-ExternalTexture::ExternalTexture(ProgramID pid, const Source& src)
- : Base(pid, src, ast::TextureDimension::k2d) {}
+ExternalTexture::ExternalTexture(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src, ast::TextureDimension::k2d) {}
ExternalTexture::ExternalTexture(ExternalTexture&&) = default;
diff --git a/src/tint/ast/external_texture.h b/src/tint/ast/external_texture.h
index 17224cf..f2d68b4 100644
--- a/src/tint/ast/external_texture.h
+++ b/src/tint/ast/external_texture.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- ExternalTexture(ProgramID pid, const Source& src);
+ ExternalTexture(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
ExternalTexture(ExternalTexture&&);
diff --git a/src/tint/ast/f16.cc b/src/tint/ast/f16.cc
index 0eb1be5..dd3e48e 100644
--- a/src/tint/ast/f16.cc
+++ b/src/tint/ast/f16.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-F16::F16(ProgramID pid, const Source& src) : Base(pid, src) {}
+F16::F16(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
F16::F16(F16&&) = default;
diff --git a/src/tint/ast/f16.h b/src/tint/ast/f16.h
index 1b84f09..c444a20 100644
--- a/src/tint/ast/f16.h
+++ b/src/tint/ast/f16.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- F16(ProgramID pid, const Source& src);
+ F16(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
F16(F16&&);
~F16() override;
diff --git a/src/tint/ast/f32.cc b/src/tint/ast/f32.cc
index b731e65..0ae354a 100644
--- a/src/tint/ast/f32.cc
+++ b/src/tint/ast/f32.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-F32::F32(ProgramID pid, const Source& src) : Base(pid, src) {}
+F32::F32(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
F32::F32(F32&&) = default;
diff --git a/src/tint/ast/f32.h b/src/tint/ast/f32.h
index db81491..5176c45 100644
--- a/src/tint/ast/f32.h
+++ b/src/tint/ast/f32.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- F32(ProgramID pid, const Source& src);
+ F32(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
F32(F32&&);
~F32() override;
diff --git a/src/tint/ast/fallthrough_statement.cc b/src/tint/ast/fallthrough_statement.cc
index 446534d..0d30ae3 100644
--- a/src/tint/ast/fallthrough_statement.cc
+++ b/src/tint/ast/fallthrough_statement.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-FallthroughStatement::FallthroughStatement(ProgramID pid, const Source& src) : Base(pid, src) {}
+FallthroughStatement::FallthroughStatement(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
FallthroughStatement::FallthroughStatement(FallthroughStatement&&) = default;
diff --git a/src/tint/ast/fallthrough_statement.h b/src/tint/ast/fallthrough_statement.h
index b313efb..da2fd3d 100644
--- a/src/tint/ast/fallthrough_statement.h
+++ b/src/tint/ast/fallthrough_statement.h
@@ -24,8 +24,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- FallthroughStatement(ProgramID pid, const Source& src);
+ FallthroughStatement(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
FallthroughStatement(FallthroughStatement&&);
~FallthroughStatement() override;
diff --git a/src/tint/ast/float_literal_expression.cc b/src/tint/ast/float_literal_expression.cc
index 36cb42a..524b56e 100644
--- a/src/tint/ast/float_literal_expression.cc
+++ b/src/tint/ast/float_literal_expression.cc
@@ -23,10 +23,11 @@
namespace tint::ast {
FloatLiteralExpression::FloatLiteralExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
double val,
Suffix suf)
- : Base(pid, src), value(val), suffix(suf) {}
+ : Base(pid, nid, src), value(val), suffix(suf) {}
FloatLiteralExpression::~FloatLiteralExpression() = default;
diff --git a/src/tint/ast/float_literal_expression.h b/src/tint/ast/float_literal_expression.h
index 7f03caf..7f3cd12 100644
--- a/src/tint/ast/float_literal_expression.h
+++ b/src/tint/ast/float_literal_expression.h
@@ -36,10 +36,11 @@
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param val the literal value
/// @param suf the literal suffix
- FloatLiteralExpression(ProgramID pid, const Source& src, double val, Suffix suf);
+ FloatLiteralExpression(ProgramID pid, NodeID nid, const Source& src, double val, Suffix suf);
~FloatLiteralExpression() override;
/// Clones this node and all transitive child nodes using the `CloneContext`
diff --git a/src/tint/ast/for_loop_statement.cc b/src/tint/ast/for_loop_statement.cc
index 804389c..aba956d 100644
--- a/src/tint/ast/for_loop_statement.cc
+++ b/src/tint/ast/for_loop_statement.cc
@@ -21,12 +21,13 @@
namespace tint::ast {
ForLoopStatement::ForLoopStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Statement* init,
const Expression* cond,
const Statement* cont,
const BlockStatement* b)
- : Base(pid, src), initializer(init), condition(cond), continuing(cont), body(b) {
+ : Base(pid, nid, src), initializer(init), condition(cond), continuing(cont), body(b) {
TINT_ASSERT(AST, body);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, initializer, program_id);
diff --git a/src/tint/ast/for_loop_statement.h b/src/tint/ast/for_loop_statement.h
index 464ea49..59e0587 100644
--- a/src/tint/ast/for_loop_statement.h
+++ b/src/tint/ast/for_loop_statement.h
@@ -25,14 +25,16 @@
class ForLoopStatement final : public Castable<ForLoopStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the for loop statement source
/// @param initializer the optional loop initializer statement
/// @param condition the optional loop condition expression
/// @param continuing the optional continuing statement
/// @param body the loop body
- ForLoopStatement(ProgramID program_id,
- Source const& source,
+ ForLoopStatement(ProgramID pid,
+ NodeID nid,
+ const Source& source,
const Statement* initializer,
const Expression* condition,
const Statement* continuing,
diff --git a/src/tint/ast/function.cc b/src/tint/ast/function.cc
index 84d80d7..49bfb9b 100644
--- a/src/tint/ast/function.cc
+++ b/src/tint/ast/function.cc
@@ -23,6 +23,7 @@
namespace tint::ast {
Function::Function(ProgramID pid,
+ NodeID nid,
const Source& src,
Symbol sym,
ParameterList parameters,
@@ -30,7 +31,7 @@
const BlockStatement* b,
AttributeList attrs,
AttributeList return_type_attrs)
- : Base(pid, src),
+ : Base(pid, nid, src),
symbol(sym),
params(std::move(parameters)),
return_type(return_ty),
diff --git a/src/tint/ast/function.h b/src/tint/ast/function.h
index d849486..ed7f5b2 100644
--- a/src/tint/ast/function.h
+++ b/src/tint/ast/function.h
@@ -35,7 +35,8 @@
class Function final : public Castable<Function, Node> {
public:
/// Create a function
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param symbol the function symbol
/// @param params the function parameters
@@ -43,7 +44,8 @@
/// @param body the function body
/// @param attributes the function attributes
/// @param return_type_attributes the return type attributes
- Function(ProgramID program_id,
+ Function(ProgramID pid,
+ NodeID nid,
const Source& source,
Symbol symbol,
ParameterList params,
diff --git a/src/tint/ast/group_attribute.cc b/src/tint/ast/group_attribute.cc
index 394a690..9d01111 100644
--- a/src/tint/ast/group_attribute.cc
+++ b/src/tint/ast/group_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-GroupAttribute::GroupAttribute(ProgramID pid, const Source& src, uint32_t val)
- : Base(pid, src), value(val) {}
+GroupAttribute::GroupAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t val)
+ : Base(pid, nid, src), value(val) {}
GroupAttribute::~GroupAttribute() = default;
diff --git a/src/tint/ast/group_attribute.h b/src/tint/ast/group_attribute.h
index a559461..66d6ccb 100644
--- a/src/tint/ast/group_attribute.h
+++ b/src/tint/ast/group_attribute.h
@@ -26,9 +26,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param value the group value
- GroupAttribute(ProgramID pid, const Source& src, uint32_t value);
+ GroupAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t value);
~GroupAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/i32.cc b/src/tint/ast/i32.cc
index 46fe75e..ffdf30d 100644
--- a/src/tint/ast/i32.cc
+++ b/src/tint/ast/i32.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-I32::I32(ProgramID pid, const Source& src) : Base(pid, src) {}
+I32::I32(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
I32::I32(I32&&) = default;
diff --git a/src/tint/ast/i32.h b/src/tint/ast/i32.h
index acafd37..d2c951c 100644
--- a/src/tint/ast/i32.h
+++ b/src/tint/ast/i32.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- I32(ProgramID pid, const Source& src);
+ I32(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
I32(I32&&);
~I32() override;
diff --git a/src/tint/ast/id_attribute.cc b/src/tint/ast/id_attribute.cc
index b6e1957..75d62c6 100644
--- a/src/tint/ast/id_attribute.cc
+++ b/src/tint/ast/id_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-IdAttribute::IdAttribute(ProgramID pid, const Source& src, uint32_t val)
- : Base(pid, src), value(val) {}
+IdAttribute::IdAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t val)
+ : Base(pid, nid, src), value(val) {}
IdAttribute::~IdAttribute() = default;
diff --git a/src/tint/ast/id_attribute.h b/src/tint/ast/id_attribute.h
index 5e3ec12..ca2a358 100644
--- a/src/tint/ast/id_attribute.h
+++ b/src/tint/ast/id_attribute.h
@@ -26,9 +26,10 @@
public:
/// Create an id attribute.
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param val the numeric id value
- IdAttribute(ProgramID pid, const Source& src, uint32_t val);
+ IdAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t val);
~IdAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/identifier_expression.cc b/src/tint/ast/identifier_expression.cc
index 453ae69..34eadeb 100644
--- a/src/tint/ast/identifier_expression.cc
+++ b/src/tint/ast/identifier_expression.cc
@@ -20,8 +20,8 @@
namespace tint::ast {
-IdentifierExpression::IdentifierExpression(ProgramID pid, const Source& src, Symbol sym)
- : Base(pid, src), symbol(sym) {
+IdentifierExpression::IdentifierExpression(ProgramID pid, NodeID nid, const Source& src, Symbol sym)
+ : Base(pid, nid, src), symbol(sym) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, symbol, program_id);
TINT_ASSERT(AST, symbol.IsValid());
}
diff --git a/src/tint/ast/identifier_expression.h b/src/tint/ast/identifier_expression.h
index c3e1c30..b583807 100644
--- a/src/tint/ast/identifier_expression.h
+++ b/src/tint/ast/identifier_expression.h
@@ -24,9 +24,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param sym the symbol for the identifier
- IdentifierExpression(ProgramID pid, const Source& src, Symbol sym);
+ IdentifierExpression(ProgramID pid, NodeID nid, const Source& src, Symbol sym);
/// Move constructor
IdentifierExpression(IdentifierExpression&&);
~IdentifierExpression() override;
diff --git a/src/tint/ast/if_statement.cc b/src/tint/ast/if_statement.cc
index c8fd374..5f7f1a7 100644
--- a/src/tint/ast/if_statement.cc
+++ b/src/tint/ast/if_statement.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
IfStatement::IfStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* cond,
const BlockStatement* b,
const Statement* else_stmt)
- : Base(pid, src), condition(cond), body(b), else_statement(else_stmt) {
+ : Base(pid, nid, src), condition(cond), body(b), else_statement(else_stmt) {
TINT_ASSERT(AST, condition);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, condition, program_id);
TINT_ASSERT(AST, body);
diff --git a/src/tint/ast/if_statement.h b/src/tint/ast/if_statement.h
index 75e6eee..81d9756 100644
--- a/src/tint/ast/if_statement.h
+++ b/src/tint/ast/if_statement.h
@@ -27,11 +27,13 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param condition the if condition
/// @param body the if body
/// @param else_stmt the else statement, or nullptr
IfStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* condition,
const BlockStatement* body,
diff --git a/src/tint/ast/increment_decrement_statement.cc b/src/tint/ast/increment_decrement_statement.cc
index 99c65cb..5b10e5f 100644
--- a/src/tint/ast/increment_decrement_statement.cc
+++ b/src/tint/ast/increment_decrement_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
IncrementDecrementStatement::IncrementDecrementStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* l,
bool inc)
- : Base(pid, src), lhs(l), increment(inc) {
+ : Base(pid, nid, src), lhs(l), increment(inc) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, lhs, program_id);
}
diff --git a/src/tint/ast/increment_decrement_statement.h b/src/tint/ast/increment_decrement_statement.h
index 05b8478..ec9923a 100644
--- a/src/tint/ast/increment_decrement_statement.h
+++ b/src/tint/ast/increment_decrement_statement.h
@@ -25,10 +25,15 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param lhs the LHS expression
/// @param inc `true` for increment, `false` for decrement
- IncrementDecrementStatement(ProgramID pid, const Source& src, const Expression* lhs, bool inc);
+ IncrementDecrementStatement(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Expression* lhs,
+ bool inc);
/// Move constructor
IncrementDecrementStatement(IncrementDecrementStatement&&);
~IncrementDecrementStatement() override;
diff --git a/src/tint/ast/index_accessor_expression.cc b/src/tint/ast/index_accessor_expression.cc
index 232bc79..47f5156 100644
--- a/src/tint/ast/index_accessor_expression.cc
+++ b/src/tint/ast/index_accessor_expression.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
IndexAccessorExpression::IndexAccessorExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* obj,
const Expression* idx)
- : Base(pid, src), object(obj), index(idx) {
+ : Base(pid, nid, src), object(obj), index(idx) {
TINT_ASSERT(AST, object);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, object, program_id);
TINT_ASSERT(AST, idx);
diff --git a/src/tint/ast/index_accessor_expression.h b/src/tint/ast/index_accessor_expression.h
index c36f6b8..0307f9e 100644
--- a/src/tint/ast/index_accessor_expression.h
+++ b/src/tint/ast/index_accessor_expression.h
@@ -23,11 +23,13 @@
class IndexAccessorExpression final : public Castable<IndexAccessorExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the index accessor source
/// @param obj the object
/// @param idx the index expression
- IndexAccessorExpression(ProgramID program_id,
+ IndexAccessorExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
const Expression* obj,
const Expression* idx);
diff --git a/src/tint/ast/int_literal_expression.cc b/src/tint/ast/int_literal_expression.cc
index 7e11f7e..502ea9d 100644
--- a/src/tint/ast/int_literal_expression.cc
+++ b/src/tint/ast/int_literal_expression.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
IntLiteralExpression::IntLiteralExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
int64_t val,
Suffix suf)
- : Base(pid, src), value(val), suffix(suf) {}
+ : Base(pid, nid, src), value(val), suffix(suf) {}
IntLiteralExpression::~IntLiteralExpression() = default;
diff --git a/src/tint/ast/int_literal_expression.h b/src/tint/ast/int_literal_expression.h
index 8ff58ea..b4e184a 100644
--- a/src/tint/ast/int_literal_expression.h
+++ b/src/tint/ast/int_literal_expression.h
@@ -34,10 +34,11 @@
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param val the literal value
/// @param suf the literal suffix
- IntLiteralExpression(ProgramID pid, const Source& src, int64_t val, Suffix suf);
+ IntLiteralExpression(ProgramID pid, NodeID nid, const Source& src, int64_t val, Suffix suf);
~IntLiteralExpression() override;
diff --git a/src/tint/ast/internal_attribute.cc b/src/tint/ast/internal_attribute.cc
index 180e909..1b4ca9e 100644
--- a/src/tint/ast/internal_attribute.cc
+++ b/src/tint/ast/internal_attribute.cc
@@ -18,7 +18,7 @@
namespace tint::ast {
-InternalAttribute::InternalAttribute(ProgramID pid) : Base(pid, Source{}) {}
+InternalAttribute::InternalAttribute(ProgramID pid, NodeID nid) : Base(pid, nid, Source{}) {}
InternalAttribute::~InternalAttribute() = default;
diff --git a/src/tint/ast/internal_attribute.h b/src/tint/ast/internal_attribute.h
index bb13559..9904af8 100644
--- a/src/tint/ast/internal_attribute.h
+++ b/src/tint/ast/internal_attribute.h
@@ -28,7 +28,8 @@
public:
/// Constructor
/// @param program_id the identifier of the program that owns this node
- explicit InternalAttribute(ProgramID program_id);
+ /// @param nid the unique node identifier
+ explicit InternalAttribute(ProgramID program_id, NodeID nid);
/// Destructor
~InternalAttribute() override;
diff --git a/src/tint/ast/interpolate_attribute.cc b/src/tint/ast/interpolate_attribute.cc
index 909e827..29e3bfe 100644
--- a/src/tint/ast/interpolate_attribute.cc
+++ b/src/tint/ast/interpolate_attribute.cc
@@ -23,10 +23,11 @@
namespace tint::ast {
InterpolateAttribute::InterpolateAttribute(ProgramID pid,
+ NodeID nid,
const Source& src,
InterpolationType ty,
InterpolationSampling smpl)
- : Base(pid, src), type(ty), sampling(smpl) {}
+ : Base(pid, nid, src), type(ty), sampling(smpl) {}
InterpolateAttribute::~InterpolateAttribute() = default;
diff --git a/src/tint/ast/interpolate_attribute.h b/src/tint/ast/interpolate_attribute.h
index 4b2a2df..4f9ea9d 100644
--- a/src/tint/ast/interpolate_attribute.h
+++ b/src/tint/ast/interpolate_attribute.h
@@ -33,10 +33,12 @@
public:
/// Create an interpolate attribute.
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param type the interpolation type
/// @param sampling the interpolation sampling
InterpolateAttribute(ProgramID pid,
+ NodeID nid,
const Source& src,
InterpolationType type,
InterpolationSampling sampling);
diff --git a/src/tint/ast/invariant_attribute.cc b/src/tint/ast/invariant_attribute.cc
index 1b0f126..1fa4e5d 100644
--- a/src/tint/ast/invariant_attribute.cc
+++ b/src/tint/ast/invariant_attribute.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-InvariantAttribute::InvariantAttribute(ProgramID pid, const Source& src) : Base(pid, src) {}
+InvariantAttribute::InvariantAttribute(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
InvariantAttribute::~InvariantAttribute() = default;
diff --git a/src/tint/ast/invariant_attribute.h b/src/tint/ast/invariant_attribute.h
index 6bb42fc..9abb6a4 100644
--- a/src/tint/ast/invariant_attribute.h
+++ b/src/tint/ast/invariant_attribute.h
@@ -26,8 +26,9 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- InvariantAttribute(ProgramID pid, const Source& src);
+ InvariantAttribute(ProgramID pid, NodeID nid, const Source& src);
~InvariantAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/let.cc b/src/tint/ast/let.cc
index 8db8ec1..b42e6e6 100644
--- a/src/tint/ast/let.cc
+++ b/src/tint/ast/let.cc
@@ -21,12 +21,13 @@
namespace tint::ast {
Let::Let(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
const Expression* ctor,
AttributeList attrs)
- : Base(pid, src, sym, ty, ctor, attrs) {
+ : Base(pid, nid, src, sym, ty, ctor, attrs) {
TINT_ASSERT(AST, ctor != nullptr);
}
diff --git a/src/tint/ast/let.h b/src/tint/ast/let.h
index 2c1ad7c..0f71da2 100644
--- a/src/tint/ast/let.h
+++ b/src/tint/ast/let.h
@@ -30,13 +30,15 @@
class Let final : public Castable<Let, Variable> {
public:
/// Create a 'let' variable
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
/// @param constructor the constructor expression
/// @param attributes the variable attributes
- Let(ProgramID program_id,
+ Let(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/literal_expression.cc b/src/tint/ast/literal_expression.cc
index d05279d..bcf62ad 100644
--- a/src/tint/ast/literal_expression.cc
+++ b/src/tint/ast/literal_expression.cc
@@ -18,7 +18,8 @@
namespace tint::ast {
-LiteralExpression::LiteralExpression(ProgramID pid, const Source& src) : Base(pid, src) {}
+LiteralExpression::LiteralExpression(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
LiteralExpression::~LiteralExpression() = default;
diff --git a/src/tint/ast/literal_expression.h b/src/tint/ast/literal_expression.h
index 56fc1f0..b4b2b09 100644
--- a/src/tint/ast/literal_expression.h
+++ b/src/tint/ast/literal_expression.h
@@ -29,8 +29,9 @@
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the input source
- LiteralExpression(ProgramID pid, const Source& src);
+ LiteralExpression(ProgramID pid, NodeID nid, const Source& src);
};
} // namespace tint::ast
diff --git a/src/tint/ast/location_attribute.cc b/src/tint/ast/location_attribute.cc
index 1eae823..2ea2d5d 100644
--- a/src/tint/ast/location_attribute.cc
+++ b/src/tint/ast/location_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-LocationAttribute::LocationAttribute(ProgramID pid, const Source& src, uint32_t val)
- : Base(pid, src), value(val) {}
+LocationAttribute::LocationAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t val)
+ : Base(pid, nid, src), value(val) {}
LocationAttribute::~LocationAttribute() = default;
diff --git a/src/tint/ast/location_attribute.h b/src/tint/ast/location_attribute.h
index 3646c54..97c6fea 100644
--- a/src/tint/ast/location_attribute.h
+++ b/src/tint/ast/location_attribute.h
@@ -26,9 +26,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param value the location value
- LocationAttribute(ProgramID pid, const Source& src, uint32_t value);
+ LocationAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t value);
~LocationAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/loop_statement.cc b/src/tint/ast/loop_statement.cc
index 9d14960..b7e7a1b 100644
--- a/src/tint/ast/loop_statement.cc
+++ b/src/tint/ast/loop_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
LoopStatement::LoopStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const BlockStatement* b,
const BlockStatement* cont)
- : Base(pid, src), body(b), continuing(cont) {
+ : Base(pid, nid, src), body(b), continuing(cont) {
TINT_ASSERT(AST, body);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, body, program_id);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, continuing, program_id);
diff --git a/src/tint/ast/loop_statement.h b/src/tint/ast/loop_statement.h
index 5a044fe..d4b24cf 100644
--- a/src/tint/ast/loop_statement.h
+++ b/src/tint/ast/loop_statement.h
@@ -23,11 +23,13 @@
class LoopStatement final : public Castable<LoopStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the loop statement source
/// @param body the body statements
/// @param continuing the continuing statements
- LoopStatement(ProgramID program_id,
+ LoopStatement(ProgramID pid,
+ NodeID nid,
const Source& source,
const BlockStatement* body,
const BlockStatement* continuing);
diff --git a/src/tint/ast/matrix.cc b/src/tint/ast/matrix.cc
index 1f74a26..6937127 100644
--- a/src/tint/ast/matrix.cc
+++ b/src/tint/ast/matrix.cc
@@ -20,8 +20,13 @@
namespace tint::ast {
-Matrix::Matrix(ProgramID pid, const Source& src, const Type* subtype, uint32_t r, uint32_t c)
- : Base(pid, src), type(subtype), rows(r), columns(c) {
+Matrix::Matrix(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Type* subtype,
+ uint32_t r,
+ uint32_t c)
+ : Base(pid, nid, src), type(subtype), rows(r), columns(c) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, subtype, program_id);
TINT_ASSERT(AST, rows > 1);
TINT_ASSERT(AST, rows < 5);
diff --git a/src/tint/ast/matrix.h b/src/tint/ast/matrix.h
index 620f28a..e778738 100644
--- a/src/tint/ast/matrix.h
+++ b/src/tint/ast/matrix.h
@@ -26,13 +26,19 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param subtype the declared type of the matrix components. May be null for
/// matrix constructors, where the element type will be inferred from
/// the constructor arguments
/// @param rows the number of rows in the matrix
/// @param columns the number of columns in the matrix
- Matrix(ProgramID pid, const Source& src, const Type* subtype, uint32_t rows, uint32_t columns);
+ Matrix(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Type* subtype,
+ uint32_t rows,
+ uint32_t columns);
/// Move constructor
Matrix(Matrix&&);
~Matrix() override;
diff --git a/src/tint/ast/member_accessor_expression.cc b/src/tint/ast/member_accessor_expression.cc
index a087ea4..b895e3b 100644
--- a/src/tint/ast/member_accessor_expression.cc
+++ b/src/tint/ast/member_accessor_expression.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
MemberAccessorExpression::MemberAccessorExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* str,
const IdentifierExpression* mem)
- : Base(pid, src), structure(str), member(mem) {
+ : Base(pid, nid, src), structure(str), member(mem) {
TINT_ASSERT(AST, structure);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, structure, program_id);
TINT_ASSERT(AST, member);
diff --git a/src/tint/ast/member_accessor_expression.h b/src/tint/ast/member_accessor_expression.h
index 07054ca..33284fe 100644
--- a/src/tint/ast/member_accessor_expression.h
+++ b/src/tint/ast/member_accessor_expression.h
@@ -23,11 +23,13 @@
class MemberAccessorExpression final : public Castable<MemberAccessorExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the member accessor expression source
/// @param structure the structure
/// @param member the member
- MemberAccessorExpression(ProgramID program_id,
+ MemberAccessorExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
const Expression* structure,
const IdentifierExpression* member);
diff --git a/src/tint/ast/module.cc b/src/tint/ast/module.cc
index 40dff98..7cf9282 100644
--- a/src/tint/ast/module.cc
+++ b/src/tint/ast/module.cc
@@ -23,10 +23,13 @@
namespace tint::ast {
-Module::Module(ProgramID pid, const Source& src) : Base(pid, src) {}
+Module::Module(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
-Module::Module(ProgramID pid, const Source& src, std::vector<const ast::Node*> global_decls)
- : Base(pid, src), global_declarations_(std::move(global_decls)) {
+Module::Module(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ std::vector<const ast::Node*> global_decls)
+ : Base(pid, nid, src), global_declarations_(std::move(global_decls)) {
for (auto* decl : global_declarations_) {
if (decl == nullptr) {
continue;
diff --git a/src/tint/ast/module.h b/src/tint/ast/module.h
index 17cf353..27c62dc 100644
--- a/src/tint/ast/module.h
+++ b/src/tint/ast/module.h
@@ -32,15 +32,17 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Module(ProgramID pid, const Source& src);
+ Module(ProgramID pid, NodeID nid, const Source& src);
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param global_decls the list of global types, functions, and variables, in
/// the order they were declared in the source program
- Module(ProgramID pid, const Source& src, std::vector<const Node*> global_decls);
+ Module(ProgramID pid, NodeID nid, const Source& src, std::vector<const Node*> global_decls);
/// Destructor
~Module() override;
diff --git a/src/tint/ast/multisampled_texture.cc b/src/tint/ast/multisampled_texture.cc
index 91f8edf..0c44857 100644
--- a/src/tint/ast/multisampled_texture.cc
+++ b/src/tint/ast/multisampled_texture.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
MultisampledTexture::MultisampledTexture(ProgramID pid,
+ NodeID nid,
const Source& src,
TextureDimension d,
const Type* ty)
- : Base(pid, src, d), type(ty) {
+ : Base(pid, nid, src, d), type(ty) {
TINT_ASSERT(AST, type);
}
diff --git a/src/tint/ast/multisampled_texture.h b/src/tint/ast/multisampled_texture.h
index 1d95505..6887045 100644
--- a/src/tint/ast/multisampled_texture.h
+++ b/src/tint/ast/multisampled_texture.h
@@ -26,10 +26,15 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
/// @param type the data type of the multisampled texture
- MultisampledTexture(ProgramID pid, const Source& src, TextureDimension dim, const Type* type);
+ MultisampledTexture(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ TextureDimension dim,
+ const Type* type);
/// Move constructor
MultisampledTexture(MultisampledTexture&&);
~MultisampledTexture() override;
diff --git a/src/tint/ast/node.cc b/src/tint/ast/node.cc
index 2368791..ce3a71d 100644
--- a/src/tint/ast/node.cc
+++ b/src/tint/ast/node.cc
@@ -18,7 +18,8 @@
namespace tint::ast {
-Node::Node(ProgramID pid, const Source& src) : program_id(pid), source(src) {}
+Node::Node(ProgramID pid, NodeID nid, const Source& src)
+ : program_id(pid), node_id(nid), source(src) {}
Node::Node(Node&&) = default;
diff --git a/src/tint/ast/node.h b/src/tint/ast/node.h
index 19d7682..6eaa1e9 100644
--- a/src/tint/ast/node.h
+++ b/src/tint/ast/node.h
@@ -17,6 +17,7 @@
#include <string>
+#include "src/tint/ast/node_id.h"
#include "src/tint/clone_context.h"
namespace tint::ast {
@@ -29,14 +30,18 @@
/// The identifier of the program that owns this node
const ProgramID program_id;
+ /// The node identifier, unique for the program.
+ const NodeID node_id;
+
/// The node source data
const Source source;
protected:
/// Create a new node
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the input source for the node
- Node(ProgramID pid, const Source& src);
+ Node(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
Node(Node&&);
diff --git a/src/tint/ast/node_id.h b/src/tint/ast/node_id.h
new file mode 100644
index 0000000..79683b0
--- /dev/null
+++ b/src/tint/ast/node_id.h
@@ -0,0 +1,36 @@
+// Copyright 2022 The Tint Authors.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+#ifndef SRC_TINT_AST_NODE_ID_H_
+#define SRC_TINT_AST_NODE_ID_H_
+
+#include <stddef.h>
+
+namespace tint::ast {
+
+/// NodeID is a unique node identifier for a given Program.
+/// NodeIDs are sequentially allocated, starting at 0.
+struct NodeID {
+ /// Equality operator
+ /// @param other the other NodeID
+ /// @returns true if the NodeIDs are the same
+ bool operator==(const NodeID& other) const { return value == other.value; }
+
+ /// The numerical value for the node identifier
+ size_t value = 0;
+};
+
+} // namespace tint::ast
+
+#endif // SRC_TINT_AST_NODE_ID_H_
diff --git a/src/tint/ast/override.cc b/src/tint/ast/override.cc
index efd048d..b7ee064 100644
--- a/src/tint/ast/override.cc
+++ b/src/tint/ast/override.cc
@@ -21,12 +21,13 @@
namespace tint::ast {
Override::Override(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
const Expression* ctor,
AttributeList attrs)
- : Base(pid, src, sym, ty, ctor, attrs) {}
+ : Base(pid, nid, src, sym, ty, ctor, attrs) {}
Override::Override(Override&&) = default;
diff --git a/src/tint/ast/override.h b/src/tint/ast/override.h
index 98319e5..e97f14c 100644
--- a/src/tint/ast/override.h
+++ b/src/tint/ast/override.h
@@ -31,13 +31,15 @@
class Override final : public Castable<Override, Variable> {
public:
/// Create an 'override' pipeline-overridable constant.
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
/// @param constructor the constructor expression
/// @param attributes the variable attributes
- Override(ProgramID program_id,
+ Override(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/parameter.cc b/src/tint/ast/parameter.cc
index ea3c51f..bab2729 100644
--- a/src/tint/ast/parameter.cc
+++ b/src/tint/ast/parameter.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
Parameter::Parameter(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
AttributeList attrs)
- : Base(pid, src, sym, ty, nullptr, attrs) {}
+ : Base(pid, nid, src, sym, ty, nullptr, attrs) {}
Parameter::Parameter(Parameter&&) = default;
diff --git a/src/tint/ast/parameter.h b/src/tint/ast/parameter.h
index eb4b688..4a9bb93 100644
--- a/src/tint/ast/parameter.h
+++ b/src/tint/ast/parameter.h
@@ -34,12 +34,14 @@
class Parameter final : public Castable<Parameter, Variable> {
public:
/// Create a 'parameter' creation-time value variable.
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
/// @param attributes the variable attributes
- Parameter(ProgramID program_id,
+ Parameter(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/phony_expression.cc b/src/tint/ast/phony_expression.cc
index a3fd4fd..6bce1bf 100644
--- a/src/tint/ast/phony_expression.cc
+++ b/src/tint/ast/phony_expression.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-PhonyExpression::PhonyExpression(ProgramID pid, const Source& src) : Base(pid, src) {}
+PhonyExpression::PhonyExpression(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src) {}
PhonyExpression::PhonyExpression(PhonyExpression&&) = default;
diff --git a/src/tint/ast/phony_expression.h b/src/tint/ast/phony_expression.h
index 4fc32dd..d429a51 100644
--- a/src/tint/ast/phony_expression.h
+++ b/src/tint/ast/phony_expression.h
@@ -25,8 +25,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- PhonyExpression(ProgramID pid, const Source& src);
+ PhonyExpression(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
PhonyExpression(PhonyExpression&&);
~PhonyExpression() override;
diff --git a/src/tint/ast/pointer.cc b/src/tint/ast/pointer.cc
index 42c3fa9..796fe85 100644
--- a/src/tint/ast/pointer.cc
+++ b/src/tint/ast/pointer.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
Pointer::Pointer(ProgramID pid,
+ NodeID nid,
const Source& src,
const Type* const subtype,
ast::StorageClass sc,
ast::Access ac)
- : Base(pid, src), type(subtype), storage_class(sc), access(ac) {}
+ : Base(pid, nid, src), type(subtype), storage_class(sc), access(ac) {}
std::string Pointer::FriendlyName(const SymbolTable& symbols) const {
std::ostringstream out;
diff --git a/src/tint/ast/pointer.h b/src/tint/ast/pointer.h
index 030e844..61eff88 100644
--- a/src/tint/ast/pointer.h
+++ b/src/tint/ast/pointer.h
@@ -28,11 +28,13 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param subtype the pointee type
/// @param storage_class the storage class of the pointer
/// @param access the access control of the pointer
Pointer(ProgramID pid,
+ NodeID nid,
const Source& src,
const Type* const subtype,
ast::StorageClass storage_class,
diff --git a/src/tint/ast/return_statement.cc b/src/tint/ast/return_statement.cc
index 976c063..459bb72 100644
--- a/src/tint/ast/return_statement.cc
+++ b/src/tint/ast/return_statement.cc
@@ -20,11 +20,14 @@
namespace tint::ast {
-ReturnStatement::ReturnStatement(ProgramID pid, const Source& src)
- : Base(pid, src), value(nullptr) {}
+ReturnStatement::ReturnStatement(ProgramID pid, NodeID nid, const Source& src)
+ : Base(pid, nid, src), value(nullptr) {}
-ReturnStatement::ReturnStatement(ProgramID pid, const Source& src, const Expression* val)
- : Base(pid, src), value(val) {
+ReturnStatement::ReturnStatement(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Expression* val)
+ : Base(pid, nid, src), value(val) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, value, program_id);
}
diff --git a/src/tint/ast/return_statement.h b/src/tint/ast/return_statement.h
index 34d8678..571a738 100644
--- a/src/tint/ast/return_statement.h
+++ b/src/tint/ast/return_statement.h
@@ -25,14 +25,16 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- ReturnStatement(ProgramID pid, const Source& src);
+ ReturnStatement(ProgramID pid, NodeID nid, const Source& src);
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param value the return value
- ReturnStatement(ProgramID pid, const Source& src, const Expression* value);
+ ReturnStatement(ProgramID pid, NodeID nid, const Source& src, const Expression* value);
/// Move constructor
ReturnStatement(ReturnStatement&&);
~ReturnStatement() override;
diff --git a/src/tint/ast/sampled_texture.cc b/src/tint/ast/sampled_texture.cc
index 9c4cea6..b8dfd61 100644
--- a/src/tint/ast/sampled_texture.cc
+++ b/src/tint/ast/sampled_texture.cc
@@ -20,8 +20,12 @@
namespace tint::ast {
-SampledTexture::SampledTexture(ProgramID pid, const Source& src, TextureDimension d, const Type* ty)
- : Base(pid, src, d), type(ty) {
+SampledTexture::SampledTexture(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ TextureDimension d,
+ const Type* ty)
+ : Base(pid, nid, src, d), type(ty) {
TINT_ASSERT(AST, type);
}
diff --git a/src/tint/ast/sampled_texture.h b/src/tint/ast/sampled_texture.h
index f68fccf..1f33af3 100644
--- a/src/tint/ast/sampled_texture.h
+++ b/src/tint/ast/sampled_texture.h
@@ -26,10 +26,15 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
/// @param type the data type of the sampled texture
- SampledTexture(ProgramID pid, const Source& src, TextureDimension dim, const Type* type);
+ SampledTexture(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ TextureDimension dim,
+ const Type* type);
/// Move constructor
SampledTexture(SampledTexture&&);
~SampledTexture() override;
diff --git a/src/tint/ast/sampler.cc b/src/tint/ast/sampler.cc
index 5d88bf8..5237380 100644
--- a/src/tint/ast/sampler.cc
+++ b/src/tint/ast/sampler.cc
@@ -32,7 +32,8 @@
return out;
}
-Sampler::Sampler(ProgramID pid, const Source& src, SamplerKind k) : Base(pid, src), kind(k) {}
+Sampler::Sampler(ProgramID pid, NodeID nid, const Source& src, SamplerKind k)
+ : Base(pid, nid, src), kind(k) {}
Sampler::Sampler(Sampler&&) = default;
diff --git a/src/tint/ast/sampler.h b/src/tint/ast/sampler.h
index 067fc38..bcdf751 100644
--- a/src/tint/ast/sampler.h
+++ b/src/tint/ast/sampler.h
@@ -39,9 +39,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param kind the kind of sampler
- Sampler(ProgramID pid, const Source& src, SamplerKind kind);
+ Sampler(ProgramID pid, NodeID nid, const Source& src, SamplerKind kind);
/// Move constructor
Sampler(Sampler&&);
~Sampler() override;
diff --git a/src/tint/ast/stage_attribute.cc b/src/tint/ast/stage_attribute.cc
index 51cfe8c..c700950 100644
--- a/src/tint/ast/stage_attribute.cc
+++ b/src/tint/ast/stage_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-StageAttribute::StageAttribute(ProgramID pid, const Source& src, PipelineStage s)
- : Base(pid, src), stage(s) {}
+StageAttribute::StageAttribute(ProgramID pid, NodeID nid, const Source& src, PipelineStage s)
+ : Base(pid, nid, src), stage(s) {}
StageAttribute::~StageAttribute() = default;
diff --git a/src/tint/ast/stage_attribute.h b/src/tint/ast/stage_attribute.h
index a447d1f..0bf9d9e 100644
--- a/src/tint/ast/stage_attribute.h
+++ b/src/tint/ast/stage_attribute.h
@@ -26,10 +26,11 @@
class StageAttribute final : public Castable<StageAttribute, Attribute> {
public:
/// constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param stage the pipeline stage
/// @param source the source of this attribute
- StageAttribute(ProgramID program_id, const Source& source, PipelineStage stage);
+ StageAttribute(ProgramID pid, NodeID nid, const Source& source, PipelineStage stage);
~StageAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/statement.cc b/src/tint/ast/statement.cc
index 12a1cc9..6acfff3 100644
--- a/src/tint/ast/statement.cc
+++ b/src/tint/ast/statement.cc
@@ -30,7 +30,7 @@
namespace tint::ast {
-Statement::Statement(ProgramID pid, const Source& src) : Base(pid, src) {}
+Statement::Statement(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
Statement::Statement(Statement&&) = default;
diff --git a/src/tint/ast/statement.h b/src/tint/ast/statement.h
index 94de247..e3a96d1 100644
--- a/src/tint/ast/statement.h
+++ b/src/tint/ast/statement.h
@@ -32,8 +32,9 @@
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of the expression
- Statement(ProgramID pid, const Source& src);
+ Statement(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
Statement(Statement&&);
};
diff --git a/src/tint/ast/storage_texture.cc b/src/tint/ast/storage_texture.cc
index ccc250d..d75bb0f 100644
--- a/src/tint/ast/storage_texture.cc
+++ b/src/tint/ast/storage_texture.cc
@@ -83,12 +83,13 @@
}
StorageTexture::StorageTexture(ProgramID pid,
+ NodeID nid,
const Source& src,
TextureDimension d,
TexelFormat fmt,
const Type* subtype,
Access ac)
- : Base(pid, src, d), format(fmt), type(subtype), access(ac) {}
+ : Base(pid, nid, src, d), format(fmt), type(subtype), access(ac) {}
StorageTexture::StorageTexture(StorageTexture&&) = default;
diff --git a/src/tint/ast/storage_texture.h b/src/tint/ast/storage_texture.h
index 3cf779e..ac7fee1 100644
--- a/src/tint/ast/storage_texture.h
+++ b/src/tint/ast/storage_texture.h
@@ -53,12 +53,14 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
/// @param format the image format of the texture
/// @param subtype the storage subtype. Use SubtypeFor() to calculate this.
/// @param access_control the access control for the texture.
StorageTexture(ProgramID pid,
+ NodeID nid,
const Source& src,
TextureDimension dim,
TexelFormat format,
diff --git a/src/tint/ast/stride_attribute.cc b/src/tint/ast/stride_attribute.cc
index 14a0733..408ee44 100644
--- a/src/tint/ast/stride_attribute.cc
+++ b/src/tint/ast/stride_attribute.cc
@@ -22,8 +22,8 @@
namespace tint::ast {
-StrideAttribute::StrideAttribute(ProgramID pid, const Source& src, uint32_t s)
- : Base(pid, src), stride(s) {}
+StrideAttribute::StrideAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t s)
+ : Base(pid, nid, src), stride(s) {}
StrideAttribute::~StrideAttribute() = default;
diff --git a/src/tint/ast/stride_attribute.h b/src/tint/ast/stride_attribute.h
index 4315f21..9014677 100644
--- a/src/tint/ast/stride_attribute.h
+++ b/src/tint/ast/stride_attribute.h
@@ -28,9 +28,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param stride the stride value
- StrideAttribute(ProgramID pid, const Source& src, uint32_t stride);
+ StrideAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t stride);
~StrideAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/struct.cc b/src/tint/ast/struct.cc
index 19a30de..326718a 100644
--- a/src/tint/ast/struct.cc
+++ b/src/tint/ast/struct.cc
@@ -22,8 +22,13 @@
namespace tint::ast {
-Struct::Struct(ProgramID pid, const Source& src, Symbol n, StructMemberList m, AttributeList attrs)
- : Base(pid, src, n), members(std::move(m)), attributes(std::move(attrs)) {
+Struct::Struct(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ Symbol n,
+ StructMemberList m,
+ AttributeList attrs)
+ : Base(pid, nid, src, n), members(std::move(m)), attributes(std::move(attrs)) {
for (auto* mem : members) {
TINT_ASSERT(AST, mem);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, mem, program_id);
diff --git a/src/tint/ast/struct.h b/src/tint/ast/struct.h
index 5c28b4c..5d55b8c 100644
--- a/src/tint/ast/struct.h
+++ b/src/tint/ast/struct.h
@@ -29,11 +29,13 @@
public:
/// Create a new struct statement
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node for the import statement
/// @param name The name of the structure
/// @param members The struct members
/// @param attributes The struct attributes
Struct(ProgramID pid,
+ NodeID nid,
const Source& src,
Symbol name,
StructMemberList members,
diff --git a/src/tint/ast/struct_member.cc b/src/tint/ast/struct_member.cc
index 6113484..72acd33 100644
--- a/src/tint/ast/struct_member.cc
+++ b/src/tint/ast/struct_member.cc
@@ -21,11 +21,12 @@
namespace tint::ast {
StructMember::StructMember(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
AttributeList attrs)
- : Base(pid, src), symbol(sym), type(ty), attributes(std::move(attrs)) {
+ : Base(pid, nid, src), symbol(sym), type(ty), attributes(std::move(attrs)) {
TINT_ASSERT(AST, type);
TINT_ASSERT(AST, symbol.IsValid());
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, symbol, program_id);
diff --git a/src/tint/ast/struct_member.h b/src/tint/ast/struct_member.h
index 022a34c..39c8532 100644
--- a/src/tint/ast/struct_member.h
+++ b/src/tint/ast/struct_member.h
@@ -32,11 +32,13 @@
public:
/// Create a new struct member statement
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node for the struct member statement
/// @param sym The struct member symbol
/// @param type The struct member type
/// @param attributes The struct member attributes
StructMember(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/struct_member_align_attribute.cc b/src/tint/ast/struct_member_align_attribute.cc
index f586e7e..d8ed4fc 100644
--- a/src/tint/ast/struct_member_align_attribute.cc
+++ b/src/tint/ast/struct_member_align_attribute.cc
@@ -23,8 +23,11 @@
namespace tint::ast {
-StructMemberAlignAttribute::StructMemberAlignAttribute(ProgramID pid, const Source& src, uint32_t a)
- : Base(pid, src), align(a) {}
+StructMemberAlignAttribute::StructMemberAlignAttribute(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ uint32_t a)
+ : Base(pid, nid, src), align(a) {}
StructMemberAlignAttribute::~StructMemberAlignAttribute() = default;
diff --git a/src/tint/ast/struct_member_align_attribute.h b/src/tint/ast/struct_member_align_attribute.h
index 10a6507..efff21b 100644
--- a/src/tint/ast/struct_member_align_attribute.h
+++ b/src/tint/ast/struct_member_align_attribute.h
@@ -27,9 +27,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param align the align value
- StructMemberAlignAttribute(ProgramID pid, const Source& src, uint32_t align);
+ StructMemberAlignAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t align);
~StructMemberAlignAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/struct_member_offset_attribute.cc b/src/tint/ast/struct_member_offset_attribute.cc
index 0a33127..48d7333 100644
--- a/src/tint/ast/struct_member_offset_attribute.cc
+++ b/src/tint/ast/struct_member_offset_attribute.cc
@@ -23,9 +23,10 @@
namespace tint::ast {
StructMemberOffsetAttribute::StructMemberOffsetAttribute(ProgramID pid,
+ NodeID nid,
const Source& src,
uint32_t o)
- : Base(pid, src), offset(o) {}
+ : Base(pid, nid, src), offset(o) {}
StructMemberOffsetAttribute::~StructMemberOffsetAttribute() = default;
diff --git a/src/tint/ast/struct_member_offset_attribute.h b/src/tint/ast/struct_member_offset_attribute.h
index 92cc68e..790927e 100644
--- a/src/tint/ast/struct_member_offset_attribute.h
+++ b/src/tint/ast/struct_member_offset_attribute.h
@@ -35,9 +35,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param offset the offset value
- StructMemberOffsetAttribute(ProgramID pid, const Source& src, uint32_t offset);
+ StructMemberOffsetAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t offset);
~StructMemberOffsetAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/struct_member_size_attribute.cc b/src/tint/ast/struct_member_size_attribute.cc
index a7f291b..3919078 100644
--- a/src/tint/ast/struct_member_size_attribute.cc
+++ b/src/tint/ast/struct_member_size_attribute.cc
@@ -23,8 +23,11 @@
namespace tint::ast {
-StructMemberSizeAttribute::StructMemberSizeAttribute(ProgramID pid, const Source& src, uint32_t sz)
- : Base(pid, src), size(sz) {}
+StructMemberSizeAttribute::StructMemberSizeAttribute(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ uint32_t sz)
+ : Base(pid, nid, src), size(sz) {}
StructMemberSizeAttribute::~StructMemberSizeAttribute() = default;
diff --git a/src/tint/ast/struct_member_size_attribute.h b/src/tint/ast/struct_member_size_attribute.h
index 0c4ddd6..5649e2e 100644
--- a/src/tint/ast/struct_member_size_attribute.h
+++ b/src/tint/ast/struct_member_size_attribute.h
@@ -27,9 +27,10 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param size the size value
- StructMemberSizeAttribute(ProgramID pid, const Source& src, uint32_t size);
+ StructMemberSizeAttribute(ProgramID pid, NodeID nid, const Source& src, uint32_t size);
~StructMemberSizeAttribute() override;
/// @returns the WGSL name for the attribute
diff --git a/src/tint/ast/struct_test.cc b/src/tint/ast/struct_test.cc
index 895d501..a94ceb3 100644
--- a/src/tint/ast/struct_test.cc
+++ b/src/tint/ast/struct_test.cc
@@ -49,7 +49,7 @@
TEST_F(AstStructTest, Creation_WithAttributes) {
auto name = Sym("s");
AttributeList attrs;
- attrs.push_back(ASTNodes().Create<SpirvBlockAttribute>(ID()));
+ attrs.push_back(ASTNodes().Create<SpirvBlockAttribute>(ID(), AllocateNodeID()));
auto* s = create<Struct>(name, StructMemberList{Member("a", ty.i32())}, attrs);
EXPECT_EQ(s->name, name);
@@ -64,10 +64,10 @@
TEST_F(AstStructTest, CreationWithSourceAndAttributes) {
auto name = Sym("s");
- auto* s =
- create<Struct>(Source{Source::Range{Source::Location{27, 4}, Source::Location{27, 8}}},
- name, StructMemberList{Member("a", ty.i32())},
- AttributeList{ASTNodes().Create<SpirvBlockAttribute>(ID())});
+ auto* s = create<Struct>(
+ Source{Source::Range{Source::Location{27, 4}, Source::Location{27, 8}}}, name,
+ StructMemberList{Member("a", ty.i32())},
+ AttributeList{ASTNodes().Create<SpirvBlockAttribute>(ID(), AllocateNodeID())});
EXPECT_EQ(s->name, name);
EXPECT_EQ(s->members.size(), 1u);
ASSERT_EQ(s->attributes.size(), 1u);
@@ -115,7 +115,8 @@
ProgramBuilder b1;
ProgramBuilder b2;
b1.create<Struct>(b1.Sym("S"), StructMemberList{b1.Member("a", b1.ty.i32())},
- AttributeList{b2.ASTNodes().Create<SpirvBlockAttribute>(b2.ID())});
+ AttributeList{b2.ASTNodes().Create<SpirvBlockAttribute>(
+ b2.ID(), b2.AllocateNodeID())});
},
"internal compiler error");
}
diff --git a/src/tint/ast/switch_statement.cc b/src/tint/ast/switch_statement.cc
index 08095a1..7abf0c0 100644
--- a/src/tint/ast/switch_statement.cc
+++ b/src/tint/ast/switch_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
SwitchStatement::SwitchStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* cond,
CaseStatementList b)
- : Base(pid, src), condition(cond), body(b) {
+ : Base(pid, nid, src), condition(cond), body(b) {
TINT_ASSERT(AST, condition);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, condition, program_id);
for (auto* stmt : body) {
diff --git a/src/tint/ast/switch_statement.h b/src/tint/ast/switch_statement.h
index 5ac13b7..c13ac88 100644
--- a/src/tint/ast/switch_statement.h
+++ b/src/tint/ast/switch_statement.h
@@ -25,10 +25,12 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param condition the switch condition
/// @param body the switch body
SwitchStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* condition,
CaseStatementList body);
diff --git a/src/tint/ast/texture.cc b/src/tint/ast/texture.cc
index 27eb094..f3c01df 100644
--- a/src/tint/ast/texture.cc
+++ b/src/tint/ast/texture.cc
@@ -77,7 +77,8 @@
return 0;
}
-Texture::Texture(ProgramID pid, const Source& src, TextureDimension d) : Base(pid, src), dim(d) {}
+Texture::Texture(ProgramID pid, NodeID nid, const Source& src, TextureDimension d)
+ : Base(pid, nid, src), dim(d) {}
Texture::Texture(Texture&&) = default;
diff --git a/src/tint/ast/texture.h b/src/tint/ast/texture.h
index 9a4199b..fcfa334 100644
--- a/src/tint/ast/texture.h
+++ b/src/tint/ast/texture.h
@@ -65,9 +65,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param dim the dimensionality of the texture
- Texture(ProgramID pid, const Source& src, TextureDimension dim);
+ Texture(ProgramID pid, NodeID nid, const Source& src, TextureDimension dim);
/// Move constructor
Texture(Texture&&);
~Texture() override;
diff --git a/src/tint/ast/type.h b/src/tint/ast/type.h
index 4fee565..4f1f276 100644
--- a/src/tint/ast/type.h
+++ b/src/tint/ast/type.h
@@ -42,8 +42,9 @@
protected:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Type(ProgramID pid, const Source& src);
+ Type(ProgramID pid, NodeID nid, const Source& src);
};
} // namespace tint::ast
diff --git a/src/tint/ast/type_decl.cc b/src/tint/ast/type_decl.cc
index a1a0605..0b76524 100644
--- a/src/tint/ast/type_decl.cc
+++ b/src/tint/ast/type_decl.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-TypeDecl::TypeDecl(ProgramID pid, const Source& src, Symbol n) : Base(pid, src), name(n) {
+TypeDecl::TypeDecl(ProgramID pid, NodeID nid, const Source& src, Symbol n)
+ : Base(pid, nid, src), name(n) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, name, program_id);
}
diff --git a/src/tint/ast/type_decl.h b/src/tint/ast/type_decl.h
index 2b8487a..e3266c6 100644
--- a/src/tint/ast/type_decl.h
+++ b/src/tint/ast/type_decl.h
@@ -26,9 +26,10 @@
public:
/// Create a new struct statement
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node for the import statement
/// @param name The name of the structure
- TypeDecl(ProgramID pid, const Source& src, Symbol name);
+ TypeDecl(ProgramID pid, NodeID nid, const Source& src, Symbol name);
/// Move constructor
TypeDecl(TypeDecl&&);
diff --git a/src/tint/ast/type_name.cc b/src/tint/ast/type_name.cc
index 8eb7a1a..852abf8 100644
--- a/src/tint/ast/type_name.cc
+++ b/src/tint/ast/type_name.cc
@@ -20,7 +20,8 @@
namespace tint::ast {
-TypeName::TypeName(ProgramID pid, const Source& src, Symbol n) : Base(pid, src), name(n) {}
+TypeName::TypeName(ProgramID pid, NodeID nid, const Source& src, Symbol n)
+ : Base(pid, nid, src), name(n) {}
TypeName::~TypeName() = default;
diff --git a/src/tint/ast/type_name.h b/src/tint/ast/type_name.h
index 3bb556a..ed7e2f2 100644
--- a/src/tint/ast/type_name.h
+++ b/src/tint/ast/type_name.h
@@ -26,9 +26,10 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param name the type name
- TypeName(ProgramID pid, const Source& src, Symbol name);
+ TypeName(ProgramID pid, NodeID nid, const Source& src, Symbol name);
/// Move constructor
TypeName(TypeName&&);
/// Destructor
diff --git a/src/tint/ast/u32.cc b/src/tint/ast/u32.cc
index ac9c490..c99dc4f 100644
--- a/src/tint/ast/u32.cc
+++ b/src/tint/ast/u32.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-U32::U32(ProgramID pid, const Source& src) : Base(pid, src) {}
+U32::U32(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
U32::~U32() = default;
diff --git a/src/tint/ast/u32.h b/src/tint/ast/u32.h
index 8ede11c..9237278 100644
--- a/src/tint/ast/u32.h
+++ b/src/tint/ast/u32.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- U32(ProgramID pid, const Source& src);
+ U32(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
U32(U32&&);
~U32() override;
diff --git a/src/tint/ast/unary_op_expression.cc b/src/tint/ast/unary_op_expression.cc
index 80e4e90..eec69a0 100644
--- a/src/tint/ast/unary_op_expression.cc
+++ b/src/tint/ast/unary_op_expression.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
UnaryOpExpression::UnaryOpExpression(ProgramID pid,
+ NodeID nid,
const Source& src,
UnaryOp o,
const Expression* e)
- : Base(pid, src), op(o), expr(e) {
+ : Base(pid, nid, src), op(o), expr(e) {
TINT_ASSERT(AST, expr);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, expr, program_id);
}
diff --git a/src/tint/ast/unary_op_expression.h b/src/tint/ast/unary_op_expression.h
index 22093fb..a5c2be9 100644
--- a/src/tint/ast/unary_op_expression.h
+++ b/src/tint/ast/unary_op_expression.h
@@ -24,11 +24,13 @@
class UnaryOpExpression final : public Castable<UnaryOpExpression, Expression> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the unary op expression source
/// @param op the op
/// @param expr the expr
- UnaryOpExpression(ProgramID program_id,
+ UnaryOpExpression(ProgramID pid,
+ NodeID nid,
const Source& source,
UnaryOp op,
const Expression* expr);
diff --git a/src/tint/ast/var.cc b/src/tint/ast/var.cc
index 854503e..763949f 100644
--- a/src/tint/ast/var.cc
+++ b/src/tint/ast/var.cc
@@ -21,6 +21,7 @@
namespace tint::ast {
Var::Var(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
@@ -28,7 +29,7 @@
Access access,
const Expression* ctor,
AttributeList attrs)
- : Base(pid, src, sym, ty, ctor, attrs),
+ : Base(pid, nid, src, sym, ty, ctor, attrs),
declared_storage_class(storage_class),
declared_access(access) {}
diff --git a/src/tint/ast/var.h b/src/tint/ast/var.h
index 565ebbb..cd12ff4 100644
--- a/src/tint/ast/var.h
+++ b/src/tint/ast/var.h
@@ -42,7 +42,8 @@
class Var final : public Castable<Var, Variable> {
public:
/// Create a 'var' variable
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
@@ -50,7 +51,8 @@
/// @param declared_access the declared access control
/// @param constructor the constructor expression
/// @param attributes the variable attributes
- Var(ProgramID program_id,
+ Var(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/variable.cc b/src/tint/ast/variable.cc
index a9ae829..b16b2aa 100644
--- a/src/tint/ast/variable.cc
+++ b/src/tint/ast/variable.cc
@@ -21,12 +21,13 @@
namespace tint::ast {
Variable::Variable(ProgramID pid,
+ NodeID nid,
const Source& src,
const Symbol& sym,
const ast::Type* ty,
const Expression* ctor,
AttributeList attrs)
- : Base(pid, src), symbol(sym), type(ty), constructor(ctor), attributes(std::move(attrs)) {
+ : Base(pid, nid, src), symbol(sym), type(ty), constructor(ctor), attributes(std::move(attrs)) {
TINT_ASSERT(AST, symbol.IsValid());
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, symbol, program_id);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, constructor, program_id);
diff --git a/src/tint/ast/variable.h b/src/tint/ast/variable.h
index 631fbe5..3031318 100644
--- a/src/tint/ast/variable.h
+++ b/src/tint/ast/variable.h
@@ -54,13 +54,15 @@
class Variable : public Castable<Variable, Node> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable source
/// @param sym the variable symbol
/// @param type the declared variable type
/// @param constructor the constructor expression
/// @param attributes the variable attributes
- Variable(ProgramID program_id,
+ Variable(ProgramID pid,
+ NodeID nid,
const Source& source,
const Symbol& sym,
const ast::Type* type,
diff --git a/src/tint/ast/variable_decl_statement.cc b/src/tint/ast/variable_decl_statement.cc
index fdde149..79ee926 100644
--- a/src/tint/ast/variable_decl_statement.cc
+++ b/src/tint/ast/variable_decl_statement.cc
@@ -20,8 +20,11 @@
namespace tint::ast {
-VariableDeclStatement::VariableDeclStatement(ProgramID pid, const Source& src, const Variable* var)
- : Base(pid, src), variable(var) {
+VariableDeclStatement::VariableDeclStatement(ProgramID pid,
+ NodeID nid,
+ const Source& src,
+ const Variable* var)
+ : Base(pid, nid, src), variable(var) {
TINT_ASSERT(AST, variable);
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, variable, program_id);
}
diff --git a/src/tint/ast/variable_decl_statement.h b/src/tint/ast/variable_decl_statement.h
index 3f3ae27..b71d0b2 100644
--- a/src/tint/ast/variable_decl_statement.h
+++ b/src/tint/ast/variable_decl_statement.h
@@ -24,10 +24,14 @@
class VariableDeclStatement final : public Castable<VariableDeclStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the variable statement source
/// @param variable the variable
- VariableDeclStatement(ProgramID program_id, const Source& source, const Variable* variable);
+ VariableDeclStatement(ProgramID pid,
+ NodeID nid,
+ const Source& source,
+ const Variable* variable);
/// Move constructor
VariableDeclStatement(VariableDeclStatement&&);
~VariableDeclStatement() override;
diff --git a/src/tint/ast/vector.cc b/src/tint/ast/vector.cc
index 43478df..d49da33 100644
--- a/src/tint/ast/vector.cc
+++ b/src/tint/ast/vector.cc
@@ -20,8 +20,8 @@
namespace tint::ast {
-Vector::Vector(ProgramID pid, Source const& src, const Type* subtype, uint32_t w)
- : Base(pid, src), type(subtype), width(w) {
+Vector::Vector(ProgramID pid, NodeID nid, Source const& src, const Type* subtype, uint32_t w)
+ : Base(pid, nid, src), type(subtype), width(w) {
TINT_ASSERT_PROGRAM_IDS_EQUAL_IF_VALID(AST, subtype, program_id);
TINT_ASSERT(AST, width > 1);
TINT_ASSERT(AST, width < 5);
diff --git a/src/tint/ast/vector.h b/src/tint/ast/vector.h
index 6b2d914..111602d 100644
--- a/src/tint/ast/vector.h
+++ b/src/tint/ast/vector.h
@@ -26,12 +26,13 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param subtype the declared type of the vector components. May be null
/// for vector constructors, where the element type will be inferred
/// from the constructor arguments
/// @param width the number of elements in the vector
- Vector(ProgramID pid, Source const& src, const Type* subtype, uint32_t width);
+ Vector(ProgramID pid, NodeID nid, Source const& src, const Type* subtype, uint32_t width);
/// Move constructor
Vector(Vector&&);
~Vector() override;
diff --git a/src/tint/ast/void.cc b/src/tint/ast/void.cc
index 5cc8963..ead89ef 100644
--- a/src/tint/ast/void.cc
+++ b/src/tint/ast/void.cc
@@ -20,7 +20,7 @@
namespace tint::ast {
-Void::Void(ProgramID pid, const Source& src) : Base(pid, src) {}
+Void::Void(ProgramID pid, NodeID nid, const Source& src) : Base(pid, nid, src) {}
Void::Void(Void&&) = default;
diff --git a/src/tint/ast/void.h b/src/tint/ast/void.h
index 33f5b5b..dba20f1 100644
--- a/src/tint/ast/void.h
+++ b/src/tint/ast/void.h
@@ -26,8 +26,9 @@
public:
/// Constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
- Void(ProgramID pid, const Source& src);
+ Void(ProgramID pid, NodeID nid, const Source& src);
/// Move constructor
Void(Void&&);
~Void() override;
diff --git a/src/tint/ast/while_statement.cc b/src/tint/ast/while_statement.cc
index 3666baf..160af4b 100644
--- a/src/tint/ast/while_statement.cc
+++ b/src/tint/ast/while_statement.cc
@@ -21,10 +21,11 @@
namespace tint::ast {
WhileStatement::WhileStatement(ProgramID pid,
+ NodeID nid,
const Source& src,
const Expression* cond,
const BlockStatement* b)
- : Base(pid, src), condition(cond), body(b) {
+ : Base(pid, nid, src), condition(cond), body(b) {
TINT_ASSERT(AST, cond);
TINT_ASSERT(AST, body);
diff --git a/src/tint/ast/while_statement.h b/src/tint/ast/while_statement.h
index 9a7a6b0..4e8dd7e 100644
--- a/src/tint/ast/while_statement.h
+++ b/src/tint/ast/while_statement.h
@@ -25,12 +25,14 @@
class WhileStatement final : public Castable<WhileStatement, Statement> {
public:
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param source the for loop statement source
/// @param condition the optional loop condition expression
/// @param body the loop body
- WhileStatement(ProgramID program_id,
- Source const& source,
+ WhileStatement(ProgramID pid,
+ NodeID nid,
+ const Source& source,
const Expression* condition,
const BlockStatement* body);
/// Move constructor
diff --git a/src/tint/ast/workgroup_attribute.cc b/src/tint/ast/workgroup_attribute.cc
index 74ecdbe..7cb67dc 100644
--- a/src/tint/ast/workgroup_attribute.cc
+++ b/src/tint/ast/workgroup_attribute.cc
@@ -23,11 +23,12 @@
namespace tint::ast {
WorkgroupAttribute::WorkgroupAttribute(ProgramID pid,
+ NodeID nid,
const Source& src,
const ast::Expression* x_,
const ast::Expression* y_,
const ast::Expression* z_)
- : Base(pid, src), x(x_), y(y_), z(z_) {}
+ : Base(pid, nid, src), x(x_), y(y_), z(z_) {}
WorkgroupAttribute::~WorkgroupAttribute() = default;
diff --git a/src/tint/ast/workgroup_attribute.h b/src/tint/ast/workgroup_attribute.h
index 536ce15..e27e77e 100644
--- a/src/tint/ast/workgroup_attribute.h
+++ b/src/tint/ast/workgroup_attribute.h
@@ -32,11 +32,13 @@
public:
/// constructor
/// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param src the source of this node
/// @param x the workgroup x dimension expression
/// @param y the optional workgroup y dimension expression
/// @param z the optional workgroup z dimension expression
WorkgroupAttribute(ProgramID pid,
+ NodeID nid,
const Source& src,
const ast::Expression* x,
const ast::Expression* y = nullptr,
diff --git a/src/tint/intrinsics.def b/src/tint/intrinsics.def
index 5dd6168..ab77532 100644
--- a/src/tint/intrinsics.def
+++ b/src/tint/intrinsics.def
@@ -129,7 +129,9 @@
match f32f16: f32 | f16
match fiu32: f32 | i32 | u32
+match fiu32f16: f32 | f16 | i32 | u32
match fi32: f32 | i32
+match fi32f16: f32 | f16 | i32
match iu32: i32 | u32
match aiu32: ai | i32 | u32
match scalar: f32 | f16 | i32 | u32 | bool
@@ -820,43 +822,43 @@
@const op ~ <T: aiu32>(T) -> T
@const op ~ <T: aiu32, N: num> (vec<N, T>) -> vec<N, T>
-op - <T: fi32>(T) -> T
-op - <T: fi32, N: num> (vec<N, T>) -> vec<N, T>
+op - <T: fi32f16>(T) -> T
+op - <T: fi32f16, N: num> (vec<N, T>) -> vec<N, T>
////////////////////////////////////////////////////////////////////////////////
// Binary Operators //
////////////////////////////////////////////////////////////////////////////////
-op + <T: fiu32>(T, T) -> T
-op + <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-op + <T: fiu32, N: num> (vec<N, T>, T) -> vec<N, T>
-op + <T: fiu32, N: num> (T, vec<N, T>) -> vec<N, T>
-op + <N: num, M: num> (mat<N, M, f32>, mat<N, M, f32>) -> mat<N, M, f32>
+op + <T: fiu32f16>(T, T) -> T
+op + <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+op + <T: fiu32f16, N: num> (vec<N, T>, T) -> vec<N, T>
+op + <T: fiu32f16, N: num> (T, vec<N, T>) -> vec<N, T>
+op + <T: f32f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
-op - <T: fiu32>(T, T) -> T
-op - <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-op - <T: fiu32, N: num> (vec<N, T>, T) -> vec<N, T>
-op - <T: fiu32, N: num> (T, vec<N, T>) -> vec<N, T>
-op - <N: num, M: num> (mat<N, M, f32>, mat<N, M, f32>) -> mat<N, M, f32>
+op - <T: fiu32f16>(T, T) -> T
+op - <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+op - <T: fiu32f16, N: num> (vec<N, T>, T) -> vec<N, T>
+op - <T: fiu32f16, N: num> (T, vec<N, T>) -> vec<N, T>
+op - <T: f32f16, N: num, M: num> (mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T>
-op * <T: fiu32>(T, T) -> T
-op * <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-op * <T: fiu32, N: num> (vec<N, T>, T) -> vec<N, T>
-op * <T: fiu32, N: num> (T, vec<N, T>) -> vec<N, T>
-op * <N: num, M: num> (f32, mat<N, M, f32>) -> mat<N, M, f32>
-op * <N: num, M: num> (mat<N, M, f32>, f32) -> mat<N, M, f32>
-op * <C: num, R: num> (mat<C, R, f32>, vec<C, f32>) -> vec<R, f32>
-op * <C: num, R: num> (vec<R, f32>, mat<C, R, f32>) -> vec<C, f32>
-op * <K: num, C: num, R: num> (mat<K, R, f32>, mat<C, K, f32>) -> mat<C, R, f32>
+op * <T: fiu32f16>(T, T) -> T
+op * <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+op * <T: fiu32f16, N: num> (vec<N, T>, T) -> vec<N, T>
+op * <T: fiu32f16, N: num> (T, vec<N, T>) -> vec<N, T>
+op * <T: f32f16, N: num, M: num> (T, mat<N, M, T>) -> mat<N, M, T>
+op * <T: f32f16, N: num, M: num> (mat<N, M, T>, T) -> mat<N, M, T>
+op * <T: f32f16, C: num, R: num> (mat<C, R, T>, vec<C, T>) -> vec<R, T>
+op * <T: f32f16, C: num, R: num> (vec<R, T>, mat<C, R, T>) -> vec<C, T>
+op * <T: f32f16, K: num, C: num, R: num> (mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T>
-op / <T: fiu32>(T, T) -> T
-op / <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-op / <T: fiu32, N: num> (vec<N, T>, T) -> vec<N, T>
-op / <T: fiu32, N: num> (T, vec<N, T>) -> vec<N, T>
+op / <T: fiu32f16>(T, T) -> T
+op / <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+op / <T: fiu32f16, N: num> (vec<N, T>, T) -> vec<N, T>
+op / <T: fiu32f16, N: num> (T, vec<N, T>) -> vec<N, T>
-op % <T: fiu32>(T, T) -> T
-op % <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
-op % <T: fiu32, N: num> (vec<N, T>, T) -> vec<N, T>
-op % <T: fiu32, N: num> (T, vec<N, T>) -> vec<N, T>
+op % <T: fiu32f16>(T, T) -> T
+op % <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
+op % <T: fiu32f16, N: num> (vec<N, T>, T) -> vec<N, T>
+op % <T: fiu32f16, N: num> (T, vec<N, T>) -> vec<N, T>
op ^ <T: iu32>(T, T) -> T
op ^ <T: iu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, T>
@@ -880,17 +882,17 @@
op != <T: scalar>(T, T) -> bool
op != <T: scalar, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-op < <T: fiu32>(T, T) -> bool
-op < <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+op < <T: fiu32f16>(T, T) -> bool
+op < <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-op > <T: fiu32>(T, T) -> bool
-op > <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+op > <T: fiu32f16>(T, T) -> bool
+op > <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-op <= <T: fiu32>(T, T) -> bool
-op <= <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+op <= <T: fiu32f16>(T, T) -> bool
+op <= <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
-op >= <T: fiu32>(T, T) -> bool
-op >= <T: fiu32, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
+op >= <T: fiu32f16>(T, T) -> bool
+op >= <T: fiu32f16, N: num> (vec<N, T>, vec<N, T>) -> vec<N, bool>
op << <T: iu32>(T, u32) -> T
op << <T: iu32, N: num> (vec<N, T>, vec<N, u32>) -> vec<N, T>
diff --git a/src/tint/program.cc b/src/tint/program.cc
index 1afbd46..6109c20 100644
--- a/src/tint/program.cc
+++ b/src/tint/program.cc
@@ -35,6 +35,7 @@
Program::Program(Program&& program)
: id_(std::move(program.id_)),
+ highest_node_id_(std::move(program.highest_node_id_)),
types_(std::move(program.types_)),
ast_nodes_(std::move(program.ast_nodes_)),
sem_nodes_(std::move(program.sem_nodes_)),
@@ -50,6 +51,7 @@
Program::Program(ProgramBuilder&& builder) {
id_ = builder.ID();
+ highest_node_id_ = builder.LastAllocatedNodeID();
is_valid_ = builder.IsValid();
if (builder.ResolveOnBuild() && builder.IsValid()) {
@@ -85,6 +87,7 @@
program.moved_ = true;
moved_ = false;
id_ = std::move(program.id_);
+ highest_node_id_ = std::move(program.highest_node_id_);
types_ = std::move(program.types_);
ast_nodes_ = std::move(program.ast_nodes_);
sem_nodes_ = std::move(program.sem_nodes_);
diff --git a/src/tint/program.h b/src/tint/program.h
index 5fd31dd..ea88470 100644
--- a/src/tint/program.h
+++ b/src/tint/program.h
@@ -69,6 +69,9 @@
/// @returns the unique identifier for this program
ProgramID ID() const { return id_; }
+ /// @returns the last allocated (numerically highest) AST node identifier.
+ ast::NodeID HighestASTNodeID() const { return highest_node_id_; }
+
/// @returns a reference to the program's types
const sem::Manager& Types() const {
AssertNotMoved();
@@ -161,6 +164,7 @@
void AssertNotMoved() const;
ProgramID id_;
+ ast::NodeID highest_node_id_;
sem::Manager types_;
ASTNodeAllocator ast_nodes_;
SemNodeAllocator sem_nodes_;
diff --git a/src/tint/program_builder.cc b/src/tint/program_builder.cc
index aed6ec8..19f20b4 100644
--- a/src/tint/program_builder.cc
+++ b/src/tint/program_builder.cc
@@ -29,14 +29,16 @@
ProgramBuilder::VarOptionals::~VarOptionals() = default;
ProgramBuilder::ProgramBuilder()
- : id_(ProgramID::New()), ast_(ast_nodes_.Create<ast::Module>(id_, Source{})) {}
+ : id_(ProgramID::New()),
+ ast_(ast_nodes_.Create<ast::Module>(id_, AllocateNodeID(), Source{})) {}
ProgramBuilder::ProgramBuilder(ProgramBuilder&& rhs)
: id_(std::move(rhs.id_)),
+ last_ast_node_id_(std::move(rhs.last_ast_node_id_)),
types_(std::move(rhs.types_)),
ast_nodes_(std::move(rhs.ast_nodes_)),
sem_nodes_(std::move(rhs.sem_nodes_)),
- ast_(rhs.ast_),
+ ast_(std::move(rhs.ast_)),
sem_(std::move(rhs.sem_)),
symbols_(std::move(rhs.symbols_)),
diagnostics_(std::move(rhs.diagnostics_)) {
@@ -49,10 +51,11 @@
rhs.MarkAsMoved();
AssertNotMoved();
id_ = std::move(rhs.id_);
+ last_ast_node_id_ = std::move(rhs.last_ast_node_id_);
types_ = std::move(rhs.types_);
ast_nodes_ = std::move(rhs.ast_nodes_);
sem_nodes_ = std::move(rhs.sem_nodes_);
- ast_ = rhs.ast_;
+ ast_ = std::move(rhs.ast_);
sem_ = std::move(rhs.sem_);
symbols_ = std::move(rhs.symbols_);
diagnostics_ = std::move(rhs.diagnostics_);
@@ -63,6 +66,7 @@
ProgramBuilder ProgramBuilder::Wrap(const Program* program) {
ProgramBuilder builder;
builder.id_ = program->ID();
+ builder.last_ast_node_id_ = program->HighestASTNodeID();
builder.types_ = sem::Manager::Wrap(program->Types());
builder.ast_ =
builder.create<ast::Module>(program->AST().source, program->AST().GlobalDeclarations());
diff --git a/src/tint/program_builder.h b/src/tint/program_builder.h
index 9a4f7ca..c6b163f 100644
--- a/src/tint/program_builder.h
+++ b/src/tint/program_builder.h
@@ -299,6 +299,16 @@
/// information
bool IsValid() const;
+ /// @returns the last allocated (numerically highest) AST node identifier.
+ ast::NodeID LastAllocatedNodeID() const { return last_ast_node_id_; }
+
+ /// @returns the next sequentially unique node identifier.
+ ast::NodeID AllocateNodeID() {
+ auto out = ast::NodeID{last_ast_node_id_.value + 1};
+ last_ast_node_id_ = out;
+ return out;
+ }
+
/// Creates a new ast::Node owned by the ProgramBuilder. When the
/// ProgramBuilder is destructed, the ast::Node will also be destructed.
/// @param source the Source of the node
@@ -307,7 +317,7 @@
template <typename T, typename... ARGS>
traits::EnableIfIsType<T, ast::Node>* create(const Source& source, ARGS&&... args) {
AssertNotMoved();
- return ast_nodes_.Create<T>(id_, source, std::forward<ARGS>(args)...);
+ return ast_nodes_.Create<T>(id_, AllocateNodeID(), source, std::forward<ARGS>(args)...);
}
/// Creates a new ast::Node owned by the ProgramBuilder, injecting the current
@@ -319,7 +329,7 @@
template <typename T>
traits::EnableIfIsType<T, ast::Node>* create() {
AssertNotMoved();
- return ast_nodes_.Create<T>(id_, source_);
+ return ast_nodes_.Create<T>(id_, AllocateNodeID(), source_);
}
/// Creates a new ast::Node owned by the ProgramBuilder, injecting the current
@@ -337,7 +347,7 @@
T>*
create(ARG0&& arg0, ARGS&&... args) {
AssertNotMoved();
- return ast_nodes_.Create<T>(id_, source_, std::forward<ARG0>(arg0),
+ return ast_nodes_.Create<T>(id_, AllocateNodeID(), source_, std::forward<ARG0>(arg0),
std::forward<ARGS>(args)...);
}
@@ -2665,7 +2675,8 @@
/// @param validation the validation to disable
/// @returns the disable validation attribute pointer
const ast::DisableValidationAttribute* Disable(ast::DisabledValidation validation) {
- return ASTNodes().Create<ast::DisableValidationAttribute>(ID(), validation);
+ return ASTNodes().Create<ast::DisableValidationAttribute>(ID(), AllocateNodeID(),
+ validation);
}
/// Sets the current builder source to `src`
@@ -2774,6 +2785,7 @@
private:
ProgramID id_;
+ ast::NodeID last_ast_node_id_ = ast::NodeID{static_cast<decltype(ast::NodeID::value)>(0) - 1};
sem::Manager types_;
ASTNodeAllocator ast_nodes_;
SemNodeAllocator sem_nodes_;
diff --git a/src/tint/reader/spirv/function.cc b/src/tint/reader/spirv/function.cc
index 2bcae95..7c10f89 100644
--- a/src/tint/reader/spirv/function.cc
+++ b/src/tint/reader/spirv/function.cc
@@ -5481,8 +5481,8 @@
// Emit stub, will be removed by transform::SpirvAtomic
auto sym = builder_.Symbols().New(std::string("stub_") + sem::str(builtin));
- auto* stub_deco =
- builder_.ASTNodes().Create<transform::SpirvAtomic::Stub>(builder_.ID(), builtin);
+ auto* stub_deco = builder_.ASTNodes().Create<transform::SpirvAtomic::Stub>(
+ builder_.ID(), builder_.AllocateNodeID(), builtin);
auto* stub =
create<ast::Function>(Source{}, sym, std::move(params), ret_type,
/* body */ nullptr,
diff --git a/src/tint/reader/spirv/function.h b/src/tint/reader/spirv/function.h
index ae9ef31..ae7a9a1 100644
--- a/src/tint/reader/spirv/function.h
+++ b/src/tint/reader/spirv/function.h
@@ -376,7 +376,7 @@
class StatementBuilder : public Castable<StatementBuilder, ast::Statement> {
public:
/// Constructor
- StatementBuilder() : Base(ProgramID(), Source{}) {}
+ StatementBuilder() : Base(ProgramID(), ast::NodeID(), Source{}) {}
/// @param builder the program builder
/// @returns the build AST node
diff --git a/src/tint/reader/spirv/parser_impl.cc b/src/tint/reader/spirv/parser_impl.cc
index 11c439d..9803162 100644
--- a/src/tint/reader/spirv/parser_impl.cc
+++ b/src/tint/reader/spirv/parser_impl.cc
@@ -513,7 +513,8 @@
return {
create<ast::StrideAttribute>(Source{}, decoration[1]),
builder_.ASTNodes().Create<ast::DisableValidationAttribute>(
- builder_.ID(), ast::DisabledValidation::kIgnoreStrideAttribute),
+ builder_.ID(), builder_.AllocateNodeID(),
+ ast::DisabledValidation::kIgnoreStrideAttribute),
};
}
default:
diff --git a/src/tint/resolver/intrinsic_table.inl b/src/tint/resolver/intrinsic_table.inl
index 80f92ba..e7b44a3 100644
--- a/src/tint/resolver/intrinsic_table.inl
+++ b/src/tint/resolver/intrinsic_table.inl
@@ -1645,8 +1645,49 @@
return ss.str();
}
-/// TypeMatcher for 'match fi32'
+/// TypeMatcher for 'match fiu32f16'
/// @see src/tint/intrinsics.def:132:7
+class Fiu32F16 : public TypeMatcher {
+ public:
+ /// Checks whether the given type matches the matcher rules, and returns the
+ /// expected, canonicalized type on success.
+ /// Match may define and refine the template types and numbers in state.
+ /// @param state the MatchState
+ /// @param type the type to match
+ /// @returns the canonicalized type on match, otherwise nullptr
+ const sem::Type* Match(MatchState& state,
+ const sem::Type* type) const override;
+ /// @param state the MatchState
+ /// @return a string representation of the matcher.
+ std::string String(MatchState* state) const override;
+};
+
+const sem::Type* Fiu32F16::Match(MatchState& state, const sem::Type* ty) const {
+ if (match_i32(ty)) {
+ return build_i32(state);
+ }
+ if (match_u32(ty)) {
+ return build_u32(state);
+ }
+ if (match_f32(ty)) {
+ return build_f32(state);
+ }
+ if (match_f16(ty)) {
+ return build_f16(state);
+ }
+ return nullptr;
+}
+
+std::string Fiu32F16::String(MatchState*) const {
+ std::stringstream ss;
+ // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
+ // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
+ ss << F32().String(nullptr) << ", " << F16().String(nullptr) << ", " << I32().String(nullptr) << " or " << U32().String(nullptr);
+ return ss.str();
+}
+
+/// TypeMatcher for 'match fi32'
+/// @see src/tint/intrinsics.def:133:7
class Fi32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1680,8 +1721,46 @@
return ss.str();
}
+/// TypeMatcher for 'match fi32f16'
+/// @see src/tint/intrinsics.def:134:7
+class Fi32F16 : public TypeMatcher {
+ public:
+ /// Checks whether the given type matches the matcher rules, and returns the
+ /// expected, canonicalized type on success.
+ /// Match may define and refine the template types and numbers in state.
+ /// @param state the MatchState
+ /// @param type the type to match
+ /// @returns the canonicalized type on match, otherwise nullptr
+ const sem::Type* Match(MatchState& state,
+ const sem::Type* type) const override;
+ /// @param state the MatchState
+ /// @return a string representation of the matcher.
+ std::string String(MatchState* state) const override;
+};
+
+const sem::Type* Fi32F16::Match(MatchState& state, const sem::Type* ty) const {
+ if (match_i32(ty)) {
+ return build_i32(state);
+ }
+ if (match_f32(ty)) {
+ return build_f32(state);
+ }
+ if (match_f16(ty)) {
+ return build_f16(state);
+ }
+ return nullptr;
+}
+
+std::string Fi32F16::String(MatchState*) const {
+ std::stringstream ss;
+ // Note: We pass nullptr to the TypeMatcher::String() functions, as 'matcher's do not support
+ // template arguments, nor can they match sub-types. As such, they have no use for the MatchState.
+ ss << F32().String(nullptr) << ", " << F16().String(nullptr) << " or " << I32().String(nullptr);
+ return ss.str();
+}
+
/// TypeMatcher for 'match iu32'
-/// @see src/tint/intrinsics.def:133:7
+/// @see src/tint/intrinsics.def:135:7
class Iu32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1716,7 +1795,7 @@
}
/// TypeMatcher for 'match aiu32'
-/// @see src/tint/intrinsics.def:134:7
+/// @see src/tint/intrinsics.def:136:7
class Aiu32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1754,7 +1833,7 @@
}
/// TypeMatcher for 'match scalar'
-/// @see src/tint/intrinsics.def:135:7
+/// @see src/tint/intrinsics.def:137:7
class Scalar : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1798,7 +1877,7 @@
}
/// TypeMatcher for 'match abstract_or_scalar'
-/// @see src/tint/intrinsics.def:136:7
+/// @see src/tint/intrinsics.def:138:7
class AbstractOrScalar : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1848,7 +1927,7 @@
}
/// TypeMatcher for 'match af_f32'
-/// @see src/tint/intrinsics.def:137:7
+/// @see src/tint/intrinsics.def:139:7
class AfF32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1883,7 +1962,7 @@
}
/// TypeMatcher for 'match af_f32f16'
-/// @see src/tint/intrinsics.def:138:7
+/// @see src/tint/intrinsics.def:140:7
class AfF32F16 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1921,7 +2000,7 @@
}
/// TypeMatcher for 'match scalar_no_f32'
-/// @see src/tint/intrinsics.def:139:7
+/// @see src/tint/intrinsics.def:141:7
class ScalarNoF32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -1962,7 +2041,7 @@
}
/// TypeMatcher for 'match scalar_no_f16'
-/// @see src/tint/intrinsics.def:140:7
+/// @see src/tint/intrinsics.def:142:7
class ScalarNoF16 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -2003,7 +2082,7 @@
}
/// TypeMatcher for 'match scalar_no_i32'
-/// @see src/tint/intrinsics.def:141:7
+/// @see src/tint/intrinsics.def:143:7
class ScalarNoI32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -2044,7 +2123,7 @@
}
/// TypeMatcher for 'match scalar_no_u32'
-/// @see src/tint/intrinsics.def:142:7
+/// @see src/tint/intrinsics.def:144:7
class ScalarNoU32 : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -2085,7 +2164,7 @@
}
/// TypeMatcher for 'match scalar_no_bool'
-/// @see src/tint/intrinsics.def:143:7
+/// @see src/tint/intrinsics.def:145:7
class ScalarNoBool : public TypeMatcher {
public:
/// Checks whether the given type matches the matcher rules, and returns the
@@ -2126,7 +2205,7 @@
}
/// EnumMatcher for 'match f32_texel_format'
-/// @see src/tint/intrinsics.def:154:7
+/// @see src/tint/intrinsics.def:156:7
class F32TexelFormat : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2159,7 +2238,7 @@
}
/// EnumMatcher for 'match i32_texel_format'
-/// @see src/tint/intrinsics.def:156:7
+/// @see src/tint/intrinsics.def:158:7
class I32TexelFormat : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2191,7 +2270,7 @@
}
/// EnumMatcher for 'match u32_texel_format'
-/// @see src/tint/intrinsics.def:158:7
+/// @see src/tint/intrinsics.def:160:7
class U32TexelFormat : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2223,7 +2302,7 @@
}
/// EnumMatcher for 'match write_only'
-/// @see src/tint/intrinsics.def:161:7
+/// @see src/tint/intrinsics.def:163:7
class WriteOnly : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2249,7 +2328,7 @@
}
/// EnumMatcher for 'match function_private_workgroup'
-/// @see src/tint/intrinsics.def:163:7
+/// @see src/tint/intrinsics.def:165:7
class FunctionPrivateWorkgroup : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2279,7 +2358,7 @@
}
/// EnumMatcher for 'match workgroup_or_storage'
-/// @see src/tint/intrinsics.def:164:7
+/// @see src/tint/intrinsics.def:166:7
class WorkgroupOrStorage : public NumberMatcher {
public:
/// Checks whether the given number matches the enum matcher rules.
@@ -2440,7 +2519,9 @@
AtomicCompareExchangeResult AtomicCompareExchangeResult_;
F32F16 F32F16_;
Fiu32 Fiu32_;
+ Fiu32F16 Fiu32F16_;
Fi32 Fi32_;
+ Fi32F16 Fi32F16_;
Iu32 Iu32_;
Aiu32 Aiu32_;
Scalar Scalar_;
@@ -2469,7 +2550,7 @@
~Matchers();
/// The template types, types, and type matchers
- TypeMatcher const* const type[64] = {
+ TypeMatcher const* const type[66] = {
/* [0] */ &template_type_0_,
/* [1] */ &template_type_1_,
/* [2] */ &Bool_,
@@ -2522,18 +2603,20 @@
/* [49] */ &AtomicCompareExchangeResult_,
/* [50] */ &F32F16_,
/* [51] */ &Fiu32_,
- /* [52] */ &Fi32_,
- /* [53] */ &Iu32_,
- /* [54] */ &Aiu32_,
- /* [55] */ &Scalar_,
- /* [56] */ &AbstractOrScalar_,
- /* [57] */ &AfF32_,
- /* [58] */ &AfF32F16_,
- /* [59] */ &ScalarNoF32_,
- /* [60] */ &ScalarNoF16_,
- /* [61] */ &ScalarNoI32_,
- /* [62] */ &ScalarNoU32_,
- /* [63] */ &ScalarNoBool_,
+ /* [52] */ &Fiu32F16_,
+ /* [53] */ &Fi32_,
+ /* [54] */ &Fi32F16_,
+ /* [55] */ &Iu32_,
+ /* [56] */ &Aiu32_,
+ /* [57] */ &Scalar_,
+ /* [58] */ &AbstractOrScalar_,
+ /* [59] */ &AfF32_,
+ /* [60] */ &AfF32F16_,
+ /* [61] */ &ScalarNoF32_,
+ /* [62] */ &ScalarNoF16_,
+ /* [63] */ &ScalarNoI32_,
+ /* [64] */ &ScalarNoU32_,
+ /* [65] */ &ScalarNoBool_,
};
/// The template numbers, and number matchers
@@ -2571,218 +2654,226 @@
/* [11] */ 22,
/* [12] */ 0,
/* [13] */ 1,
- /* [14] */ 7,
+ /* [14] */ 0,
/* [15] */ 22,
/* [16] */ 0,
/* [17] */ 2,
- /* [18] */ 7,
+ /* [18] */ 0,
/* [19] */ 22,
/* [20] */ 1,
/* [21] */ 0,
- /* [22] */ 7,
+ /* [22] */ 0,
/* [23] */ 22,
/* [24] */ 1,
/* [25] */ 2,
- /* [26] */ 7,
+ /* [26] */ 0,
/* [27] */ 22,
- /* [28] */ 0,
+ /* [28] */ 1,
/* [29] */ 0,
/* [30] */ 7,
- /* [31] */ 21,
+ /* [31] */ 22,
/* [32] */ 0,
- /* [33] */ 0,
- /* [34] */ 21,
- /* [35] */ 0,
- /* [36] */ 7,
- /* [37] */ 43,
- /* [38] */ 5,
- /* [39] */ 10,
- /* [40] */ 1,
- /* [41] */ 42,
- /* [42] */ 5,
- /* [43] */ 10,
+ /* [33] */ 1,
+ /* [34] */ 7,
+ /* [35] */ 22,
+ /* [36] */ 0,
+ /* [37] */ 0,
+ /* [38] */ 7,
+ /* [39] */ 21,
+ /* [40] */ 0,
+ /* [41] */ 0,
+ /* [42] */ 21,
+ /* [43] */ 0,
/* [44] */ 7,
- /* [45] */ 21,
- /* [46] */ 0,
- /* [47] */ 2,
- /* [48] */ 41,
- /* [49] */ 5,
- /* [50] */ 10,
- /* [51] */ 8,
- /* [52] */ 42,
- /* [53] */ 0,
- /* [54] */ 1,
- /* [55] */ 40,
- /* [56] */ 5,
- /* [57] */ 10,
- /* [58] */ 5,
- /* [59] */ 43,
- /* [60] */ 4,
- /* [61] */ 10,
- /* [62] */ 0,
- /* [63] */ 42,
- /* [64] */ 4,
+ /* [45] */ 43,
+ /* [46] */ 5,
+ /* [47] */ 10,
+ /* [48] */ 1,
+ /* [49] */ 42,
+ /* [50] */ 5,
+ /* [51] */ 10,
+ /* [52] */ 7,
+ /* [53] */ 21,
+ /* [54] */ 0,
+ /* [55] */ 2,
+ /* [56] */ 41,
+ /* [57] */ 5,
+ /* [58] */ 10,
+ /* [59] */ 8,
+ /* [60] */ 42,
+ /* [61] */ 0,
+ /* [62] */ 1,
+ /* [63] */ 40,
+ /* [64] */ 5,
/* [65] */ 10,
- /* [66] */ 6,
- /* [67] */ 41,
+ /* [66] */ 5,
+ /* [67] */ 43,
/* [68] */ 4,
/* [69] */ 10,
- /* [70] */ 2,
- /* [71] */ 40,
+ /* [70] */ 0,
+ /* [71] */ 42,
/* [72] */ 4,
/* [73] */ 10,
- /* [74] */ 43,
- /* [75] */ 3,
- /* [76] */ 10,
- /* [77] */ 21,
- /* [78] */ 1,
- /* [79] */ 7,
- /* [80] */ 42,
- /* [81] */ 3,
- /* [82] */ 10,
- /* [83] */ 41,
- /* [84] */ 3,
- /* [85] */ 10,
- /* [86] */ 43,
+ /* [74] */ 6,
+ /* [75] */ 41,
+ /* [76] */ 4,
+ /* [77] */ 10,
+ /* [78] */ 2,
+ /* [79] */ 40,
+ /* [80] */ 4,
+ /* [81] */ 10,
+ /* [82] */ 43,
+ /* [83] */ 3,
+ /* [84] */ 10,
+ /* [85] */ 21,
+ /* [86] */ 1,
/* [87] */ 0,
- /* [88] */ 1,
- /* [89] */ 41,
- /* [90] */ 0,
- /* [91] */ 1,
- /* [92] */ 40,
- /* [93] */ 0,
- /* [94] */ 1,
- /* [95] */ 21,
- /* [96] */ 0,
- /* [97] */ 5,
- /* [98] */ 21,
- /* [99] */ 0,
- /* [100] */ 6,
- /* [101] */ 40,
- /* [102] */ 3,
- /* [103] */ 10,
- /* [104] */ 17,
- /* [105] */ 0,
- /* [106] */ 9,
+ /* [88] */ 42,
+ /* [89] */ 3,
+ /* [90] */ 10,
+ /* [91] */ 41,
+ /* [92] */ 3,
+ /* [93] */ 10,
+ /* [94] */ 43,
+ /* [95] */ 0,
+ /* [96] */ 1,
+ /* [97] */ 41,
+ /* [98] */ 0,
+ /* [99] */ 1,
+ /* [100] */ 40,
+ /* [101] */ 0,
+ /* [102] */ 1,
+ /* [103] */ 21,
+ /* [104] */ 0,
+ /* [105] */ 5,
+ /* [106] */ 21,
/* [107] */ 0,
- /* [108] */ 9,
- /* [109] */ 2,
- /* [110] */ 9,
- /* [111] */ 1,
- /* [112] */ 11,
- /* [113] */ 7,
+ /* [108] */ 6,
+ /* [109] */ 40,
+ /* [110] */ 3,
+ /* [111] */ 10,
+ /* [112] */ 17,
+ /* [113] */ 0,
/* [114] */ 9,
- /* [115] */ 6,
+ /* [115] */ 0,
/* [116] */ 9,
- /* [117] */ 5,
+ /* [117] */ 2,
/* [118] */ 9,
- /* [119] */ 8,
- /* [120] */ 9,
+ /* [119] */ 1,
+ /* [120] */ 11,
/* [121] */ 7,
- /* [122] */ 46,
- /* [123] */ 0,
- /* [124] */ 28,
- /* [125] */ 0,
- /* [126] */ 11,
- /* [127] */ 1,
- /* [128] */ 29,
- /* [129] */ 0,
- /* [130] */ 30,
+ /* [122] */ 9,
+ /* [123] */ 6,
+ /* [124] */ 9,
+ /* [125] */ 5,
+ /* [126] */ 9,
+ /* [127] */ 8,
+ /* [128] */ 9,
+ /* [129] */ 7,
+ /* [130] */ 46,
/* [131] */ 0,
- /* [132] */ 11,
- /* [133] */ 8,
- /* [134] */ 31,
- /* [135] */ 0,
- /* [136] */ 11,
- /* [137] */ 5,
- /* [138] */ 32,
+ /* [132] */ 28,
+ /* [133] */ 0,
+ /* [134] */ 11,
+ /* [135] */ 1,
+ /* [136] */ 29,
+ /* [137] */ 0,
+ /* [138] */ 30,
/* [139] */ 0,
- /* [140] */ 33,
- /* [141] */ 0,
- /* [142] */ 11,
- /* [143] */ 6,
- /* [144] */ 34,
- /* [145] */ 0,
- /* [146] */ 11,
- /* [147] */ 2,
- /* [148] */ 12,
+ /* [140] */ 11,
+ /* [141] */ 8,
+ /* [142] */ 31,
+ /* [143] */ 0,
+ /* [144] */ 11,
+ /* [145] */ 5,
+ /* [146] */ 32,
+ /* [147] */ 0,
+ /* [148] */ 33,
/* [149] */ 0,
- /* [150] */ 12,
- /* [151] */ 7,
- /* [152] */ 31,
- /* [153] */ 7,
- /* [154] */ 12,
- /* [155] */ 8,
- /* [156] */ 13,
+ /* [150] */ 11,
+ /* [151] */ 6,
+ /* [152] */ 34,
+ /* [153] */ 0,
+ /* [154] */ 11,
+ /* [155] */ 2,
+ /* [156] */ 12,
/* [157] */ 0,
- /* [158] */ 48,
- /* [159] */ 0,
- /* [160] */ 13,
+ /* [158] */ 12,
+ /* [159] */ 7,
+ /* [160] */ 31,
/* [161] */ 7,
- /* [162] */ 13,
+ /* [162] */ 12,
/* [163] */ 8,
- /* [164] */ 14,
+ /* [164] */ 13,
/* [165] */ 0,
- /* [166] */ 14,
- /* [167] */ 7,
- /* [168] */ 14,
- /* [169] */ 8,
- /* [170] */ 15,
- /* [171] */ 0,
- /* [172] */ 15,
- /* [173] */ 7,
- /* [174] */ 15,
- /* [175] */ 8,
- /* [176] */ 16,
- /* [177] */ 0,
- /* [178] */ 16,
- /* [179] */ 7,
- /* [180] */ 16,
- /* [181] */ 8,
- /* [182] */ 17,
- /* [183] */ 7,
- /* [184] */ 17,
- /* [185] */ 8,
- /* [186] */ 18,
- /* [187] */ 0,
- /* [188] */ 18,
- /* [189] */ 7,
- /* [190] */ 18,
- /* [191] */ 8,
- /* [192] */ 19,
- /* [193] */ 0,
- /* [194] */ 49,
+ /* [166] */ 48,
+ /* [167] */ 0,
+ /* [168] */ 13,
+ /* [169] */ 7,
+ /* [170] */ 13,
+ /* [171] */ 8,
+ /* [172] */ 14,
+ /* [173] */ 0,
+ /* [174] */ 14,
+ /* [175] */ 7,
+ /* [176] */ 14,
+ /* [177] */ 8,
+ /* [178] */ 15,
+ /* [179] */ 0,
+ /* [180] */ 15,
+ /* [181] */ 7,
+ /* [182] */ 15,
+ /* [183] */ 8,
+ /* [184] */ 16,
+ /* [185] */ 0,
+ /* [186] */ 16,
+ /* [187] */ 7,
+ /* [188] */ 16,
+ /* [189] */ 8,
+ /* [190] */ 17,
+ /* [191] */ 7,
+ /* [192] */ 17,
+ /* [193] */ 8,
+ /* [194] */ 18,
/* [195] */ 0,
- /* [196] */ 28,
+ /* [196] */ 18,
/* [197] */ 7,
- /* [198] */ 29,
- /* [199] */ 7,
- /* [200] */ 30,
- /* [201] */ 7,
- /* [202] */ 19,
- /* [203] */ 7,
- /* [204] */ 19,
- /* [205] */ 8,
- /* [206] */ 32,
+ /* [198] */ 18,
+ /* [199] */ 8,
+ /* [200] */ 19,
+ /* [201] */ 0,
+ /* [202] */ 49,
+ /* [203] */ 0,
+ /* [204] */ 28,
+ /* [205] */ 7,
+ /* [206] */ 29,
/* [207] */ 7,
- /* [208] */ 33,
+ /* [208] */ 30,
/* [209] */ 7,
- /* [210] */ 20,
- /* [211] */ 0,
- /* [212] */ 20,
- /* [213] */ 7,
- /* [214] */ 20,
- /* [215] */ 8,
- /* [216] */ 26,
- /* [217] */ 38,
- /* [218] */ 27,
- /* [219] */ 37,
- /* [220] */ 36,
- /* [221] */ 35,
- /* [222] */ 44,
- /* [223] */ 39,
- /* [224] */ 45,
- /* [225] */ 47,
+ /* [210] */ 19,
+ /* [211] */ 7,
+ /* [212] */ 19,
+ /* [213] */ 8,
+ /* [214] */ 32,
+ /* [215] */ 7,
+ /* [216] */ 33,
+ /* [217] */ 7,
+ /* [218] */ 20,
+ /* [219] */ 0,
+ /* [220] */ 20,
+ /* [221] */ 7,
+ /* [222] */ 20,
+ /* [223] */ 8,
+ /* [224] */ 26,
+ /* [225] */ 38,
+ /* [226] */ 27,
+ /* [227] */ 37,
+ /* [228] */ 36,
+ /* [229] */ 35,
+ /* [230] */ 44,
+ /* [231] */ 39,
+ /* [232] */ 45,
+ /* [233] */ 47,
};
// Assert that the MatcherIndex is big enough to index all the matchers, plus
@@ -3120,97 +3211,97 @@
{
/* [65] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [66] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [67] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [68] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [69] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [70] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [71] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [72] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [73] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [74] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [75] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [76] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [77] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [78] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [79] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [80] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [81] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [82] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [83] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [84] */
@@ -3245,122 +3336,122 @@
{
/* [90] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [91] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [92] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [93] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [94] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [95] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [96] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [97] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [98] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [99] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [100] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [101] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [102] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [103] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [104] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [105] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [106] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [107] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [108] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [109] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [110] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [111] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [112] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [113] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [114] */
@@ -3395,1397 +3486,1397 @@
{
/* [120] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[208],
+ /* matcher indices */ &kMatcherIndices[216],
},
{
/* [121] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [122] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [123] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [124] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [125] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [126] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [127] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [128] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [129] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [130] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [131] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [132] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [133] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [134] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [135] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [136] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [137] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [138] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [139] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [140] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [141] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [142] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [143] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [144] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [145] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [146] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [147] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [148] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [149] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [150] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [151] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [152] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [153] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [154] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [155] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [156] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [157] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [158] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [159] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [160] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [161] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [162] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [163] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [164] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [165] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [166] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [167] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [168] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [169] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [170] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [171] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[140],
+ /* matcher indices */ &kMatcherIndices[148],
},
{
/* [172] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [173] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [174] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [175] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [176] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [177] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [178] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [179] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [180] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [181] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [182] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [183] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [184] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [185] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [186] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [187] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [188] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [189] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [190] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [191] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [192] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [193] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [194] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [195] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [196] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [197] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [198] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [199] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [200] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [201] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [202] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [203] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [204] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [205] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [206] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [207] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [208] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [209] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [210] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [211] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [212] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [213] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [214] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [215] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [216] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [217] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [218] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [219] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [220] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [221] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [222] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [223] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [224] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [225] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [226] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [227] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [228] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [229] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [230] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [231] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [232] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [233] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [234] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [235] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [236] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [237] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [238] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [239] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [240] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [241] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [242] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [243] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [244] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [245] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[206],
+ /* matcher indices */ &kMatcherIndices[214],
},
{
/* [246] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [247] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [248] */
/* usage */ ParameterUsage::kDdx,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [249] */
/* usage */ ParameterUsage::kDdy,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [250] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [251] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [252] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [253] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [254] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [255] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [256] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [257] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [258] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [259] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [260] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [261] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [262] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [263] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [264] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [265] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [266] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [267] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [268] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [269] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [270] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [271] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [272] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [273] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [274] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [275] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [276] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [277] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [278] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [279] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [280] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[208],
+ /* matcher indices */ &kMatcherIndices[216],
},
{
/* [281] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [282] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [283] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [284] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [285] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[208],
+ /* matcher indices */ &kMatcherIndices[216],
},
{
/* [286] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [287] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [288] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [289] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [290] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [291] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [292] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [293] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [294] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [295] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[206],
+ /* matcher indices */ &kMatcherIndices[214],
},
{
/* [296] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [297] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [298] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [299] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [300] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [301] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [302] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [303] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [304] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [305] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [306] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [307] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [308] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [309] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [310] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [311] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[63],
+ /* matcher indices */ &kMatcherIndices[71],
},
{
/* [312] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [313] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [314] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[136],
+ /* matcher indices */ &kMatcherIndices[144],
},
{
/* [315] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [316] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [317] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [318] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [319] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [320] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [321] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [322] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [323] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [324] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [325] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [326] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [327] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[208],
+ /* matcher indices */ &kMatcherIndices[216],
},
{
/* [328] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [329] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [330] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [331] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [332] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [333] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [334] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [335] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[80],
+ /* matcher indices */ &kMatcherIndices[88],
},
{
/* [336] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [337] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [338] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [339] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [340] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [341] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [342] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [343] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [344] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [345] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [346] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [347] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[200],
+ /* matcher indices */ &kMatcherIndices[208],
},
{
/* [348] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [349] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [350] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [351] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [352] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [353] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [354] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [355] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [356] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [357] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [358] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [359] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[41],
+ /* matcher indices */ &kMatcherIndices[49],
},
{
/* [360] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [361] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [362] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[142],
+ /* matcher indices */ &kMatcherIndices[150],
},
{
/* [363] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [364] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [365] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [366] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [367] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [368] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [369] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [370] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [371] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [372] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [373] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [374] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [375] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [376] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [377] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [378] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [379] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [380] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [381] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [382] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [383] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [384] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [385] */
/* usage */ ParameterUsage::kArrayIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [386] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [387] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [388] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [389] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [390] */
/* usage */ ParameterUsage::kOffset,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [391] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [392] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [393] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [394] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [395] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [396] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [397] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [398] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [399] */
@@ -4810,42 +4901,42 @@
{
/* [403] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [404] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [405] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [406] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [407] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [408] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[138],
+ /* matcher indices */ &kMatcherIndices[146],
},
{
/* [409] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [410] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [411] */
@@ -4870,42 +4961,42 @@
{
/* [415] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [416] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [417] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [418] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [419] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [420] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[218],
+ /* matcher indices */ &kMatcherIndices[226],
},
{
/* [421] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [422] */
/* usage */ ParameterUsage::kDepthRef,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [423] */
@@ -4920,92 +5011,92 @@
{
/* [425] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [426] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [427] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [428] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [429] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [430] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [431] */
/* usage */ ParameterUsage::kComponent,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [432] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [433] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [434] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [435] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[206],
+ /* matcher indices */ &kMatcherIndices[214],
},
{
/* [436] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [437] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [438] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [439] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [440] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [441] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [442] */
/* usage */ ParameterUsage::kBias,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [443] */
@@ -5030,62 +5121,62 @@
{
/* [447] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [448] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [449] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [450] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [451] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [452] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [453] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [454] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [455] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [456] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [457] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [458] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [459] */
@@ -5095,42 +5186,42 @@
{
/* [460] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [461] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [462] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [463] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [464] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [465] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[48],
+ /* matcher indices */ &kMatcherIndices[56],
},
{
/* [466] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [467] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[142],
+ /* matcher indices */ &kMatcherIndices[150],
},
{
/* [468] */
@@ -5150,332 +5241,332 @@
{
/* [471] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[222],
+ /* matcher indices */ &kMatcherIndices[230],
},
{
/* [472] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [473] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [474] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [475] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [476] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [477] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [478] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [479] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [480] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [481] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [482] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [483] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [484] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [485] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [486] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[101],
+ /* matcher indices */ &kMatcherIndices[109],
},
{
/* [487] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [488] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [489] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[206],
+ /* matcher indices */ &kMatcherIndices[214],
},
{
/* [490] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [491] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [492] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[83],
+ /* matcher indices */ &kMatcherIndices[91],
},
{
/* [493] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [494] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [495] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[152],
+ /* matcher indices */ &kMatcherIndices[160],
},
{
/* [496] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [497] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [498] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[74],
+ /* matcher indices */ &kMatcherIndices[82],
},
{
/* [499] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [500] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [501] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[71],
+ /* matcher indices */ &kMatcherIndices[79],
},
{
/* [502] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [503] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[136],
+ /* matcher indices */ &kMatcherIndices[144],
},
{
/* [504] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[67],
+ /* matcher indices */ &kMatcherIndices[75],
},
{
/* [505] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [506] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[136],
+ /* matcher indices */ &kMatcherIndices[144],
},
{
/* [507] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[198],
+ /* matcher indices */ &kMatcherIndices[206],
},
{
/* [508] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [509] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [510] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[196],
+ /* matcher indices */ &kMatcherIndices[204],
},
{
/* [511] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [512] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [513] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[59],
+ /* matcher indices */ &kMatcherIndices[67],
},
{
/* [514] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [515] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[136],
+ /* matcher indices */ &kMatcherIndices[144],
},
{
/* [516] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[55],
+ /* matcher indices */ &kMatcherIndices[63],
},
{
/* [517] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [518] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[142],
+ /* matcher indices */ &kMatcherIndices[150],
},
{
/* [519] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[37],
+ /* matcher indices */ &kMatcherIndices[45],
},
{
/* [520] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [521] */
/* usage */ ParameterUsage::kValue,
- /* matcher indices */ &kMatcherIndices[142],
+ /* matcher indices */ &kMatcherIndices[150],
},
{
/* [522] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[124],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [523] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [524] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [525] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [526] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [527] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [528] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [529] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [530] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [531] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[142],
},
{
/* [532] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[57],
+ /* matcher indices */ &kMatcherIndices[65],
},
{
/* [533] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [534] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [535] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [536] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [537] */
@@ -5510,12 +5601,12 @@
{
/* [543] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [544] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [545] */
@@ -5525,77 +5616,77 @@
{
/* [546] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [547] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [548] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [549] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[144],
+ /* matcher indices */ &kMatcherIndices[152],
},
{
/* [550] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [551] */
/* usage */ ParameterUsage::kSampleIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [552] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [553] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [554] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [555] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[223],
+ /* matcher indices */ &kMatcherIndices[231],
},
{
/* [556] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [557] */
/* usage */ ParameterUsage::kSampleIndex,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [558] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [559] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [560] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [561] */
@@ -5615,7 +5706,7 @@
{
/* [564] */
/* usage */ ParameterUsage::kXy,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [565] */
@@ -5630,32 +5721,32 @@
{
/* [567] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [568] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [569] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [570] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [571] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [572] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [573] */
@@ -5665,7 +5756,7 @@
{
/* [574] */
/* usage */ ParameterUsage::kYz,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [575] */
@@ -5685,52 +5776,52 @@
{
/* [578] */
/* usage */ ParameterUsage::kZw,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [579] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [580] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [581] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [582] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [583] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [584] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [585] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [586] */
/* usage */ ParameterUsage::kSampler,
- /* matcher indices */ &kMatcherIndices[216],
+ /* matcher indices */ &kMatcherIndices[224],
},
{
/* [587] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [588] */
@@ -5770,32 +5861,32 @@
{
/* [595] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [596] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [597] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [598] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [599] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [600] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [601] */
@@ -5805,12 +5896,12 @@
{
/* [602] */
/* usage */ ParameterUsage::kZyw,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [603] */
/* usage */ ParameterUsage::kXyz,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [604] */
@@ -5820,12 +5911,12 @@
{
/* [605] */
/* usage */ ParameterUsage::kXy,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [606] */
/* usage */ ParameterUsage::kZw,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [607] */
@@ -5835,12 +5926,12 @@
{
/* [608] */
/* usage */ ParameterUsage::kYz,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [609] */
/* usage */ ParameterUsage::kXy,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [610] */
@@ -5860,32 +5951,32 @@
{
/* [613] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [614] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [615] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [616] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[98],
+ /* matcher indices */ &kMatcherIndices[106],
},
{
/* [617] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[124],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [618] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [619] */
@@ -5895,37 +5986,37 @@
{
/* [620] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [621] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [622] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [623] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [624] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[98],
+ /* matcher indices */ &kMatcherIndices[106],
},
{
/* [625] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [626] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [627] */
@@ -5935,37 +6026,37 @@
{
/* [628] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [629] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[142],
},
{
/* [630] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [631] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [632] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [633] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[138],
+ /* matcher indices */ &kMatcherIndices[146],
},
{
/* [634] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [635] */
@@ -5980,22 +6071,22 @@
{
/* [637] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[140],
+ /* matcher indices */ &kMatcherIndices[148],
},
{
/* [638] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [639] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [640] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [641] */
@@ -6010,32 +6101,32 @@
{
/* [643] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [644] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [645] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [646] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [647] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [648] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [649] */
@@ -6050,32 +6141,32 @@
{
/* [651] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [652] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [653] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [654] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [655] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [656] */
/* usage */ ParameterUsage::kLevel,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [657] */
@@ -6100,12 +6191,12 @@
{
/* [661] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [662] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [663] */
@@ -6140,32 +6231,32 @@
{
/* [669] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [670] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [671] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [672] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [673] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [674] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [675] */
@@ -6180,12 +6271,12 @@
{
/* [677] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [678] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [679] */
@@ -6200,12 +6291,12 @@
{
/* [681] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [682] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [683] */
@@ -6220,12 +6311,12 @@
{
/* [685] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [686] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [687] */
@@ -6240,12 +6331,12 @@
{
/* [689] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [690] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [691] */
@@ -6265,12 +6356,12 @@
{
/* [694] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [695] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [696] */
@@ -6280,22 +6371,22 @@
{
/* [697] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [698] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [699] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [700] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [701] */
@@ -6310,17 +6401,17 @@
{
/* [703] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [704] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [705] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [706] */
@@ -6330,12 +6421,12 @@
{
/* [707] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [708] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [709] */
@@ -6360,7 +6451,7 @@
{
/* [713] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[77],
+ /* matcher indices */ &kMatcherIndices[85],
},
{
/* [714] */
@@ -6375,7 +6466,7 @@
{
/* [716] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [717] */
@@ -6385,12 +6476,12 @@
{
/* [718] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [719] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[1],
},
{
/* [720] */
@@ -6405,12 +6496,12 @@
{
/* [722] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [723] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [724] */
@@ -6420,12 +6511,12 @@
{
/* [725] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [726] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [727] */
@@ -6455,12 +6546,12 @@
{
/* [732] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [733] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [734] */
@@ -6470,12 +6561,12 @@
{
/* [735] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [736] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [737] */
@@ -6490,12 +6581,12 @@
{
/* [739] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [740] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [741] */
@@ -6515,12 +6606,12 @@
{
/* [744] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [745] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [746] */
@@ -6530,12 +6621,12 @@
{
/* [747] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [748] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [749] */
@@ -6550,12 +6641,12 @@
{
/* [751] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [752] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [753] */
@@ -6580,12 +6671,12 @@
{
/* [757] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [758] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [759] */
@@ -6600,12 +6691,12 @@
{
/* [761] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [762] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [763] */
@@ -6680,22 +6771,22 @@
{
/* [777] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [778] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[95],
+ /* matcher indices */ &kMatcherIndices[103],
},
{
/* [779] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [780] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [781] */
@@ -6705,112 +6796,112 @@
{
/* [782] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [783] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[222],
+ /* matcher indices */ &kMatcherIndices[230],
},
{
/* [784] */
/* usage */ ParameterUsage::kCoords,
- /* matcher indices */ &kMatcherIndices[116],
+ /* matcher indices */ &kMatcherIndices[124],
},
{
/* [785] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [786] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[43],
+ /* matcher indices */ &kMatcherIndices[51],
},
{
/* [787] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [788] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [789] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [790] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [791] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [792] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [793] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [794] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [795] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [796] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [797] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [798] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [799] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [800] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [801] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [802] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [803] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [804] */
@@ -6820,7 +6911,7 @@
{
/* [805] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [806] */
@@ -6830,127 +6921,127 @@
{
/* [807] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [808] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [809] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [810] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [811] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [812] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [813] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [814] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [815] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [816] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [817] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [818] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [819] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [820] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [821] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [822] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [823] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [824] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [825] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [826] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [827] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[27],
+ /* matcher indices */ &kMatcherIndices[35],
},
{
/* [828] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [829] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [830] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [831] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [832] */
@@ -6960,7 +7051,7 @@
{
/* [833] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [834] */
@@ -6970,12 +7061,12 @@
{
/* [835] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [836] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [837] */
@@ -6985,47 +7076,47 @@
{
/* [838] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [839] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [840] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [841] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [842] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [843] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [844] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [845] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [846] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [847] */
@@ -7035,52 +7126,52 @@
{
/* [848] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [849] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [850] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [851] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [852] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [853] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [854] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [855] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [856] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [857] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [858] */
@@ -7090,7 +7181,7 @@
{
/* [859] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [860] */
@@ -7100,7 +7191,7 @@
{
/* [861] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [862] */
@@ -7110,132 +7201,132 @@
{
/* [863] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [864] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [865] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [866] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[120],
+ /* matcher indices */ &kMatcherIndices[128],
},
{
/* [867] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [868] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[112],
+ /* matcher indices */ &kMatcherIndices[120],
},
{
/* [869] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[223],
+ /* matcher indices */ &kMatcherIndices[231],
},
{
/* [870] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[144],
+ /* matcher indices */ &kMatcherIndices[152],
},
{
/* [871] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [872] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [873] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [874] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [875] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[140],
+ /* matcher indices */ &kMatcherIndices[148],
},
{
/* [876] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[138],
+ /* matcher indices */ &kMatcherIndices[146],
},
{
/* [877] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[142],
},
{
/* [878] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [879] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [880] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[124],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [881] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[52],
+ /* matcher indices */ &kMatcherIndices[60],
},
{
/* [882] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[217],
+ /* matcher indices */ &kMatcherIndices[225],
},
{
/* [883] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [884] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[140],
+ /* matcher indices */ &kMatcherIndices[148],
},
{
/* [885] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [886] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [887] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [888] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [889] */
@@ -7245,157 +7336,157 @@
{
/* [890] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [891] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [892] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [893] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [894] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [895] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [896] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [897] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [898] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [899] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [900] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [901] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[222],
+ /* matcher indices */ &kMatcherIndices[230],
},
{
/* [902] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[86],
+ /* matcher indices */ &kMatcherIndices[94],
},
{
/* [903] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[52],
+ /* matcher indices */ &kMatcherIndices[60],
},
{
/* [904] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[89],
+ /* matcher indices */ &kMatcherIndices[97],
},
{
/* [905] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[92],
+ /* matcher indices */ &kMatcherIndices[100],
},
{
/* [906] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[214],
+ /* matcher indices */ &kMatcherIndices[222],
},
{
/* [907] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[223],
+ /* matcher indices */ &kMatcherIndices[231],
},
{
/* [908] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[212],
+ /* matcher indices */ &kMatcherIndices[220],
},
{
/* [909] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[219],
+ /* matcher indices */ &kMatcherIndices[227],
},
{
/* [910] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[220],
+ /* matcher indices */ &kMatcherIndices[228],
},
{
/* [911] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[221],
+ /* matcher indices */ &kMatcherIndices[229],
},
{
/* [912] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[144],
+ /* matcher indices */ &kMatcherIndices[152],
},
{
/* [913] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[140],
+ /* matcher indices */ &kMatcherIndices[148],
},
{
/* [914] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[138],
+ /* matcher indices */ &kMatcherIndices[146],
},
{
/* [915] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[134],
+ /* matcher indices */ &kMatcherIndices[142],
},
{
/* [916] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[130],
+ /* matcher indices */ &kMatcherIndices[138],
},
{
/* [917] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[128],
+ /* matcher indices */ &kMatcherIndices[136],
},
{
/* [918] */
/* usage */ ParameterUsage::kTexture,
- /* matcher indices */ &kMatcherIndices[124],
+ /* matcher indices */ &kMatcherIndices[132],
},
{
/* [919] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [920] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[38],
+ /* matcher indices */ &kMatcherIndices[46],
},
{
/* [921] */
@@ -7405,12 +7496,12 @@
{
/* [922] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[210],
+ /* matcher indices */ &kMatcherIndices[218],
},
{
/* [923] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [924] */
@@ -7420,12 +7511,12 @@
{
/* [925] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[204],
+ /* matcher indices */ &kMatcherIndices[212],
},
{
/* [926] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [927] */
@@ -7435,12 +7526,12 @@
{
/* [928] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[202],
+ /* matcher indices */ &kMatcherIndices[210],
},
{
/* [929] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[51],
+ /* matcher indices */ &kMatcherIndices[59],
},
{
/* [930] */
@@ -7450,7 +7541,7 @@
{
/* [931] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [932] */
@@ -7465,12 +7556,12 @@
{
/* [934] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [935] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[106],
+ /* matcher indices */ &kMatcherIndices[114],
},
{
/* [936] */
@@ -7480,42 +7571,42 @@
{
/* [937] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [938] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[110],
+ /* matcher indices */ &kMatcherIndices[118],
},
{
/* [939] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[110],
+ /* matcher indices */ &kMatcherIndices[118],
},
{
/* [940] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[110],
+ /* matcher indices */ &kMatcherIndices[118],
},
{
/* [941] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[110],
+ /* matcher indices */ &kMatcherIndices[118],
},
{
/* [942] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[110],
+ /* matcher indices */ &kMatcherIndices[118],
},
{
/* [943] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[192],
+ /* matcher indices */ &kMatcherIndices[200],
},
{
/* [944] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[61],
+ /* matcher indices */ &kMatcherIndices[69],
},
{
/* [945] */
@@ -7525,47 +7616,47 @@
{
/* [946] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [947] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [948] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [949] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[47],
},
{
/* [950] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[47],
},
{
/* [951] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[47],
},
{
/* [952] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[47],
},
{
/* [953] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[39],
+ /* matcher indices */ &kMatcherIndices[47],
},
{
/* [954] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[190],
+ /* matcher indices */ &kMatcherIndices[198],
},
{
/* [955] */
@@ -7580,17 +7671,17 @@
{
/* [957] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [958] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [959] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [960] */
@@ -7600,72 +7691,72 @@
{
/* [961] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [962] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[66],
+ /* matcher indices */ &kMatcherIndices[74],
},
{
/* [963] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [964] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [965] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[126],
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [966] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[126],
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [967] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[126],
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [968] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[126],
+ /* matcher indices */ &kMatcherIndices[134],
},
{
/* [969] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[188],
+ /* matcher indices */ &kMatcherIndices[196],
},
{
/* [970] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[148],
+ /* matcher indices */ &kMatcherIndices[156],
},
{
/* [971] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [972] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[11],
+ /* matcher indices */ &kMatcherIndices[31],
},
{
/* [973] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[150],
+ /* matcher indices */ &kMatcherIndices[158],
},
{
/* [974] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[154],
+ /* matcher indices */ &kMatcherIndices[162],
},
{
/* [975] */
@@ -7675,27 +7766,27 @@
{
/* [976] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[156],
+ /* matcher indices */ &kMatcherIndices[164],
},
{
/* [977] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[45],
+ /* matcher indices */ &kMatcherIndices[53],
},
{
/* [978] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [979] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[160],
+ /* matcher indices */ &kMatcherIndices[168],
},
{
/* [980] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[162],
+ /* matcher indices */ &kMatcherIndices[170],
},
{
/* [981] */
@@ -7705,102 +7796,102 @@
{
/* [982] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[164],
+ /* matcher indices */ &kMatcherIndices[172],
},
{
/* [983] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [984] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [985] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[166],
+ /* matcher indices */ &kMatcherIndices[174],
},
{
/* [986] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[168],
+ /* matcher indices */ &kMatcherIndices[176],
},
{
/* [987] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[186],
+ /* matcher indices */ &kMatcherIndices[194],
},
{
/* [988] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[170],
+ /* matcher indices */ &kMatcherIndices[178],
},
{
/* [989] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [990] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [991] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[172],
+ /* matcher indices */ &kMatcherIndices[180],
},
{
/* [992] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[174],
+ /* matcher indices */ &kMatcherIndices[182],
},
{
/* [993] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[184],
+ /* matcher indices */ &kMatcherIndices[192],
},
{
/* [994] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[176],
+ /* matcher indices */ &kMatcherIndices[184],
},
{
/* [995] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[14],
+ /* matcher indices */ &kMatcherIndices[30],
},
{
/* [996] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[31],
+ /* matcher indices */ &kMatcherIndices[39],
},
{
/* [997] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[178],
+ /* matcher indices */ &kMatcherIndices[186],
},
{
/* [998] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[180],
+ /* matcher indices */ &kMatcherIndices[188],
},
{
/* [999] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[182],
+ /* matcher indices */ &kMatcherIndices[190],
},
{
/* [1000] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[104],
+ /* matcher indices */ &kMatcherIndices[112],
},
{
/* [1001] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[34],
+ /* matcher indices */ &kMatcherIndices[42],
},
{
/* [1002] */
@@ -7810,7 +7901,7 @@
{
/* [1003] */
/* usage */ ParameterUsage::kNone,
- /* matcher indices */ &kMatcherIndices[126],
+ /* matcher indices */ &kMatcherIndices[134],
},
};
@@ -7823,7 +7914,7 @@
{
/* [1] */
/* name */ "U",
- /* matcher index */ 63,
+ /* matcher index */ 65,
},
{
/* [2] */
@@ -7833,7 +7924,7 @@
{
/* [3] */
/* name */ "U",
- /* matcher index */ 59,
+ /* matcher index */ 61,
},
{
/* [4] */
@@ -7843,37 +7934,37 @@
{
/* [5] */
/* name */ "U",
- /* matcher index */ 60,
+ /* matcher index */ 62,
},
{
/* [6] */
/* name */ "T",
- /* matcher index */ 6,
+ /* matcher index */ 5,
},
{
/* [7] */
/* name */ "U",
- /* matcher index */ 62,
+ /* matcher index */ 63,
},
{
/* [8] */
/* name */ "T",
- /* matcher index */ 5,
+ /* matcher index */ 6,
},
{
/* [9] */
/* name */ "U",
- /* matcher index */ 61,
+ /* matcher index */ 64,
},
{
/* [10] */
/* name */ "T",
- /* matcher index */ 53,
+ /* matcher index */ 55,
},
{
/* [11] */
/* name */ "T",
- /* matcher index */ 58,
+ /* matcher index */ 60,
},
{
/* [12] */
@@ -7888,42 +7979,42 @@
{
/* [14] */
/* name */ "T",
- /* matcher index */ 56,
+ /* matcher index */ 58,
},
{
/* [15] */
/* name */ "T",
- /* matcher index */ kNoMatcher,
+ /* matcher index */ 57,
},
{
/* [16] */
/* name */ "T",
- /* matcher index */ 55,
+ /* matcher index */ kNoMatcher,
},
{
/* [17] */
/* name */ "T",
- /* matcher index */ 63,
+ /* matcher index */ 65,
},
{
/* [18] */
/* name */ "T",
- /* matcher index */ 60,
+ /* matcher index */ 62,
},
{
/* [19] */
/* name */ "T",
- /* matcher index */ 59,
+ /* matcher index */ 61,
},
{
/* [20] */
/* name */ "T",
- /* matcher index */ 62,
+ /* matcher index */ 64,
},
{
/* [21] */
/* name */ "T",
- /* matcher index */ 61,
+ /* matcher index */ 63,
},
{
/* [22] */
@@ -7935,6 +8026,11 @@
/* name */ "T",
/* matcher index */ 54,
},
+ {
+ /* [24] */
+ /* name */ "T",
+ /* matcher index */ 56,
+ },
};
constexpr TemplateNumberInfo kTemplateNumbers[] = {
@@ -7999,7 +8095,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[918],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8011,7 +8107,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[617],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8023,7 +8119,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[917],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8035,7 +8131,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[621],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8047,7 +8143,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[916],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8059,7 +8155,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[625],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8071,7 +8167,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[915],
- /* return matcher indices */ &kMatcherIndices[57],
+ /* return matcher indices */ &kMatcherIndices[65],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8083,7 +8179,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[629],
- /* return matcher indices */ &kMatcherIndices[57],
+ /* return matcher indices */ &kMatcherIndices[65],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8095,7 +8191,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[914],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8107,7 +8203,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[633],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8119,7 +8215,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[913],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8131,7 +8227,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[637],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8143,7 +8239,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[912],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8152,10 +8248,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[911],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8164,10 +8260,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[643],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8176,10 +8272,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[910],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8188,10 +8284,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[647],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8200,10 +8296,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[909],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8212,10 +8308,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[651],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8224,10 +8320,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[835],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8236,10 +8332,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[655],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8248,10 +8344,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[907],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8260,10 +8356,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[3],
/* parameters */ &kParameters[905],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8272,10 +8368,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[3],
/* parameters */ &kParameters[904],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8284,10 +8380,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[3],
/* parameters */ &kParameters[903],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8296,10 +8392,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[3],
/* parameters */ &kParameters[902],
- /* return matcher indices */ &kMatcherIndices[57],
+ /* return matcher indices */ &kMatcherIndices[65],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8308,10 +8404,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[901],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8320,7 +8416,7 @@
/* num parameters */ 0,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
/* return matcher indices */ &kMatcherIndices[4],
@@ -8332,7 +8428,7 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[955],
/* return matcher indices */ &kMatcherIndices[4],
@@ -8443,7 +8539,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1003],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -8455,7 +8551,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[965],
- /* return matcher indices */ &kMatcherIndices[132],
+ /* return matcher indices */ &kMatcherIndices[140],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -8464,10 +8560,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[8],
+ /* template types */ &kTemplateTypes[6],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[966],
- /* return matcher indices */ &kMatcherIndices[136],
+ /* return matcher indices */ &kMatcherIndices[144],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -8476,10 +8572,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[6],
+ /* template types */ &kTemplateTypes[8],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[967],
- /* return matcher indices */ &kMatcherIndices[142],
+ /* return matcher indices */ &kMatcherIndices[150],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -8491,7 +8587,7 @@
/* template types */ &kTemplateTypes[0],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[968],
- /* return matcher indices */ &kMatcherIndices[146],
+ /* return matcher indices */ &kMatcherIndices[154],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -8500,10 +8596,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[510],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8512,10 +8608,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[507],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8524,10 +8620,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[351],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8536,10 +8632,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[347],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8548,10 +8644,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[230],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8560,10 +8656,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[495],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8572,10 +8668,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[331],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8584,10 +8680,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[489],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8596,10 +8692,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[327],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8608,10 +8704,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[474],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8620,10 +8716,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[323],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8632,10 +8728,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[319],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8644,10 +8740,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[165],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8656,10 +8752,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[462],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8668,10 +8764,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[339],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -8680,10 +8776,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[315],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8692,10 +8788,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[265],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8704,10 +8800,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[260],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8716,10 +8812,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[132],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8728,10 +8824,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[299],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8740,10 +8836,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[205],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8752,10 +8848,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[295],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8764,10 +8860,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[285],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8776,10 +8872,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[303],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8788,10 +8884,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[275],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8800,10 +8896,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[270],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8812,10 +8908,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[90],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8824,10 +8920,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[307],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8836,10 +8932,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[255],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8848,10 +8944,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[471],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8932,10 +9028,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[558],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8944,10 +9040,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[387],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8956,10 +9052,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[379],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8968,10 +9064,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[160],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8980,10 +9076,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[585],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -8992,10 +9088,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[375],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9004,7 +9100,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[486],
/* return matcher indices */ nullptr,
@@ -9016,7 +9112,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[492],
/* return matcher indices */ nullptr,
@@ -9028,7 +9124,7 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[335],
/* return matcher indices */ nullptr,
@@ -9040,7 +9136,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[498],
/* return matcher indices */ nullptr,
@@ -9052,7 +9148,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[501],
/* return matcher indices */ nullptr,
@@ -9064,7 +9160,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[504],
/* return matcher indices */ nullptr,
@@ -9076,7 +9172,7 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[311],
/* return matcher indices */ nullptr,
@@ -9088,7 +9184,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[513],
/* return matcher indices */ nullptr,
@@ -9100,7 +9196,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[516],
/* return matcher indices */ nullptr,
@@ -9112,7 +9208,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[465],
/* return matcher indices */ nullptr,
@@ -9124,7 +9220,7 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[359],
/* return matcher indices */ nullptr,
@@ -9136,7 +9232,7 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[519],
/* return matcher indices */ nullptr,
@@ -9148,10 +9244,10 @@
/* num parameters */ 0,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -9160,10 +9256,10 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[944],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -9175,7 +9271,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[945],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecSplat,
},
@@ -9187,7 +9283,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[588],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecCtorS,
},
@@ -9199,7 +9295,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[609],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecCtorM,
},
@@ -9211,7 +9307,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[607],
- /* return matcher indices */ &kMatcherIndices[61],
+ /* return matcher indices */ &kMatcherIndices[69],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecCtorM,
},
@@ -9223,7 +9319,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[949],
- /* return matcher indices */ &kMatcherIndices[43],
+ /* return matcher indices */ &kMatcherIndices[51],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9235,7 +9331,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[950],
- /* return matcher indices */ &kMatcherIndices[50],
+ /* return matcher indices */ &kMatcherIndices[58],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9244,10 +9340,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[8],
+ /* template types */ &kTemplateTypes[6],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[951],
- /* return matcher indices */ &kMatcherIndices[57],
+ /* return matcher indices */ &kMatcherIndices[65],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9256,10 +9352,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[6],
+ /* template types */ &kTemplateTypes[8],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[952],
- /* return matcher indices */ &kMatcherIndices[65],
+ /* return matcher indices */ &kMatcherIndices[73],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9271,7 +9367,7 @@
/* template types */ &kTemplateTypes[0],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[953],
- /* return matcher indices */ &kMatcherIndices[69],
+ /* return matcher indices */ &kMatcherIndices[77],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9283,7 +9379,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[880],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9295,7 +9391,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[879],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9307,7 +9403,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[878],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9319,7 +9415,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[877],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9331,7 +9427,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[876],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9343,7 +9439,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[875],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9352,10 +9448,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[874],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9364,10 +9460,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[873],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9376,10 +9472,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[872],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9388,10 +9484,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[871],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9400,7 +9496,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[727],
/* return matcher indices */ &kMatcherIndices[1],
@@ -9412,10 +9508,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[725],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9424,10 +9520,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[723],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9436,19 +9532,19 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[721],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
{
/* [121] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[719],
/* return matcher indices */ &kMatcherIndices[11],
@@ -9458,9 +9554,9 @@
{
/* [122] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[717],
/* return matcher indices */ &kMatcherIndices[11],
@@ -9470,33 +9566,33 @@
{
/* [123] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[1],
/* parameters */ &kParameters[715],
- /* return matcher indices */ &kMatcherIndices[77],
+ /* return matcher indices */ &kMatcherIndices[85],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
{
/* [124] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[1],
/* parameters */ &kParameters[713],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
{
/* [125] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 3,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[0],
/* parameters */ &kParameters[711],
/* return matcher indices */ &kMatcherIndices[23],
@@ -9568,10 +9664,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[552],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9580,10 +9676,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[383],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9592,10 +9688,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[555],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9604,10 +9700,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[783],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9616,10 +9712,10 @@
/* num parameters */ 0,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[106],
+ /* return matcher indices */ &kMatcherIndices[114],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -9628,10 +9724,10 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[935],
- /* return matcher indices */ &kMatcherIndices[106],
+ /* return matcher indices */ &kMatcherIndices[114],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -9643,7 +9739,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[936],
- /* return matcher indices */ &kMatcherIndices[106],
+ /* return matcher indices */ &kMatcherIndices[114],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecSplat,
},
@@ -9655,7 +9751,7 @@
/* template types */ &kTemplateTypes[14],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[611],
- /* return matcher indices */ &kMatcherIndices[106],
+ /* return matcher indices */ &kMatcherIndices[114],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::VecCtorS,
},
@@ -9667,7 +9763,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[938],
- /* return matcher indices */ &kMatcherIndices[120],
+ /* return matcher indices */ &kMatcherIndices[128],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9679,7 +9775,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[939],
- /* return matcher indices */ &kMatcherIndices[118],
+ /* return matcher indices */ &kMatcherIndices[126],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9688,10 +9784,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[8],
+ /* template types */ &kTemplateTypes[6],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[940],
- /* return matcher indices */ &kMatcherIndices[116],
+ /* return matcher indices */ &kMatcherIndices[124],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9700,10 +9796,10 @@
/* num parameters */ 1,
/* num template types */ 2,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[6],
+ /* template types */ &kTemplateTypes[8],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[941],
- /* return matcher indices */ &kMatcherIndices[114],
+ /* return matcher indices */ &kMatcherIndices[122],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9715,7 +9811,7 @@
/* template types */ &kTemplateTypes[0],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[942],
- /* return matcher indices */ &kMatcherIndices[108],
+ /* return matcher indices */ &kMatcherIndices[116],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9724,10 +9820,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[180],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9736,10 +9832,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[108],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9748,10 +9844,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[102],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9760,10 +9856,10 @@
/* num parameters */ 7,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[65],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9772,10 +9868,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[235],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9784,10 +9880,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[78],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9796,10 +9892,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[245],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9808,10 +9904,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[120],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -9820,10 +9916,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[343],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9832,10 +9928,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[225],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9844,10 +9940,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[150],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9856,10 +9952,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[144],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9868,10 +9964,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[439],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9880,10 +9976,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[200],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9892,10 +9988,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[435],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9904,10 +10000,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[280],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -9919,7 +10015,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[210],
+ /* return matcher indices */ &kMatcherIndices[218],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -9931,7 +10027,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[922],
- /* return matcher indices */ &kMatcherIndices[210],
+ /* return matcher indices */ &kMatcherIndices[218],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -9943,7 +10039,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[0],
- /* return matcher indices */ &kMatcherIndices[210],
+ /* return matcher indices */ &kMatcherIndices[218],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -9955,7 +10051,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[443],
- /* return matcher indices */ &kMatcherIndices[210],
+ /* return matcher indices */ &kMatcherIndices[218],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -9967,7 +10063,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[908],
- /* return matcher indices */ &kMatcherIndices[214],
+ /* return matcher indices */ &kMatcherIndices[222],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9979,7 +10075,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[906],
- /* return matcher indices */ &kMatcherIndices[212],
+ /* return matcher indices */ &kMatcherIndices[220],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -9988,10 +10084,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[419],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10000,10 +10096,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[240],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10012,10 +10108,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[220],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10024,10 +10120,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[138],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10036,10 +10132,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[403],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10048,10 +10144,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[290],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -10063,7 +10159,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[164],
+ /* return matcher indices */ &kMatcherIndices[172],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10075,7 +10171,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[982],
- /* return matcher indices */ &kMatcherIndices[164],
+ /* return matcher indices */ &kMatcherIndices[172],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10087,7 +10183,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[57],
- /* return matcher indices */ &kMatcherIndices[164],
+ /* return matcher indices */ &kMatcherIndices[172],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10099,7 +10195,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[593],
- /* return matcher indices */ &kMatcherIndices[164],
+ /* return matcher indices */ &kMatcherIndices[172],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10111,7 +10207,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[985],
- /* return matcher indices */ &kMatcherIndices[168],
+ /* return matcher indices */ &kMatcherIndices[176],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10123,7 +10219,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[986],
- /* return matcher indices */ &kMatcherIndices[166],
+ /* return matcher indices */ &kMatcherIndices[174],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10135,7 +10231,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[148],
+ /* return matcher indices */ &kMatcherIndices[156],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10147,7 +10243,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[970],
- /* return matcher indices */ &kMatcherIndices[148],
+ /* return matcher indices */ &kMatcherIndices[156],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10159,7 +10255,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[411],
- /* return matcher indices */ &kMatcherIndices[148],
+ /* return matcher indices */ &kMatcherIndices[156],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10171,7 +10267,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[597],
- /* return matcher indices */ &kMatcherIndices[148],
+ /* return matcher indices */ &kMatcherIndices[156],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10183,7 +10279,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[973],
- /* return matcher indices */ &kMatcherIndices[154],
+ /* return matcher indices */ &kMatcherIndices[162],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10195,7 +10291,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[974],
- /* return matcher indices */ &kMatcherIndices[150],
+ /* return matcher indices */ &kMatcherIndices[158],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10204,10 +10300,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[395],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10216,10 +10312,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[195],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10228,10 +10324,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[155],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10240,10 +10336,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[72],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10252,10 +10348,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[371],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10264,10 +10360,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[175],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10276,10 +10372,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[367],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10288,10 +10384,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[185],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10300,10 +10396,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[190],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10312,10 +10408,10 @@
/* num parameters */ 6,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[126],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10324,10 +10420,10 @@
/* num parameters */ 4,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[355],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10336,10 +10432,10 @@
/* num parameters */ 5,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[210],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10351,7 +10447,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[156],
+ /* return matcher indices */ &kMatcherIndices[164],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10363,7 +10459,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[976],
- /* return matcher indices */ &kMatcherIndices[156],
+ /* return matcher indices */ &kMatcherIndices[164],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10375,7 +10471,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[84],
- /* return matcher indices */ &kMatcherIndices[156],
+ /* return matcher indices */ &kMatcherIndices[164],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10387,7 +10483,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[595],
- /* return matcher indices */ &kMatcherIndices[156],
+ /* return matcher indices */ &kMatcherIndices[164],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10399,7 +10495,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[979],
- /* return matcher indices */ &kMatcherIndices[162],
+ /* return matcher indices */ &kMatcherIndices[170],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10411,7 +10507,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[980],
- /* return matcher indices */ &kMatcherIndices[160],
+ /* return matcher indices */ &kMatcherIndices[168],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10423,7 +10519,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[186],
+ /* return matcher indices */ &kMatcherIndices[194],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10435,7 +10531,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[987],
- /* return matcher indices */ &kMatcherIndices[186],
+ /* return matcher indices */ &kMatcherIndices[194],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10447,7 +10543,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[49],
- /* return matcher indices */ &kMatcherIndices[186],
+ /* return matcher indices */ &kMatcherIndices[194],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10459,7 +10555,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[415],
- /* return matcher indices */ &kMatcherIndices[186],
+ /* return matcher indices */ &kMatcherIndices[194],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10471,7 +10567,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[969],
- /* return matcher indices */ &kMatcherIndices[190],
+ /* return matcher indices */ &kMatcherIndices[198],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10483,7 +10579,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[954],
- /* return matcher indices */ &kMatcherIndices[188],
+ /* return matcher indices */ &kMatcherIndices[196],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10495,7 +10591,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[192],
+ /* return matcher indices */ &kMatcherIndices[200],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10507,7 +10603,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[943],
- /* return matcher indices */ &kMatcherIndices[192],
+ /* return matcher indices */ &kMatcherIndices[200],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10519,7 +10615,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[16],
- /* return matcher indices */ &kMatcherIndices[192],
+ /* return matcher indices */ &kMatcherIndices[200],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10531,7 +10627,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[391],
- /* return matcher indices */ &kMatcherIndices[192],
+ /* return matcher indices */ &kMatcherIndices[200],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10543,7 +10639,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[928],
- /* return matcher indices */ &kMatcherIndices[204],
+ /* return matcher indices */ &kMatcherIndices[212],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10555,7 +10651,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[925],
- /* return matcher indices */ &kMatcherIndices[202],
+ /* return matcher indices */ &kMatcherIndices[210],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10567,7 +10663,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[104],
+ /* return matcher indices */ &kMatcherIndices[112],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10579,7 +10675,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1000],
- /* return matcher indices */ &kMatcherIndices[104],
+ /* return matcher indices */ &kMatcherIndices[112],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10591,7 +10687,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[28],
- /* return matcher indices */ &kMatcherIndices[104],
+ /* return matcher indices */ &kMatcherIndices[112],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10603,7 +10699,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[468],
- /* return matcher indices */ &kMatcherIndices[104],
+ /* return matcher indices */ &kMatcherIndices[112],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10615,7 +10711,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[999],
- /* return matcher indices */ &kMatcherIndices[184],
+ /* return matcher indices */ &kMatcherIndices[192],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10627,7 +10723,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[993],
- /* return matcher indices */ &kMatcherIndices[182],
+ /* return matcher indices */ &kMatcherIndices[190],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10639,7 +10735,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[176],
+ /* return matcher indices */ &kMatcherIndices[184],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10651,7 +10747,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[994],
- /* return matcher indices */ &kMatcherIndices[176],
+ /* return matcher indices */ &kMatcherIndices[184],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10663,7 +10759,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[40],
- /* return matcher indices */ &kMatcherIndices[176],
+ /* return matcher indices */ &kMatcherIndices[184],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10675,7 +10771,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[582],
- /* return matcher indices */ &kMatcherIndices[176],
+ /* return matcher indices */ &kMatcherIndices[184],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10687,7 +10783,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[997],
- /* return matcher indices */ &kMatcherIndices[180],
+ /* return matcher indices */ &kMatcherIndices[188],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10699,7 +10795,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[998],
- /* return matcher indices */ &kMatcherIndices[178],
+ /* return matcher indices */ &kMatcherIndices[186],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10711,7 +10807,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[170],
+ /* return matcher indices */ &kMatcherIndices[178],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -10723,7 +10819,7 @@
/* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[988],
- /* return matcher indices */ &kMatcherIndices[170],
+ /* return matcher indices */ &kMatcherIndices[178],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -10735,7 +10831,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[114],
- /* return matcher indices */ &kMatcherIndices[170],
+ /* return matcher indices */ &kMatcherIndices[178],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorS,
},
@@ -10747,7 +10843,7 @@
/* template types */ &kTemplateTypes[11],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[579],
- /* return matcher indices */ &kMatcherIndices[170],
+ /* return matcher indices */ &kMatcherIndices[178],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::MatCtorV,
},
@@ -10759,7 +10855,7 @@
/* template types */ &kTemplateTypes[4],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[991],
- /* return matcher indices */ &kMatcherIndices[174],
+ /* return matcher indices */ &kMatcherIndices[182],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10771,7 +10867,7 @@
/* template types */ &kTemplateTypes[2],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[992],
- /* return matcher indices */ &kMatcherIndices[172],
+ /* return matcher indices */ &kMatcherIndices[180],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -10780,7 +10876,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[737],
/* return matcher indices */ &kMatcherIndices[1],
@@ -10792,10 +10888,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[735],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10804,10 +10900,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[733],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10816,19 +10912,19 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[731],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
{
/* [236] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[729],
/* return matcher indices */ &kMatcherIndices[11],
@@ -10843,7 +10939,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[885],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10855,7 +10951,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[884],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10864,10 +10960,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[883],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10876,10 +10972,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[882],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10888,10 +10984,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[3],
/* parameters */ &kParameters[881],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10900,7 +10996,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[749],
/* return matcher indices */ &kMatcherIndices[1],
@@ -10912,10 +11008,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[747],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10924,10 +11020,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[745],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10936,19 +11032,19 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[743],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
{
/* [246] */
/* num parameters */ 2,
- /* num template types */ 0,
+ /* num template types */ 1,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[12],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[741],
/* return matcher indices */ &kMatcherIndices[11],
@@ -10960,7 +11056,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[701],
/* return matcher indices */ &kMatcherIndices[1],
@@ -10972,10 +11068,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[699],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10984,10 +11080,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[695],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -10996,10 +11092,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[693],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11008,7 +11104,7 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[687],
/* return matcher indices */ &kMatcherIndices[17],
@@ -11020,10 +11116,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[685],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11047,7 +11143,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[681],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11056,7 +11152,7 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[679],
/* return matcher indices */ &kMatcherIndices[17],
@@ -11068,10 +11164,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[677],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11095,7 +11191,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[673],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11104,7 +11200,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[709],
/* return matcher indices */ &kMatcherIndices[1],
@@ -11116,10 +11212,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[707],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11128,10 +11224,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[705],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11140,10 +11236,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[781],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11152,10 +11248,10 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -11164,10 +11260,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[920],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -11179,7 +11275,7 @@
/* template types */ &kTemplateTypes[21],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[921],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -11188,7 +11284,7 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
/* return matcher indices */ &kMatcherIndices[17],
@@ -11200,7 +11296,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[932],
/* return matcher indices */ &kMatcherIndices[17],
@@ -11224,10 +11320,10 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[51],
+ /* return matcher indices */ &kMatcherIndices[59],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -11236,10 +11332,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[929],
- /* return matcher indices */ &kMatcherIndices[51],
+ /* return matcher indices */ &kMatcherIndices[59],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -11251,7 +11347,7 @@
/* template types */ &kTemplateTypes[18],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[930],
- /* return matcher indices */ &kMatcherIndices[51],
+ /* return matcher indices */ &kMatcherIndices[59],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -11260,10 +11356,10 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -11272,10 +11368,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[926],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -11287,7 +11383,7 @@
/* template types */ &kTemplateTypes[19],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[927],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -11311,7 +11407,7 @@
/* template types */ &kTemplateTypes[18],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[543],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11323,7 +11419,7 @@
/* template types */ &kTemplateTypes[18],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[546],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11332,10 +11428,10 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Zero,
},
@@ -11344,10 +11440,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[923],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsConstructor, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Identity,
},
@@ -11359,7 +11455,7 @@
/* template types */ &kTemplateTypes[20],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[924],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsConverter, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::Conv,
},
@@ -11368,10 +11464,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[477],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11380,10 +11476,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[480],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11392,10 +11488,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[483],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11404,7 +11500,7 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[23],
+ /* template types */ &kTemplateTypes[24],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[860],
/* return matcher indices */ &kMatcherIndices[1],
@@ -11416,10 +11512,10 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[23],
+ /* template types */ &kTemplateTypes[24],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[861],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ &ConstEval::OpComplement,
},
@@ -11428,10 +11524,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[798],
- /* return matcher indices */ &kMatcherIndices[225],
+ /* return matcher indices */ &kMatcherIndices[233],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11440,10 +11536,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[810],
- /* return matcher indices */ &kMatcherIndices[158],
+ /* return matcher indices */ &kMatcherIndices[166],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11452,10 +11548,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[822],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11464,10 +11560,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[823],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11476,10 +11572,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[800],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11488,10 +11584,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[799],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11500,10 +11596,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[826],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11512,10 +11608,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[830],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11539,7 +11635,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[427],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11548,10 +11644,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[846],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11560,10 +11656,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[848],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11572,10 +11668,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[779],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11584,10 +11680,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[777],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11596,10 +11692,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[849],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11608,10 +11704,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[850],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11620,10 +11716,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[851],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11632,10 +11728,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[852],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11644,10 +11740,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[853],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11656,10 +11752,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[854],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11683,7 +11779,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[761],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11707,7 +11803,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[757],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11716,10 +11812,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[450],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11728,10 +11824,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[447],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11740,10 +11836,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[855],
- /* return matcher indices */ &kMatcherIndices[224],
+ /* return matcher indices */ &kMatcherIndices[232],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11752,10 +11848,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[856],
- /* return matcher indices */ &kMatcherIndices[122],
+ /* return matcher indices */ &kMatcherIndices[130],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11764,10 +11860,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[802],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11776,10 +11872,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[801],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11788,10 +11884,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[824],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11800,10 +11896,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[825],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11827,7 +11923,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[805],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11851,7 +11947,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[456],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11860,10 +11956,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[808],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11872,10 +11968,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[807],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11884,10 +11980,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[886],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11896,10 +11992,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[809],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11908,10 +12004,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[739],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11920,10 +12016,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[703],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11932,10 +12028,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[887],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11944,10 +12040,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[888],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -11956,10 +12052,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[811],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11968,10 +12064,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[1001],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11980,10 +12076,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[813],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -11992,10 +12088,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[812],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12019,7 +12115,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[890],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12028,10 +12124,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[891],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12040,10 +12136,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[892],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12052,10 +12148,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[815],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12064,10 +12160,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[814],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12076,10 +12172,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[893],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12088,10 +12184,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[894],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12100,10 +12196,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[895],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12112,10 +12208,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[896],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12124,10 +12220,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[897],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12136,10 +12232,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[898],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12148,10 +12244,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[567],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12160,10 +12256,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[570],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12172,10 +12268,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[899],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12184,10 +12280,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[900],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12196,10 +12292,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[671],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12208,10 +12304,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[669],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12235,7 +12331,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[803],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12244,10 +12340,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[919],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12256,10 +12352,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[797],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12268,10 +12364,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[984],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12280,10 +12376,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[978],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12292,10 +12388,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[817],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12304,10 +12400,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[816],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12316,10 +12412,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[964],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12328,10 +12424,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[963],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12340,10 +12436,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[819],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12352,10 +12448,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[818],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12379,7 +12475,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[615],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12388,10 +12484,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[821],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12400,10 +12496,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[820],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline),
/* const eval */ nullptr,
},
@@ -12412,7 +12508,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[635],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12424,10 +12520,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[631],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12436,7 +12532,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[641],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12448,10 +12544,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[639],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12460,7 +12556,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[649],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12472,10 +12568,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[645],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12484,10 +12580,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[787],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12496,10 +12592,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[789],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12508,10 +12604,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[829],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12520,10 +12616,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[828],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12547,7 +12643,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[996],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12571,7 +12667,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[831],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12595,7 +12691,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[833],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12607,7 +12703,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[870],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12616,10 +12712,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[869],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12643,7 +12739,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[836],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12652,7 +12748,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[657],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12664,10 +12760,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[13],
+ /* template types */ &kTemplateTypes[22],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[653],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12676,10 +12772,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[839],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12688,10 +12784,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[838],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12700,10 +12796,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[841],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12712,10 +12808,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[840],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12739,7 +12835,7 @@
/* template types */ &kTemplateTypes[13],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[534],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12748,10 +12844,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[843],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12760,10 +12856,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[842],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12772,10 +12868,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[845],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12784,10 +12880,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[844],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12796,10 +12892,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[613],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12808,10 +12904,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[751],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12820,7 +12916,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[659],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12832,10 +12928,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[599],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12844,7 +12940,7 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[663],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12856,10 +12952,10 @@
/* num parameters */ 2,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[16],
+ /* template types */ &kTemplateTypes[15],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[661],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12868,10 +12964,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[934],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12880,10 +12976,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[931],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12892,10 +12988,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[957],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12904,10 +13000,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[946],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12931,7 +13027,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[689],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12940,10 +13036,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[959],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12952,10 +13048,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[958],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -12964,7 +13060,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[975],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12976,7 +13072,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[971],
/* return matcher indices */ &kMatcherIndices[17],
@@ -12988,7 +13084,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[981],
/* return matcher indices */ &kMatcherIndices[17],
@@ -13000,7 +13096,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[977],
/* return matcher indices */ &kMatcherIndices[17],
@@ -13012,10 +13108,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[989],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13024,10 +13120,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[983],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13036,10 +13132,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[995],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13048,10 +13144,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[990],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13060,7 +13156,7 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[22],
+ /* template types */ &kTemplateTypes[23],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[862],
/* return matcher indices */ &kMatcherIndices[1],
@@ -13072,10 +13168,10 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[22],
+ /* template types */ &kTemplateTypes[23],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[863],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13084,7 +13180,7 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[858],
/* return matcher indices */ &kMatcherIndices[17],
@@ -13096,10 +13192,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[859],
- /* return matcher indices */ &kMatcherIndices[45],
+ /* return matcher indices */ &kMatcherIndices[53],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13123,7 +13219,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[623],
- /* return matcher indices */ &kMatcherIndices[31],
+ /* return matcher indices */ &kMatcherIndices[39],
/* flags */ OverloadFlags(OverloadFlag::kIsOperator, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13135,7 +13231,7 @@
/* template types */ &kTemplateTypes[10],
/* template numbers */ &kTemplateNumbers[9],
/* parameters */ &kParameters[561],
- /* return matcher indices */ &kMatcherIndices[194],
+ /* return matcher indices */ &kMatcherIndices[202],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13240,7 +13336,7 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[667],
/* return matcher indices */ &kMatcherIndices[17],
@@ -13252,7 +13348,7 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[665],
/* return matcher indices */ &kMatcherIndices[17],
@@ -13288,7 +13384,7 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
/* return matcher indices */ nullptr,
@@ -13300,7 +13396,7 @@
/* num parameters */ 0,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[1004],
/* return matcher indices */ nullptr,
@@ -13312,10 +13408,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[937],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13324,10 +13420,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[947],
- /* return matcher indices */ &kMatcherIndices[112],
+ /* return matcher indices */ &kMatcherIndices[120],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13336,10 +13432,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[948],
- /* return matcher indices */ &kMatcherIndices[120],
+ /* return matcher indices */ &kMatcherIndices[128],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13348,10 +13444,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[961],
- /* return matcher indices */ &kMatcherIndices[120],
+ /* return matcher indices */ &kMatcherIndices[128],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13360,10 +13456,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[962],
- /* return matcher indices */ &kMatcherIndices[120],
+ /* return matcher indices */ &kMatcherIndices[128],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13372,10 +13468,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 2,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[5],
/* parameters */ &kParameters[972],
- /* return matcher indices */ &kMatcherIndices[19],
+ /* return matcher indices */ &kMatcherIndices[27],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13384,10 +13480,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[525],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13396,10 +13492,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[697],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13408,10 +13504,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[868],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13420,10 +13516,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[867],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13432,10 +13528,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[866],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13444,10 +13540,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[865],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13456,10 +13552,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[857],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13468,10 +13564,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[785],
- /* return matcher indices */ &kMatcherIndices[43],
+ /* return matcher indices */ &kMatcherIndices[51],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13480,10 +13576,10 @@
/* num parameters */ 3,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[453],
- /* return matcher indices */ &kMatcherIndices[34],
+ /* return matcher indices */ &kMatcherIndices[42],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13492,10 +13588,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[795],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13504,10 +13600,10 @@
/* num parameters */ 2,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[793],
- /* return matcher indices */ &kMatcherIndices[38],
+ /* return matcher indices */ &kMatcherIndices[46],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13528,10 +13624,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[6],
/* parameters */ &kParameters[827],
- /* return matcher indices */ &kMatcherIndices[14],
+ /* return matcher indices */ &kMatcherIndices[30],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13540,10 +13636,10 @@
/* num parameters */ 1,
/* num template types */ 1,
/* num template numbers */ 1,
- /* template types */ &kTemplateTypes[15],
+ /* template types */ &kTemplateTypes[16],
/* template numbers */ &kTemplateNumbers[8],
/* parameters */ &kParameters[960],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -13552,10 +13648,10 @@
/* num parameters */ 1,
/* num template types */ 0,
/* num template numbers */ 0,
- /* template types */ &kTemplateTypes[24],
+ /* template types */ &kTemplateTypes[25],
/* template numbers */ &kTemplateNumbers[10],
/* parameters */ &kParameters[864],
- /* return matcher indices */ &kMatcherIndices[66],
+ /* return matcher indices */ &kMatcherIndices[74],
/* flags */ OverloadFlags(OverloadFlag::kIsBuiltin, OverloadFlag::kSupportsVertexPipeline, OverloadFlag::kSupportsFragmentPipeline, OverloadFlag::kSupportsComputePipeline),
/* const eval */ nullptr,
},
@@ -14425,8 +14521,8 @@
},
{
/* [2] */
- /* op -<T : fi32>(T) -> T */
- /* op -<T : fi32, N : num>(vec<N, T>) -> vec<N, T> */
+ /* op -<T : fi32f16>(T) -> T */
+ /* op -<T : fi32f16, N : num>(vec<N, T>) -> vec<N, T> */
/* num overloads */ 2,
/* overloads */ &kOverloads[422],
},
@@ -14438,53 +14534,53 @@
constexpr IntrinsicInfo kBinaryOperators[] = {
{
/* [0] */
- /* op +<T : fiu32>(T, T) -> T */
- /* op +<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op +<T : fiu32, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op +<T : fiu32, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op +<N : num, M : num>(mat<N, M, f32>, mat<N, M, f32>) -> mat<N, M, f32> */
+ /* op +<T : fiu32f16>(T, T) -> T */
+ /* op +<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op +<T : fiu32f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op +<T : fiu32f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op +<T : f32f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
/* num overloads */ 5,
/* overloads */ &kOverloads[242],
},
{
/* [1] */
- /* op -<T : fiu32>(T, T) -> T */
- /* op -<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op -<T : fiu32, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op -<T : fiu32, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op -<N : num, M : num>(mat<N, M, f32>, mat<N, M, f32>) -> mat<N, M, f32> */
+ /* op -<T : fiu32f16>(T, T) -> T */
+ /* op -<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op -<T : fiu32f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op -<T : fiu32f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op -<T : f32f16, N : num, M : num>(mat<N, M, T>, mat<N, M, T>) -> mat<N, M, T> */
/* num overloads */ 5,
/* overloads */ &kOverloads[232],
},
{
/* [2] */
- /* op *<T : fiu32>(T, T) -> T */
- /* op *<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op *<T : fiu32, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op *<T : fiu32, N : num>(T, vec<N, T>) -> vec<N, T> */
- /* op *<N : num, M : num>(f32, mat<N, M, f32>) -> mat<N, M, f32> */
- /* op *<N : num, M : num>(mat<N, M, f32>, f32) -> mat<N, M, f32> */
- /* op *<C : num, R : num>(mat<C, R, f32>, vec<C, f32>) -> vec<R, f32> */
- /* op *<C : num, R : num>(vec<R, f32>, mat<C, R, f32>) -> vec<C, f32> */
- /* op *<K : num, C : num, R : num>(mat<K, R, f32>, mat<C, K, f32>) -> mat<C, R, f32> */
+ /* op *<T : fiu32f16>(T, T) -> T */
+ /* op *<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op *<T : fiu32f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op *<T : fiu32f16, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op *<T : f32f16, N : num, M : num>(T, mat<N, M, T>) -> mat<N, M, T> */
+ /* op *<T : f32f16, N : num, M : num>(mat<N, M, T>, T) -> mat<N, M, T> */
+ /* op *<T : f32f16, C : num, R : num>(mat<C, R, T>, vec<C, T>) -> vec<R, T> */
+ /* op *<T : f32f16, C : num, R : num>(vec<R, T>, mat<C, R, T>) -> vec<C, T> */
+ /* op *<T : f32f16, K : num, C : num, R : num>(mat<K, R, T>, mat<C, K, T>) -> mat<C, R, T> */
/* num overloads */ 9,
/* overloads */ &kOverloads[117],
},
{
/* [3] */
- /* op /<T : fiu32>(T, T) -> T */
- /* op /<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op /<T : fiu32, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op /<T : fiu32, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op /<T : fiu32f16>(T, T) -> T */
+ /* op /<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op /<T : fiu32f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op /<T : fiu32f16, N : num>(T, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
/* overloads */ &kOverloads[259],
},
{
/* [4] */
- /* op %<T : fiu32>(T, T) -> T */
- /* op %<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
- /* op %<T : fiu32, N : num>(vec<N, T>, T) -> vec<N, T> */
- /* op %<T : fiu32, N : num>(T, vec<N, T>) -> vec<N, T> */
+ /* op %<T : fiu32f16>(T, T) -> T */
+ /* op %<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, T> */
+ /* op %<T : fiu32f16, N : num>(vec<N, T>, T) -> vec<N, T> */
+ /* op %<T : fiu32f16, N : num>(T, vec<N, T>) -> vec<N, T> */
/* num overloads */ 4,
/* overloads */ &kOverloads[247],
},
@@ -14541,29 +14637,29 @@
},
{
/* [12] */
- /* op <<T : fiu32>(T, T) -> bool */
- /* op <<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op <<T : fiu32f16>(T, T) -> bool */
+ /* op <<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[388],
},
{
/* [13] */
- /* op ><T : fiu32>(T, T) -> bool */
- /* op ><T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op ><T : fiu32f16>(T, T) -> bool */
+ /* op ><T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[372],
},
{
/* [14] */
- /* op <=<T : fiu32>(T, T) -> bool */
- /* op <=<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op <=<T : fiu32f16>(T, T) -> bool */
+ /* op <=<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[370],
},
{
/* [15] */
- /* op >=<T : fiu32>(T, T) -> bool */
- /* op >=<T : fiu32, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
+ /* op >=<T : fiu32f16>(T, T) -> bool */
+ /* op >=<T : fiu32f16, N : num>(vec<N, T>, vec<N, T>) -> vec<N, bool> */
/* num overloads */ 2,
/* overloads */ &kOverloads[368],
},
diff --git a/src/tint/resolver/intrinsic_table_test.cc b/src/tint/resolver/intrinsic_table_test.cc
index c9d9836..30d7909 100644
--- a/src/tint/resolver/intrinsic_table_test.cc
+++ b/src/tint/resolver/intrinsic_table_test.cc
@@ -604,8 +604,8 @@
EXPECT_EQ(Diagnostics().str(), R"(12:34 error: no matching overload for operator - (bool)
2 candidate operators:
- operator - (T) -> T where: T is f32 or i32
- operator - (vecN<T>) -> vecN<T> where: T is f32 or i32
+ operator - (T) -> T where: T is f32, f16 or i32
+ operator - (vecN<T>) -> vecN<T> where: T is f32, f16 or i32
)");
}
@@ -629,15 +629,15 @@
EXPECT_EQ(Diagnostics().str(), R"(12:34 error: no matching overload for operator * (f32, bool)
9 candidate operators:
- operator * (T, T) -> T where: T is f32, i32 or u32
- operator * (vecN<T>, T) -> vecN<T> where: T is f32, i32 or u32
- operator * (T, vecN<T>) -> vecN<T> where: T is f32, i32 or u32
- operator * (f32, matNxM<f32>) -> matNxM<f32>
- operator * (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, i32 or u32
- operator * (matNxM<f32>, f32) -> matNxM<f32>
- operator * (matCxR<f32>, vecC<f32>) -> vecR<f32>
- operator * (vecR<f32>, matCxR<f32>) -> vecC<f32>
- operator * (matKxR<f32>, matCxK<f32>) -> matCxR<f32>
+ operator * (T, T) -> T where: T is f32, f16, i32 or u32
+ operator * (vecN<T>, T) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator * (T, vecN<T>) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator * (T, matNxM<T>) -> matNxM<T> where: T is f32 or f16
+ operator * (matNxM<T>, T) -> matNxM<T> where: T is f32 or f16
+ operator * (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator * (matCxR<T>, vecC<T>) -> vecR<T> where: T is f32 or f16
+ operator * (vecR<T>, matCxR<T>) -> vecC<T> where: T is f32 or f16
+ operator * (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is f32 or f16
)");
}
@@ -661,15 +661,15 @@
EXPECT_EQ(Diagnostics().str(), R"(12:34 error: no matching overload for operator *= (f32, bool)
9 candidate operators:
- operator *= (T, T) -> T where: T is f32, i32 or u32
- operator *= (vecN<T>, T) -> vecN<T> where: T is f32, i32 or u32
- operator *= (T, vecN<T>) -> vecN<T> where: T is f32, i32 or u32
- operator *= (f32, matNxM<f32>) -> matNxM<f32>
- operator *= (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, i32 or u32
- operator *= (matNxM<f32>, f32) -> matNxM<f32>
- operator *= (matCxR<f32>, vecC<f32>) -> vecR<f32>
- operator *= (vecR<f32>, matCxR<f32>) -> vecC<f32>
- operator *= (matKxR<f32>, matCxK<f32>) -> matCxR<f32>
+ operator *= (T, T) -> T where: T is f32, f16, i32 or u32
+ operator *= (vecN<T>, T) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator *= (T, vecN<T>) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator *= (T, matNxM<T>) -> matNxM<T> where: T is f32 or f16
+ operator *= (matNxM<T>, T) -> matNxM<T> where: T is f32 or f16
+ operator *= (vecN<T>, vecN<T>) -> vecN<T> where: T is f32, f16, i32 or u32
+ operator *= (matCxR<T>, vecC<T>) -> vecR<T> where: T is f32 or f16
+ operator *= (vecR<T>, matCxR<T>) -> vecC<T> where: T is f32 or f16
+ operator *= (matKxR<T>, matCxK<T>) -> matCxR<T> where: T is f32 or f16
)");
}
diff --git a/src/tint/resolver/resolver.cc b/src/tint/resolver/resolver.cc
index 4c49cd1..611f240 100644
--- a/src/tint/resolver/resolver.cc
+++ b/src/tint/resolver/resolver.cc
@@ -103,6 +103,8 @@
return false;
}
+ builder_->Sem().Reserve(builder_->LastAllocatedNodeID());
+
if (!DependencyGraph::Build(builder_->AST(), builder_->Symbols(), builder_->Diagnostics(),
dependencies_)) {
return false;
diff --git a/src/tint/resolver/validation_test.cc b/src/tint/resolver/validation_test.cc
index 20cf1ea..24f420b 100644
--- a/src/tint/resolver/validation_test.cc
+++ b/src/tint/resolver/validation_test.cc
@@ -50,13 +50,13 @@
class FakeStmt final : public Castable<FakeStmt, ast::Statement> {
public:
- FakeStmt(ProgramID pid, Source src) : Base(pid, src) {}
+ FakeStmt(ProgramID pid, ast::NodeID nid, Source src) : Base(pid, nid, src) {}
FakeStmt* Clone(CloneContext*) const override { return nullptr; }
};
class FakeExpr final : public Castable<FakeExpr, ast::Expression> {
public:
- FakeExpr(ProgramID pid, Source src) : Base(pid, src) {}
+ FakeExpr(ProgramID pid, ast::NodeID nid, Source src) : Base(pid, nid, src) {}
FakeExpr* Clone(CloneContext*) const override { return nullptr; }
};
diff --git a/src/tint/sem/info.h b/src/tint/sem/info.h
index d9fb7b2..894b408 100644
--- a/src/tint/sem/info.h
+++ b/src/tint/sem/info.h
@@ -15,9 +15,12 @@
#ifndef SRC_TINT_SEM_INFO_H_
#define SRC_TINT_SEM_INFO_H_
+#include <algorithm>
#include <type_traits>
#include <unordered_map>
+#include <vector>
+#include "src/tint/ast/node.h"
#include "src/tint/debug.h"
#include "src/tint/sem/node.h"
#include "src/tint/sem/type_mappings.h"
@@ -35,7 +38,7 @@
/// Placeholder type used by Get() to provide a default value for EXPLICIT_SEM
using InferFromAST = std::nullptr_t;
- /// Resolves to the return type of the Get() method given the desired sementic
+ /// Resolves to the return type of the Get() method given the desired semantic
/// type and AST type.
template <typename SEM, typename AST>
using GetResultType =
@@ -55,36 +58,42 @@
/// @return this Program
Info& operator=(Info&& rhs);
- /// Get looks up the semantic information for the AST node `node`.
+ /// @param highest_node_id the last allocated (numerically highest) AST node identifier.
+ void Reserve(ast::NodeID highest_node_id) {
+ nodes_.resize(std::max(highest_node_id.value + 1, nodes_.size()));
+ }
+
+ /// Get looks up the semantic information for the AST node `ast_node`.
/// @param ast_node the AST node
/// @returns a pointer to the semantic node if found, otherwise nullptr
template <typename SEM = InferFromAST,
typename AST = CastableBase,
typename RESULT = GetResultType<SEM, AST>>
const RESULT* Get(const AST* ast_node) const {
- auto it = map_.find(ast_node);
- if (it == map_.end()) {
- return nullptr;
+ if (ast_node && ast_node->node_id.value < nodes_.size()) {
+ return As<RESULT>(nodes_[ast_node->node_id.value]);
}
- return As<RESULT>(it->second);
+ return nullptr;
}
- /// Add registers the semantic node `sem_node` for the AST node `node`.
+ /// Add registers the semantic node `sem_node` for the AST node `ast_node`.
/// @param ast_node the AST node
/// @param sem_node the semantic node
template <typename AST>
void Add(const AST* ast_node, const SemanticNodeTypeFor<AST>* sem_node) {
- // Check there's no semantic info already existing for the node
- TINT_ASSERT(Semantic, Get(ast_node) == nullptr);
- map_.emplace(ast_node, sem_node);
+ Reserve(ast_node->node_id);
+ // Check there's no semantic info already existing for the AST node
+ TINT_ASSERT(Semantic, nodes_[ast_node->node_id.value] == nullptr);
+ nodes_[ast_node->node_id.value] = sem_node;
}
- /// Replace replaces any existing semantic node `sem_node` for the AST node `node`.
+ /// Replace replaces any existing semantic node `sem_node` for the AST node `ast_node`.
/// @param ast_node the AST node
/// @param sem_node the new semantic node
template <typename AST>
void Replace(const AST* ast_node, const SemanticNodeTypeFor<AST>* sem_node) {
- map_[ast_node] = sem_node;
+ Reserve(ast_node->node_id);
+ nodes_[ast_node->node_id.value] = sem_node;
}
/// Wrap returns a new Info created with the contents of `inner`.
@@ -96,7 +105,7 @@
/// @return the Info that wraps `inner`
static Info Wrap(const Info& inner) {
Info out;
- out.map_ = inner.map_;
+ out.nodes_ = inner.nodes_;
out.module_ = inner.module_;
return out;
}
@@ -109,8 +118,8 @@
const sem::Module* Module() const { return module_; }
private:
- // The map of AST node to semantic node
- std::unordered_map<const ast::Node*, const sem::Node*> map_;
+ // AST node index to semantic node
+ std::vector<const sem::Node*> nodes_;
// The semantic module
sem::Module* module_ = nullptr;
};
diff --git a/src/tint/symbol.cc b/src/tint/symbol.cc
index 0965697..925ab5b 100644
--- a/src/tint/symbol.cc
+++ b/src/tint/symbol.cc
@@ -23,7 +23,7 @@
Symbol::Symbol(uint32_t val, tint::ProgramID program_id) : val_(val), program_id_(program_id) {}
#if TINT_SYMBOL_STORE_DEBUG_NAME
-Symbol::Symbol(uint32_t val, tint::ProgramID program_id, std::string debug_name)
+Symbol::Symbol(uint32_t val, tint::ProgramID pid, NodeID nid, std::string debug_name)
: val_(val), program_id_(program_id), debug_name_(std::move(debug_name)) {}
#endif
diff --git a/src/tint/symbol.h b/src/tint/symbol.h
index 1cbc6b2..512deba 100644
--- a/src/tint/symbol.h
+++ b/src/tint/symbol.h
@@ -43,7 +43,7 @@
/// @param val the symbol value
/// @param program_id the identifier of the program that owns this Symbol
/// @param debug_name name of symbols used only for debugging
- Symbol(uint32_t val, tint::ProgramID program_id, std::string debug_name);
+ Symbol(uint32_t val, tint::ProgramID pid, NodeID nid, std::string debug_name);
#endif
/// Copy constructor
/// @param o the symbol to copy
diff --git a/src/tint/transform/add_spirv_block_attribute.cc b/src/tint/transform/add_spirv_block_attribute.cc
index a62f9c7..85c20c3 100644
--- a/src/tint/transform/add_spirv_block_attribute.cc
+++ b/src/tint/transform/add_spirv_block_attribute.cc
@@ -70,7 +70,8 @@
// This is a non-struct or a struct that is nested somewhere else, so we
// need to wrap it first.
auto* wrapper = utils::GetOrCreate(wrapper_structs, ty, [&]() {
- auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(ctx.dst->ID());
+ auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(
+ ctx.dst->ID(), ctx.dst->AllocateNodeID());
auto wrapper_name = ctx.src->Symbols().NameFor(var->symbol) + "_block";
auto* ret = ctx.dst->create<ast::Struct>(
ctx.dst->Symbols().New(wrapper_name),
@@ -89,7 +90,8 @@
}
} else {
// Add a block attribute to this struct directly.
- auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(ctx.dst->ID());
+ auto* block = ctx.dst->ASTNodes().Create<SpirvBlockAttribute>(
+ ctx.dst->ID(), ctx.dst->AllocateNodeID());
ctx.InsertFront(str->Declaration()->attributes, block);
}
}
@@ -97,7 +99,8 @@
ctx.Clone();
}
-AddSpirvBlockAttribute::SpirvBlockAttribute::SpirvBlockAttribute(ProgramID pid) : Base(pid) {}
+AddSpirvBlockAttribute::SpirvBlockAttribute::SpirvBlockAttribute(ProgramID pid, ast::NodeID nid)
+ : Base(pid, nid) {}
AddSpirvBlockAttribute::SpirvBlockAttribute::~SpirvBlockAttribute() = default;
std::string AddSpirvBlockAttribute::SpirvBlockAttribute::InternalName() const {
return "spirv_block";
@@ -105,7 +108,8 @@
const AddSpirvBlockAttribute::SpirvBlockAttribute*
AddSpirvBlockAttribute::SpirvBlockAttribute::Clone(CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<AddSpirvBlockAttribute::SpirvBlockAttribute>(ctx->dst->ID());
+ return ctx->dst->ASTNodes().Create<AddSpirvBlockAttribute::SpirvBlockAttribute>(
+ ctx->dst->ID(), ctx->dst->AllocateNodeID());
}
} // namespace tint::transform
diff --git a/src/tint/transform/add_spirv_block_attribute.h b/src/tint/transform/add_spirv_block_attribute.h
index 67faaa5..51409c8 100644
--- a/src/tint/transform/add_spirv_block_attribute.h
+++ b/src/tint/transform/add_spirv_block_attribute.h
@@ -35,7 +35,8 @@
public:
/// Constructor
/// @param program_id the identifier of the program that owns this node
- explicit SpirvBlockAttribute(ProgramID program_id);
+ /// @param nid the unique node identifier
+ SpirvBlockAttribute(ProgramID program_id, ast::NodeID nid);
/// Destructor
~SpirvBlockAttribute() override;
diff --git a/src/tint/transform/calculate_array_length.cc b/src/tint/transform/calculate_array_length.cc
index acf55a6..cfeaca8 100644
--- a/src/tint/transform/calculate_array_length.cc
+++ b/src/tint/transform/calculate_array_length.cc
@@ -57,7 +57,8 @@
} // namespace
-CalculateArrayLength::BufferSizeIntrinsic::BufferSizeIntrinsic(ProgramID pid) : Base(pid) {}
+CalculateArrayLength::BufferSizeIntrinsic::BufferSizeIntrinsic(ProgramID pid, ast::NodeID nid)
+ : Base(pid, nid) {}
CalculateArrayLength::BufferSizeIntrinsic::~BufferSizeIntrinsic() = default;
std::string CalculateArrayLength::BufferSizeIntrinsic::InternalName() const {
return "intrinsic_buffer_size";
@@ -65,7 +66,8 @@
const CalculateArrayLength::BufferSizeIntrinsic* CalculateArrayLength::BufferSizeIntrinsic::Clone(
CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<CalculateArrayLength::BufferSizeIntrinsic>(ctx->dst->ID());
+ return ctx->dst->ASTNodes().Create<CalculateArrayLength::BufferSizeIntrinsic>(
+ ctx->dst->ID(), ctx->dst->AllocateNodeID());
}
CalculateArrayLength::CalculateArrayLength() = default;
@@ -109,7 +111,8 @@
},
ctx.dst->ty.void_(), nullptr,
ast::AttributeList{
- ctx.dst->ASTNodes().Create<BufferSizeIntrinsic>(ctx.dst->ID()),
+ ctx.dst->ASTNodes().Create<BufferSizeIntrinsic>(ctx.dst->ID(),
+ ctx.dst->AllocateNodeID()),
},
ast::AttributeList{}));
diff --git a/src/tint/transform/calculate_array_length.h b/src/tint/transform/calculate_array_length.h
index 401e081..8db8dcc 100644
--- a/src/tint/transform/calculate_array_length.h
+++ b/src/tint/transform/calculate_array_length.h
@@ -40,7 +40,8 @@
public:
/// Constructor
/// @param program_id the identifier of the program that owns this node
- explicit BufferSizeIntrinsic(ProgramID program_id);
+ /// @param nid the unique node identifier
+ BufferSizeIntrinsic(ProgramID program_id, ast::NodeID nid);
/// Destructor
~BufferSizeIntrinsic() override;
diff --git a/src/tint/transform/decompose_memory_access.cc b/src/tint/transform/decompose_memory_access.cc
index 48dae27..c3d5c8e 100644
--- a/src/tint/transform/decompose_memory_access.cc
+++ b/src/tint/transform/decompose_memory_access.cc
@@ -202,7 +202,8 @@
return nullptr;
}
return builder->ASTNodes().Create<DecomposeMemoryAccess::Intrinsic>(
- builder->ID(), DecomposeMemoryAccess::Intrinsic::Op::kLoad, storage_class, type);
+ builder->ID(), builder->AllocateNodeID(), DecomposeMemoryAccess::Intrinsic::Op::kLoad,
+ storage_class, type);
}
/// @returns a DecomposeMemoryAccess::Intrinsic attribute that can be applied
@@ -215,7 +216,8 @@
return nullptr;
}
return builder->ASTNodes().Create<DecomposeMemoryAccess::Intrinsic>(
- builder->ID(), DecomposeMemoryAccess::Intrinsic::Op::kStore, storage_class, type);
+ builder->ID(), builder->AllocateNodeID(), DecomposeMemoryAccess::Intrinsic::Op::kStore,
+ storage_class, type);
}
/// @returns a DecomposeMemoryAccess::Intrinsic attribute that can be applied
@@ -270,7 +272,7 @@
return nullptr;
}
return builder->ASTNodes().Create<DecomposeMemoryAccess::Intrinsic>(
- builder->ID(), op, ast::StorageClass::kStorage, type);
+ builder->ID(), builder->AllocateNodeID(), op, ast::StorageClass::kStorage, type);
}
/// BufferAccess describes a single storage or uniform buffer access
@@ -681,8 +683,12 @@
}
};
-DecomposeMemoryAccess::Intrinsic::Intrinsic(ProgramID pid, Op o, ast::StorageClass sc, DataType ty)
- : Base(pid), op(o), storage_class(sc), type(ty) {}
+DecomposeMemoryAccess::Intrinsic::Intrinsic(ProgramID pid,
+ ast::NodeID nid,
+ Op o,
+ ast::StorageClass sc,
+ DataType ty)
+ : Base(pid, nid), op(o), storage_class(sc), type(ty) {}
DecomposeMemoryAccess::Intrinsic::~Intrinsic() = default;
std::string DecomposeMemoryAccess::Intrinsic::InternalName() const {
std::stringstream ss;
@@ -771,8 +777,8 @@
const DecomposeMemoryAccess::Intrinsic* DecomposeMemoryAccess::Intrinsic::Clone(
CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<DecomposeMemoryAccess::Intrinsic>(ctx->dst->ID(), op,
- storage_class, type);
+ return ctx->dst->ASTNodes().Create<DecomposeMemoryAccess::Intrinsic>(
+ ctx->dst->ID(), ctx->dst->AllocateNodeID(), op, storage_class, type);
}
bool DecomposeMemoryAccess::Intrinsic::IsAtomic() const {
diff --git a/src/tint/transform/decompose_memory_access.h b/src/tint/transform/decompose_memory_access.h
index 76cb23e..1d95dc4 100644
--- a/src/tint/transform/decompose_memory_access.h
+++ b/src/tint/transform/decompose_memory_access.h
@@ -72,11 +72,12 @@
};
/// Constructor
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param o the op of the intrinsic
/// @param sc the storage class of the buffer
/// @param ty the data type of the intrinsic
- Intrinsic(ProgramID program_id, Op o, ast::StorageClass sc, DataType ty);
+ Intrinsic(ProgramID pid, ast::NodeID nid, Op o, ast::StorageClass sc, DataType ty);
/// Destructor
~Intrinsic() override;
diff --git a/src/tint/transform/spirv_atomic.cc b/src/tint/transform/spirv_atomic.cc
index dc5b35c..0cdd4a3 100644
--- a/src/tint/transform/spirv_atomic.cc
+++ b/src/tint/transform/spirv_atomic.cc
@@ -273,14 +273,16 @@
SpirvAtomic::SpirvAtomic() = default;
SpirvAtomic::~SpirvAtomic() = default;
-SpirvAtomic::Stub::Stub(ProgramID pid, sem::BuiltinType b) : Base(pid), builtin(b) {}
+SpirvAtomic::Stub::Stub(ProgramID pid, ast::NodeID nid, sem::BuiltinType b)
+ : Base(pid, nid), builtin(b) {}
SpirvAtomic::Stub::~Stub() = default;
std::string SpirvAtomic::Stub::InternalName() const {
return "@internal(spirv-atomic " + std::string(sem::str(builtin)) + ")";
}
const SpirvAtomic::Stub* SpirvAtomic::Stub::Clone(CloneContext* ctx) const {
- return ctx->dst->ASTNodes().Create<SpirvAtomic::Stub>(ctx->dst->ID(), builtin);
+ return ctx->dst->ASTNodes().Create<SpirvAtomic::Stub>(ctx->dst->ID(),
+ ctx->dst->AllocateNodeID(), builtin);
}
bool SpirvAtomic::ShouldRun(const Program* program, const DataMap&) const {
diff --git a/src/tint/transform/spirv_atomic.h b/src/tint/transform/spirv_atomic.h
index 36ac842..e1311c5 100644
--- a/src/tint/transform/spirv_atomic.h
+++ b/src/tint/transform/spirv_atomic.h
@@ -43,9 +43,10 @@
/// translated to an atomic builtin.
class Stub final : public Castable<Stub, ast::InternalAttribute> {
public:
- /// @param program_id the identifier of the program that owns this node
+ /// @param pid the identifier of the program that owns this node
+ /// @param nid the unique node identifier
/// @param builtin the atomic builtin this stub represents
- Stub(ProgramID program_id, sem::BuiltinType builtin);
+ Stub(ProgramID pid, ast::NodeID nid, sem::BuiltinType builtin);
/// Destructor
~Stub() override;
diff --git a/src/tint/transform/spirv_atomic_test.cc b/src/tint/transform/spirv_atomic_test.cc
index 7f07d06..cbd8a26 100644
--- a/src/tint/transform/spirv_atomic_test.cc
+++ b/src/tint/transform/spirv_atomic_test.cc
@@ -49,14 +49,14 @@
b.Param("p1", b.ty.u32()),
},
b.ty.u32(), {b.Return(0_u)},
- {b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), a)});
+ {b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(), a)});
b.Func(std::string{"stub_"} + sem::str(a) + "_i32",
{
b.Param("p0", b.ty.i32()),
b.Param("p1", b.ty.i32()),
},
b.ty.i32(), {b.Return(0_i)},
- {b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), a)});
+ {b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(), a)});
}
b.Func("stub_atomicLoad_u32",
@@ -65,7 +65,8 @@
},
b.ty.u32(), {b.Return(0_u)},
{
- b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), sem::BuiltinType::kAtomicLoad),
+ b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(),
+ sem::BuiltinType::kAtomicLoad),
});
b.Func("stub_atomicLoad_i32",
{
@@ -73,7 +74,8 @@
},
b.ty.i32(), {b.Return(0_i)},
{
- b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), sem::BuiltinType::kAtomicLoad),
+ b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(),
+ sem::BuiltinType::kAtomicLoad),
});
b.Func("stub_atomicStore_u32",
@@ -83,7 +85,8 @@
},
b.ty.void_(), {},
{
- b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), sem::BuiltinType::kAtomicStore),
+ b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(),
+ sem::BuiltinType::kAtomicStore),
});
b.Func("stub_atomicStore_i32",
{
@@ -92,7 +95,8 @@
},
b.ty.void_(), {},
{
- b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), sem::BuiltinType::kAtomicStore),
+ b.ASTNodes().Create<SpirvAtomic::Stub>(b.ID(), b.AllocateNodeID(),
+ sem::BuiltinType::kAtomicStore),
});
b.Func("stub_atomic_compare_exchange_weak_u32",
@@ -104,14 +108,14 @@
b.ty.u32(), {b.Return(0_u)},
{
b.ASTNodes().Create<SpirvAtomic::Stub>(
- b.ID(), sem::BuiltinType::kAtomicCompareExchangeWeak),
+ b.ID(), b.AllocateNodeID(), sem::BuiltinType::kAtomicCompareExchangeWeak),
});
b.Func("stub_atomic_compare_exchange_weak_i32",
{b.Param("p0", b.ty.i32()), b.Param("p1", b.ty.i32()), b.Param("p2", b.ty.i32())},
b.ty.i32(), {b.Return(0_i)},
{
b.ASTNodes().Create<SpirvAtomic::Stub>(
- b.ID(), sem::BuiltinType::kAtomicCompareExchangeWeak),
+ b.ID(), b.AllocateNodeID(), sem::BuiltinType::kAtomicCompareExchangeWeak),
});
// Keep this pointer alive after Transform() returns
diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc
index 88eec26..e9c0c4a 100644
--- a/src/tint/writer/glsl/generator_impl.cc
+++ b/src/tint/writer/glsl/generator_impl.cc
@@ -2210,7 +2210,7 @@
}
if (!Is<ast::ReturnStatement>(func->body->Last())) {
- ast::ReturnStatement ret(ProgramID(), Source{});
+ ast::ReturnStatement ret(ProgramID{}, ast::NodeID{}, Source{});
if (!EmitStatement(&ret)) {
return false;
}
diff --git a/src/tint/writer/glsl/generator_impl_binary_test.cc b/src/tint/writer/glsl/generator_impl_binary_test.cc
index a9ccffd..c1a0fa9 100644
--- a/src/tint/writer/glsl/generator_impl_binary_test.cc
+++ b/src/tint/writer/glsl/generator_impl_binary_test.cc
@@ -59,6 +59,34 @@
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
EXPECT_EQ(out.str(), params.result);
}
+TEST_P(GlslBinaryTest, Emit_f16) {
+ auto params = GetParam();
+
+ // Skip ops that are illegal for this type
+ if (params.op == ast::BinaryOp::kAnd || params.op == ast::BinaryOp::kOr ||
+ params.op == ast::BinaryOp::kXor || params.op == ast::BinaryOp::kShiftLeft ||
+ params.op == ast::BinaryOp::kShiftRight || params.op == ast::BinaryOp::kModulo) {
+ return;
+ }
+
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("left", ty.f16(), ast::StorageClass::kPrivate);
+ GlobalVar("right", ty.f16(), ast::StorageClass::kPrivate);
+
+ auto* left = Expr("left");
+ auto* right = Expr("right");
+
+ auto* expr = create<ast::BinaryExpression>(params.op, left, right);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), params.result);
+}
TEST_P(GlslBinaryTest, Emit_u32) {
auto params = GetParam();
@@ -122,7 +150,7 @@
BinaryData{"(left / right)", ast::BinaryOp::kDivide},
BinaryData{"(left % right)", ast::BinaryOp::kModulo}));
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorScalar) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorScalar_f32) {
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
auto* rhs = Expr(1_f);
@@ -137,7 +165,24 @@
EXPECT_EQ(out.str(), "(vec3(1.0f) * 1.0f)");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarVector) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorScalar_f16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = Expr(1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(f16vec3(1.0hf) * 1.0hf)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarVector_f32) {
auto* lhs = Expr(1_f);
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -152,7 +197,24 @@
EXPECT_EQ(out.str(), "(1.0f * vec3(1.0f))");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixScalar) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarVector_f16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = Expr(1_h);
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(1.0hf * f16vec3(1.0hf))");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixScalar_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr("mat");
auto* rhs = Expr(1_f);
@@ -167,7 +229,24 @@
EXPECT_EQ(out.str(), "(mat * 1.0f)");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarMatrix) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixScalar_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr("mat");
+ auto* rhs = Expr(1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(mat * 1.0hf)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarMatrix_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr(1_f);
auto* rhs = Expr("mat");
@@ -182,7 +261,24 @@
EXPECT_EQ(out.str(), "(1.0f * mat)");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixVector) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_ScalarMatrix_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr(1_h);
+ auto* rhs = Expr("mat");
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(1.0hf * mat)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixVector_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr("mat");
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -197,7 +293,24 @@
EXPECT_EQ(out.str(), "(mat * vec3(1.0f))");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorMatrix) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixVector_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr("mat");
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(mat * f16vec3(1.0hf))");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorMatrix_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
auto* rhs = Expr("mat");
@@ -212,7 +325,24 @@
EXPECT_EQ(out.str(), "(vec3(1.0f) * mat)");
}
-TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixMatrix) {
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_VectorMatrix_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = Expr("mat");
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(f16vec3(1.0hf) * mat)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixMatrix_f32) {
GlobalVar("lhs", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
GlobalVar("rhs", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
@@ -226,28 +356,41 @@
EXPECT_EQ(out.str(), "(lhs * rhs)");
}
-TEST_F(GlslGeneratorImplTest_Binary, Logical_And) {
- GlobalVar("a", ty.bool_(), ast::StorageClass::kPrivate);
- GlobalVar("b", ty.bool_(), ast::StorageClass::kPrivate);
+TEST_F(GlslGeneratorImplTest_Binary, Multiply_MatrixMatrix_f16) {
+ Enable(ast::Extension::kF16);
- auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kLogicalAnd, Expr("a"), Expr("b"));
+ GlobalVar("lhs", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ GlobalVar("rhs", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("lhs"), Expr("rhs"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(lhs * rhs)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, ModF32) {
+ GlobalVar("a", ty.f32(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.f32(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
WrapInFunction(expr);
GeneratorImpl& gen = Build();
std::stringstream out;
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
- EXPECT_EQ(out.str(), "(tint_tmp)");
- EXPECT_EQ(gen.result(), R"(bool tint_tmp = a;
-if (tint_tmp) {
- tint_tmp = b;
-}
-)");
+ EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
}
-TEST_F(GlslGeneratorImplTest_Binary, ModF32) {
- GlobalVar("a", ty.f32(), ast::StorageClass::kPrivate);
- GlobalVar("b", ty.f32(), ast::StorageClass::kPrivate);
+TEST_F(GlslGeneratorImplTest_Binary, ModF16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("a", ty.f16(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.f16(), ast::StorageClass::kPrivate);
auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
WrapInFunction(expr);
@@ -273,6 +416,22 @@
EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
}
+TEST_F(GlslGeneratorImplTest_Binary, ModVec3F16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("a", ty.vec3<f16>(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.vec3<f16>(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
+}
+
TEST_F(GlslGeneratorImplTest_Binary, ModVec3F32ScalarF32) {
GlobalVar("a", ty.vec3<f32>(), ast::StorageClass::kPrivate);
GlobalVar("b", ty.f32(), ast::StorageClass::kPrivate);
@@ -287,6 +446,22 @@
EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
}
+TEST_F(GlslGeneratorImplTest_Binary, ModVec3F16ScalarF16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("a", ty.vec3<f16>(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.f16(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
+}
+
TEST_F(GlslGeneratorImplTest_Binary, ModScalarF32Vec3F32) {
GlobalVar("a", ty.f32(), ast::StorageClass::kPrivate);
GlobalVar("b", ty.vec3<f32>(), ast::StorageClass::kPrivate);
@@ -301,6 +476,22 @@
EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
}
+TEST_F(GlslGeneratorImplTest_Binary, ModScalarF16Vec3F16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("a", ty.f16(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.vec3<f16>(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "tint_float_modulo(a, b)");
+}
+
TEST_F(GlslGeneratorImplTest_Binary, ModMixedVec3ScalarF32) {
GlobalVar("a", ty.vec3<f32>(), ast::StorageClass::kPrivate);
GlobalVar("b", ty.f32(), ast::StorageClass::kPrivate);
@@ -343,6 +534,70 @@
)");
}
+TEST_F(GlslGeneratorImplTest_Binary, ModMixedVec3ScalarF16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("a", ty.vec3<f16>(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.f16(), ast::StorageClass::kPrivate);
+
+ auto* expr_vec_mod_vec =
+ create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("a"));
+ auto* expr_vec_mod_scalar =
+ create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("a"), Expr("b"));
+ auto* expr_scalar_mod_vec =
+ create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr("b"), Expr("a"));
+ WrapInFunction(expr_vec_mod_vec, expr_vec_mod_scalar, expr_scalar_mod_vec);
+
+ GeneratorImpl& gen = Build();
+
+ ASSERT_TRUE(gen.Generate()) << gen.error();
+ EXPECT_EQ(gen.result(), R"(#version 310 es
+#extension GL_AMD_gpu_shader_half_float : require
+
+f16vec3 tint_float_modulo(f16vec3 lhs, f16vec3 rhs) {
+ return (lhs - rhs * trunc(lhs / rhs));
+}
+
+f16vec3 tint_float_modulo_1(f16vec3 lhs, float16_t rhs) {
+ return (lhs - rhs * trunc(lhs / rhs));
+}
+
+f16vec3 tint_float_modulo_2(float16_t lhs, f16vec3 rhs) {
+ return (lhs - rhs * trunc(lhs / rhs));
+}
+
+
+f16vec3 a = f16vec3(0.0hf, 0.0hf, 0.0hf);
+float16_t b = 0.0hf;
+layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in;
+void test_function() {
+ f16vec3 tint_symbol = tint_float_modulo(a, a);
+ f16vec3 tint_symbol_1 = tint_float_modulo_1(a, b);
+ f16vec3 tint_symbol_2 = tint_float_modulo_2(b, a);
+ return;
+}
+)");
+}
+
+TEST_F(GlslGeneratorImplTest_Binary, Logical_And) {
+ GlobalVar("a", ty.bool_(), ast::StorageClass::kPrivate);
+ GlobalVar("b", ty.bool_(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kLogicalAnd, Expr("a"), Expr("b"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(tint_tmp)");
+ EXPECT_EQ(gen.result(), R"(bool tint_tmp = a;
+if (tint_tmp) {
+ tint_tmp = b;
+}
+)");
+}
+
TEST_F(GlslGeneratorImplTest_Binary, Logical_Multi) {
// (a && b) || (c || d)
GlobalVar("a", ty.bool_(), ast::StorageClass::kPrivate);
diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc
index e8ab2c7..4516a98 100644
--- a/src/tint/writer/hlsl/generator_impl.cc
+++ b/src/tint/writer/hlsl/generator_impl.cc
@@ -3106,7 +3106,7 @@
}
if (!Is<ast::ReturnStatement>(func->body->Last())) {
- ast::ReturnStatement ret(ProgramID(), Source{});
+ ast::ReturnStatement ret(ProgramID(), ast::NodeID{}, Source{});
if (!EmitStatement(&ret)) {
return false;
}
diff --git a/src/tint/writer/hlsl/generator_impl_binary_test.cc b/src/tint/writer/hlsl/generator_impl_binary_test.cc
index b5e47f7..7836abc 100644
--- a/src/tint/writer/hlsl/generator_impl_binary_test.cc
+++ b/src/tint/writer/hlsl/generator_impl_binary_test.cc
@@ -66,6 +66,38 @@
ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
EXPECT_EQ(out.str(), params.result);
}
+TEST_P(HlslBinaryTest, Emit_f16) {
+ auto params = GetParam();
+
+ if ((params.valid_for & BinaryData::Types::Float) == 0) {
+ return;
+ }
+
+ // Skip ops that are illegal for this type
+ if (params.op == ast::BinaryOp::kAnd || params.op == ast::BinaryOp::kOr ||
+ params.op == ast::BinaryOp::kXor || params.op == ast::BinaryOp::kShiftLeft ||
+ params.op == ast::BinaryOp::kShiftRight) {
+ return;
+ }
+
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("left", ty.f16(), ast::StorageClass::kPrivate);
+ GlobalVar("right", ty.f16(), ast::StorageClass::kPrivate);
+
+ auto* left = Expr("left");
+ auto* right = Expr("right");
+
+ auto* expr = create<ast::BinaryExpression>(params.op, left, right);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), params.result);
+}
TEST_P(HlslBinaryTest, Emit_u32) {
auto params = GetParam();
@@ -140,7 +172,7 @@
BinaryData{"(left % right)", ast::BinaryOp::kModulo,
BinaryData::Types::Float}));
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorScalar) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorScalar_f32) {
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
auto* rhs = Expr(1_f);
@@ -155,7 +187,24 @@
EXPECT_EQ(out.str(), "((1.0f).xxx * 1.0f)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarVector) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorScalar_f16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = Expr(1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "((float16_t(1.0h)).xxx * float16_t(1.0h))");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarVector_f32) {
auto* lhs = Expr(1_f);
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -170,7 +219,24 @@
EXPECT_EQ(out.str(), "(1.0f * (1.0f).xxx)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixScalar) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarVector_f16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = Expr(1_h);
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(float16_t(1.0h) * (float16_t(1.0h)).xxx)");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixScalar_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr("mat");
auto* rhs = Expr(1_f);
@@ -185,7 +251,24 @@
EXPECT_EQ(out.str(), "(mat * 1.0f)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarMatrix) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixScalar_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr("mat");
+ auto* rhs = Expr(1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(mat * float16_t(1.0h))");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarMatrix_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr(1_f);
auto* rhs = Expr("mat");
@@ -200,7 +283,24 @@
EXPECT_EQ(out.str(), "(1.0f * mat)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixVector) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_ScalarMatrix_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr(1_h);
+ auto* rhs = Expr("mat");
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "(float16_t(1.0h) * mat)");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixVector_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = Expr("mat");
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -215,7 +315,24 @@
EXPECT_EQ(out.str(), "mul((1.0f).xxx, mat)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorMatrix) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixVector_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = Expr("mat");
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "mul((float16_t(1.0h)).xxx, mat)");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorMatrix_f32) {
GlobalVar("mat", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
auto* rhs = Expr("mat");
@@ -230,7 +347,24 @@
EXPECT_EQ(out.str(), "mul(mat, (1.0f).xxx)");
}
-TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixMatrix) {
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_VectorMatrix_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("mat", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = Expr("mat");
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "mul(mat, (float16_t(1.0h)).xxx)");
+}
+
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixMatrix_f32) {
GlobalVar("lhs", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
GlobalVar("rhs", ty.mat3x3<f32>(), ast::StorageClass::kPrivate);
@@ -244,6 +378,22 @@
EXPECT_EQ(out.str(), "mul(rhs, lhs)");
}
+TEST_F(HlslGeneratorImplTest_Binary, Multiply_MatrixMatrix_f16) {
+ Enable(ast::Extension::kF16);
+
+ GlobalVar("lhs", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+ GlobalVar("rhs", ty.mat3x3<f16>(), ast::StorageClass::kPrivate);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("lhs"), Expr("rhs"));
+ WrapInFunction(expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ EXPECT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "mul(rhs, lhs)");
+}
+
TEST_F(HlslGeneratorImplTest_Binary, Logical_And) {
GlobalVar("a", ty.bool_(), ast::StorageClass::kPrivate);
GlobalVar("b", ty.bool_(), ast::StorageClass::kPrivate);
@@ -559,7 +709,7 @@
R"( 1u);
}
)");
-} // namespace HlslGeneratorDivMod
+}
TEST_P(HlslGeneratorDivModTest, DivOrModByLiteralZero_vec_by_vec_i32) {
Func("fn", {}, ty.void_(),
@@ -577,7 +727,7 @@
R"( int4(50, 1, 25, 1));
}
)");
-} // namespace
+}
TEST_P(HlslGeneratorDivModTest, DivOrModByLiteralZero_vec_by_scalar_i32) {
Func("fn", {}, ty.void_(),
@@ -595,7 +745,7 @@
R"( 1);
}
)");
-} // namespace hlsl
+}
TEST_P(HlslGeneratorDivModTest, DivOrModByIdentifier_i32) {
Func("fn", {Param("b", ty.i32())}, ty.void_(),
@@ -613,7 +763,7 @@
R"( (b == 0 ? 1 : b));
}
)");
-} // namespace writer
+}
TEST_P(HlslGeneratorDivModTest, DivOrModByIdentifier_u32) {
Func("fn", {Param("b", ty.u32())}, ty.void_(),
@@ -631,7 +781,7 @@
R"( (b == 0u ? 1u : b));
}
)");
-} // namespace tint
+}
TEST_P(HlslGeneratorDivModTest, DivOrModByIdentifier_vec_by_vec_i32) {
Func("fn", {Param("b", ty.vec3<i32>())}, ty.void_(),
diff --git a/src/tint/writer/msl/generator_impl.cc b/src/tint/writer/msl/generator_impl.cc
index 2af36c9..68151e1 100644
--- a/src/tint/writer/msl/generator_impl.cc
+++ b/src/tint/writer/msl/generator_impl.cc
@@ -2039,7 +2039,7 @@
}
if (!Is<ast::ReturnStatement>(func->body->Last())) {
- ast::ReturnStatement ret(ProgramID{}, Source{});
+ ast::ReturnStatement ret(ProgramID{}, ast::NodeID{}, Source{});
if (!EmitStatement(&ret)) {
return false;
}
diff --git a/src/tint/writer/msl/generator_impl_binary_test.cc b/src/tint/writer/msl/generator_impl_binary_test.cc
index 02daae2..cfc8c7e 100644
--- a/src/tint/writer/msl/generator_impl_binary_test.cc
+++ b/src/tint/writer/msl/generator_impl_binary_test.cc
@@ -158,6 +158,21 @@
EXPECT_EQ(out.str(), "fmod(left, right)");
}
+TEST_F(MslBinaryTest, ModF16) {
+ Enable(ast::Extension::kF16);
+
+ auto* left = Var("left", ty.f16());
+ auto* right = Var("right", ty.f16());
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr(left), Expr(right));
+ WrapInFunction(left, right, expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "fmod(left, right)");
+}
+
TEST_F(MslBinaryTest, ModVec3F32) {
auto* left = Var("left", ty.vec3<f32>());
auto* right = Var("right", ty.vec3<f32>());
@@ -171,6 +186,21 @@
EXPECT_EQ(out.str(), "fmod(left, right)");
}
+TEST_F(MslBinaryTest, ModVec3F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* left = Var("left", ty.vec3<f16>());
+ auto* right = Var("right", ty.vec3<f16>());
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kModulo, Expr(left), Expr(right));
+ WrapInFunction(left, right, expr);
+
+ GeneratorImpl& gen = Build();
+
+ std::stringstream out;
+ ASSERT_TRUE(gen.EmitExpression(out, expr)) << gen.error();
+ EXPECT_EQ(out.str(), "fmod(left, right)");
+}
+
TEST_F(MslBinaryTest, BoolAnd) {
auto* left = Var("left", nullptr, Expr(true));
auto* right = Var("right", nullptr, Expr(false));
diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc
index 92fcf78..31ed539 100644
--- a/src/tint/writer/spirv/builder.cc
+++ b/src/tint/writer/spirv/builder.cc
@@ -778,22 +778,22 @@
init_id = Switch(
type, //
[&](const sem::F32*) {
- ast::FloatLiteralExpression l(ProgramID{}, Source{}, 0,
+ ast::FloatLiteralExpression l(ProgramID{}, ast::NodeID{}, Source{}, 0,
ast::FloatLiteralExpression::Suffix::kF);
return GenerateLiteralIfNeeded(override, &l);
},
[&](const sem::U32*) {
- ast::IntLiteralExpression l(ProgramID{}, Source{}, 0,
+ ast::IntLiteralExpression l(ProgramID{}, ast::NodeID{}, Source{}, 0,
ast::IntLiteralExpression::Suffix::kU);
return GenerateLiteralIfNeeded(override, &l);
},
[&](const sem::I32*) {
- ast::IntLiteralExpression l(ProgramID{}, Source{}, 0,
+ ast::IntLiteralExpression l(ProgramID{}, ast::NodeID{}, Source{}, 0,
ast::IntLiteralExpression::Suffix::kI);
return GenerateLiteralIfNeeded(override, &l);
},
[&](const sem::Bool*) {
- ast::BoolLiteralExpression l(ProgramID{}, Source{}, false);
+ ast::BoolLiteralExpression l(ProgramID{}, ast::NodeID{}, Source{}, false);
return GenerateLiteralIfNeeded(override, &l);
},
[&](Default) {
diff --git a/src/tint/writer/spirv/builder_binary_expression_test.cc b/src/tint/writer/spirv/builder_binary_expression_test.cc
index 443e786..9a2709e 100644
--- a/src/tint/writer/spirv/builder_binary_expression_test.cc
+++ b/src/tint/writer/spirv/builder_binary_expression_test.cc
@@ -191,8 +191,8 @@
BinaryData{ast::BinaryOp::kSubtract, "OpISub"},
BinaryData{ast::BinaryOp::kXor, "OpBitwiseXor"}));
-using BinaryArithFloatTest = TestParamHelper<BinaryData>;
-TEST_P(BinaryArithFloatTest, Scalar) {
+using BinaryArithF32Test = TestParamHelper<BinaryData>;
+TEST_P(BinaryArithF32Test, Scalar) {
auto param = GetParam();
auto* lhs = Expr(3.2_f);
@@ -215,7 +215,7 @@
"%4 = " + param.name + " %1 %2 %3\n");
}
-TEST_P(BinaryArithFloatTest, Vector) {
+TEST_P(BinaryArithF32Test, Vector) {
auto param = GetParam();
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -239,7 +239,66 @@
"%5 = " + param.name + " %1 %4 %4\n");
}
INSTANTIATE_TEST_SUITE_P(BuilderTest,
- BinaryArithFloatTest,
+ BinaryArithF32Test,
+ testing::Values(BinaryData{ast::BinaryOp::kAdd, "OpFAdd"},
+ BinaryData{ast::BinaryOp::kDivide, "OpFDiv"},
+ BinaryData{ast::BinaryOp::kModulo, "OpFRem"},
+ BinaryData{ast::BinaryOp::kMultiply, "OpFMul"},
+ BinaryData{ast::BinaryOp::kSubtract, "OpFSub"}));
+
+using BinaryArithF16Test = TestParamHelper<BinaryData>;
+TEST_P(BinaryArithF16Test, Scalar) {
+ Enable(ast::Extension::kF16);
+
+ auto param = GetParam();
+
+ auto* lhs = Expr(3.2_h);
+ auto* rhs = Expr(4.5_h);
+
+ auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 4u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeFloat 16
+%2 = OpConstant %1 0x1.998p+1
+%3 = OpConstant %1 0x1.2p+2
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%4 = " + param.name + " %1 %2 %3\n");
+}
+
+TEST_P(BinaryArithF16Test, Vector) {
+ Enable(ast::Extension::kF16);
+
+ auto param = GetParam();
+
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 5u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 16
+%1 = OpTypeVector %2 3
+%3 = OpConstant %2 0x1p+0
+%4 = OpConstantComposite %1 %3 %3 %3
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%5 = " + param.name + " %1 %4 %4\n");
+}
+INSTANTIATE_TEST_SUITE_P(BuilderTest,
+ BinaryArithF16Test,
testing::Values(BinaryData{ast::BinaryOp::kAdd, "OpFAdd"},
BinaryData{ast::BinaryOp::kDivide, "OpFDiv"},
BinaryData{ast::BinaryOp::kModulo, "OpFRem"},
@@ -422,8 +481,8 @@
BinaryData{ast::BinaryOp::kLessThanEqual, "OpSLessThanEqual"},
BinaryData{ast::BinaryOp::kNotEqual, "OpINotEqual"}));
-using BinaryCompareFloatTest = TestParamHelper<BinaryData>;
-TEST_P(BinaryCompareFloatTest, Scalar) {
+using BinaryCompareF32Test = TestParamHelper<BinaryData>;
+TEST_P(BinaryCompareF32Test, Scalar) {
auto param = GetParam();
auto* lhs = Expr(3.2_f);
@@ -447,7 +506,7 @@
"%4 = " + param.name + " %5 %2 %3\n");
}
-TEST_P(BinaryCompareFloatTest, Vector) {
+TEST_P(BinaryCompareF32Test, Vector) {
auto param = GetParam();
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -474,7 +533,7 @@
}
INSTANTIATE_TEST_SUITE_P(
BuilderTest,
- BinaryCompareFloatTest,
+ BinaryCompareF32Test,
testing::Values(BinaryData{ast::BinaryOp::kEqual, "OpFOrdEqual"},
BinaryData{ast::BinaryOp::kGreaterThan, "OpFOrdGreaterThan"},
BinaryData{ast::BinaryOp::kGreaterThanEqual, "OpFOrdGreaterThanEqual"},
@@ -482,7 +541,71 @@
BinaryData{ast::BinaryOp::kLessThanEqual, "OpFOrdLessThanEqual"},
BinaryData{ast::BinaryOp::kNotEqual, "OpFOrdNotEqual"}));
-TEST_F(BuilderTest, Binary_Multiply_VectorScalar) {
+using BinaryCompareF16Test = TestParamHelper<BinaryData>;
+TEST_P(BinaryCompareF16Test, Scalar) {
+ Enable(ast::Extension::kF16);
+
+ auto param = GetParam();
+
+ auto* lhs = Expr(3.2_h);
+ auto* rhs = Expr(4.5_h);
+
+ auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 4u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()), R"(%1 = OpTypeFloat 16
+%2 = OpConstant %1 0x1.998p+1
+%3 = OpConstant %1 0x1.2p+2
+%5 = OpTypeBool
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%4 = " + param.name + " %5 %2 %3\n");
+}
+
+TEST_P(BinaryCompareF16Test, Vector) {
+ Enable(ast::Extension::kF16);
+
+ auto param = GetParam();
+
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 5u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()), R"(%2 = OpTypeFloat 16
+%1 = OpTypeVector %2 3
+%3 = OpConstant %2 0x1p+0
+%4 = OpConstantComposite %1 %3 %3 %3
+%7 = OpTypeBool
+%6 = OpTypeVector %7 3
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%5 = " + param.name + " %6 %4 %4\n");
+}
+INSTANTIATE_TEST_SUITE_P(
+ BuilderTest,
+ BinaryCompareF16Test,
+ testing::Values(BinaryData{ast::BinaryOp::kEqual, "OpFOrdEqual"},
+ BinaryData{ast::BinaryOp::kGreaterThan, "OpFOrdGreaterThan"},
+ BinaryData{ast::BinaryOp::kGreaterThanEqual, "OpFOrdGreaterThanEqual"},
+ BinaryData{ast::BinaryOp::kLessThan, "OpFOrdLessThan"},
+ BinaryData{ast::BinaryOp::kLessThanEqual, "OpFOrdLessThanEqual"},
+ BinaryData{ast::BinaryOp::kNotEqual, "OpFOrdNotEqual"}));
+
+TEST_F(BuilderTest, Binary_Multiply_VectorScalar_F32) {
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
auto* rhs = Expr(1_f);
@@ -505,7 +628,32 @@
"%5 = OpVectorTimesScalar %1 %4 %3\n");
}
-TEST_F(BuilderTest, Binary_Multiply_ScalarVector) {
+TEST_F(BuilderTest, Binary_Multiply_VectorScalar_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+ auto* rhs = Expr(1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 5u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%2 = OpTypeFloat 16
+%1 = OpTypeVector %2 3
+%3 = OpConstant %2 0x1p+0
+%4 = OpConstantComposite %1 %3 %3 %3
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%5 = OpVectorTimesScalar %1 %4 %3\n");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_ScalarVector_F32) {
auto* lhs = Expr(1_f);
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -528,7 +676,32 @@
"%5 = OpVectorTimesScalar %3 %4 %2\n");
}
-TEST_F(BuilderTest, Binary_Multiply_MatrixScalar) {
+TEST_F(BuilderTest, Binary_Multiply_ScalarVector_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* lhs = Expr(1_h);
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, rhs);
+
+ WrapInFunction(expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 5u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%1 = OpTypeFloat 16
+%2 = OpConstant %1 0x1p+0
+%3 = OpTypeVector %1 3
+%4 = OpConstantComposite %3 %2 %2 %2
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ "%5 = OpVectorTimesScalar %3 %4 %2\n");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_MatrixScalar_F32) {
auto* var = Var("mat", ty.mat3x3<f32>());
auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("mat"), Expr(1_f));
@@ -555,7 +728,36 @@
)");
}
-TEST_F(BuilderTest, Binary_Multiply_ScalarMatrix) {
+TEST_F(BuilderTest, Binary_Multiply_MatrixScalar_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* var = Var("mat", ty.mat3x3<f16>());
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("mat"), Expr(1_h));
+
+ WrapInFunction(var, expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+ ASSERT_TRUE(b.GenerateGlobalVariable(var)) << b.error();
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 8u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%5 = OpTypeFloat 16
+%4 = OpTypeVector %5 3
+%3 = OpTypeMatrix %4 3
+%2 = OpTypePointer Function %3
+%1 = OpVariable %2 Function
+%7 = OpConstant %5 0x1p+0
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ R"(%6 = OpLoad %3 %1
+%8 = OpMatrixTimesScalar %3 %6 %7
+)");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_ScalarMatrix_F32) {
auto* var = Var("mat", ty.mat3x3<f32>());
auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr(1_f), Expr("mat"));
@@ -582,7 +784,36 @@
)");
}
-TEST_F(BuilderTest, Binary_Multiply_MatrixVector) {
+TEST_F(BuilderTest, Binary_Multiply_ScalarMatrix_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* var = Var("mat", ty.mat3x3<f16>());
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr(1_h), Expr("mat"));
+
+ WrapInFunction(var, expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+ ASSERT_TRUE(b.GenerateGlobalVariable(var)) << b.error();
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 8u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%5 = OpTypeFloat 16
+%4 = OpTypeVector %5 3
+%3 = OpTypeMatrix %4 3
+%2 = OpTypePointer Function %3
+%1 = OpVariable %2 Function
+%6 = OpConstant %5 0x1p+0
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ R"(%7 = OpLoad %3 %1
+%8 = OpMatrixTimesScalar %3 %7 %6
+)");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_MatrixVector_F32) {
auto* var = Var("mat", ty.mat3x3<f32>());
auto* rhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -611,7 +842,38 @@
)");
}
-TEST_F(BuilderTest, Binary_Multiply_VectorMatrix) {
+TEST_F(BuilderTest, Binary_Multiply_MatrixVector_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* var = Var("mat", ty.mat3x3<f16>());
+ auto* rhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("mat"), rhs);
+
+ WrapInFunction(var, expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+ ASSERT_TRUE(b.GenerateGlobalVariable(var)) << b.error();
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 9u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%5 = OpTypeFloat 16
+%4 = OpTypeVector %5 3
+%3 = OpTypeMatrix %4 3
+%2 = OpTypePointer Function %3
+%1 = OpVariable %2 Function
+%7 = OpConstant %5 0x1p+0
+%8 = OpConstantComposite %4 %7 %7 %7
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ R"(%6 = OpLoad %3 %1
+%9 = OpMatrixTimesVector %4 %6 %8
+)");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_VectorMatrix_F32) {
auto* var = Var("mat", ty.mat3x3<f32>());
auto* lhs = vec3<f32>(1_f, 1_f, 1_f);
@@ -640,7 +902,38 @@
)");
}
-TEST_F(BuilderTest, Binary_Multiply_MatrixMatrix) {
+TEST_F(BuilderTest, Binary_Multiply_VectorMatrix_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* var = Var("mat", ty.mat3x3<f16>());
+ auto* lhs = vec3<f16>(1_h, 1_h, 1_h);
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, lhs, Expr("mat"));
+
+ WrapInFunction(var, expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+ ASSERT_TRUE(b.GenerateGlobalVariable(var)) << b.error();
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 9u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%5 = OpTypeFloat 16
+%4 = OpTypeVector %5 3
+%3 = OpTypeMatrix %4 3
+%2 = OpTypePointer Function %3
+%1 = OpVariable %2 Function
+%6 = OpConstant %5 0x1p+0
+%7 = OpConstantComposite %4 %6 %6 %6
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ R"(%8 = OpLoad %3 %1
+%9 = OpVectorTimesMatrix %4 %7 %8
+)");
+}
+
+TEST_F(BuilderTest, Binary_Multiply_MatrixMatrix_F32) {
auto* var = Var("mat", ty.mat3x3<f32>());
auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("mat"), Expr("mat"));
@@ -667,6 +960,35 @@
)");
}
+TEST_F(BuilderTest, Binary_Multiply_MatrixMatrix_F16) {
+ Enable(ast::Extension::kF16);
+
+ auto* var = Var("mat", ty.mat3x3<f16>());
+
+ auto* expr = create<ast::BinaryExpression>(ast::BinaryOp::kMultiply, Expr("mat"), Expr("mat"));
+
+ WrapInFunction(var, expr);
+
+ spirv::Builder& b = Build();
+
+ b.push_function(Function{});
+ ASSERT_TRUE(b.GenerateGlobalVariable(var)) << b.error();
+
+ EXPECT_EQ(b.GenerateBinaryExpression(expr), 8u) << b.error();
+ EXPECT_EQ(DumpInstructions(b.types()),
+ R"(%5 = OpTypeFloat 16
+%4 = OpTypeVector %5 3
+%3 = OpTypeMatrix %4 3
+%2 = OpTypePointer Function %3
+%1 = OpVariable %2 Function
+)");
+ EXPECT_EQ(DumpInstructions(b.functions()[0].instructions()),
+ R"(%6 = OpLoad %3 %1
+%7 = OpLoad %3 %1
+%8 = OpMatrixTimesMatrix %3 %6 %7
+)");
+}
+
TEST_F(BuilderTest, Binary_LogicalAnd) {
auto* lhs = create<ast::BinaryExpression>(ast::BinaryOp::kEqual, Expr(1_i), Expr(2_i));
@@ -895,11 +1217,13 @@
namespace BinaryArithVectorScalar {
-enum class Type { f32, i32, u32 };
+enum class Type { f32, f16, i32, u32 };
static const ast::Expression* MakeVectorExpr(ProgramBuilder* builder, Type type) {
switch (type) {
case Type::f32:
return builder->vec3<f32>(1_f, 1_f, 1_f);
+ case Type::f16:
+ return builder->vec3<f16>(1_h, 1_h, 1_h);
case Type::i32:
return builder->vec3<i32>(1_i, 1_i, 1_i);
case Type::u32:
@@ -911,6 +1235,8 @@
switch (type) {
case Type::f32:
return builder->Expr(1_f);
+ case Type::f16:
+ return builder->Expr(1_h);
case Type::i32:
return builder->Expr(1_i);
case Type::u32:
@@ -922,6 +1248,8 @@
switch (type) {
case Type::f32:
return "OpTypeFloat 32";
+ case Type::f16:
+ return "OpTypeFloat 16";
case Type::i32:
return "OpTypeInt 32 1";
case Type::u32:
@@ -929,6 +1257,32 @@
}
return {};
}
+static std::string ConstantValue(Type type) {
+ switch (type) {
+ case Type::f32:
+ case Type::i32:
+ case Type::u32:
+ return "1";
+ case Type::f16:
+ return "0x1p+0";
+ }
+ return {};
+}
+static std::string CapabilityDecl(Type type) {
+ switch (type) {
+ case Type::f32:
+ case Type::i32:
+ case Type::u32:
+ return "OpCapability Shader";
+ case Type::f16:
+ return R"(OpCapability Shader
+OpCapability Float16
+OpCapability UniformAndStorageBuffer16BitAccess
+OpCapability StorageBuffer16BitAccess
+OpCapability StorageInputOutput16)";
+ }
+ return {};
+}
struct Param {
Type type;
@@ -940,9 +1294,15 @@
TEST_P(BinaryArithVectorScalarTest, VectorScalar) {
auto& param = GetParam();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
const ast::Expression* lhs = MakeVectorExpr(this, param.type);
const ast::Expression* rhs = MakeScalarExpr(this, param.type);
std::string op_type_decl = OpTypeDecl(param.type);
+ std::string constant_value = ConstantValue(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -951,7 +1311,7 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
@@ -960,7 +1320,8 @@
%1 = OpTypeFunction %2
%6 = )" + op_type_decl + R"(
%5 = OpTypeVector %6 3
-%7 = OpConstant %6 1
+%7 = OpConstant %6 )" + constant_value +
+ R"(
%8 = OpConstantComposite %5 %7 %7 %7
%11 = OpTypePointer Function %5
%12 = OpConstantNull %5
@@ -978,9 +1339,15 @@
TEST_P(BinaryArithVectorScalarTest, ScalarVector) {
auto& param = GetParam();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
const ast::Expression* lhs = MakeScalarExpr(this, param.type);
const ast::Expression* rhs = MakeVectorExpr(this, param.type);
std::string op_type_decl = OpTypeDecl(param.type);
+ std::string constant_value = ConstantValue(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -989,7 +1356,7 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
@@ -997,7 +1364,8 @@
%2 = OpTypeVoid
%1 = OpTypeFunction %2
%5 = )" + op_type_decl + R"(
-%6 = OpConstant %5 1
+%6 = OpConstant %5 )" + constant_value +
+ R"(
%7 = OpTypeVector %5 3
%8 = OpConstantComposite %7 %6 %6 %6
%11 = OpTypePointer Function %7
@@ -1024,6 +1392,10 @@
// Param{Type::i32, ast::BinaryOp::kMultiply, "OpIMul"},
Param{Type::f32, ast::BinaryOp::kSubtract, "OpFSub"},
+ Param{Type::f16, ast::BinaryOp::kAdd, "OpFAdd"},
+ Param{Type::f16, ast::BinaryOp::kDivide, "OpFDiv"},
+ Param{Type::f16, ast::BinaryOp::kSubtract, "OpFSub"},
+
Param{Type::i32, ast::BinaryOp::kAdd, "OpIAdd"},
Param{Type::i32, ast::BinaryOp::kDivide, "OpSDiv"},
Param{Type::i32, ast::BinaryOp::kModulo, "OpSMod"},
@@ -1040,9 +1412,15 @@
TEST_P(BinaryArithVectorScalarMultiplyTest, VectorScalar) {
auto& param = GetParam();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
const ast::Expression* lhs = MakeVectorExpr(this, param.type);
const ast::Expression* rhs = MakeScalarExpr(this, param.type);
std::string op_type_decl = OpTypeDecl(param.type);
+ std::string constant_value = ConstantValue(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -1051,7 +1429,7 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
@@ -1060,7 +1438,8 @@
%1 = OpTypeFunction %2
%6 = )" + op_type_decl + R"(
%5 = OpTypeVector %6 3
-%7 = OpConstant %6 1
+%7 = OpConstant %6 )" + constant_value +
+ R"(
%8 = OpConstantComposite %5 %7 %7 %7
%3 = OpFunction %2 None %1
%4 = OpLabel
@@ -1074,9 +1453,15 @@
TEST_P(BinaryArithVectorScalarMultiplyTest, ScalarVector) {
auto& param = GetParam();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
const ast::Expression* lhs = MakeScalarExpr(this, param.type);
const ast::Expression* rhs = MakeVectorExpr(this, param.type);
std::string op_type_decl = OpTypeDecl(param.type);
+ std::string constant_value = ConstantValue(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -1085,7 +1470,7 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
@@ -1093,7 +1478,8 @@
%2 = OpTypeVoid
%1 = OpTypeFunction %2
%5 = )" + op_type_decl + R"(
-%6 = OpConstant %5 1
+%6 = OpConstant %5 )" + constant_value +
+ R"(
%7 = OpTypeVector %5 3
%8 = OpConstantComposite %7 %6 %6 %6
%3 = OpFunction %2 None %1
@@ -1107,13 +1493,57 @@
}
INSTANTIATE_TEST_SUITE_P(BuilderTest,
BinaryArithVectorScalarMultiplyTest,
- testing::Values(Param{Type::f32, ast::BinaryOp::kMultiply, "OpFMul"}));
+ testing::Values(Param{Type::f32, ast::BinaryOp::kMultiply, "OpFMul"},
+ Param{Type::f16, ast::BinaryOp::kMultiply, "OpFMul"}));
} // namespace BinaryArithVectorScalar
namespace BinaryArithMatrixMatrix {
+enum class Type { f32, f16 };
+static const ast::Expression* MakeMat3x4Expr(ProgramBuilder* builder, Type type) {
+ switch (type) {
+ case Type::f32:
+ return builder->mat3x4<f32>();
+ case Type::f16:
+ return builder->mat3x4<f16>();
+ }
+ return nullptr;
+}
+static const ast::Expression* MakeMat4x3Expr(ProgramBuilder* builder, Type type) {
+ switch (type) {
+ case Type::f32:
+ return builder->mat4x3<f32>();
+ case Type::f16:
+ return builder->mat4x3<f16>();
+ }
+ return nullptr;
+}
+static std::string OpTypeDecl(Type type) {
+ switch (type) {
+ case Type::f32:
+ return "OpTypeFloat 32";
+ case Type::f16:
+ return "OpTypeFloat 16";
+ }
+ return {};
+}
+static std::string CapabilityDecl(Type type) {
+ switch (type) {
+ case Type::f32:
+ return "OpCapability Shader";
+ case Type::f16:
+ return R"(OpCapability Shader
+OpCapability Float16
+OpCapability UniformAndStorageBuffer16BitAccess
+OpCapability StorageBuffer16BitAccess
+OpCapability StorageInputOutput16)";
+ }
+ return {};
+}
+
struct Param {
+ Type type;
ast::BinaryOp op;
std::string name;
};
@@ -1122,8 +1552,14 @@
TEST_P(BinaryArithMatrixMatrix, AddOrSubtract) {
auto& param = GetParam();
- const ast::Expression* lhs = mat3x4<f32>();
- const ast::Expression* rhs = mat3x4<f32>();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
+ const ast::Expression* lhs = MakeMat3x4Expr(this, param.type);
+ const ast::Expression* rhs = MakeMat3x4Expr(this, param.type);
+ std::string op_type_decl = OpTypeDecl(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -1132,14 +1568,14 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
OpName %3 "test_function"
%2 = OpTypeVoid
%1 = OpTypeFunction %2
-%7 = OpTypeFloat 32
+%7 = )" + op_type_decl + R"(
%6 = OpTypeVector %7 4
%5 = OpTypeMatrix %6 3
%8 = OpConstantNull %5
@@ -1164,15 +1600,23 @@
INSTANTIATE_TEST_SUITE_P( //
BuilderTest,
BinaryArithMatrixMatrix,
- testing::Values(Param{ast::BinaryOp::kAdd, "OpFAdd"},
- Param{ast::BinaryOp::kSubtract, "OpFSub"}));
+ testing::Values(Param{Type::f32, ast::BinaryOp::kAdd, "OpFAdd"},
+ Param{Type::f32, ast::BinaryOp::kSubtract, "OpFSub"},
+ Param{Type::f16, ast::BinaryOp::kAdd, "OpFAdd"},
+ Param{Type::f16, ast::BinaryOp::kSubtract, "OpFSub"}));
using BinaryArithMatrixMatrixMultiply = TestParamHelper<Param>;
TEST_P(BinaryArithMatrixMatrixMultiply, Multiply) {
auto& param = GetParam();
- const ast::Expression* lhs = mat3x4<f32>();
- const ast::Expression* rhs = mat4x3<f32>();
+ if (param.type == Type::f16) {
+ Enable(ast::Extension::kF16);
+ }
+
+ const ast::Expression* lhs = MakeMat3x4Expr(this, param.type);
+ const ast::Expression* rhs = MakeMat4x3Expr(this, param.type);
+ std::string op_type_decl = OpTypeDecl(param.type);
+ std::string capability_decl = CapabilityDecl(param.type);
auto* expr = create<ast::BinaryExpression>(param.op, lhs, rhs);
@@ -1181,14 +1625,14 @@
spirv::Builder& b = Build();
ASSERT_TRUE(b.Build()) << b.error();
- EXPECT_EQ(DumpBuilder(b), R"(OpCapability Shader
+ EXPECT_EQ(DumpBuilder(b), capability_decl + R"(
OpMemoryModel Logical GLSL450
OpEntryPoint GLCompute %3 "test_function"
OpExecutionMode %3 LocalSize 1 1 1
OpName %3 "test_function"
%2 = OpTypeVoid
%1 = OpTypeFunction %2
-%7 = OpTypeFloat 32
+%7 = )" + op_type_decl + R"(
%6 = OpTypeVector %7 4
%5 = OpTypeMatrix %6 3
%8 = OpConstantNull %5
@@ -1208,7 +1652,8 @@
INSTANTIATE_TEST_SUITE_P( //
BuilderTest,
BinaryArithMatrixMatrixMultiply,
- testing::Values(Param{ast::BinaryOp::kMultiply, "OpFMul"}));
+ testing::Values(Param{Type::f32, ast::BinaryOp::kMultiply, ""},
+ Param{Type::f16, ast::BinaryOp::kMultiply, ""}));
} // namespace BinaryArithMatrixMatrix