// Copyright 2021 The Tint Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. //////////////////////////////////////////////////////////////////////////////// // File generated by tools/intrinsic-gen // using the template: // src/intrinsic_table.inl.tmpl // and the intrinsic defintion file: // src/intrinsics.def // // Do not modify this file directly //////////////////////////////////////////////////////////////////////////////// // clang-format off /// TypeMatcher for 'type bool' /// @see src/intrinsics.def:68:6 class Bool : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Bool::Match(MatchState& state, const sem::Type* ty) const { if (!match_bool(ty)) { return nullptr; } return build_bool(state); } std::string Bool::String(MatchState&) const { return "bool"; } /// TypeMatcher for 'type f32' /// @see src/intrinsics.def:69:6 class F32 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* F32::Match(MatchState& state, const sem::Type* ty) const { if (!match_f32(ty)) { return nullptr; } return build_f32(state); } std::string F32::String(MatchState&) const { return "f32"; } /// TypeMatcher for 'type i32' /// @see src/intrinsics.def:70:6 class I32 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* I32::Match(MatchState& state, const sem::Type* ty) const { if (!match_i32(ty)) { return nullptr; } return build_i32(state); } std::string I32::String(MatchState&) const { return "i32"; } /// TypeMatcher for 'type u32' /// @see src/intrinsics.def:71:6 class U32 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* U32::Match(MatchState& state, const sem::Type* ty) const { if (!match_u32(ty)) { return nullptr; } return build_u32(state); } std::string U32::String(MatchState&) const { return "u32"; } /// TypeMatcher for 'type vec2' /// @see src/intrinsics.def:72:6 class Vec2 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Vec2::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_vec2(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_vec2(state, T); } std::string Vec2::String(MatchState& state) const { const std::string T = state.TypeName(); return "vec2<" + T + ">"; } /// TypeMatcher for 'type vec3' /// @see src/intrinsics.def:73:6 class Vec3 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Vec3::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_vec3(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_vec3(state, T); } std::string Vec3::String(MatchState& state) const { const std::string T = state.TypeName(); return "vec3<" + T + ">"; } /// TypeMatcher for 'type vec4' /// @see src/intrinsics.def:74:6 class Vec4 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Vec4::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_vec4(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_vec4(state, T); } std::string Vec4::String(MatchState& state) const { const std::string T = state.TypeName(); return "vec4<" + T + ">"; } /// TypeMatcher for 'type vec' /// @see src/intrinsics.def:75:37 class Vec : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Vec::Match(MatchState& state, const sem::Type* ty) const { Number N = Number::invalid; const sem::Type* T = nullptr; if (!match_vec(ty, N, T)) { return nullptr; } N = state.Num(N); if (!N.IsValid()) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_vec(state, N, T); } std::string Vec::String(MatchState& state) const { const std::string N = state.NumName(); const std::string T = state.TypeName(); std::stringstream ss; ss << "vec" << N << "<" << T << ">"; return ss.str(); } /// TypeMatcher for 'type mat' /// @see src/intrinsics.def:76:37 class Mat : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Mat::Match(MatchState& state, const sem::Type* ty) const { Number N = Number::invalid; Number M = Number::invalid; const sem::Type* T = nullptr; if (!match_mat(ty, N, M, T)) { return nullptr; } N = state.Num(N); if (!N.IsValid()) { return nullptr; } M = state.Num(M); if (!M.IsValid()) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_mat(state, N, M, T); } std::string Mat::String(MatchState& state) const { const std::string N = state.NumName(); const std::string M = state.NumName(); const std::string T = state.TypeName(); std::stringstream ss; ss << "mat" << N << "x" << M << "<" << T << ">"; return ss.str(); } /// TypeMatcher for 'type ptr' /// @see src/intrinsics.def:77:37 class Ptr : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Ptr::Match(MatchState& state, const sem::Type* ty) const { Number S = Number::invalid; const sem::Type* T = nullptr; Number A = Number::invalid; if (!match_ptr(ty, S, T, A)) { return nullptr; } S = state.Num(S); if (!S.IsValid()) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } A = state.Num(A); if (!A.IsValid()) { return nullptr; } return build_ptr(state, S, T, A); } std::string Ptr::String(MatchState& state) const { const std::string S = state.NumName(); const std::string T = state.TypeName(); const std::string A = state.NumName(); std::stringstream ss; ss << "ptr<" << T << ">"; return ss.str(); } /// TypeMatcher for 'type array' /// @see src/intrinsics.def:78:6 class Array : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Array::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_array(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_array(state, T); } std::string Array::String(MatchState& state) const { const std::string T = state.TypeName(); return "array<" + T + ">"; } /// TypeMatcher for 'type sampler' /// @see src/intrinsics.def:79:6 class Sampler : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Sampler::Match(MatchState& state, const sem::Type* ty) const { if (!match_sampler(ty)) { return nullptr; } return build_sampler(state); } std::string Sampler::String(MatchState&) const { return "sampler"; } /// TypeMatcher for 'type sampler_comparison' /// @see src/intrinsics.def:80:6 class SamplerComparison : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* SamplerComparison::Match(MatchState& state, const sem::Type* ty) const { if (!match_sampler_comparison(ty)) { return nullptr; } return build_sampler_comparison(state); } std::string SamplerComparison::String(MatchState&) const { return "sampler_comparison"; } /// TypeMatcher for 'type texture_1d' /// @see src/intrinsics.def:81:6 class Texture1D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Texture1D::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_1d(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_1d(state, T); } std::string Texture1D::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_1d<" + T + ">"; } /// TypeMatcher for 'type texture_2d' /// @see src/intrinsics.def:82:6 class Texture2D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Texture2D::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_2d(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_2d(state, T); } std::string Texture2D::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_2d<" + T + ">"; } /// TypeMatcher for 'type texture_2d_array' /// @see src/intrinsics.def:83:6 class Texture2DArray : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Texture2DArray::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_2d_array(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_2d_array(state, T); } std::string Texture2DArray::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_2d_array<" + T + ">"; } /// TypeMatcher for 'type texture_3d' /// @see src/intrinsics.def:84:6 class Texture3D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* Texture3D::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_3d(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_3d(state, T); } std::string Texture3D::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_3d<" + T + ">"; } /// TypeMatcher for 'type texture_cube' /// @see src/intrinsics.def:85:6 class TextureCube : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureCube::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_cube(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_cube(state, T); } std::string TextureCube::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_cube<" + T + ">"; } /// TypeMatcher for 'type texture_cube_array' /// @see src/intrinsics.def:86:6 class TextureCubeArray : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureCubeArray::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_cube_array(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_cube_array(state, T); } std::string TextureCubeArray::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_cube_array<" + T + ">"; } /// TypeMatcher for 'type texture_multisampled_2d' /// @see src/intrinsics.def:87:6 class TextureMultisampled2D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureMultisampled2D::Match(MatchState& state, const sem::Type* ty) const { const sem::Type* T = nullptr; if (!match_texture_multisampled_2d(ty, T)) { return nullptr; } T = state.Type(T); if (T == nullptr) { return nullptr; } return build_texture_multisampled_2d(state, T); } std::string TextureMultisampled2D::String(MatchState& state) const { const std::string T = state.TypeName(); return "texture_multisampled_2d<" + T + ">"; } /// TypeMatcher for 'type texture_depth_2d' /// @see src/intrinsics.def:88:6 class TextureDepth2D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureDepth2D::Match(MatchState& state, const sem::Type* ty) const { if (!match_texture_depth_2d(ty)) { return nullptr; } return build_texture_depth_2d(state); } std::string TextureDepth2D::String(MatchState&) const { return "texture_depth_2d"; } /// TypeMatcher for 'type texture_depth_2d_array' /// @see src/intrinsics.def:89:6 class TextureDepth2DArray : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureDepth2DArray::Match(MatchState& state, const sem::Type* ty) const { if (!match_texture_depth_2d_array(ty)) { return nullptr; } return build_texture_depth_2d_array(state); } std::string TextureDepth2DArray::String(MatchState&) const { return "texture_depth_2d_array"; } /// TypeMatcher for 'type texture_depth_cube' /// @see src/intrinsics.def:90:6 class TextureDepthCube : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureDepthCube::Match(MatchState& state, const sem::Type* ty) const { if (!match_texture_depth_cube(ty)) { return nullptr; } return build_texture_depth_cube(state); } std::string TextureDepthCube::String(MatchState&) const { return "texture_depth_cube"; } /// TypeMatcher for 'type texture_depth_cube_array' /// @see src/intrinsics.def:91:6 class TextureDepthCubeArray : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureDepthCubeArray::Match(MatchState& state, const sem::Type* ty) const { if (!match_texture_depth_cube_array(ty)) { return nullptr; } return build_texture_depth_cube_array(state); } std::string TextureDepthCubeArray::String(MatchState&) const { return "texture_depth_cube_array"; } /// TypeMatcher for 'type texture_storage_1d' /// @see src/intrinsics.def:92:6 class TextureStorage1D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureStorage1D::Match(MatchState& state, const sem::Type* ty) const { Number F = Number::invalid; Number A = Number::invalid; if (!match_texture_storage_1d(ty, F, A)) { return nullptr; } F = state.Num(F); if (!F.IsValid()) { return nullptr; } A = state.Num(A); if (!A.IsValid()) { return nullptr; } return build_texture_storage_1d(state, F, A); } std::string TextureStorage1D::String(MatchState& state) const { const std::string F = state.NumName(); const std::string A = state.NumName(); return "texture_storage_1d<" + F + ", " + A + ">"; } /// TypeMatcher for 'type texture_storage_2d' /// @see src/intrinsics.def:93:6 class TextureStorage2D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureStorage2D::Match(MatchState& state, const sem::Type* ty) const { Number F = Number::invalid; Number A = Number::invalid; if (!match_texture_storage_2d(ty, F, A)) { return nullptr; } F = state.Num(F); if (!F.IsValid()) { return nullptr; } A = state.Num(A); if (!A.IsValid()) { return nullptr; } return build_texture_storage_2d(state, F, A); } std::string TextureStorage2D::String(MatchState& state) const { const std::string F = state.NumName(); const std::string A = state.NumName(); return "texture_storage_2d<" + F + ", " + A + ">"; } /// TypeMatcher for 'type texture_storage_2d_array' /// @see src/intrinsics.def:94:6 class TextureStorage2DArray : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureStorage2DArray::Match(MatchState& state, const sem::Type* ty) const { Number F = Number::invalid; Number A = Number::invalid; if (!match_texture_storage_2d_array(ty, F, A)) { return nullptr; } F = state.Num(F); if (!F.IsValid()) { return nullptr; } A = state.Num(A); if (!A.IsValid()) { return nullptr; } return build_texture_storage_2d_array(state, F, A); } std::string TextureStorage2DArray::String(MatchState& state) const { const std::string F = state.NumName(); const std::string A = state.NumName(); return "texture_storage_2d_array<" + F + ", " + A + ">"; } /// TypeMatcher for 'type texture_storage_3d' /// @see src/intrinsics.def:95:6 class TextureStorage3D : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureStorage3D::Match(MatchState& state, const sem::Type* ty) const { Number F = Number::invalid; Number A = Number::invalid; if (!match_texture_storage_3d(ty, F, A)) { return nullptr; } F = state.Num(F); if (!F.IsValid()) { return nullptr; } A = state.Num(A); if (!A.IsValid()) { return nullptr; } return build_texture_storage_3d(state, F, A); } std::string TextureStorage3D::String(MatchState& state) const { const std::string F = state.NumName(); const std::string A = state.NumName(); return "texture_storage_3d<" + F + ", " + A + ">"; } /// TypeMatcher for 'type texture_external' /// @see src/intrinsics.def:96:6 class TextureExternal : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules. /// Match may close open 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* TextureExternal::Match(MatchState& state, const sem::Type* ty) const { if (!match_texture_external(ty)) { return nullptr; } return build_texture_external(state); } std::string TextureExternal::String(MatchState&) const { return "texture_external"; } /// TypeMatcher for 'match fiu32' /// @see src/intrinsics.def:104:7 class Fiu32 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules, and returns the /// expected, canonicalized type on success. /// Match may close open 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* Fiu32::Match(MatchState& state, const sem::Type* ty) const { if (match_f32(ty)) { return build_f32(state); } if (match_i32(ty)) { return build_i32(state); } if (match_u32(ty)) { return build_u32(state); } return nullptr; } std::string Fiu32::String(MatchState&) const { return "f32, i32 or u32"; } /// TypeMatcher for 'match iu32' /// @see src/intrinsics.def:105:7 class Iu32 : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules, and returns the /// expected, canonicalized type on success. /// Match may close open 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* Iu32::Match(MatchState& state, const sem::Type* ty) const { if (match_i32(ty)) { return build_i32(state); } if (match_u32(ty)) { return build_u32(state); } return nullptr; } std::string Iu32::String(MatchState&) const { return "i32 or u32"; } /// TypeMatcher for 'match scalar' /// @see src/intrinsics.def:106:7 class Scalar : public TypeMatcher { public: /// Checks whether the given type matches the matcher rules, and returns the /// expected, canonicalized type on success. /// Match may close open 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* Scalar::Match(MatchState& state, const sem::Type* ty) const { if (match_f32(ty)) { return build_f32(state); } if (match_i32(ty)) { return build_i32(state); } if (match_u32(ty)) { return build_u32(state); } if (match_bool(ty)) { return build_bool(state); } return nullptr; } std::string Scalar::String(MatchState&) const { return "f32, i32, u32 or bool"; } /// EnumMatcher for 'match f32_texel_format' /// @see src/intrinsics.def:117:7 class F32TexelFormat : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number F32TexelFormat::Match(MatchState&, Number number) const { switch (static_cast(number.Value())) { case TexelFormat::kRgba8Unorm: case TexelFormat::kRgba8Snorm: case TexelFormat::kRgba16Float: case TexelFormat::kR32Float: case TexelFormat::kRg32Float: case TexelFormat::kRgba32Float: return number; default: return Number::invalid; } } std::string F32TexelFormat::String(MatchState&) const { return "rgba8unorm, rgba8snorm, rgba16float, r32float, rg32float or rgba32float"; } /// EnumMatcher for 'match i32_texel_format' /// @see src/intrinsics.def:119:7 class I32TexelFormat : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number I32TexelFormat::Match(MatchState&, Number number) const { switch (static_cast(number.Value())) { case TexelFormat::kRgba8Sint: case TexelFormat::kRgba16Sint: case TexelFormat::kR32Sint: case TexelFormat::kRg32Sint: case TexelFormat::kRgba32Sint: return number; default: return Number::invalid; } } std::string I32TexelFormat::String(MatchState&) const { return "rgba8sint, rgba16sint, r32sint, rg32sint or rgba32sint"; } /// EnumMatcher for 'match u32_texel_format' /// @see src/intrinsics.def:121:7 class U32TexelFormat : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number U32TexelFormat::Match(MatchState&, Number number) const { switch (static_cast(number.Value())) { case TexelFormat::kRgba8Uint: case TexelFormat::kRgba16Uint: case TexelFormat::kR32Uint: case TexelFormat::kRg32Uint: case TexelFormat::kRgba32Uint: return number; default: return Number::invalid; } } std::string U32TexelFormat::String(MatchState&) const { return "rgba8uint, rgba16uint, r32uint, rg32uint or rgba32uint"; } /// EnumMatcher for 'match read_or_write' /// @see src/intrinsics.def:124:7 class ReadOrWrite : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number ReadOrWrite::Match(MatchState&, Number number) const { switch (static_cast(number.Value())) { case Access::kRead: case Access::kWrite: return number; default: return Number::invalid; } } std::string ReadOrWrite::String(MatchState&) const { return "read or write"; } /// EnumMatcher for 'match write' class Write : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number Write::Match(MatchState&, Number number) const { if (number.IsAny() || number.Value() == static_cast(Access::kWrite)) { return Number(Access::kWrite); } return Number::invalid; } std::string Write::String(MatchState&) const { return "write"; } /// EnumMatcher for 'match read' class Read : public NumberMatcher { public: /// Checks whether the given number matches the enum matcher rules. /// Match may close open types and numbers in state. /// @param state the MatchState /// @param number the enum value as a Number /// @return true if the enum value matches the set Number Match(MatchState& state, Number number) const override; /// @param state the MatchState /// @return a string representation of the matcher. std::string String(MatchState& state) const override; }; Number Read::Match(MatchState&, Number number) const { if (number.IsAny() || number.Value() == static_cast(Access::kRead)) { return Number(Access::kRead); } return Number::invalid; } std::string Read::String(MatchState&) const { return "read"; } /// Matchers holds type and number matchers class Matchers { private: OpenTypeMatcher open_type_0_{0}; OpenNumberMatcher open_number_0_{0}; OpenNumberMatcher open_number_1_{1}; OpenNumberMatcher open_number_2_{2}; Bool Bool_; F32 F32_; I32 I32_; U32 U32_; Vec2 Vec2_; Vec3 Vec3_; Vec4 Vec4_; Vec Vec_; Mat Mat_; Ptr Ptr_; Array Array_; Sampler Sampler_; SamplerComparison SamplerComparison_; Texture1D Texture1D_; Texture2D Texture2D_; Texture2DArray Texture2DArray_; Texture3D Texture3D_; TextureCube TextureCube_; TextureCubeArray TextureCubeArray_; TextureMultisampled2D TextureMultisampled2D_; TextureDepth2D TextureDepth2D_; TextureDepth2DArray TextureDepth2DArray_; TextureDepthCube TextureDepthCube_; TextureDepthCubeArray TextureDepthCubeArray_; TextureStorage1D TextureStorage1D_; TextureStorage2D TextureStorage2D_; TextureStorage2DArray TextureStorage2DArray_; TextureStorage3D TextureStorage3D_; TextureExternal TextureExternal_; Fiu32 Fiu32_; Iu32 Iu32_; Scalar Scalar_; F32TexelFormat F32TexelFormat_; I32TexelFormat I32TexelFormat_; U32TexelFormat U32TexelFormat_; ReadOrWrite ReadOrWrite_; Write Write_; Read Read_; public: /// Constructor Matchers(); /// Destructor ~Matchers(); /// The open-types, types, and type matchers TypeMatcher const* const type[33] = { /* [0] */ &open_type_0_, /* [1] */ &Bool_, /* [2] */ &F32_, /* [3] */ &I32_, /* [4] */ &U32_, /* [5] */ &Vec2_, /* [6] */ &Vec3_, /* [7] */ &Vec4_, /* [8] */ &Vec_, /* [9] */ &Mat_, /* [10] */ &Ptr_, /* [11] */ &Array_, /* [12] */ &Sampler_, /* [13] */ &SamplerComparison_, /* [14] */ &Texture1D_, /* [15] */ &Texture2D_, /* [16] */ &Texture2DArray_, /* [17] */ &Texture3D_, /* [18] */ &TextureCube_, /* [19] */ &TextureCubeArray_, /* [20] */ &TextureMultisampled2D_, /* [21] */ &TextureDepth2D_, /* [22] */ &TextureDepth2DArray_, /* [23] */ &TextureDepthCube_, /* [24] */ &TextureDepthCubeArray_, /* [25] */ &TextureStorage1D_, /* [26] */ &TextureStorage2D_, /* [27] */ &TextureStorage2DArray_, /* [28] */ &TextureStorage3D_, /* [29] */ &TextureExternal_, /* [30] */ &Fiu32_, /* [31] */ &Iu32_, /* [32] */ &Scalar_, }; /// The open-numbers, and number matchers NumberMatcher const* const number[9] = { /* [0] */ &open_number_0_, /* [1] */ &open_number_1_, /* [2] */ &open_number_2_, /* [3] */ &F32TexelFormat_, /* [4] */ &I32TexelFormat_, /* [5] */ &U32TexelFormat_, /* [6] */ &ReadOrWrite_, /* [7] */ &Write_, /* [8] */ &Read_, }; }; Matchers::Matchers() = default; Matchers::~Matchers() = default; constexpr MatcherIndex kMatcherIndices[] = { /* [0] */ 10, /* [1] */ 1, /* [2] */ 8, /* [3] */ 0, /* [4] */ 0, /* [5] */ 2, /* [6] */ 10, /* [7] */ 1, /* [8] */ 8, /* [9] */ 0, /* [10] */ 2, /* [11] */ 2, /* [12] */ 9, /* [13] */ 0, /* [14] */ 0, /* [15] */ 2, /* [16] */ 10, /* [17] */ 0, /* [18] */ 0, /* [19] */ 1, /* [20] */ 10, /* [21] */ 0, /* [22] */ 2, /* [23] */ 1, /* [24] */ 8, /* [25] */ 0, /* [26] */ 1, /* [27] */ 28, /* [28] */ 5, /* [29] */ 8, /* [30] */ 26, /* [31] */ 0, /* [32] */ 1, /* [33] */ 25, /* [34] */ 0, /* [35] */ 1, /* [36] */ 27, /* [37] */ 5, /* [38] */ 8, /* [39] */ 26, /* [40] */ 5, /* [41] */ 8, /* [42] */ 25, /* [43] */ 5, /* [44] */ 8, /* [45] */ 28, /* [46] */ 4, /* [47] */ 8, /* [48] */ 27, /* [49] */ 4, /* [50] */ 8, /* [51] */ 26, /* [52] */ 4, /* [53] */ 8, /* [54] */ 25, /* [55] */ 4, /* [56] */ 8, /* [57] */ 27, /* [58] */ 0, /* [59] */ 1, /* [60] */ 28, /* [61] */ 3, /* [62] */ 8, /* [63] */ 27, /* [64] */ 3, /* [65] */ 8, /* [66] */ 26, /* [67] */ 3, /* [68] */ 8, /* [69] */ 25, /* [70] */ 3, /* [71] */ 8, /* [72] */ 28, /* [73] */ 0, /* [74] */ 1, /* [75] */ 28, /* [76] */ 5, /* [77] */ 7, /* [78] */ 2, /* [79] */ 27, /* [80] */ 5, /* [81] */ 7, /* [82] */ 3, /* [83] */ 26, /* [84] */ 5, /* [85] */ 7, /* [86] */ 4, /* [87] */ 25, /* [88] */ 5, /* [89] */ 7, /* [90] */ 0, /* [91] */ 28, /* [92] */ 4, /* [93] */ 7, /* [94] */ 27, /* [95] */ 4, /* [96] */ 7, /* [97] */ 26, /* [98] */ 4, /* [99] */ 7, /* [100] */ 25, /* [101] */ 4, /* [102] */ 7, /* [103] */ 28, /* [104] */ 3, /* [105] */ 7, /* [106] */ 25, /* [107] */ 3, /* [108] */ 7, /* [109] */ 27, /* [110] */ 3, /* [111] */ 7, /* [112] */ 26, /* [113] */ 3, /* [114] */ 7, /* [115] */ 6, /* [116] */ 2, /* [117] */ 5, /* [118] */ 3, /* [119] */ 5, /* [120] */ 2, /* [121] */ 6, /* [122] */ 3, /* [123] */ 19, /* [124] */ 2, /* [125] */ 18, /* [126] */ 2, /* [127] */ 14, /* [128] */ 0, /* [129] */ 17, /* [130] */ 2, /* [131] */ 15, /* [132] */ 0, /* [133] */ 16, /* [134] */ 2, /* [135] */ 16, /* [136] */ 0, /* [137] */ 17, /* [138] */ 0, /* [139] */ 20, /* [140] */ 0, /* [141] */ 15, /* [142] */ 2, /* [143] */ 18, /* [144] */ 0, /* [145] */ 19, /* [146] */ 0, /* [147] */ 11, /* [148] */ 0, /* [149] */ 14, /* [150] */ 2, /* [151] */ 22, /* [152] */ 12, /* [153] */ 21, /* [154] */ 23, /* [155] */ 24, /* [156] */ 29, /* [157] */ 13, }; // Assert that the MatcherIndex is big enough to index all the matchers, plus // kNoMatcher. static_assert(static_cast(sizeof(kMatcherIndices) / sizeof(kMatcherIndices[0])) < static_cast(std::numeric_limits::max() - 1), "MatcherIndex is not large enough to index kMatcherIndices"); constexpr ParameterInfo kParameters[] = { { /* [0] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [1] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [2] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [3] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [4] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[119], }, { /* [5] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[119], }, { /* [6] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [7] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [8] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [9] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [10] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [11] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [12] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [13] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[123], }, { /* [14] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [15] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [16] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [17] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[115], }, { /* [18] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[115], }, { /* [19] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [20] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [21] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [22] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [23] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [24] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [25] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [26] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [27] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [28] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[119], }, { /* [29] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[119], }, { /* [30] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [31] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [32] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [33] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [34] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [35] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [36] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [37] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [38] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [39] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [40] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [41] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[119], }, { /* [42] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[119], }, { /* [43] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [44] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [45] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [46] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[115], }, { /* [47] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[115], }, { /* [48] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[121], }, { /* [49] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [50] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [51] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [52] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [53] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [54] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [55] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [56] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [57] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [58] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [59] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [60] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[123], }, { /* [61] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [62] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [63] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [64] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [65] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [66] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [67] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [68] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [69] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [70] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [71] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [72] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [73] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [74] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [75] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [76] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [77] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [78] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [79] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [80] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [81] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [82] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [83] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [84] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[121], }, { /* [85] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [86] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [87] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [88] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [89] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [90] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [91] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [92] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [93] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [94] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [95] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [96] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [97] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [98] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [99] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [100] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [101] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [102] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [103] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [104] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [105] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [106] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [107] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [108] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [109] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [110] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [111] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [112] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [113] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [114] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [115] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [116] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [117] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [118] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[119], }, { /* [119] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[119], }, { /* [120] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [121] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [122] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [123] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [124] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[121], }, { /* [125] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[123], }, { /* [126] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [127] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [128] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [129] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [130] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [131] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [132] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [133] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [134] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [135] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [136] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [137] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [138] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [139] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [140] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [141] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [142] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [143] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[115], }, { /* [144] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[115], }, { /* [145] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[125], }, { /* [146] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [147] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [148] */ /* usage */ ParameterUsage::kDdx, /* matcher indices */ &kMatcherIndices[115], }, { /* [149] */ /* usage */ ParameterUsage::kDdy, /* matcher indices */ &kMatcherIndices[115], }, { /* [150] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[79], }, { /* [151] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [152] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [153] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[85], }, { /* [154] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[123], }, { /* [155] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [156] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [157] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [158] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [159] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [160] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [161] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [162] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[94], }, { /* [163] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [164] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [165] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[81], }, { /* [166] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[135], }, { /* [167] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [168] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [169] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [170] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [171] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [172] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [173] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [174] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [175] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [176] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [177] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [178] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[109], }, { /* [179] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [180] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [181] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[77], }, { /* [182] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [183] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [184] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [185] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[121], }, { /* [186] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[125], }, { /* [187] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [188] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [189] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [190] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [191] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [192] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [193] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [194] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [195] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[157], }, { /* [196] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [197] */ /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[5], }, { /* [198] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [199] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [200] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [201] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [202] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [203] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [204] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [205] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [206] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, { /* [207] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [208] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [209] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [210] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [211] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [212] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [213] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [214] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [215] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [216] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [217] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [218] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [219] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [220] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [221] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [222] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [223] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [224] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [225] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [226] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [227] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [228] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [229] */ /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[5], }, { /* [230] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[125], }, { /* [231] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [232] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [233] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[5], }, { /* [234] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [235] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [236] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [237] */ /* usage */ ParameterUsage::kOffset, /* matcher indices */ &kMatcherIndices[117], }, { /* [238] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [239] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [240] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [241] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [242] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [243] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [244] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [245] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [246] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[1], }, { /* [247] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [248] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [249] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [250] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[156], }, { /* [251] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [252] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [253] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[112], }, { /* [254] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [255] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[77], }, { /* [256] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[103], }, { /* [257] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [258] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[77], }, { /* [259] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[100], }, { /* [260] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [261] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[81], }, { /* [262] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[91], }, { /* [263] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [264] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[81], }, { /* [265] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[87], }, { /* [266] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [267] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[85], }, { /* [268] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[83], }, { /* [269] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [270] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[85], }, { /* [271] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [272] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [273] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[24], }, { /* [274] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [275] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [276] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [277] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[125], }, { /* [278] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [279] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [280] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [281] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [282] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [283] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[75], }, { /* [284] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [285] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[85], }, { /* [286] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[127], }, { /* [287] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [288] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [289] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[131], }, { /* [290] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [291] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [292] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[137], }, { /* [293] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [294] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [295] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[139], }, { /* [296] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [297] */ /* usage */ ParameterUsage::kSampleIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [298] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [299] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [300] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [301] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [302] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [303] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [304] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [305] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [306] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [307] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [308] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [309] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [310] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[129], }, { /* [311] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [312] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[115], }, { /* [313] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [314] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [315] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [316] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[63], }, { /* [317] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [318] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [319] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [320] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [321] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [322] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[48], }, { /* [323] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [324] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [325] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[156], }, { /* [326] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [327] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [328] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[141], }, { /* [329] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [330] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[119], }, { /* [331] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[149], }, { /* [332] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[152], }, { /* [333] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[5], }, { /* [334] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[106], }, { /* [335] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [336] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[77], }, { /* [337] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [338] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [339] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [340] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [341] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [342] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [343] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[97], }, { /* [344] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [345] */ /* usage */ ParameterUsage::kValue, /* matcher indices */ &kMatcherIndices[81], }, { /* [346] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[36], }, { /* [347] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [348] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[61], }, { /* [349] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [350] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[6], }, { /* [351] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [352] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [353] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [354] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [355] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [356] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [357] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [358] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [359] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[156], }, { /* [360] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [361] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [362] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [363] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [364] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [365] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [366] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [367] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [368] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [369] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [370] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [371] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [372] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [373] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [374] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[0], }, { /* [375] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [376] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[16], }, { /* [377] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[131], }, { /* [378] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [379] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [380] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [381] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [382] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [383] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [384] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [385] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[115], }, { /* [386] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[115], }, { /* [387] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [388] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [389] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [390] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [391] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[69], }, { /* [392] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [393] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[66], }, { /* [394] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [395] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[60], }, { /* [396] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [397] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[54], }, { /* [398] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [399] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[51], }, { /* [400] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [401] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [402] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [403] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [404] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [405] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[27], }, { /* [406] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [407] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[45], }, { /* [408] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[121], }, { /* [409] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[42], }, { /* [410] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[61], }, { /* [411] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [412] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [413] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [414] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [415] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [416] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [417] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [418] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [419] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [420] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[20], }, { /* [421] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[143], }, { /* [422] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [423] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[137], }, { /* [424] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [425] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[135], }, { /* [426] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [427] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[39], }, { /* [428] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[117], }, { /* [429] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[145], }, { /* [430] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[61], }, { /* [431] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[46], }, { /* [432] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[131], }, { /* [433] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[127], }, { /* [434] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[135], }, { /* [435] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[46], }, { /* [436] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[137], }, { /* [437] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[46], }, { /* [438] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[143], }, { /* [439] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[46], }, { /* [440] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[145], }, { /* [441] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[46], }, { /* [442] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[139], }, { /* [443] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [444] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [445] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [446] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [447] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [448] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [449] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [450] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [451] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[33], }, { /* [452] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[30], }, { /* [453] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[57], }, { /* [454] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[72], }, { /* [455] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[156], }, { /* [456] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[135], }, { /* [457] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[145], }, { /* [458] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [459] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [460] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[57], }, { /* [461] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[131], }, { /* [462] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[135], }, { /* [463] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[137], }, { /* [464] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[143], }, { /* [465] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[145], }, { /* [466] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[153], }, { /* [467] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[151], }, { /* [468] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[154], }, { /* [469] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[155], }, { /* [470] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[139], }, { /* [471] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [472] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [473] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [474] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [475] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [476] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [477] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [478] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [479] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [480] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [481] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [482] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [483] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [484] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [485] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[77], }, { /* [486] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[77], }, { /* [487] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[119], }, { /* [488] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[119], }, { /* [489] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[119], }, { /* [490] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [491] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [492] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [493] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [494] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [495] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [496] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [497] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [498] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [499] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [500] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [501] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [502] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [503] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [504] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [505] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [506] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [507] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [508] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [509] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [510] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [511] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [512] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [513] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [514] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [515] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [516] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [517] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [518] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [519] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [520] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [521] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [522] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [523] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [524] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [525] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [526] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [527] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [528] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [529] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [530] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [531] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [532] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [533] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [534] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[12], }, { /* [535] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [536] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, { /* [537] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [538] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [539] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [540] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [541] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [542] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [543] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [544] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [545] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [546] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [547] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[147], }, { /* [548] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[24], }, { /* [549] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[24], }, { /* [550] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[8], }, { /* [551] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[5], }, { /* [552] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[2], }, { /* [553] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[3], }, }; constexpr OpenTypeInfo kOpenTypes[] = { { /* [0] */ /* name */ "T", /* matcher index */ 31, }, { /* [1] */ /* name */ "T", /* matcher index */ 30, }, { /* [2] */ /* name */ "T", /* matcher index */ kNoMatcher, }, { /* [3] */ /* name */ "T", /* matcher index */ 32, }, }; constexpr OpenNumberInfo kOpenNumbers[] = { { /* [0] */ /* name */ "N", /* matcher index */ kNoMatcher, }, { /* [1] */ /* name */ "S", /* matcher index */ kNoMatcher, }, { /* [2] */ /* name */ "A", /* matcher index */ kNoMatcher, }, { /* [3] */ /* name */ "F", /* matcher index */ kNoMatcher, }, { /* [4] */ /* name */ "A", /* matcher index */ 6, }, }; constexpr OverloadInfo kOverloads[] = { { /* [0] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[433], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [1] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[432], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [2] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[377], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [3] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[434], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [4] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[425], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [5] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[436], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [6] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[423], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [7] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[438], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [8] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[421], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [9] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[440], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [10] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[429], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [11] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[442], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [12] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[443], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [13] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[417], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [14] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[445], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [15] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[415], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [16] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[447], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [17] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[413], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [18] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[449], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [19] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[411], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [20] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[451], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [21] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[452], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [22] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[453], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [23] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[454], /* return matcher indices */ &kMatcherIndices[121], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [24] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[455], /* return matcher indices */ &kMatcherIndices[117], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [25] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[286], /* return matcher indices */ &kMatcherIndices[89], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [26] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[289], /* return matcher indices */ &kMatcherIndices[89], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [27] */ /* num parameters */ 4, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[166], /* return matcher indices */ &kMatcherIndices[89], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [28] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[292], /* return matcher indices */ &kMatcherIndices[89], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [29] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[295], /* return matcher indices */ &kMatcherIndices[89], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [30] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[307], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [31] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[174], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [32] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[391], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [33] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[393], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [34] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[316], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [35] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[395], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [36] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[397], /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [37] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[399], /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [38] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[322], /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [39] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[407], /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [40] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[409], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [41] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[427], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [42] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[346], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [43] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[405], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [44] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[359], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [45] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[331], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [46] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[328], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [47] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[210], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [48] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[206], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [49] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[70], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [50] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[310], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [51] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[182], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [52] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[277], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [53] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[154], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [54] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[274], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [55] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[234], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [56] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[214], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [57] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[85], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [58] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[304], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [59] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[202], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [60] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[325], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [61] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[158], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [62] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[100], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [63] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[75], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [64] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[19], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [65] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[190], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [66] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[120], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [67] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[230], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [68] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[125], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [69] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[222], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [70] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[95], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [71] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[105], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [72] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[49], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [73] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[198], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [74] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[65], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [75] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[250], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [76] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[334], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [77] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[253], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [78] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[178], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [79] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[256], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [80] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[259], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [81] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[343], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [82] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[162], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [83] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[262], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [84] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[265], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [85] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[268], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [86] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[150], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [87] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[283], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [88] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[461], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [89] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[462], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [90] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[463], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [91] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[464], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [92] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[465], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [93] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[466], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [94] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[467], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [95] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[468], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [96] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[469], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [97] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[226], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [98] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[130], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [99] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[135], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [100] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[7], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [101] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[218], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [102] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[80], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [103] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[186], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [104] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[60], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [105] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[115], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [106] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[25], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [107] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[37], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [108] */ /* num parameters */ 7, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[0], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [109] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[140], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [110] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[43], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [111] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[145], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [112] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[13], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [113] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[194], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [114] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[55], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [115] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[90], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [116] */ /* num parameters */ 6, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[31], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [117] */ /* num parameters */ 4, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[170], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [118] */ /* num parameters */ 5, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[110], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [119] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[456], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [120] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[457], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [121] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[458], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [122] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[459], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [123] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[460], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [124] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[389], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [125] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[387], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [126] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[538], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [127] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[537], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [128] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[536], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [129] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[535], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [130] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[540], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [131] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[539], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [132] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[474], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [133] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[473], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [134] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[383], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [135] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[381], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [136] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[301], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [137] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[298], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [138] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[533], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [139] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[532], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [140] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[531], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [141] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[530], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [142] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[529], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [143] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[528], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [144] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[527], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [145] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[526], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [146] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[525], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [147] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[524], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [148] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[523], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [149] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[522], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), }, { /* [150] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[521], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [151] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[520], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [152] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[519], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [153] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[518], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [154] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[247], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [155] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[241], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [156] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[517], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [157] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[516], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [158] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[280], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [159] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[238], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [160] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[515], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [161] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[514], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [162] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 2, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[1], /* parameters */ &kParameters[375], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [163] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 3, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[373], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [164] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[513], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [165] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[512], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [166] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[511], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [167] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[510], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [168] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[509], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [169] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[508], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [170] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[542], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [171] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[541], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [172] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[506], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [173] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[505], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [174] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[504], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [175] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[503], /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [176] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[502], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [177] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[501], /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [178] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[500], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [179] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[499], /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [180] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[498], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [181] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[497], /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [182] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[371], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [183] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[369], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [184] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[496], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [185] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[495], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [186] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[494], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [187] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[493], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [188] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[544], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [189] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[543], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [190] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[357], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [191] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[355], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [192] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[353], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [193] */ /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[351], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [194] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[337], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [195] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[340], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [196] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[1], /* parameters */ &kParameters[419], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [197] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 3, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[349], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [198] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[313], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [199] */ /* num parameters */ 3, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[319], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [200] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[546], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [201] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[545], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [202] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[446], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [203] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[444], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [204] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[450], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [205] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[448], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [206] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[472], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [207] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[471], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [208] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[401], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [209] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[403], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [210] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[361], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [211] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[363], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [212] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[551], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [213] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[550], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [214] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[484], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [215] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[483], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [216] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[482], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [217] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[481], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [218] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[3], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[244], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [219] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[3], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[271], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [220] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[480], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [221] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[479], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [222] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[478], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [223] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[477], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [224] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[476], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [225] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[475], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [226] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[365], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [227] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[367], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [228] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[492], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [229] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[491], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [230] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[553], /* return matcher indices */ &kMatcherIndices[3], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [231] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[552], /* return matcher indices */ &kMatcherIndices[2], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [232] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[489], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [233] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[486], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [234] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[487], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [235] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[488], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [236] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[441], /* return matcher indices */ &kMatcherIndices[119], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [237] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[439], /* return matcher indices */ &kMatcherIndices[119], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [238] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[437], /* return matcher indices */ &kMatcherIndices[119], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [239] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[435], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [240] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[431], /* return matcher indices */ &kMatcherIndices[77], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [241] */ /* num parameters */ 0, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[554], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), }, { /* [242] */ /* num parameters */ 0, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[554], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), }, { /* [243] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[490], /* return matcher indices */ &kMatcherIndices[8], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [244] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[2], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[507], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [245] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[470], /* return matcher indices */ &kMatcherIndices[61], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [246] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[379], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [247] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[534], /* return matcher indices */ &kMatcherIndices[5], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [248] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[385], /* return matcher indices */ &kMatcherIndices[115], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [249] */ /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, /* open types */ &kOpenTypes[2], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[547], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [250] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[548], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [251] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], /* parameters */ &kParameters[549], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, { /* [252] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[5], /* parameters */ &kParameters[485], /* return matcher indices */ &kMatcherIndices[46], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), }, }; constexpr IntrinsicInfo kIntrinsics[] = { { /* [0] */ /* fn abs(T) -> T */ /* fn abs(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[230], }, { /* [1] */ /* fn acos(f32) -> f32 */ /* fn acos(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[212], }, { /* [2] */ /* fn all(vec) -> bool */ /* num overloads */ 1, /* overloads */ &kOverloads[251], }, { /* [3] */ /* fn any(vec) -> bool */ /* num overloads */ 1, /* overloads */ &kOverloads[250], }, { /* [4] */ /* fn arrayLength(array) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[249], }, { /* [5] */ /* fn asin(f32) -> f32 */ /* fn asin(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[200], }, { /* [6] */ /* fn atan(f32) -> f32 */ /* fn atan(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[188], }, { /* [7] */ /* fn atan2(f32, f32) -> f32 */ /* fn atan2(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[124], }, { /* [8] */ /* fn ceil(f32) -> f32 */ /* fn ceil(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[170], }, { /* [9] */ /* fn clamp(T, T, T) -> T */ /* fn clamp(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[136], }, { /* [10] */ /* fn cos(f32) -> f32 */ /* fn cos(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[130], }, { /* [11] */ /* fn cosh(f32) -> f32 */ /* fn cosh(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[126], }, { /* [12] */ /* fn countOneBits(T) -> T */ /* fn countOneBits(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[128], }, { /* [13] */ /* fn cross(vec3, vec3) -> vec3 */ /* num overloads */ 1, /* overloads */ &kOverloads[248], }, { /* [14] */ /* fn determinant(mat) -> f32 */ /* num overloads */ 1, /* overloads */ &kOverloads[247], }, { /* [15] */ /* fn distance(f32, f32) -> f32 */ /* fn distance(vec, vec) -> f32 */ /* num overloads */ 2, /* overloads */ &kOverloads[134], }, { /* [16] */ /* fn dot(vec, vec) -> f32 */ /* num overloads */ 1, /* overloads */ &kOverloads[246], }, { /* [17] */ /* fn dpdx(f32) -> f32 */ /* fn dpdx(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[138], }, { /* [18] */ /* fn dpdxCoarse(f32) -> f32 */ /* fn dpdxCoarse(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[140], }, { /* [19] */ /* fn dpdxFine(f32) -> f32 */ /* fn dpdxFine(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[142], }, { /* [20] */ /* fn dpdy(f32) -> f32 */ /* fn dpdy(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[144], }, { /* [21] */ /* fn dpdyCoarse(f32) -> f32 */ /* fn dpdyCoarse(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[146], }, { /* [22] */ /* fn dpdyFine(f32) -> f32 */ /* fn dpdyFine(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[148], }, { /* [23] */ /* fn exp(f32) -> f32 */ /* fn exp(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[150], }, { /* [24] */ /* fn exp2(f32) -> f32 */ /* fn exp2(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[152], }, { /* [25] */ /* fn faceForward(f32, f32, f32) -> f32 */ /* fn faceForward(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[154], }, { /* [26] */ /* fn floor(f32) -> f32 */ /* fn floor(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[156], }, { /* [27] */ /* fn fma(f32, f32, f32) -> f32 */ /* fn fma(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[158], }, { /* [28] */ /* fn fract(f32) -> f32 */ /* fn fract(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[160], }, { /* [29] */ /* fn frexp(f32, ptr) -> f32 */ /* fn frexp(vec, ptr, A>) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[162], }, { /* [30] */ /* fn fwidth(f32) -> f32 */ /* fn fwidth(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[164], }, { /* [31] */ /* fn fwidthCoarse(f32) -> f32 */ /* fn fwidthCoarse(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[166], }, { /* [32] */ /* fn fwidthFine(f32) -> f32 */ /* fn fwidthFine(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[168], }, { /* [33] */ /* fn ignore(T) */ /* num overloads */ 1, /* overloads */ &kOverloads[244], }, { /* [34] */ /* fn inverseSqrt(f32) -> f32 */ /* fn inverseSqrt(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[172], }, { /* [35] */ /* fn isFinite(f32) -> bool */ /* fn isFinite(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[174], }, { /* [36] */ /* fn isInf(f32) -> bool */ /* fn isInf(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[176], }, { /* [37] */ /* fn isNan(f32) -> bool */ /* fn isNan(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[178], }, { /* [38] */ /* fn isNormal(f32) -> bool */ /* fn isNormal(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[180], }, { /* [39] */ /* fn ldexp(f32, T) -> f32 */ /* fn ldexp(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[182], }, { /* [40] */ /* fn length(f32) -> f32 */ /* fn length(vec) -> f32 */ /* num overloads */ 2, /* overloads */ &kOverloads[184], }, { /* [41] */ /* fn log(f32) -> f32 */ /* fn log(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[186], }, { /* [42] */ /* fn log2(f32) -> f32 */ /* fn log2(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[228], }, { /* [43] */ /* fn max(T, T) -> T */ /* fn max(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[190], }, { /* [44] */ /* fn min(T, T) -> T */ /* fn min(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[192], }, { /* [45] */ /* fn mix(f32, f32, f32) -> f32 */ /* fn mix(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[194], }, { /* [46] */ /* fn modf(f32, ptr) -> f32 */ /* fn modf(vec, ptr, A>) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[196], }, { /* [47] */ /* fn normalize(vec) -> vec */ /* num overloads */ 1, /* overloads */ &kOverloads[243], }, { /* [48] */ /* fn pack2x16float(vec2) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[232], }, { /* [49] */ /* fn pack2x16snorm(vec2) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[235], }, { /* [50] */ /* fn pack2x16unorm(vec2) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[234], }, { /* [51] */ /* fn pack4x8snorm(vec4) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[233], }, { /* [52] */ /* fn pack4x8unorm(vec4) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[252], }, { /* [53] */ /* fn pow(f32, f32) -> f32 */ /* fn pow(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[210], }, { /* [54] */ /* fn reflect(f32, f32) -> f32 */ /* fn reflect(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[226], }, { /* [55] */ /* fn reverseBits(T) -> T */ /* fn reverseBits(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[214], }, { /* [56] */ /* fn round(f32) -> f32 */ /* fn round(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[216], }, { /* [57] */ /* fn select(T, T, bool) -> T */ /* fn select(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[218], }, { /* [58] */ /* fn sign(f32) -> f32 */ /* fn sign(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[220], }, { /* [59] */ /* fn sin(f32) -> f32 */ /* fn sin(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[222], }, { /* [60] */ /* fn sinh(f32) -> f32 */ /* fn sinh(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[224], }, { /* [61] */ /* fn smoothStep(f32, f32, f32) -> f32 */ /* fn smoothStep(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[198], }, { /* [62] */ /* fn sqrt(f32) -> f32 */ /* fn sqrt(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[132], }, { /* [63] */ /* fn step(f32, f32) -> f32 */ /* fn step(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[208], }, { /* [64] */ /* fn storageBarrier() */ /* num overloads */ 1, /* overloads */ &kOverloads[242], }, { /* [65] */ /* fn tan(f32) -> f32 */ /* fn tan(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[206], }, { /* [66] */ /* fn tanh(f32) -> f32 */ /* fn tanh(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[204], }, { /* [67] */ /* fn trunc(f32) -> f32 */ /* fn trunc(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[202], }, { /* [68] */ /* fn unpack2x16float(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[236], }, { /* [69] */ /* fn unpack2x16snorm(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[237], }, { /* [70] */ /* fn unpack2x16unorm(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[238], }, { /* [71] */ /* fn unpack4x8snorm(u32) -> vec4 */ /* num overloads */ 1, /* overloads */ &kOverloads[239], }, { /* [72] */ /* fn unpack4x8unorm(u32) -> vec4 */ /* num overloads */ 1, /* overloads */ &kOverloads[240], }, { /* [73] */ /* fn workgroupBarrier() */ /* num overloads */ 1, /* overloads */ &kOverloads[241], }, { /* [74] */ /* fn textureDimensions(texture: texture_1d) -> i32 */ /* fn textureDimensions(texture: texture_2d) -> vec2 */ /* fn textureDimensions(texture: texture_2d, level: i32) -> vec2 */ /* fn textureDimensions(texture: texture_2d_array) -> vec2 */ /* fn textureDimensions(texture: texture_2d_array, level: i32) -> vec2 */ /* fn textureDimensions(texture: texture_3d) -> vec3 */ /* fn textureDimensions(texture: texture_3d, level: i32) -> vec3 */ /* fn textureDimensions(texture: texture_cube) -> vec3 */ /* fn textureDimensions(texture: texture_cube, level: i32) -> vec3 */ /* fn textureDimensions(texture: texture_cube_array) -> vec3 */ /* fn textureDimensions(texture: texture_cube_array, level: i32) -> vec3 */ /* fn textureDimensions(texture: texture_multisampled_2d) -> vec2 */ /* fn textureDimensions(texture: texture_depth_2d) -> vec2 */ /* fn textureDimensions(texture: texture_depth_2d, level: i32) -> vec2 */ /* fn textureDimensions(texture: texture_depth_2d_array) -> vec2 */ /* fn textureDimensions(texture: texture_depth_2d_array, level: i32) -> vec2 */ /* fn textureDimensions(texture: texture_depth_cube) -> vec3 */ /* fn textureDimensions(texture: texture_depth_cube, level: i32) -> vec3 */ /* fn textureDimensions(texture: texture_depth_cube_array) -> vec3 */ /* fn textureDimensions(texture: texture_depth_cube_array, level: i32) -> vec3 */ /* fn textureDimensions(texture: texture_storage_1d) -> i32 */ /* fn textureDimensions(texture: texture_storage_2d) -> vec2 */ /* fn textureDimensions(texture: texture_storage_2d_array) -> vec2 */ /* fn textureDimensions(texture: texture_storage_3d) -> vec3 */ /* fn textureDimensions(texture: texture_external) -> vec2 */ /* num overloads */ 25, /* overloads */ &kOverloads[0], }, { /* [75] */ /* fn textureNumLayers(texture: texture_2d_array) -> i32 */ /* fn textureNumLayers(texture: texture_cube_array) -> i32 */ /* fn textureNumLayers(texture: texture_depth_2d_array) -> i32 */ /* fn textureNumLayers(texture: texture_depth_cube_array) -> i32 */ /* fn textureNumLayers(texture: texture_storage_2d_array) -> i32 */ /* num overloads */ 5, /* overloads */ &kOverloads[119], }, { /* [76] */ /* fn textureNumLevels(texture: texture_2d) -> i32 */ /* fn textureNumLevels(texture: texture_2d_array) -> i32 */ /* fn textureNumLevels(texture: texture_3d) -> i32 */ /* fn textureNumLevels(texture: texture_cube) -> i32 */ /* fn textureNumLevels(texture: texture_cube_array) -> i32 */ /* fn textureNumLevels(texture: texture_depth_2d) -> i32 */ /* fn textureNumLevels(texture: texture_depth_2d_array) -> i32 */ /* fn textureNumLevels(texture: texture_depth_cube) -> i32 */ /* fn textureNumLevels(texture: texture_depth_cube_array) -> i32 */ /* num overloads */ 9, /* overloads */ &kOverloads[88], }, { /* [77] */ /* fn textureNumSamples(texture: texture_multisampled_2d) -> i32 */ /* num overloads */ 1, /* overloads */ &kOverloads[245], }, { /* [78] */ /* fn textureSample(texture: texture_1d, sampler: sampler, coords: f32) -> vec4 */ /* fn textureSample(texture: texture_2d, sampler: sampler, coords: vec2) -> vec4 */ /* fn textureSample(texture: texture_2d, sampler: sampler, coords: vec2, offset: vec2) -> vec4 */ /* fn textureSample(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32) -> vec4 */ /* fn textureSample(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, offset: vec2) -> vec4 */ /* fn textureSample(texture: texture_3d, sampler: sampler, coords: vec3) -> vec4 */ /* fn textureSample(texture: texture_3d, sampler: sampler, coords: vec3, offset: vec3) -> vec4 */ /* fn textureSample(texture: texture_cube, sampler: sampler, coords: vec3) -> vec4 */ /* fn textureSample(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32) -> vec4 */ /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2) -> f32 */ /* fn textureSample(texture: texture_depth_2d, sampler: sampler, coords: vec2, offset: vec2) -> f32 */ /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2, array_index: i32) -> f32 */ /* fn textureSample(texture: texture_depth_2d_array, sampler: sampler, coords: vec2, array_index: i32, offset: vec2) -> f32 */ /* fn textureSample(texture: texture_depth_cube, sampler: sampler, coords: vec3) -> f32 */ /* fn textureSample(texture: texture_depth_cube_array, sampler: sampler, coords: vec3, array_index: i32) -> f32 */ /* fn textureSample(texture: texture_external, sampler: sampler, coords: vec2) -> vec4 */ /* num overloads */ 16, /* overloads */ &kOverloads[45], }, { /* [79] */ /* fn textureSampleBias(texture: texture_2d, sampler: sampler, coords: vec2, bias: f32) -> vec4 */ /* fn textureSampleBias(texture: texture_2d, sampler: sampler, coords: vec2, bias: f32, offset: vec2) -> vec4 */ /* fn textureSampleBias(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, bias: f32) -> vec4 */ /* fn textureSampleBias(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, bias: f32, offset: vec2) -> vec4 */ /* fn textureSampleBias(texture: texture_3d, sampler: sampler, coords: vec3, bias: f32) -> vec4 */ /* fn textureSampleBias(texture: texture_3d, sampler: sampler, coords: vec3, bias: f32, offset: vec3) -> vec4 */ /* fn textureSampleBias(texture: texture_cube, sampler: sampler, coords: vec3, bias: f32) -> vec4 */ /* fn textureSampleBias(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32, bias: f32) -> vec4 */ /* num overloads */ 8, /* overloads */ &kOverloads[97], }, { /* [80] */ /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32, offset: vec2) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2, array_index: i32, depth_ref: f32) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2, array_index: i32, depth_ref: f32, offset: vec2) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_cube, sampler: sampler_comparison, coords: vec3, depth_ref: f32) -> f32 */ /* fn textureSampleCompare(texture: texture_depth_cube_array, sampler: sampler_comparison, coords: vec3, array_index: i32, depth_ref: f32) -> f32 */ /* num overloads */ 6, /* overloads */ &kOverloads[113], }, { /* [81] */ /* fn textureSampleGrad(texture: texture_2d, sampler: sampler, coords: vec2, ddx: vec2, ddy: vec2) -> vec4 */ /* fn textureSampleGrad(texture: texture_2d, sampler: sampler, coords: vec2, ddx: vec2, ddy: vec2, offset: vec2) -> vec4 */ /* fn textureSampleGrad(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, ddx: vec2, ddy: vec2) -> vec4 */ /* fn textureSampleGrad(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, ddx: vec2, ddy: vec2, offset: vec2) -> vec4 */ /* fn textureSampleGrad(texture: texture_3d, sampler: sampler, coords: vec3, ddx: vec3, ddy: vec3) -> vec4 */ /* fn textureSampleGrad(texture: texture_3d, sampler: sampler, coords: vec3, ddx: vec3, ddy: vec3, offset: vec3) -> vec4 */ /* fn textureSampleGrad(texture: texture_cube, sampler: sampler, coords: vec3, ddx: vec3, ddy: vec3) -> vec4 */ /* fn textureSampleGrad(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32, ddx: vec3, ddy: vec3) -> vec4 */ /* num overloads */ 8, /* overloads */ &kOverloads[105], }, { /* [82] */ /* fn textureSampleLevel(texture: texture_2d, sampler: sampler, coords: vec2, level: f32) -> vec4 */ /* fn textureSampleLevel(texture: texture_2d, sampler: sampler, coords: vec2, level: f32, offset: vec2) -> vec4 */ /* fn textureSampleLevel(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, level: f32) -> vec4 */ /* fn textureSampleLevel(texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32, level: f32, offset: vec2) -> vec4 */ /* fn textureSampleLevel(texture: texture_3d, sampler: sampler, coords: vec3, level: f32) -> vec4 */ /* fn textureSampleLevel(texture: texture_3d, sampler: sampler, coords: vec3, level: f32, offset: vec3) -> vec4 */ /* fn textureSampleLevel(texture: texture_cube, sampler: sampler, coords: vec3, level: f32) -> vec4 */ /* fn textureSampleLevel(texture: texture_cube_array, sampler: sampler, coords: vec3, array_index: i32, level: f32) -> vec4 */ /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2, level: i32) -> f32 */ /* fn textureSampleLevel(texture: texture_depth_2d, sampler: sampler, coords: vec2, level: i32, offset: vec2) -> f32 */ /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2, array_index: i32, level: i32) -> f32 */ /* fn textureSampleLevel(texture: texture_depth_2d_array, sampler: sampler, coords: vec2, array_index: i32, level: i32, offset: vec2) -> f32 */ /* fn textureSampleLevel(texture: texture_depth_cube, sampler: sampler, coords: vec3, level: i32) -> f32 */ /* fn textureSampleLevel(texture: texture_depth_cube_array, sampler: sampler, coords: vec3, array_index: i32, level: i32) -> f32 */ /* fn textureSampleLevel(texture: texture_external, sampler: sampler, coords: vec2) -> vec4 */ /* num overloads */ 15, /* overloads */ &kOverloads[61], }, { /* [83] */ /* fn textureStore(texture: texture_storage_1d, coords: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_2d, coords: vec2, value: vec4) */ /* fn textureStore(texture: texture_storage_2d_array, coords: vec2, array_index: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_3d, coords: vec3, value: vec4) */ /* fn textureStore(texture: texture_storage_1d, coords: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_2d, coords: vec2, value: vec4) */ /* fn textureStore(texture: texture_storage_2d_array, coords: vec2, array_index: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_3d, coords: vec3, value: vec4) */ /* fn textureStore(texture: texture_storage_1d, coords: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_2d, coords: vec2, value: vec4) */ /* fn textureStore(texture: texture_storage_2d_array, coords: vec2, array_index: i32, value: vec4) */ /* fn textureStore(texture: texture_storage_3d, coords: vec3, value: vec4) */ /* num overloads */ 12, /* overloads */ &kOverloads[76], }, { /* [84] */ /* fn textureLoad(texture: texture_1d, coords: i32, level: i32) -> vec4 */ /* fn textureLoad(texture: texture_2d, coords: vec2, level: i32) -> vec4 */ /* fn textureLoad(texture: texture_2d_array, coords: vec2, array_index: i32, level: i32) -> vec4 */ /* fn textureLoad(texture: texture_3d, coords: vec3, level: i32) -> vec4 */ /* fn textureLoad(texture: texture_multisampled_2d, coords: vec2, sample_index: i32) -> vec4 */ /* fn textureLoad(texture: texture_depth_2d, coords: vec2, level: i32) -> f32 */ /* fn textureLoad(texture: texture_depth_2d_array, coords: vec2, array_index: i32, level: i32) -> f32 */ /* fn textureLoad(texture: texture_storage_1d, coords: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d, coords: vec2) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d_array, coords: vec2, array_index: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_3d, coords: vec3) -> vec4 */ /* fn textureLoad(texture: texture_storage_1d, coords: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d, coords: vec2) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d_array, coords: vec2, array_index: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_3d, coords: vec3) -> vec4 */ /* fn textureLoad(texture: texture_storage_1d, coords: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d, coords: vec2) -> vec4 */ /* fn textureLoad(texture: texture_storage_2d_array, coords: vec2, array_index: i32) -> vec4 */ /* fn textureLoad(texture: texture_storage_3d, coords: vec3) -> vec4 */ /* fn textureLoad(texture: texture_external, coords: vec2) -> vec4 */ /* num overloads */ 20, /* overloads */ &kOverloads[25], }, }; // clang-format on