diff --git a/src/tint/builtin_table.inl b/src/tint/builtin_table.inl index e4756c1bb7..72d8c342e0 100644 --- a/src/tint/builtin_table.inl +++ b/src/tint/builtin_table.inl @@ -1662,10 +1662,10 @@ constexpr MatcherIndex kMatcherIndices[] = { /* [20] */ 2, /* [21] */ 8, /* [22] */ 0, - /* [23] */ 2, + /* [23] */ 1, /* [24] */ 8, /* [25] */ 0, - /* [26] */ 1, + /* [26] */ 2, /* [27] */ 29, /* [28] */ 0, /* [29] */ 1, @@ -1722,56 +1722,56 @@ constexpr MatcherIndex kMatcherIndices[] = { /* [80] */ 3, /* [81] */ 5, /* [82] */ 2, - /* [83] */ 7, + /* [83] */ 16, /* [84] */ 2, /* [85] */ 5, /* [86] */ 3, - /* [87] */ 17, + /* [87] */ 7, /* [88] */ 2, - /* [89] */ 16, + /* [89] */ 17, /* [90] */ 2, - /* [91] */ 18, + /* [91] */ 6, /* [92] */ 2, - /* [93] */ 6, + /* [93] */ 20, /* [94] */ 2, - /* [95] */ 20, + /* [95] */ 18, /* [96] */ 2, - /* [97] */ 6, - /* [98] */ 3, - /* [99] */ 19, - /* [100] */ 2, + /* [97] */ 19, + /* [98] */ 2, + /* [99] */ 6, + /* [100] */ 3, /* [101] */ 35, /* [102] */ 0, /* [103] */ 33, /* [104] */ 0, - /* [105] */ 7, - /* [106] */ 3, + /* [105] */ 5, + /* [106] */ 0, /* [107] */ 7, - /* [108] */ 4, - /* [109] */ 15, - /* [110] */ 0, - /* [111] */ 7, + /* [108] */ 3, + /* [109] */ 7, + /* [110] */ 4, + /* [111] */ 15, /* [112] */ 0, - /* [113] */ 16, + /* [113] */ 7, /* [114] */ 0, - /* [115] */ 17, + /* [115] */ 16, /* [116] */ 0, - /* [117] */ 18, + /* [117] */ 17, /* [118] */ 0, - /* [119] */ 21, + /* [119] */ 18, /* [120] */ 0, - /* [121] */ 19, + /* [121] */ 21, /* [122] */ 0, - /* [123] */ 20, + /* [123] */ 19, /* [124] */ 0, - /* [125] */ 15, - /* [126] */ 2, - /* [127] */ 5, - /* [128] */ 0, - /* [129] */ 14, + /* [125] */ 20, + /* [126] */ 0, + /* [127] */ 15, + /* [128] */ 2, + /* [129] */ 24, /* [130] */ 25, - /* [131] */ 23, - /* [132] */ 24, + /* [131] */ 14, + /* [132] */ 23, /* [133] */ 22, /* [134] */ 26, /* [135] */ 13, @@ -1790,7 +1790,7 @@ constexpr ParameterInfo kParameters[] = { { /* [0] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[89], }, { /* [1] */ @@ -1825,47 +1825,47 @@ constexpr ParameterInfo kParameters[] = { { /* [7] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[95], }, { /* [8] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [9] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [10] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[91], }, { /* [11] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[91], }, { /* [12] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* matcher indices */ &kMatcherIndices[99], }, { /* [13] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[95], + /* matcher indices */ &kMatcherIndices[132], }, { /* [14] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [15] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [16] */ @@ -1874,18 +1874,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [17] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [18] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [19] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[132], }, { /* [20] */ @@ -1904,8 +1904,8 @@ constexpr ParameterInfo kParameters[] = { }, { /* [23] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [24] */ @@ -1915,37 +1915,37 @@ constexpr ParameterInfo kParameters[] = { { /* [25] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], + /* matcher indices */ &kMatcherIndices[132], }, { /* [26] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [27] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [28] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [29] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [30] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[97], + /* matcher indices */ &kMatcherIndices[85], }, { /* [31] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[89], }, { /* [32] */ @@ -1964,7 +1964,7 @@ constexpr ParameterInfo kParameters[] = { }, { /* [35] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[12], }, { @@ -1975,7 +1975,7 @@ constexpr ParameterInfo kParameters[] = { { /* [37] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[83], }, { /* [38] */ @@ -2004,29 +2004,29 @@ constexpr ParameterInfo kParameters[] = { }, { /* [43] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[89], }, { /* [44] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], - }, - { - /* [45] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [46] */ + /* [45] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[81], }, { - /* [47] */ + /* [46] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, + { + /* [47] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], + }, { /* [48] */ /* usage */ ParameterUsage::kOffset, @@ -2035,7 +2035,7 @@ constexpr ParameterInfo kParameters[] = { { /* [49] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[89], }, { /* [50] */ @@ -2065,12 +2065,12 @@ constexpr ParameterInfo kParameters[] = { { /* [55] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[132], }, { /* [56] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [57] */ @@ -2084,8 +2084,8 @@ constexpr ParameterInfo kParameters[] = { }, { /* [59] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [60] */ @@ -2094,29 +2094,29 @@ constexpr ParameterInfo kParameters[] = { }, { /* [61] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[55], }, { /* [62] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[117], }, { /* [63] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [64] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[81], }, { - /* [64] */ + /* [65] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, - { - /* [65] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], - }, { /* [66] */ /* usage */ ParameterUsage::kOffset, @@ -2125,17 +2125,17 @@ constexpr ParameterInfo kParameters[] = { { /* [67] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[93], }, { /* [68] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [69] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [70] */ @@ -2144,18 +2144,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [71] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[91], }, { /* [72] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[91], }, { /* [73] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], + /* matcher indices */ &kMatcherIndices[83], }, { /* [74] */ @@ -2165,27 +2165,27 @@ constexpr ParameterInfo kParameters[] = { { /* [75] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [76] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], }, { /* [77] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [78] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[132], }, { /* [79] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[131], }, { /* [80] */ @@ -2205,7 +2205,7 @@ constexpr ParameterInfo kParameters[] = { { /* [83] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[132], }, { /* [84] */ @@ -2219,7 +2219,7 @@ constexpr ParameterInfo kParameters[] = { }, { /* [86] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { @@ -2230,17 +2230,17 @@ constexpr ParameterInfo kParameters[] = { { /* [88] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[130], }, { /* [89] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [90] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [91] */ @@ -2249,68 +2249,68 @@ constexpr ParameterInfo kParameters[] = { }, { /* [92] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [93] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[95], }, { /* [94] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [95] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [96] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[91], }, { /* [97] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[91], }, { /* [98] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[97], }, { /* [99] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [100] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [101] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[91], }, { /* [102] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[91], }, { /* [103] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[89], }, { /* [104] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [105] */ @@ -2324,68 +2324,68 @@ constexpr ParameterInfo kParameters[] = { }, { /* [107] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [108] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[130], }, { /* [109] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[131], }, { /* [110] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [111] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [112] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [113] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[130], }, { /* [114] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [115] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [116] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [117] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [118] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[89], }, { /* [119] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [120] */ @@ -2399,23 +2399,23 @@ constexpr ParameterInfo kParameters[] = { }, { /* [122] */ - /* usage */ ParameterUsage::kDepthRef, + /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[12], }, { /* [123] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[132], }, { /* [124] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [125] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [126] */ @@ -2424,18 +2424,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [127] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [128] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[133], }, { /* [129] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [130] */ @@ -2444,7 +2444,7 @@ constexpr ParameterInfo kParameters[] = { }, { /* [131] */ - /* usage */ ParameterUsage::kBias, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { @@ -2454,83 +2454,83 @@ constexpr ParameterInfo kParameters[] = { }, { /* [133] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[55], }, { /* [134] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[125], + }, + { + /* [135] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, - { - /* [135] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, { /* [136] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], }, { /* [137] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { /* [138] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[95], }, { /* [139] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [140] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [141] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [142] */ - /* usage */ ParameterUsage::kDepthRef, + /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[12], }, + { + /* [142] */ + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[99], + }, { /* [143] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[93], }, { /* [144] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[123], - }, - { - /* [145] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [146] */ + /* [145] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { - /* [147] */ + /* [146] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, + { + /* [147] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], + }, { /* [148] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[83], }, { /* [149] */ @@ -2544,8 +2544,8 @@ constexpr ParameterInfo kParameters[] = { }, { /* [151] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[12], }, { /* [152] */ @@ -2555,7 +2555,7 @@ constexpr ParameterInfo kParameters[] = { { /* [153] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[89], }, { /* [154] */ @@ -2574,48 +2574,48 @@ constexpr ParameterInfo kParameters[] = { }, { /* [157] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[12], }, { /* [158] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[55], }, { /* [159] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[117], + }, + { + /* [160] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, - { - /* [160] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, { /* [161] */ - /* usage */ ParameterUsage::kDdx, + /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[81], }, { /* [162] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [163] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[95], + /* matcher indices */ &kMatcherIndices[132], }, { /* [164] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [165] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [166] */ @@ -2624,23 +2624,23 @@ constexpr ParameterInfo kParameters[] = { }, { /* [167] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { /* [168] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[95], + /* matcher indices */ &kMatcherIndices[132], }, { /* [169] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [170] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [171] */ @@ -2649,13 +2649,13 @@ constexpr ParameterInfo kParameters[] = { }, { /* [172] */ - /* usage */ ParameterUsage::kBias, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { /* [173] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], + /* matcher indices */ &kMatcherIndices[95], }, { /* [174] */ @@ -2665,22 +2665,22 @@ constexpr ParameterInfo kParameters[] = { { /* [175] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [176] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[12], }, { /* [177] */ /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[97], + /* matcher indices */ &kMatcherIndices[99], }, { /* [178] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[133], }, { /* [179] */ @@ -2694,38 +2694,38 @@ constexpr ParameterInfo kParameters[] = { }, { /* [181] */ - /* usage */ ParameterUsage::kArrayIndex, + /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[55], }, { /* [182] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [183] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[93], }, { /* [184] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], - }, - { - /* [185] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [186] */ + /* [185] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [186] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [187] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[12], }, { /* [188] */ @@ -2735,7 +2735,7 @@ constexpr ParameterInfo kParameters[] = { { /* [189] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], + /* matcher indices */ &kMatcherIndices[115], }, { /* [190] */ @@ -2755,12 +2755,12 @@ constexpr ParameterInfo kParameters[] = { { /* [193] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[133], }, { /* [194] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [195] */ @@ -2769,7 +2769,7 @@ constexpr ParameterInfo kParameters[] = { }, { /* [196] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { @@ -2780,7 +2780,7 @@ constexpr ParameterInfo kParameters[] = { { /* [198] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], + /* matcher indices */ &kMatcherIndices[83], }, { /* [199] */ @@ -2790,32 +2790,32 @@ constexpr ParameterInfo kParameters[] = { { /* [200] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [201] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kDdx, + /* matcher indices */ &kMatcherIndices[81], }, { /* [202] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[97], + /* usage */ ParameterUsage::kDdy, + /* matcher indices */ &kMatcherIndices[81], }, { /* [203] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[130], }, { /* [204] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [205] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [206] */ @@ -2824,38 +2824,38 @@ constexpr ParameterInfo kParameters[] = { }, { /* [207] */ - /* usage */ ParameterUsage::kBias, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { /* [208] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[99], + /* matcher indices */ &kMatcherIndices[133], }, { /* [209] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [210] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [211] */ - /* usage */ ParameterUsage::kDdx, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [212] */ - /* usage */ ParameterUsage::kDdy, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [213] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[132], }, { /* [214] */ @@ -2880,7 +2880,7 @@ constexpr ParameterInfo kParameters[] = { { /* [218] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[133], }, { /* [219] */ @@ -2890,22 +2890,22 @@ constexpr ParameterInfo kParameters[] = { { /* [220] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [221] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [222] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[133], }, { /* [223] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [224] */ @@ -2914,33 +2914,33 @@ constexpr ParameterInfo kParameters[] = { }, { /* [225] */ - /* usage */ ParameterUsage::kLevel, + /* usage */ ParameterUsage::kDepthRef, /* matcher indices */ &kMatcherIndices[12], }, { /* [226] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [227] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [228] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [229] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [230] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[99], + /* matcher indices */ &kMatcherIndices[130], }, { /* [231] */ @@ -2950,17 +2950,17 @@ constexpr ParameterInfo kParameters[] = { { /* [232] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [233] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [234] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[97], }, { /* [235] */ @@ -2970,17 +2970,17 @@ constexpr ParameterInfo kParameters[] = { { /* [236] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [237] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kBias, + /* matcher indices */ &kMatcherIndices[12], }, { /* [238] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* matcher indices */ &kMatcherIndices[133], }, { /* [239] */ @@ -2990,7 +2990,7 @@ constexpr ParameterInfo kParameters[] = { { /* [240] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [241] */ @@ -3000,27 +3000,27 @@ constexpr ParameterInfo kParameters[] = { { /* [242] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* matcher indices */ &kMatcherIndices[130], }, { /* [243] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [244] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [245] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [246] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[87], + /* matcher indices */ &kMatcherIndices[97], }, { /* [247] */ @@ -3030,27 +3030,27 @@ constexpr ParameterInfo kParameters[] = { { /* [248] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [249] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], }, { /* [250] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* matcher indices */ &kMatcherIndices[129], }, { /* [251] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[131], }, { /* [252] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], }, { /* [253] */ @@ -3060,88 +3060,88 @@ constexpr ParameterInfo kParameters[] = { { /* [254] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[69], + /* matcher indices */ &kMatcherIndices[95], }, { /* [255] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], }, { /* [256] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], }, { /* [257] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[83], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], }, { /* [258] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[45], }, { /* [259] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], }, { /* [260] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [261] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [262] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], - }, - { - /* [263] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [264] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [265] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[97], - }, - { - /* [266] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[95], - }, - { - /* [267] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [268] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [269] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { - /* [270] */ + /* [261] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[109], + }, + { + /* [262] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[133], }, + { + /* [263] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [264] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, + { + /* [265] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [266] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[129], + }, + { + /* [267] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [268] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [269] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [270] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[83], + }, { /* [271] */ /* usage */ ParameterUsage::kSampler, @@ -3154,18 +3154,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [273] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[12], }, { /* [274] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[132], }, { /* [275] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* matcher indices */ &kMatcherIndices[135], }, { /* [276] */ @@ -3174,33 +3174,33 @@ constexpr ParameterInfo kParameters[] = { }, { /* [277] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [278] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* matcher indices */ &kMatcherIndices[117], }, { /* [279] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], }, { /* [280] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [281] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [282] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[133], }, { /* [283] */ @@ -3210,37 +3210,37 @@ constexpr ParameterInfo kParameters[] = { { /* [284] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [285] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [286] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[69], }, { /* [287] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], }, { /* [288] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [289] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, + { + /* [289] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[87], + }, { /* [290] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[93], }, { /* [291] */ @@ -3250,77 +3250,77 @@ constexpr ParameterInfo kParameters[] = { { /* [292] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [293] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [294] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], - }, - { - /* [295] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[129], - }, - { - /* [296] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [297] */ - /* usage */ ParameterUsage::kDepthRef, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [298] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[45], - }, - { - /* [299] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [300] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { - /* [301] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[107], - }, - { - /* [302] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [303] */ + /* [294] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[121], + /* matcher indices */ &kMatcherIndices[95], }, { - /* [304] */ + /* [295] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [305] */ + /* [296] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [297] */ + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[99], + }, + { + /* [298] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[133], + }, + { + /* [299] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[131], + }, + { + /* [300] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, + { + /* [301] */ + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [302] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[132], + }, + { + /* [303] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [304] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, + { + /* [305] */ + /* usage */ ParameterUsage::kArrayIndex, + /* matcher indices */ &kMatcherIndices[55], }, { /* [306] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[132], }, { /* [307] */ @@ -3340,7 +3340,7 @@ constexpr ParameterInfo kParameters[] = { { /* [310] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[99], + /* matcher indices */ &kMatcherIndices[83], }, { /* [311] */ @@ -3350,77 +3350,77 @@ constexpr ParameterInfo kParameters[] = { { /* [312] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[81], }, { /* [313] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kOffset, + /* matcher indices */ &kMatcherIndices[85], }, { /* [314] */ - /* usage */ ParameterUsage::kComponent, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[89], }, { /* [315] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], - }, - { - /* [316] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [317] */ + /* [316] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[81], }, { - /* [318] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], - }, - { - /* [319] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [320] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [321] */ - /* usage */ ParameterUsage::kBias, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [322] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], - }, - { - /* [323] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [324] */ + /* [317] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { - /* [325] */ - /* usage */ ParameterUsage::kLevel, + /* [318] */ + /* usage */ ParameterUsage::kComponent, /* matcher indices */ &kMatcherIndices[55], }, + { + /* [319] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[123], + }, + { + /* [320] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [321] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [322] */ + /* usage */ ParameterUsage::kComponent, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [323] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[115], + }, + { + /* [324] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [325] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, { /* [326] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[83], }, { /* [327] */ @@ -3440,142 +3440,142 @@ constexpr ParameterInfo kParameters[] = { { /* [330] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[129], }, { /* [331] */ /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* matcher indices */ &kMatcherIndices[131], }, { /* [332] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* matcher indices */ &kMatcherIndices[91], }, { /* [333] */ - /* usage */ ParameterUsage::kArrayIndex, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kDepthRef, + /* matcher indices */ &kMatcherIndices[12], }, { /* [334] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[57], + /* matcher indices */ &kMatcherIndices[129], }, { /* [335] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [336] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [337] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [338] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [339] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [340] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], + }, + { + /* [341] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], + }, + { + /* [342] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[57], + }, + { + /* [343] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[85], }, { - /* [336] */ + /* [344] */ /* usage */ ParameterUsage::kArrayIndex, /* matcher indices */ &kMatcherIndices[55], }, { - /* [337] */ + /* [345] */ /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[105], + /* matcher indices */ &kMatcherIndices[107], }, { - /* [338] */ + /* [346] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], + /* matcher indices */ &kMatcherIndices[95], }, { - /* [339] */ + /* [347] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, - { - /* [340] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [341] */ - /* usage */ ParameterUsage::kOffset, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [342] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], - }, - { - /* [343] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [344] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [345] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [346] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [347] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, { /* [348] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], }, { /* [349] */ - /* usage */ ParameterUsage::kNone, + /* usage */ ParameterUsage::kBias, /* matcher indices */ &kMatcherIndices[12], }, { /* [350] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[48], }, { /* [351] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], }, { /* [352] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[109], }, { /* [353] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [354] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [355] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [356] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [357] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[43], }, { /* [358] */ @@ -3585,617 +3585,617 @@ constexpr ParameterInfo kParameters[] = { { /* [359] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* matcher indices */ &kMatcherIndices[1], }, { /* [360] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[99], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [361] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [362] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [363] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [364] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], - }, - { - /* [365] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], - }, - { - /* [366] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[91], - }, - { - /* [367] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [368] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [369] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [370] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [371] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], - }, - { - /* [372] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[136], }, { - /* [373] */ + /* [363] */ /* usage */ ParameterUsage::kSampler, /* matcher indices */ &kMatcherIndices[135], }, { - /* [374] */ + /* [364] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[81], }, { - /* [375] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [376] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [377] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [378] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[89], - }, - { - /* [379] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [380] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [381] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[125], - }, - { - /* [382] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [383] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [384] */ + /* [365] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[75], }, { - /* [385] */ + /* [366] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[55], }, { - /* [386] */ + /* [367] */ /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[83], + /* matcher indices */ &kMatcherIndices[87], }, { - /* [387] */ + /* [368] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[72], }, { - /* [388] */ + /* [369] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[85], }, { - /* [389] */ + /* [370] */ /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[83], + /* matcher indices */ &kMatcherIndices[87], }, { - /* [390] */ + /* [371] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[129], + }, + { + /* [372] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [373] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [374] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [375] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [376] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [377] */ /* usage */ ParameterUsage::kTexture, /* matcher indices */ &kMatcherIndices[66], }, { - /* [391] */ + /* [378] */ /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[97], + /* matcher indices */ &kMatcherIndices[99], }, { - /* [392] */ + /* [379] */ /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[83], + /* matcher indices */ &kMatcherIndices[87], }, { - /* [393] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [394] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [395] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [396] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [397] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [398] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], - }, - { - /* [399] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[63], - }, - { - /* [400] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [401] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [402] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], - }, - { - /* [403] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [404] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [405] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[60], - }, - { - /* [406] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [407] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [408] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[54], - }, - { - /* [409] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[97], - }, - { - /* [410] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[105], - }, - { - /* [411] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [412] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [413] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [414] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [415] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [416] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [417] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[51], - }, - { - /* [418] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [419] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[107], - }, - { - /* [420] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[48], - }, - { - /* [421] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [422] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[107], - }, - { - /* [423] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], - }, - { - /* [424] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [425] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[81], - }, - { - /* [426] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[42], - }, - { - /* [427] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[97], - }, - { - /* [428] */ - /* usage */ ParameterUsage::kValue, - /* matcher indices */ &kMatcherIndices[107], - }, - { - /* [429] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[109], - }, - { - /* [430] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [431] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [432] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], - }, - { - /* [433] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [434] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [435] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[117], - }, - { - /* [436] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[97], - }, - { - /* [437] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [438] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[119], - }, - { - /* [439] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [440] */ - /* usage */ ParameterUsage::kSampleIndex, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [441] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], - }, - { - /* [442] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], - }, - { - /* [443] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], - }, - { - /* [444] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], - }, - { - /* [445] */ - /* usage */ ParameterUsage::kSampler, - /* matcher indices */ &kMatcherIndices[135], - }, - { - /* [446] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[93], - }, - { - /* [447] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [448] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [449] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], - }, - { - /* [450] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [451] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [452] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], - }, - { - /* [453] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [454] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], - }, - { - /* [455] */ + /* [380] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[24], }, { - /* [456] */ + /* [381] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { - /* [457] */ + /* [382] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { - /* [458] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], - }, - { - /* [459] */ + /* [383] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[134], + /* matcher indices */ &kMatcherIndices[63], }, { - /* [460] */ + /* [384] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [385] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [386] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[60], + }, + { + /* [387] */ /* usage */ ParameterUsage::kCoords, /* matcher indices */ &kMatcherIndices[85], }, { - /* [461] */ - /* usage */ ParameterUsage::kSampleIndex, - /* matcher indices */ &kMatcherIndices[55], + /* [388] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[107], }, { - /* [462] */ + /* [389] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { - /* [463] */ + /* [390] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { - /* [464] */ + /* [391] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [392] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [393] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [394] */ /* usage */ ParameterUsage::kNone, /* matcher indices */ &kMatcherIndices[12], }, { - /* [465] */ + /* [395] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], + /* matcher indices */ &kMatcherIndices[54], }, { - /* [466] */ + /* [396] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[99], + }, + { + /* [397] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[107], + }, + { + /* [398] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], + }, + { + /* [399] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [400] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [401] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[51], + }, + { + /* [402] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [403] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[109], + }, + { + /* [404] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[129], + }, + { + /* [405] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [406] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [407] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [408] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [409] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [410] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], + }, + { + /* [411] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], + }, + { + /* [412] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[21], + }, + { + /* [413] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], + }, + { + /* [414] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], + }, + { + /* [415] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[10], + }, + { + /* [416] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [417] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [418] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[10], + }, + { + /* [419] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [420] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [421] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [422] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[42], + }, + { + /* [423] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[99], + }, + { + /* [424] */ + /* usage */ ParameterUsage::kValue, + /* matcher indices */ &kMatcherIndices[109], + }, + { + /* [425] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [426] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [427] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [428] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[111], + }, + { + /* [429] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [430] */ /* usage */ ParameterUsage::kLevel, /* matcher indices */ &kMatcherIndices[55], }, + { + /* [431] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[115], + }, + { + /* [432] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], + }, + { + /* [433] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [434] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[119], + }, + { + /* [435] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[99], + }, + { + /* [436] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [437] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[133], + }, + { + /* [438] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [439] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, + { + /* [440] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [441] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [442] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], + }, + { + /* [443] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[97], + }, + { + /* [444] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [445] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [446] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[121], + }, + { + /* [447] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], + }, + { + /* [448] */ + /* usage */ ParameterUsage::kSampleIndex, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [449] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[95], + }, + { + /* [450] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [451] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[91], + }, + { + /* [452] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[133], + }, + { + /* [453] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], + }, + { + /* [454] */ + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [455] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[127], + }, + { + /* [456] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [457] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [458] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[134], + }, + { + /* [459] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], + }, + { + /* [460] */ + /* usage */ ParameterUsage::kSampleIndex, + /* matcher indices */ &kMatcherIndices[55], + }, + { + /* [461] */ + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[133], + }, + { + /* [462] */ + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], + }, + { + /* [463] */ + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], + }, + { + /* [464] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [465] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [466] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, { /* [467] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[39], }, { /* [468] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[39], }, { /* [469] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[39], }, { /* [470] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[83], }, { /* [471] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kSampler, + /* matcher indices */ &kMatcherIndices[135], }, { /* [472] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[81], }, { /* [473] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[115], }, { /* [474] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [475] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[24], }, { /* [476] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[24], }, { /* [477] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[12], }, { /* [478] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[12], }, { /* [479] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[39], }, { /* [480] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[39], }, { /* [481] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[1], }, { /* [482] */ @@ -4204,73 +4204,73 @@ constexpr ParameterInfo kParameters[] = { }, { /* [483] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[136], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [484] */ - /* usage */ ParameterUsage::kCoords, - /* matcher indices */ &kMatcherIndices[85], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [485] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[1], }, { /* [486] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[1], }, { /* [487] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [488] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[78], }, { /* [489] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[12], }, { /* [490] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[93], + /* matcher indices */ &kMatcherIndices[55], }, { /* [491] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[117], }, { /* [492] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [493] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[39], }, { /* [494] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[39], }, { /* [495] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [496] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [497] */ @@ -4285,32 +4285,32 @@ constexpr ParameterInfo kParameters[] = { { /* [499] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[91], }, { /* [500] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[91], }, { /* [501] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[24], }, { /* [502] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[24], }, { /* [503] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[12], }, { /* [504] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[12], }, { /* [505] */ @@ -4320,42 +4320,42 @@ constexpr ParameterInfo kParameters[] = { { /* [506] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[55], + /* matcher indices */ &kMatcherIndices[12], }, { /* [507] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[136], }, { /* [508] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[78], + /* usage */ ParameterUsage::kCoords, + /* matcher indices */ &kMatcherIndices[85], }, { /* [509] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [510] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [511] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [512] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [513] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [514] */ @@ -4365,17 +4365,17 @@ constexpr ParameterInfo kParameters[] = { { /* [515] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[0], }, { /* [516] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[1], }, { /* [517] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], }, { /* [518] */ @@ -4385,37 +4385,37 @@ constexpr ParameterInfo kParameters[] = { { /* [519] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[0], }, { /* [520] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[1], }, { /* [521] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [522] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [523] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [524] */ - /* usage */ ParameterUsage::kLevel, - /* matcher indices */ &kMatcherIndices[55], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [525] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[130], }, { /* [526] */ @@ -4424,18 +4424,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [527] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[129], }, { /* [528] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [529] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[123], + /* matcher indices */ &kMatcherIndices[132], }, { /* [530] */ @@ -4445,7 +4445,7 @@ constexpr ParameterInfo kParameters[] = { { /* [531] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[109], + /* matcher indices */ &kMatcherIndices[133], }, { /* [532] */ @@ -4455,7 +4455,7 @@ constexpr ParameterInfo kParameters[] = { { /* [533] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[121], + /* matcher indices */ &kMatcherIndices[125], }, { /* [534] */ @@ -4464,18 +4464,18 @@ constexpr ParameterInfo kParameters[] = { }, { /* [535] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[123], }, { /* [536] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [537] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[117], + /* matcher indices */ &kMatcherIndices[119], }, { /* [538] */ @@ -4484,183 +4484,183 @@ constexpr ParameterInfo kParameters[] = { }, { /* [539] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[13], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[111], }, { /* [540] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[117], + /* usage */ ParameterUsage::kLevel, + /* matcher indices */ &kMatcherIndices[55], }, { /* [541] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[0], }, { /* [542] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[121], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[1], }, { /* [543] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [544] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[123], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [545] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[109], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [546] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[119], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [547] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[117], }, { /* [548] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[119], }, { /* [549] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[111], }, { /* [550] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[123], }, { /* [551] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[39], }, { /* [552] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[125], }, { /* [553] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [554] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[121], }, { /* [555] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[134], + /* matcher indices */ &kMatcherIndices[133], }, { /* [556] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[36], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [557] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[33], + /* matcher indices */ &kMatcherIndices[132], }, { /* [558] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[27], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [559] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[30], + /* matcher indices */ &kMatcherIndices[129], }, { /* [560] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[136], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[43], }, { /* [561] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[83], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[130], }, { /* [562] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[83], + /* matcher indices */ &kMatcherIndices[43], }, { /* [563] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[134], }, { /* [564] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[36], }, { /* [565] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[81], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[33], }, { /* [566] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[27], }, { /* [567] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[30], }, { /* [568] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[136], }, { /* [569] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* matcher indices */ &kMatcherIndices[24], }, { /* [570] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[43], + /* matcher indices */ &kMatcherIndices[12], }, { /* [571] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[13], }, { /* [572] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [573] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [574] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [575] */ @@ -4670,57 +4670,57 @@ constexpr ParameterInfo kParameters[] = { { /* [576] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [577] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [578] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [579] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [580] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[123], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], }, { /* [581] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[115], }, { /* [582] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [583] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[27], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], }, { /* [584] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[109], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [585] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[113], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], }, { /* [586] */ - /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[115], + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, { /* [587] */ @@ -4730,82 +4730,82 @@ constexpr ParameterInfo kParameters[] = { { /* [588] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[121], + /* matcher indices */ &kMatcherIndices[125], }, { /* [589] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[123], + /* matcher indices */ &kMatcherIndices[132], }, { /* [590] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[133], + /* matcher indices */ &kMatcherIndices[130], }, { /* [591] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[131], + /* matcher indices */ &kMatcherIndices[27], }, { /* [592] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[132], + /* matcher indices */ &kMatcherIndices[111], }, { /* [593] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[130], + /* matcher indices */ &kMatcherIndices[115], }, { /* [594] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[119], + /* matcher indices */ &kMatcherIndices[117], }, { /* [595] */ /* usage */ ParameterUsage::kTexture, - /* matcher indices */ &kMatcherIndices[134], + /* matcher indices */ &kMatcherIndices[119], }, { /* [596] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[123], }, { /* [597] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[125], }, { /* [598] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[133], }, { /* [599] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[132], }, { /* [600] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[129], }, { /* [601] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[130], }, { /* [602] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[121], }, { /* [603] */ - /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* usage */ ParameterUsage::kTexture, + /* matcher indices */ &kMatcherIndices[134], }, { /* [604] */ @@ -4815,17 +4815,17 @@ constexpr ParameterInfo kParameters[] = { { /* [605] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[39], }, { /* [606] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[1], }, { /* [607] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [608] */ @@ -4835,37 +4835,37 @@ constexpr ParameterInfo kParameters[] = { { /* [609] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[87], }, { /* [610] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[87], }, { /* [611] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[81], }, { /* [612] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[81], }, { /* [613] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[81], }, { /* [614] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [615] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [616] */ @@ -4875,7 +4875,7 @@ constexpr ParameterInfo kParameters[] = { { /* [617] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [618] */ @@ -4885,7 +4885,7 @@ constexpr ParameterInfo kParameters[] = { { /* [619] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [620] */ @@ -4895,27 +4895,27 @@ constexpr ParameterInfo kParameters[] = { { /* [621] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { /* [622] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[12], }, { /* [623] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { /* [624] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[12], }, { /* [625] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [626] */ @@ -4925,7 +4925,7 @@ constexpr ParameterInfo kParameters[] = { { /* [627] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [628] */ @@ -4935,7 +4935,7 @@ constexpr ParameterInfo kParameters[] = { { /* [629] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [630] */ @@ -4945,7 +4945,7 @@ constexpr ParameterInfo kParameters[] = { { /* [631] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [632] */ @@ -4955,42 +4955,42 @@ constexpr ParameterInfo kParameters[] = { { /* [633] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[1], }, { /* [634] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [635] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [636] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [637] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [638] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [639] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [640] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [641] */ @@ -5000,7 +5000,7 @@ constexpr ParameterInfo kParameters[] = { { /* [642] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [643] */ @@ -5010,22 +5010,22 @@ constexpr ParameterInfo kParameters[] = { { /* [644] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[17], + /* matcher indices */ &kMatcherIndices[24], }, { /* [645] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [646] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[39], }, { /* [647] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[1], }, { /* [648] */ @@ -5040,27 +5040,27 @@ constexpr ParameterInfo kParameters[] = { { /* [650] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { /* [651] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[12], }, { /* [652] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[24], }, { /* [653] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[12], }, { /* [654] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [655] */ @@ -5070,7 +5070,7 @@ constexpr ParameterInfo kParameters[] = { { /* [656] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [657] */ @@ -5080,7 +5080,7 @@ constexpr ParameterInfo kParameters[] = { { /* [658] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [659] */ @@ -5090,7 +5090,7 @@ constexpr ParameterInfo kParameters[] = { { /* [660] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [661] */ @@ -5100,7 +5100,7 @@ constexpr ParameterInfo kParameters[] = { { /* [662] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [663] */ @@ -5110,102 +5110,142 @@ constexpr ParameterInfo kParameters[] = { { /* [664] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [665] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[17], }, { /* [666] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[4], + /* matcher indices */ &kMatcherIndices[24], }, { /* [667] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[24], + /* matcher indices */ &kMatcherIndices[12], }, { /* [668] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[39], }, { /* [669] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[24], + /* matcher indices */ &kMatcherIndices[1], }, { /* [670] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[10], + /* matcher indices */ &kMatcherIndices[39], }, { /* [671] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[1], }, { /* [672] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[39], }, { /* [673] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[39], + /* matcher indices */ &kMatcherIndices[1], }, { /* [674] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[24], }, { /* [675] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[0], + /* matcher indices */ &kMatcherIndices[12], }, { /* [676] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [677] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [678] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [679] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [680] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[24], }, { /* [681] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[21], + /* matcher indices */ &kMatcherIndices[12], }, { /* [682] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[12], + /* matcher indices */ &kMatcherIndices[24], }, { /* [683] */ /* usage */ ParameterUsage::kNone, - /* matcher indices */ &kMatcherIndices[1], + /* matcher indices */ &kMatcherIndices[0], + }, + { + /* [684] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[12], + }, + { + /* [685] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[4], + }, + { + /* [686] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[21], + }, + { + /* [687] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[10], + }, + { + /* [688] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[21], + }, + { + /* [689] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[10], + }, + { + /* [690] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], + }, + { + /* [691] */ + /* usage */ ParameterUsage::kNone, + /* matcher indices */ &kMatcherIndices[24], }, }; @@ -5213,12 +5253,12 @@ constexpr OpenTypeInfo kOpenTypes[] = { { /* [0] */ /* name */ "T", - /* matcher index */ 36, + /* matcher index */ 37, }, { /* [1] */ /* name */ "T", - /* matcher index */ 37, + /* matcher index */ 36, }, { /* [2] */ @@ -5271,9 +5311,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[545], + /* parameters */ &kParameters[549], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5283,9 +5323,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[531], + /* parameters */ &kParameters[539], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5295,9 +5335,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[543], + /* parameters */ &kParameters[581], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5307,9 +5347,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[509], + /* parameters */ &kParameters[473], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5319,9 +5359,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[541], + /* parameters */ &kParameters[547], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5331,9 +5371,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[465], + /* parameters */ &kParameters[491], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5343,10 +5383,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[540], - /* return matcher indices */ &kMatcherIndices[97], + /* parameters */ &kParameters[548], + /* return matcher indices */ &kMatcherIndices[99], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5355,10 +5395,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[537], - /* return matcher indices */ &kMatcherIndices[97], + /* return matcher indices */ &kMatcherIndices[99], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5367,9 +5407,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[542], + /* parameters */ &kParameters[550], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5379,9 +5419,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[533], + /* parameters */ &kParameters[535], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5391,9 +5431,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[544], + /* parameters */ &kParameters[552], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5403,9 +5443,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[529], + /* parameters */ &kParameters[533], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5415,9 +5455,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[546], + /* parameters */ &kParameters[554], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5429,7 +5469,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[547], + /* parameters */ &kParameters[555], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5441,7 +5481,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[511], + /* parameters */ &kParameters[531], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5453,7 +5493,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[549], + /* parameters */ &kParameters[557], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5465,7 +5505,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[525], + /* parameters */ &kParameters[529], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5477,7 +5517,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[551], + /* parameters */ &kParameters[559], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5489,7 +5529,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[523], + /* parameters */ &kParameters[527], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5501,7 +5541,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[553], + /* parameters */ &kParameters[561], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5513,7 +5553,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[521], + /* parameters */ &kParameters[525], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5525,7 +5565,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[555], + /* parameters */ &kParameters[563], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5537,7 +5577,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], - /* parameters */ &kParameters[556], + /* parameters */ &kParameters[564], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5549,7 +5589,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], - /* parameters */ &kParameters[557], + /* parameters */ &kParameters[565], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5561,7 +5601,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], - /* parameters */ &kParameters[558], + /* parameters */ &kParameters[566], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5573,8 +5613,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], - /* parameters */ &kParameters[559], - /* return matcher indices */ &kMatcherIndices[97], + /* parameters */ &kParameters[567], + /* return matcher indices */ &kMatcherIndices[99], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5585,7 +5625,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[560], + /* parameters */ &kParameters[568], /* return matcher indices */ &kMatcherIndices[85], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5597,8 +5637,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[222], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[270], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5609,8 +5649,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[193], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[73], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5621,8 +5661,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[178], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[118], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5633,8 +5673,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[31], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[43], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5645,8 +5685,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[226], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[254], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5657,8 +5697,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[173], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[138], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5669,8 +5709,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[230], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[246], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5681,8 +5721,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[163], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[143], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5693,7 +5733,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[234], + /* parameters */ &kParameters[238], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5705,7 +5745,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[83], + /* parameters */ &kParameters[178], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5729,7 +5769,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[55], + /* parameters */ &kParameters[19], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5741,7 +5781,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[238], + /* parameters */ &kParameters[334], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5753,7 +5793,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[133], + /* parameters */ &kParameters[113], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -5765,8 +5805,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[372], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[362], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5777,8 +5817,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[381], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[455], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5789,8 +5829,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[378], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[470], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5801,8 +5841,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[338], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[310], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5813,8 +5853,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[246], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[314], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5825,8 +5865,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[153], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[103], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5837,8 +5877,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[366], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[449], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5849,8 +5889,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[262], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[294], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5861,8 +5901,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[360], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[443], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5873,8 +5913,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[266], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[290], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -5885,7 +5925,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[354], + /* parameters */ &kParameters[437], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5897,7 +5937,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[270], + /* parameters */ &kParameters[282], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5909,7 +5949,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[330], + /* parameters */ &kParameters[274], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5921,7 +5961,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[148], + /* parameters */ &kParameters[123], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5933,7 +5973,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[444], + /* parameters */ &kParameters[404], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5945,7 +5985,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[218], + /* parameters */ &kParameters[242], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -5955,10 +5995,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 4, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[314], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[322], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5967,10 +6007,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 5, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[188], - /* return matcher indices */ &kMatcherIndices[111], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5979,10 +6019,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 5, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[183], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[158], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -5991,10 +6031,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 6, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[43], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[61], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6003,10 +6043,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 4, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[302], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[318], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6015,10 +6055,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 5, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[143], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[133], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6029,8 +6069,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[423], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[461], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6041,8 +6081,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[290], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[218], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6053,8 +6093,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[286], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[302], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6065,8 +6105,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[88], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6077,8 +6117,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[402], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[371], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6089,8 +6129,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[282], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[230], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6101,7 +6141,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[384], + /* parameters */ &kParameters[365], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6113,7 +6153,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[387], + /* parameters */ &kParameters[368], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6125,7 +6165,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[254], + /* parameters */ &kParameters[286], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6137,7 +6177,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[390], + /* parameters */ &kParameters[377], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6149,7 +6189,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[399], + /* parameters */ &kParameters[383], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6161,7 +6201,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[405], + /* parameters */ &kParameters[386], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6173,7 +6213,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[334], + /* parameters */ &kParameters[342], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6185,7 +6225,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[408], + /* parameters */ &kParameters[395], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6197,7 +6237,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[417], + /* parameters */ &kParameters[401], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6209,7 +6249,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[420], + /* parameters */ &kParameters[350], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6221,7 +6261,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[298], + /* parameters */ &kParameters[258], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6233,7 +6273,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[426], + /* parameters */ &kParameters[422], /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6243,9 +6283,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[584], + /* parameters */ &kParameters[592], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6255,9 +6295,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[585], + /* parameters */ &kParameters[593], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6267,9 +6307,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[586], + /* parameters */ &kParameters[594], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6279,9 +6319,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[587], + /* parameters */ &kParameters[595], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6291,9 +6331,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[588], + /* parameters */ &kParameters[596], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6303,9 +6343,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[589], + /* parameters */ &kParameters[597], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6317,7 +6357,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[590], + /* parameters */ &kParameters[598], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6329,7 +6369,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[591], + /* parameters */ &kParameters[599], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6341,7 +6381,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[592], + /* parameters */ &kParameters[600], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6353,7 +6393,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[593], + /* parameters */ &kParameters[601], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6363,10 +6403,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[429], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[428], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6375,10 +6415,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[432], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[431], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6387,10 +6427,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 4, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[306], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[278], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6399,10 +6439,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[435], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[434], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6411,10 +6451,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[438], - /* return matcher indices */ &kMatcherIndices[111], + /* parameters */ &kParameters[446], + /* return matcher indices */ &kMatcherIndices[113], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6425,7 +6465,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[441], + /* parameters */ &kParameters[452], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6437,7 +6477,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[322], + /* parameters */ &kParameters[306], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6449,7 +6489,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[459], + /* parameters */ &kParameters[458], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6461,8 +6501,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[483], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[507], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6473,8 +6513,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[158], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[198], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6486,7 +6526,7 @@ constexpr OverloadInfo kOverloads[] = { /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[37], - /* return matcher indices */ &kMatcherIndices[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6498,7 +6538,7 @@ constexpr OverloadInfo kOverloads[] = { /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[49], - /* return matcher indices */ &kMatcherIndices[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6510,7 +6550,7 @@ constexpr OverloadInfo kOverloads[] = { /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[0], - /* return matcher indices */ &kMatcherIndices[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6521,8 +6561,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[73], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[93], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6533,8 +6573,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[25], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[7], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6545,8 +6585,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[208], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[98], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6557,8 +6597,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[13], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[67], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6570,7 +6610,7 @@ constexpr OverloadInfo kOverloads[] = { /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[326], - /* return matcher indices */ &kMatcherIndices[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6581,8 +6621,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[128], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[148], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6593,8 +6633,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[203], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[153], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6605,8 +6645,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[19], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[31], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6617,8 +6657,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[318], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[346], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6629,8 +6669,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[198], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[173], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6641,8 +6681,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[310], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[234], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6653,8 +6693,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[168], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[183], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -6665,8 +6705,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[274], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[262], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6677,8 +6717,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[93], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[193], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6689,8 +6729,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[103], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[168], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6701,8 +6741,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[67], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[25], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6714,7 +6754,7 @@ constexpr OverloadInfo kOverloads[] = { /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[250], - /* return matcher indices */ &kMatcherIndices[83], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6725,8 +6765,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[123], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[88], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6737,7 +6777,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[258], + /* parameters */ &kParameters[298], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6749,7 +6789,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[113], + /* parameters */ &kParameters[128], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6761,7 +6801,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[118], + /* parameters */ &kParameters[78], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6773,7 +6813,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[61], + /* parameters */ &kParameters[13], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6785,7 +6825,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[242], + /* parameters */ &kParameters[330], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6797,7 +6837,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[138], + /* parameters */ &kParameters[203], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6809,7 +6849,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[294], + /* parameters */ &kParameters[222], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6821,7 +6861,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[108], + /* parameters */ &kParameters[208], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6833,7 +6873,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[78], + /* parameters */ &kParameters[163], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6845,7 +6885,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[7], + /* parameters */ &kParameters[55], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6857,7 +6897,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[278], + /* parameters */ &kParameters[266], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6869,7 +6909,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[98], + /* parameters */ &kParameters[108], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -6879,9 +6919,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[579], + /* parameters */ &kParameters[587], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6891,9 +6931,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[1], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[580], + /* parameters */ &kParameters[588], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6905,7 +6945,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[581], + /* parameters */ &kParameters[589], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6917,7 +6957,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[582], + /* parameters */ &kParameters[590], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6929,7 +6969,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 2, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[0], - /* parameters */ &kParameters[583], + /* parameters */ &kParameters[591], /* return matcher indices */ &kMatcherIndices[55], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6941,7 +6981,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[411], + /* parameters */ &kParameters[419], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6953,8 +6993,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[414], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[380], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6965,8 +7005,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[375], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[425], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -6977,7 +7017,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[3], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[369], + /* parameters */ &kParameters[416], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -6989,7 +7029,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[3], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[456], + /* parameters */ &kParameters[413], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7001,7 +7041,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[3], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[453], + /* parameters */ &kParameters[410], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7013,7 +7053,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[612], + /* parameters */ &kParameters[637], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7025,8 +7065,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[611], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[636], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7037,7 +7077,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[646], + /* parameters */ &kParameters[667], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7049,8 +7089,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[645], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[666], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -7059,9 +7099,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[649], + /* parameters */ &kParameters[669], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7071,9 +7111,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[648], + /* parameters */ &kParameters[668], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7085,7 +7125,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[493], + /* parameters */ &kParameters[497], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7107,9 +7147,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[651], + /* parameters */ &kParameters[671], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7119,9 +7159,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[650], + /* parameters */ &kParameters[670], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7133,7 +7173,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[640], + /* parameters */ &kParameters[664], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7145,8 +7185,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[639], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[691], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7157,7 +7197,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[638], + /* parameters */ &kParameters[663], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7169,8 +7209,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[637], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[662], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7181,7 +7221,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[636], + /* parameters */ &kParameters[661], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7193,8 +7233,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[635], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[660], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7205,7 +7245,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[634], + /* parameters */ &kParameters[659], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7217,8 +7257,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[633], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[658], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7229,7 +7269,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[632], + /* parameters */ &kParameters[657], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7241,8 +7281,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[631], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[656], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7253,7 +7293,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[630], + /* parameters */ &kParameters[655], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, @@ -7265,8 +7305,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[629], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[654], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), /* is_deprecated */ false, }, @@ -7277,7 +7317,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[628], + /* parameters */ &kParameters[653], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7289,8 +7329,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[627], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[652], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -7301,7 +7341,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[626], + /* parameters */ &kParameters[651], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7313,8 +7353,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[625], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[650], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -7323,9 +7363,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[363], + /* parameters */ &kParameters[359], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7335,9 +7375,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[357], + /* parameters */ &kParameters[356], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7347,9 +7387,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[653], + /* parameters */ &kParameters[673], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7359,9 +7399,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[652], + /* parameters */ &kParameters[672], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7371,9 +7411,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[624], + /* parameters */ &kParameters[649], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7383,9 +7423,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[623], + /* parameters */ &kParameters[648], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7395,9 +7435,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[622], + /* parameters */ &kParameters[647], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7407,9 +7447,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[621], + /* parameters */ &kParameters[646], /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7421,7 +7461,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[620], + /* parameters */ &kParameters[645], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7433,8 +7473,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[619], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[644], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -7445,7 +7485,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[348], + /* parameters */ &kParameters[407], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -7457,8 +7497,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[345], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[464], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -7469,908 +7509,908 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[618], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [184] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[617], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [185] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[616], - /* return matcher indices */ &kMatcherIndices[138], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [186] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[615], - /* return matcher indices */ &kMatcherIndices[101], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [187] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[614], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), - /* is_deprecated */ false, - }, - { - /* [188] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[613], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), - /* is_deprecated */ false, - }, - { - /* [189] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[655], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [190] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[654], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [191] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[610], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), - /* is_deprecated */ false, - }, - { - /* [192] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[609], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), - /* is_deprecated */ false, - }, - { - /* [193] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[608], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [194] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[607], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [195] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[606], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [196] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[605], - /* return matcher indices */ &kMatcherIndices[24], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [197] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[604], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [198] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[603], - /* return matcher indices */ &kMatcherIndices[24], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [199] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[602], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [200] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[601], - /* return matcher indices */ &kMatcherIndices[24], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [201] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[600], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [202] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[599], - /* return matcher indices */ &kMatcherIndices[24], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ true, - }, - { - /* [203] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[505], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [204] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[507], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [205] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[596], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [206] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[578], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [207] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[577], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [208] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[576], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [209] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[575], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [210] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[573], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [211] */ - /* num parameters */ 2, - /* num open types */ 1, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[513], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [212] */ - /* num parameters */ 2, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[515], - /* return matcher indices */ &kMatcherIndices[39], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [213] */ - /* num parameters */ 2, - /* num open types */ 1, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[517], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [214] */ - /* num parameters */ 2, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[519], - /* return matcher indices */ &kMatcherIndices[39], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [215] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[657], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [216] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[656], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [217] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[568], - /* return matcher indices */ &kMatcherIndices[137], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [218] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[567], - /* return matcher indices */ &kMatcherIndices[103], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [219] */ - /* num parameters */ 3, - /* num open types */ 1, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[396], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [220] */ - /* num parameters */ 3, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[393], - /* return matcher indices */ &kMatcherIndices[39], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [221] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[676], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [222] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[674], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [223] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[659], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [224] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[658], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [225] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[597], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [226] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[574], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [227] */ - /* num parameters */ 1, - /* num open types */ 1, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[594], - /* return matcher indices */ &kMatcherIndices[55], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [228] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[595], - /* return matcher indices */ &kMatcherIndices[55], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [229] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[485], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [230] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[487], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [231] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[535], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [232] */ - /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[491], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [233] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[647], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [234] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[679], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [235] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[663], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [236] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[662], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [237] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[665], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [238] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[664], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [239] */ - /* num parameters */ 1, - /* num open types */ 1, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[1], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[680], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [240] */ - /* num parameters */ 1, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[548], - /* return matcher indices */ &kMatcherIndices[39], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [241] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[682], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [242] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[681], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [243] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[668], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [244] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[667], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [245] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[678], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [246] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[677], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [247] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[670], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [248] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[669], - /* return matcher indices */ &kMatcherIndices[10], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [249] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[661], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [250] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[660], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [251] */ - /* num parameters */ 3, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[450], - /* return matcher indices */ &kMatcherIndices[12], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [252] */ - /* num parameters */ 3, - /* num open types */ 0, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[447], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [253] */ - /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], /* parameters */ &kParameters[643], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { - /* [254] */ + /* [184] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], /* parameters */ &kParameters[642], - /* return matcher indices */ &kMatcherIndices[21], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { - /* [255] */ + /* [185] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[641], + /* return matcher indices */ &kMatcherIndices[138], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [186] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[640], + /* return matcher indices */ &kMatcherIndices[101], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [187] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[639], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), + /* is_deprecated */ false, + }, + { + /* [188] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[638], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), + /* is_deprecated */ false, + }, + { + /* [189] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[675], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [190] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[674], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [191] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[635], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), + /* is_deprecated */ false, + }, + { + /* [192] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[634], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment), + /* is_deprecated */ false, + }, + { + /* [193] */ + /* num parameters */ 4, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[338], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [194] */ + /* num parameters */ 4, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[226], + /* return matcher indices */ &kMatcherIndices[39], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [195] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[632], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [196] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[631], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [197] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[630], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [198] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[629], + /* return matcher indices */ &kMatcherIndices[21], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [199] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[628], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [200] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[627], + /* return matcher indices */ &kMatcherIndices[21], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [201] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[626], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [202] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[625], + /* return matcher indices */ &kMatcherIndices[21], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [203] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[624], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [204] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[623], + /* return matcher indices */ &kMatcherIndices[21], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ true, + }, + { + /* [205] */ /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[497], + /* parameters */ &kParameters[489], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [206] */ + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[487], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [207] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[622], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [208] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[621], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [209] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[620], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [210] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[619], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [211] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[618], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [212] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[617], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [213] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[485], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [214] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[483], + /* return matcher indices */ &kMatcherIndices[39], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [215] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[481], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [216] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[479], + /* return matcher indices */ &kMatcherIndices[39], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [217] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[677], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [218] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[676], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [219] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[616], + /* return matcher indices */ &kMatcherIndices[137], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [220] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[615], + /* return matcher indices */ &kMatcherIndices[103], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [221] */ + /* num parameters */ 3, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[440], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [222] */ + /* num parameters */ 3, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[467], + /* return matcher indices */ &kMatcherIndices[39], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [223] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[583], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [224] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[582], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [225] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[679], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [226] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[678], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [227] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[573], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [228] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[572], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [229] */ + /* num parameters */ 1, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[602], + /* return matcher indices */ &kMatcherIndices[55], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [230] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[603], + /* return matcher indices */ &kMatcherIndices[55], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [231] */ + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[503], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [232] */ + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[501], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [233] */ + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[477], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [234] */ + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[475], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [235] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[608], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [236] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[607], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [237] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[681], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [238] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[680], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [239] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[684], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [240] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[682], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [241] */ + /* num parameters */ 1, + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[606], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [242] */ + /* num parameters */ 1, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[605], + /* return matcher indices */ &kMatcherIndices[39], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [243] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[604], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [244] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[586], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [245] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[687], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [246] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[686], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [247] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[585], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [248] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[584], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [249] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[689], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [250] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[688], + /* return matcher indices */ &kMatcherIndices[10], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [251] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[580], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [252] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[579], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [253] */ + /* num parameters */ 3, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[374], + /* return matcher indices */ &kMatcherIndices[12], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [254] */ + /* num parameters */ 3, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[389], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [255] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[578], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [256] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[499], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[577], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [257] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[672], + /* parameters */ &kParameters[505], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [258] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[671], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[543], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8381,7 +8421,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[641], + /* parameters */ &kParameters[576], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8393,8 +8433,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[598], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[690], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8405,7 +8445,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[572], + /* parameters */ &kParameters[575], /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8417,56 +8457,56 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[571], - /* return matcher indices */ &kMatcherIndices[21], + /* parameters */ &kParameters[574], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [263] */ /* num parameters */ 1, - /* num open types */ 1, + /* num open types */ 0, /* num open numbers */ 0, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[683], - /* return matcher indices */ &kMatcherIndices[1], + /* parameters */ &kParameters[570], + /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [264] */ /* num parameters */ 1, - /* num open types */ 1, + /* num open types */ 0, /* num open numbers */ 1, - /* open types */ &kOpenTypes[0], + /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[673], - /* return matcher indices */ &kMatcherIndices[39], + /* parameters */ &kParameters[569], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [265] */ /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 2, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[2], - /* parameters */ &kParameters[539], - /* return matcher indices */ &kMatcherIndices[9], + /* num open types */ 1, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[633], + /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [266] */ /* num parameters */ 1, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[570], - /* return matcher indices */ &kMatcherIndices[81], + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[551], + /* return matcher indices */ &kMatcherIndices[39], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8474,11 +8514,11 @@ constexpr OverloadInfo kOverloads[] = { /* [267] */ /* num parameters */ 1, /* num open types */ 0, - /* num open numbers */ 0, + /* num open numbers */ 2, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[569], - /* return matcher indices */ &kMatcherIndices[81], + /* open numbers */ &kOpenNumbers[2], + /* parameters */ &kParameters[571], + /* return matcher indices */ &kMatcherIndices[9], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8489,7 +8529,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[554], + /* parameters */ &kParameters[562], /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8501,8 +8541,8 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[552], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[560], + /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8513,92 +8553,92 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[550], - /* return matcher indices */ &kMatcherIndices[83], + /* parameters */ &kParameters[558], + /* return matcher indices */ &kMatcherIndices[81], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [271] */ - /* num parameters */ 0, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[684], - /* return matcher indices */ nullptr, - /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [272] */ - /* num parameters */ 0, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[684], - /* return matcher indices */ nullptr, - /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [273] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[565], - /* return matcher indices */ &kMatcherIndices[43], + /* parameters */ &kParameters[556], + /* return matcher indices */ &kMatcherIndices[87], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, + { + /* [272] */ + /* num parameters */ 1, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[553], + /* return matcher indices */ &kMatcherIndices[87], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [273] */ + /* num parameters */ 0, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[692], + /* return matcher indices */ nullptr, + /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), + /* is_deprecated */ false, + }, { /* [274] */ - /* num parameters */ 3, + /* num parameters */ 0, /* num open types */ 0, - /* num open numbers */ 1, + /* num open numbers */ 0, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[462], - /* return matcher indices */ &kMatcherIndices[21], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[692], + /* return matcher indices */ nullptr, + /* supported_stages */ PipelineStageSet(PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [275] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num open types */ 0, - /* num open numbers */ 1, + /* num open numbers */ 0, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[473], - /* return matcher indices */ &kMatcherIndices[21], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[613], + /* return matcher indices */ &kMatcherIndices[43], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [276] */ - /* num parameters */ 1, + /* num parameters */ 3, /* num open types */ 0, - /* num open numbers */ 0, + /* num open numbers */ 1, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[561], - /* return matcher indices */ &kMatcherIndices[43], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[392], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [277] */ - /* num parameters */ 1, + /* num parameters */ 2, /* num open types */ 0, - /* num open numbers */ 0, + /* num open numbers */ 1, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[562], - /* return matcher indices */ &kMatcherIndices[43], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[545], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8609,7 +8649,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[563], + /* parameters */ &kParameters[609], /* return matcher indices */ &kMatcherIndices[43], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8621,7 +8661,7 @@ constexpr OverloadInfo kOverloads[] = { /* num open numbers */ 0, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[564], + /* parameters */ &kParameters[610], /* return matcher indices */ &kMatcherIndices[43], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8630,106 +8670,106 @@ constexpr OverloadInfo kOverloads[] = { /* [280] */ /* num parameters */ 1, /* num open types */ 0, - /* num open numbers */ 1, + /* num open numbers */ 0, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[566], - /* return matcher indices */ &kMatcherIndices[21], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[611], + /* return matcher indices */ &kMatcherIndices[43], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [281] */ - /* num parameters */ 3, + /* num parameters */ 1, /* num open types */ 0, - /* num open numbers */ 1, + /* num open numbers */ 0, /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[351], - /* return matcher indices */ &kMatcherIndices[21], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[612], + /* return matcher indices */ &kMatcherIndices[43], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [282] */ - /* num parameters */ 2, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[0], - /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[503], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), - /* is_deprecated */ false, - }, - { - /* [283] */ /* num parameters */ 1, /* num open types */ 0, /* num open numbers */ 1, /* open types */ &kOpenTypes[4], /* open numbers */ &kOpenNumbers[3], - /* parameters */ &kParameters[644], - /* return matcher indices */ &kMatcherIndices[12], + /* parameters */ &kParameters[614], + /* return matcher indices */ &kMatcherIndices[24], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [283] */ + /* num parameters */ 3, + /* num open types */ 0, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[353], + /* return matcher indices */ &kMatcherIndices[24], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [284] */ /* num parameters */ 2, - /* num open types */ 0, - /* num open numbers */ 0, - /* open types */ &kOpenTypes[4], - /* open numbers */ &kOpenNumbers[6], - /* parameters */ &kParameters[489], - /* return matcher indices */ &kMatcherIndices[93], + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[1], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[493], + /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [285] */ /* num parameters */ 1, - /* num open types */ 1, + /* num open types */ 0, /* num open numbers */ 1, - /* open types */ &kOpenTypes[2], - /* open numbers */ &kOpenNumbers[4], - /* parameters */ &kParameters[666], - /* return matcher indices */ &kMatcherIndices[43], + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[3], + /* parameters */ &kParameters[665], + /* return matcher indices */ &kMatcherIndices[12], /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [286] */ - /* num parameters */ 1, - /* num open types */ 1, - /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], - /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[675], - /* return matcher indices */ &kMatcherIndices[1], - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), + /* num parameters */ 2, + /* num open types */ 0, + /* num open numbers */ 0, + /* open types */ &kOpenTypes[4], + /* open numbers */ &kOpenNumbers[6], + /* parameters */ &kParameters[499], + /* return matcher indices */ &kMatcherIndices[91], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [287] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], - /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[481], - /* return matcher indices */ nullptr, - /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), + /* open types */ &kOpenTypes[2], + /* open numbers */ &kOpenNumbers[4], + /* parameters */ &kParameters[685], + /* return matcher indices */ &kMatcherIndices[43], + /* supported_stages */ PipelineStageSet(PipelineStage::kVertex, PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [288] */ - /* num parameters */ 2, + /* num parameters */ 1, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[479], + /* parameters */ &kParameters[683], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8739,10 +8779,10 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[477], - /* return matcher indices */ &kMatcherIndices[1], + /* parameters */ &kParameters[509], + /* return matcher indices */ nullptr, /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8751,9 +8791,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[475], + /* parameters */ &kParameters[511], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8763,9 +8803,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[471], + /* parameters */ &kParameters[513], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8775,9 +8815,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[469], + /* parameters */ &kParameters[515], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8787,9 +8827,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[467], + /* parameters */ &kParameters[517], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8799,9 +8839,9 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[527], + /* parameters */ &kParameters[519], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, @@ -8811,22 +8851,46 @@ constexpr OverloadInfo kOverloads[] = { /* num parameters */ 2, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[501], + /* parameters */ &kParameters[521], /* return matcher indices */ &kMatcherIndices[1], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, { /* [296] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[5], + /* parameters */ &kParameters[523], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [297] */ + /* num parameters */ 2, + /* num open types */ 1, + /* num open numbers */ 1, + /* open types */ &kOpenTypes[0], + /* open numbers */ &kOpenNumbers[5], + /* parameters */ &kParameters[541], + /* return matcher indices */ &kMatcherIndices[1], + /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), + /* is_deprecated */ false, + }, + { + /* [298] */ /* num parameters */ 3, /* num open types */ 1, /* num open numbers */ 1, - /* open types */ &kOpenTypes[1], + /* open types */ &kOpenTypes[0], /* open numbers */ &kOpenNumbers[5], - /* parameters */ &kParameters[342], - /* return matcher indices */ &kMatcherIndices[127], + /* parameters */ &kParameters[398], + /* return matcher indices */ &kMatcherIndices[105], /* supported_stages */ PipelineStageSet(PipelineStage::kFragment, PipelineStage::kCompute), /* is_deprecated */ false, }, @@ -8838,76 +8902,76 @@ constexpr BuiltinInfo kBuiltins[] = { /* fn abs(T) -> T */ /* fn abs(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[263], + /* overloads */ &kOverloads[265], }, { /* [1] */ /* fn acos(f32) -> f32 */ /* fn acos(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[257], + /* overloads */ &kOverloads[259], }, { /* [2] */ /* fn all(bool) -> bool */ /* fn all(vec) -> bool */ /* num overloads */ 2, - /* overloads */ &kOverloads[247], + /* overloads */ &kOverloads[249], }, { /* [3] */ /* fn any(bool) -> bool */ /* fn any(vec) -> bool */ /* num overloads */ 2, - /* overloads */ &kOverloads[243], + /* overloads */ &kOverloads[245], }, { /* [4] */ /* fn arrayLength(ptr, A>) -> u32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[285], + /* overloads */ &kOverloads[287], }, { /* [5] */ /* fn asin(f32) -> f32 */ /* fn asin(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[237], + /* overloads */ &kOverloads[239], }, { /* [6] */ /* fn atan(f32) -> f32 */ /* fn atan(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[235], + /* overloads */ &kOverloads[237], }, { /* [7] */ /* fn atan2(f32, f32) -> f32 */ /* fn atan2(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[229], + /* overloads */ &kOverloads[231], }, { /* [8] */ /* fn ceil(f32) -> f32 */ /* fn ceil(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[223], + /* overloads */ &kOverloads[225], }, { /* [9] */ /* fn clamp(T, T, T) -> T */ /* fn clamp(vec, vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[219], + /* overloads */ &kOverloads[221], }, { /* [10] */ /* fn cos(f32) -> f32 */ /* fn cos(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[215], + /* overloads */ &kOverloads[217], }, { /* [11] */ @@ -8941,7 +9005,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* [15] */ /* fn cross(vec3, vec3) -> vec3 */ /* num overloads */ 1, - /* overloads */ &kOverloads[284], + /* overloads */ &kOverloads[286], }, { /* [16] */ @@ -8954,7 +9018,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* [17] */ /* fn determinant(mat) -> f32 */ /* num overloads */ 1, - /* overloads */ &kOverloads[283], + /* overloads */ &kOverloads[285], }, { /* [18] */ @@ -8967,7 +9031,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* [19] */ /* fn dot(vec, vec) -> T */ /* num overloads */ 1, - /* overloads */ &kOverloads[282], + /* overloads */ &kOverloads[284], }, { /* [20] */ @@ -9036,7 +9100,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* [29] */ /* fn faceForward(vec, vec, vec) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[281], + /* overloads */ &kOverloads[283], }, { /* [30] */ @@ -9103,83 +9167,90 @@ constexpr BuiltinInfo kBuiltins[] = { }, { /* [39] */ - /* fn inverseSqrt(f32) -> f32 */ - /* fn inverseSqrt(vec) -> vec */ + /* fn insertBits(T, T, u32, u32) -> T */ + /* fn insertBits(vec, vec, u32, u32) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[193], }, { /* [40] */ - /* fn isFinite(f32) -> bool */ - /* fn isFinite(vec) -> vec */ + /* fn inverseSqrt(f32) -> f32 */ + /* fn inverseSqrt(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[195], }, { /* [41] */ - /* fn isInf(f32) -> bool */ - /* fn isInf(vec) -> vec */ + /* fn isFinite(f32) -> bool */ + /* fn isFinite(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[197], }, { /* [42] */ - /* fn isNan(f32) -> bool */ - /* fn isNan(vec) -> vec */ + /* fn isInf(f32) -> bool */ + /* fn isInf(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[199], }, { /* [43] */ - /* fn isNormal(f32) -> bool */ - /* fn isNormal(vec) -> vec */ + /* fn isNan(f32) -> bool */ + /* fn isNan(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[201], }, { /* [44] */ - /* fn ldexp(f32, i32) -> f32 */ - /* fn ldexp(vec, vec) -> vec */ + /* fn isNormal(f32) -> bool */ + /* fn isNormal(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[203], }, { /* [45] */ - /* fn length(f32) -> f32 */ - /* fn length(vec) -> f32 */ + /* fn ldexp(f32, i32) -> f32 */ + /* fn ldexp(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[205], }, { /* [46] */ - /* fn log(f32) -> f32 */ - /* fn log(vec) -> vec */ + /* fn length(f32) -> f32 */ + /* fn length(vec) -> f32 */ /* num overloads */ 2, /* overloads */ &kOverloads[207], }, { /* [47] */ - /* fn log2(f32) -> f32 */ - /* fn log2(vec) -> vec */ + /* fn log(f32) -> f32 */ + /* fn log(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[209], }, { /* [48] */ - /* fn max(T, T) -> T */ - /* fn max(vec, vec) -> vec */ + /* fn log2(f32) -> f32 */ + /* fn log2(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[211], }, { /* [49] */ - /* fn min(T, T) -> T */ - /* fn min(vec, vec) -> vec */ + /* fn max(T, T) -> T */ + /* fn max(vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[213], }, { /* [50] */ + /* fn min(T, T) -> T */ + /* fn min(vec, vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[215], + }, + { + /* [51] */ /* fn mix(f32, f32, f32) -> f32 */ /* fn mix(vec, vec, vec) -> vec */ /* fn mix(vec, vec, f32) -> vec */ @@ -9187,90 +9258,90 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[139], }, { - /* [51] */ + /* [52] */ /* fn modf(f32) -> __modf_result */ /* fn modf(vec) -> __modf_result_vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[217], + /* overloads */ &kOverloads[219], }, { - /* [52] */ + /* [53] */ /* fn normalize(vec) -> vec */ /* num overloads */ 1, + /* overloads */ &kOverloads[282], + }, + { + /* [54] */ + /* fn pack2x16float(vec2) -> u32 */ + /* num overloads */ 1, + /* overloads */ &kOverloads[275], + }, + { + /* [55] */ + /* fn pack2x16snorm(vec2) -> u32 */ + /* num overloads */ 1, + /* overloads */ &kOverloads[281], + }, + { + /* [56] */ + /* fn pack2x16unorm(vec2) -> u32 */ + /* num overloads */ 1, /* overloads */ &kOverloads[280], }, { - /* [53] */ - /* fn pack2x16float(vec2) -> u32 */ - /* num overloads */ 1, - /* overloads */ &kOverloads[273], - }, - { - /* [54] */ - /* fn pack2x16snorm(vec2) -> u32 */ + /* [57] */ + /* fn pack4x8snorm(vec4) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[279], }, { - /* [55] */ - /* fn pack2x16unorm(vec2) -> u32 */ + /* [58] */ + /* fn pack4x8unorm(vec4) -> u32 */ /* num overloads */ 1, /* overloads */ &kOverloads[278], }, { - /* [56] */ - /* fn pack4x8snorm(vec4) -> u32 */ - /* num overloads */ 1, - /* overloads */ &kOverloads[277], - }, - { - /* [57] */ - /* fn pack4x8unorm(vec4) -> u32 */ - /* num overloads */ 1, - /* overloads */ &kOverloads[276], - }, - { - /* [58] */ + /* [59] */ /* fn pow(f32, f32) -> f32 */ /* fn pow(vec, vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[231], - }, - { - /* [59] */ - /* fn radians(f32) -> f32 */ - /* fn radians(vec) -> vec */ - /* num overloads */ 2, /* overloads */ &kOverloads[233], }, { /* [60] */ - /* fn reflect(vec, vec) -> vec */ - /* num overloads */ 1, - /* overloads */ &kOverloads[275], + /* fn radians(f32) -> f32 */ + /* fn radians(vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[235], }, { /* [61] */ - /* fn refract(vec, vec, f32) -> vec */ + /* fn reflect(vec, vec) -> vec */ /* num overloads */ 1, - /* overloads */ &kOverloads[274], + /* overloads */ &kOverloads[277], }, { /* [62] */ - /* fn reverseBits(T) -> T */ - /* fn reverseBits(vec) -> vec */ - /* num overloads */ 2, - /* overloads */ &kOverloads[239], + /* fn refract(vec, vec, f32) -> vec */ + /* num overloads */ 1, + /* overloads */ &kOverloads[276], }, { /* [63] */ - /* fn round(f32) -> f32 */ - /* fn round(vec) -> vec */ + /* fn reverseBits(T) -> T */ + /* fn reverseBits(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[241], }, { /* [64] */ + /* fn round(f32) -> f32 */ + /* fn round(vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[243], + }, + { + /* [65] */ /* fn select(T, T, bool) -> T */ /* fn select(vec, vec, bool) -> vec */ /* fn select(vec, vec, vec) -> vec */ @@ -9278,118 +9349,118 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[142], }, { - /* [65] */ + /* [66] */ /* fn sign(f32) -> f32 */ /* fn sign(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[245], - }, - { - /* [66] */ - /* fn sin(f32) -> f32 */ - /* fn sin(vec) -> vec */ - /* num overloads */ 2, - /* overloads */ &kOverloads[221], + /* overloads */ &kOverloads[247], }, { /* [67] */ - /* fn sinh(f32) -> f32 */ - /* fn sinh(vec) -> vec */ + /* fn sin(f32) -> f32 */ + /* fn sin(vec) -> vec */ /* num overloads */ 2, - /* overloads */ &kOverloads[249], + /* overloads */ &kOverloads[223], }, { /* [68] */ - /* fn smoothStep(f32, f32, f32) -> f32 */ - /* fn smoothStep(vec, vec, vec) -> vec */ + /* fn sinh(f32) -> f32 */ + /* fn sinh(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[251], }, { /* [69] */ - /* fn sqrt(f32) -> f32 */ - /* fn sqrt(vec) -> vec */ + /* fn smoothStep(f32, f32, f32) -> f32 */ + /* fn smoothStep(vec, vec, vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[253], }, { /* [70] */ - /* fn step(f32, f32) -> f32 */ - /* fn step(vec, vec) -> vec */ + /* fn sqrt(f32) -> f32 */ + /* fn sqrt(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[255], }, { /* [71] */ - /* fn storageBarrier() */ - /* num overloads */ 1, - /* overloads */ &kOverloads[272], + /* fn step(f32, f32) -> f32 */ + /* fn step(vec, vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[257], }, { /* [72] */ - /* fn tan(f32) -> f32 */ - /* fn tan(vec) -> vec */ - /* num overloads */ 2, - /* overloads */ &kOverloads[259], + /* fn storageBarrier() */ + /* num overloads */ 1, + /* overloads */ &kOverloads[274], }, { /* [73] */ - /* fn tanh(f32) -> f32 */ - /* fn tanh(vec) -> vec */ - /* num overloads */ 2, - /* overloads */ &kOverloads[225], - }, - { - /* [74] */ - /* fn transpose(mat) -> mat */ - /* num overloads */ 1, - /* overloads */ &kOverloads[265], - }, - { - /* [75] */ - /* fn trunc(f32) -> f32 */ - /* fn trunc(vec) -> vec */ + /* fn tan(f32) -> f32 */ + /* fn tan(vec) -> vec */ /* num overloads */ 2, /* overloads */ &kOverloads[261], }, { - /* [76] */ - /* fn unpack2x16float(u32) -> vec2 */ - /* num overloads */ 1, - /* overloads */ &kOverloads[266], + /* [74] */ + /* fn tanh(f32) -> f32 */ + /* fn tanh(vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[227], }, { - /* [77] */ - /* fn unpack2x16snorm(u32) -> vec2 */ + /* [75] */ + /* fn transpose(mat) -> mat */ /* num overloads */ 1, /* overloads */ &kOverloads[267], }, { - /* [78] */ - /* fn unpack2x16unorm(u32) -> vec2 */ + /* [76] */ + /* fn trunc(f32) -> f32 */ + /* fn trunc(vec) -> vec */ + /* num overloads */ 2, + /* overloads */ &kOverloads[263], + }, + { + /* [77] */ + /* fn unpack2x16float(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[268], }, { - /* [79] */ - /* fn unpack4x8snorm(u32) -> vec4 */ + /* [78] */ + /* fn unpack2x16snorm(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[269], }, { - /* [80] */ - /* fn unpack4x8unorm(u32) -> vec4 */ + /* [79] */ + /* fn unpack2x16unorm(u32) -> vec2 */ /* num overloads */ 1, /* overloads */ &kOverloads[270], }, { - /* [81] */ - /* fn workgroupBarrier() */ + /* [80] */ + /* fn unpack4x8snorm(u32) -> vec4 */ /* num overloads */ 1, /* overloads */ &kOverloads[271], }, + { + /* [81] */ + /* fn unpack4x8unorm(u32) -> vec4 */ + /* num overloads */ 1, + /* overloads */ &kOverloads[272], + }, { /* [82] */ + /* fn workgroupBarrier() */ + /* num overloads */ 1, + /* overloads */ &kOverloads[273], + }, + { + /* [83] */ /* fn textureDimensions(texture: texture_1d) -> i32 */ /* fn textureDimensions(texture: texture_1d, level: i32) -> i32 */ /* fn textureDimensions(texture: texture_2d) -> vec2 */ @@ -9421,7 +9492,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[0], }, { - /* [83] */ + /* [84] */ /* fn textureGather(component: i32, texture: texture_2d, sampler: sampler, coords: vec2) -> vec4 */ /* fn textureGather(component: i32, texture: texture_2d, sampler: sampler, coords: vec2, offset: vec2) -> vec4 */ /* fn textureGather(component: i32, texture: texture_2d_array, sampler: sampler, coords: vec2, array_index: i32) -> vec4 */ @@ -9438,7 +9509,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[57], }, { - /* [84] */ + /* [85] */ /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32) -> vec4 */ /* fn textureGatherCompare(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32, offset: vec2) -> vec4 */ /* fn textureGatherCompare(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2, array_index: i32, depth_ref: f32) -> vec4 */ @@ -9449,7 +9520,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[116], }, { - /* [85] */ + /* [86] */ /* fn textureNumLayers(texture: texture_2d_array) -> i32 */ /* fn textureNumLayers(texture: texture_cube_array) -> i32 */ /* fn textureNumLayers(texture: texture_depth_2d_array) -> i32 */ @@ -9459,7 +9530,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[134], }, { - /* [86] */ + /* [87] */ /* fn textureNumLevels(texture: texture_1d) -> i32 */ /* fn textureNumLevels(texture: texture_2d) -> i32 */ /* fn textureNumLevels(texture: texture_2d_array) -> i32 */ @@ -9474,14 +9545,14 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[81], }, { - /* [87] */ + /* [88] */ /* fn textureNumSamples(texture: texture_multisampled_2d) -> i32 */ /* fn textureNumSamples(texture: texture_depth_multisampled_2d) -> i32 */ /* num overloads */ 2, - /* overloads */ &kOverloads[227], + /* overloads */ &kOverloads[229], }, { - /* [88] */ + /* [89] */ /* 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 */ @@ -9501,7 +9572,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[42], }, { - /* [89] */ + /* [90] */ /* 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 */ @@ -9514,7 +9585,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[108], }, { - /* [90] */ + /* [91] */ /* 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 */ @@ -9525,7 +9596,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[128], }, { - /* [91] */ + /* [92] */ /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32) -> f32 */ /* fn textureSampleCompareLevel(texture: texture_depth_2d, sampler: sampler_comparison, coords: vec2, depth_ref: f32, offset: vec2) -> f32 */ /* fn textureSampleCompareLevel(texture: texture_depth_2d_array, sampler: sampler_comparison, coords: vec2, array_index: i32, depth_ref: f32) -> f32 */ @@ -9536,7 +9607,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[122], }, { - /* [92] */ + /* [93] */ /* 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 */ @@ -9549,7 +9620,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[100], }, { - /* [93] */ + /* [94] */ /* 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 */ @@ -9569,7 +9640,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[27], }, { - /* [94] */ + /* [95] */ /* 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) */ @@ -9586,7 +9657,7 @@ constexpr BuiltinInfo kBuiltins[] = { /* overloads */ &kOverloads[69], }, { - /* [95] */ + /* [96] */ /* 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 */ @@ -9599,72 +9670,72 @@ constexpr BuiltinInfo kBuiltins[] = { /* num overloads */ 9, /* overloads */ &kOverloads[91], }, - { - /* [96] */ - /* fn atomicLoad(ptr, read_write>) -> T */ - /* num overloads */ 1, - /* overloads */ &kOverloads[286], - }, { /* [97] */ - /* fn atomicStore(ptr, read_write>, T) */ - /* num overloads */ 1, - /* overloads */ &kOverloads[287], - }, - { - /* [98] */ - /* fn atomicAdd(ptr, read_write>, T) -> T */ + /* fn atomicLoad(ptr, read_write>) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[288], }, { - /* [99] */ - /* fn atomicSub(ptr, read_write>, T) -> T */ + /* [98] */ + /* fn atomicStore(ptr, read_write>, T) */ /* num overloads */ 1, /* overloads */ &kOverloads[289], }, { - /* [100] */ - /* fn atomicMax(ptr, read_write>, T) -> T */ + /* [99] */ + /* fn atomicAdd(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[290], }, { - /* [101] */ - /* fn atomicMin(ptr, read_write>, T) -> T */ + /* [100] */ + /* fn atomicSub(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[291], }, { - /* [102] */ - /* fn atomicAnd(ptr, read_write>, T) -> T */ + /* [101] */ + /* fn atomicMax(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[292], }, { - /* [103] */ - /* fn atomicOr(ptr, read_write>, T) -> T */ + /* [102] */ + /* fn atomicMin(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[293], }, { - /* [104] */ - /* fn atomicXor(ptr, read_write>, T) -> T */ + /* [103] */ + /* fn atomicAnd(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[294], }, { - /* [105] */ - /* fn atomicExchange(ptr, read_write>, T) -> T */ + /* [104] */ + /* fn atomicOr(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[295], }, { - /* [106] */ - /* fn atomicCompareExchangeWeak(ptr, read_write>, T, T) -> vec2 */ + /* [105] */ + /* fn atomicXor(ptr, read_write>, T) -> T */ /* num overloads */ 1, /* overloads */ &kOverloads[296], }, + { + /* [106] */ + /* fn atomicExchange(ptr, read_write>, T) -> T */ + /* num overloads */ 1, + /* overloads */ &kOverloads[297], + }, + { + /* [107] */ + /* fn atomicCompareExchangeWeak(ptr, read_write>, T, T) -> vec2 */ + /* num overloads */ 1, + /* overloads */ &kOverloads[298], + }, }; // clang-format on diff --git a/src/tint/builtins.def b/src/tint/builtins.def index 670d878b0d..4771afb24b 100644 --- a/src/tint/builtins.def +++ b/src/tint/builtins.def @@ -336,6 +336,8 @@ fn frexp(vec) -> __frexp_result_vec [[stage("fragment")]] fn fwidthCoarse(vec) -> vec [[stage("fragment")]] fn fwidthFine(f32) -> f32 [[stage("fragment")]] fn fwidthFine(vec) -> vec +fn insertBits(T, T, u32, u32) -> T +fn insertBits(vec, vec, u32, u32) -> vec fn inverseSqrt(f32) -> f32 fn inverseSqrt(vec) -> vec [[deprecated]] fn isFinite(f32) -> bool diff --git a/src/tint/program_builder.h b/src/tint/program_builder.h index dc79eeac4b..c245c4287a 100644 --- a/src/tint/program_builder.h +++ b/src/tint/program_builder.h @@ -1760,6 +1760,16 @@ class ProgramBuilder { Expr(std::forward(rhs))); } + /// @param lhs the left hand argument to the xor operation + /// @param rhs the right hand argument to the xor operation + /// @returns a `ast::BinaryExpression` bitwise xor-ing `lhs` and `rhs` + template + const ast::BinaryExpression* Xor(LHS&& lhs, RHS&& rhs) { + return create(ast::BinaryOp::kXor, + Expr(std::forward(lhs)), + Expr(std::forward(rhs))); + } + /// @param lhs the left hand argument to the greater than operation /// @param rhs the right hand argument to the greater than operation /// @returns a `ast::BinaryExpression` of `lhs` > `rhs` diff --git a/src/tint/reader/spirv/function.cc b/src/tint/reader/spirv/function.cc index fd98cdac60..fe32d35138 100644 --- a/src/tint/reader/spirv/function.cc +++ b/src/tint/reader/spirv/function.cc @@ -443,6 +443,11 @@ sem::BuiltinType GetBuiltin(SpvOp opcode) { switch (opcode) { case SpvOpBitCount: return sem::BuiltinType::kCountOneBits; + case SpvOpBitFieldInsert: + return sem::BuiltinType::kInsertBits; + case SpvOpBitFieldSExtract: + case SpvOpBitFieldUExtract: + return sem::BuiltinType::kExtractBits; case SpvOpBitReverse: return sem::BuiltinType::kReverseBits; case SpvOpDot: @@ -463,9 +468,6 @@ sem::BuiltinType GetBuiltin(SpvOp opcode) { return sem::BuiltinType::kDpdxCoarse; case SpvOpDPdyCoarse: return sem::BuiltinType::kDpdyCoarse; - case SpvOpBitFieldSExtract: - case SpvOpBitFieldUExtract: - return sem::BuiltinType::kExtractBits; case SpvOpFwidthCoarse: return sem::BuiltinType::kFwidthCoarse; default: diff --git a/src/tint/reader/spirv/function_bit_test.cc b/src/tint/reader/spirv/function_bit_test.cc index 524d1dd4a6..722cc2abb9 100644 --- a/src/tint/reader/spirv/function_bit_test.cc +++ b/src/tint/reader/spirv/function_bit_test.cc @@ -901,6 +901,78 @@ TEST_F(SpvUnaryBitTest, BitReverse_IntVector_IntVector) { << body; } +TEST_F(SpvUnaryBitTest, InsertBits_Int) { + const auto assembly = BitTestPreamble() + R"( + %1 = OpBitFieldInsert %v2int %int_30 %int_40 %uint_10 %uint_20 + OpReturn + OpFunctionEnd + )"; + auto p = parser(test::Assemble(assembly)); + ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions()); + auto fe = p->function_emitter(100); + EXPECT_TRUE(fe.EmitBody()) << p->error(); + auto ast_body = fe.ast_body(); + auto body = test::ToString(p->program(), ast_body); + EXPECT_THAT(body, + HasSubstr("let x_1 : vec2 = insertBits(30, 40, 10u, 20u);")) + << body; +} + +TEST_F(SpvUnaryBitTest, InsertBits_IntVector) { + const auto assembly = BitTestPreamble() + R"( + %1 = OpBitFieldInsert %v2int %v2int_30_40 %v2int_40_30 %uint_10 %uint_20 + OpReturn + OpFunctionEnd + )"; + auto p = parser(test::Assemble(assembly)); + ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions()); + auto fe = p->function_emitter(100); + EXPECT_TRUE(fe.EmitBody()) << p->error(); + auto ast_body = fe.ast_body(); + auto body = test::ToString(p->program(), ast_body); + EXPECT_THAT( + body, + HasSubstr( + R"(let x_1 : vec2 = insertBits(vec2(30, 40), vec2(40, 30), 10u, 20u);)")) + << body; +} + +TEST_F(SpvUnaryBitTest, InsertBits_Uint) { + const auto assembly = BitTestPreamble() + R"( + %1 = OpBitFieldInsert %v2uint %uint_20 %uint_10 %uint_10 %uint_20 + OpReturn + OpFunctionEnd + )"; + auto p = parser(test::Assemble(assembly)); + ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions()); + auto fe = p->function_emitter(100); + EXPECT_TRUE(fe.EmitBody()) << p->error(); + auto ast_body = fe.ast_body(); + auto body = test::ToString(p->program(), ast_body); + EXPECT_THAT( + body, HasSubstr("let x_1 : vec2 = insertBits(20u, 10u, 10u, 20u);")) + << body; +} + +TEST_F(SpvUnaryBitTest, InsertBits_UintVector) { + const auto assembly = BitTestPreamble() + R"( + %1 = OpBitFieldInsert %v2uint %v2uint_10_20 %v2uint_20_10 %uint_10 %uint_20 + OpReturn + OpFunctionEnd + )"; + auto p = parser(test::Assemble(assembly)); + ASSERT_TRUE(p->BuildAndParseInternalModuleExceptFunctions()); + auto fe = p->function_emitter(100); + EXPECT_TRUE(fe.EmitBody()) << p->error(); + auto ast_body = fe.ast_body(); + auto body = test::ToString(p->program(), ast_body); + EXPECT_THAT( + body, + HasSubstr( + R"(let x_1 : vec2 = insertBits(vec2(10u, 20u), vec2(20u, 10u), 10u, 20u);)")) + << body; +} + TEST_F(SpvUnaryBitTest, ExtractBits_Int) { const auto assembly = BitTestPreamble() + R"( %1 = OpBitFieldSExtract %v2int %int_30 %uint_10 %uint_20 @@ -973,8 +1045,6 @@ TEST_F(SpvUnaryBitTest, ExtractBits_UintVector) { << body; } -// TODO(dneto): OpBitFieldInsert - } // namespace } // namespace spirv } // namespace reader diff --git a/src/tint/sem/builtin_type.cc b/src/tint/sem/builtin_type.cc index b3a463ab77..9f95e705e9 100644 --- a/src/tint/sem/builtin_type.cc +++ b/src/tint/sem/builtin_type.cc @@ -147,6 +147,9 @@ BuiltinType ParseBuiltinType(const std::string& name) { if (name == "fwidthFine") { return BuiltinType::kFwidthFine; } + if (name == "insertBits") { + return BuiltinType::kInsertBits; + } if (name == "inverseSqrt") { return BuiltinType::kInverseSqrt; } @@ -436,6 +439,8 @@ const char* str(BuiltinType i) { return "fwidthCoarse"; case BuiltinType::kFwidthFine: return "fwidthFine"; + case BuiltinType::kInsertBits: + return "insertBits"; case BuiltinType::kInverseSqrt: return "inverseSqrt"; case BuiltinType::kIsFinite: diff --git a/src/tint/sem/builtin_type.h b/src/tint/sem/builtin_type.h index df65da7d05..c53468ee9d 100644 --- a/src/tint/sem/builtin_type.h +++ b/src/tint/sem/builtin_type.h @@ -73,6 +73,7 @@ enum class BuiltinType { kFwidth, kFwidthCoarse, kFwidthFine, + kInsertBits, kInverseSqrt, kIsFinite, kIsInf, diff --git a/src/tint/transform/builtin_polyfill.cc b/src/tint/transform/builtin_polyfill.cc index fb20a20be2..9cd2c678ef 100644 --- a/src/tint/transform/builtin_polyfill.cc +++ b/src/tint/transform/builtin_polyfill.cc @@ -55,7 +55,7 @@ struct BuiltinPolyfill::State { if (width == 1) { return b.ty.u32(); } - return b.ty.vec(width); + return b.ty.vec(width); }; auto V = [&](uint32_t value) -> const ast::Expression* { return ScalarOrVector(width, value); @@ -117,7 +117,7 @@ struct BuiltinPolyfill::State { if (width == 1) { return b.ty.u32(); } - return b.ty.vec(width); + return b.ty.vec(width); }; auto V = [&](uint32_t value) -> const ast::Expression* { return ScalarOrVector(width, value); @@ -187,7 +187,7 @@ struct BuiltinPolyfill::State { if (width == 1) { return value; } - return b.Construct(b.ty.vec(width), value); + return b.Construct(b.ty.vec(width), value); }; ast::StatementList body = { @@ -236,7 +236,7 @@ struct BuiltinPolyfill::State { if (width == 1) { return b.ty.u32(); } - return b.ty.vec(width); + return b.ty.vec(width); }; auto V = [&](uint32_t value) -> const ast::Expression* { return ScalarOrVector(width, value); @@ -317,7 +317,7 @@ struct BuiltinPolyfill::State { if (width == 1) { return b.ty.u32(); } - return b.ty.vec(width); + return b.ty.vec(width); }; auto V = [&](uint32_t value) -> const ast::Expression* { return ScalarOrVector(width, value); @@ -373,16 +373,90 @@ struct BuiltinPolyfill::State { return name; } + /// Builds the polyfill function for the `insertBits` builtin + /// @param ty the parameter and return type for the function + /// @return the polyfill function name + Symbol insertBits(const sem::Type* ty) { + auto name = b.Symbols().New("tint_insert_bits"); + uint32_t width = WidthOf(ty); + + constexpr uint32_t W = 32u; // 32-bit + + auto V = [&](auto value) -> const ast::Expression* { + const ast::Expression* expr = b.Expr(value); + if (!ty->is_unsigned_scalar_or_vector()) { + expr = b.Construct(expr); + } + if (ty->Is()) { + expr = b.Construct(T(ty), expr); + } + return expr; + }; + auto U = [&](auto value) -> const ast::Expression* { + if (width == 1) { + return b.Expr(value); + } + return b.vec(b.ty.u32(), width, value); + }; + + ast::StatementList body = { + b.Decl(b.Const("s", nullptr, b.Call("min", "offset", W))), + b.Decl(b.Const("e", nullptr, b.Call("min", W, b.Add("s", "count")))), + }; + + switch (polyfill.insert_bits) { + case Level::kFull: + // let mask = ((1 << s) - 1) ^ ((1 << e) - 1) + body.emplace_back(b.Decl(b.Const( + "mask", nullptr, + b.Xor(b.Sub(b.Shl(1u, "s"), 1u), b.Sub(b.Shl(1u, "e"), 1u))))); + // return ((n << s) & mask) | (v & ~mask) + body.emplace_back(b.Return(b.Or(b.And(b.Shl("n", U("s")), V("mask")), + b.And("v", V(b.Complement("mask")))))); + break; + case Level::kClampParameters: + body.emplace_back( + b.Return(b.Call("insertBits", "v", "n", "s", b.Sub("e", "s")))); + break; + default: + TINT_ICE(Transform, b.Diagnostics()) + << "unhandled polyfill level: " + << static_cast(polyfill.insert_bits); + return {}; + } + + b.Func(name, + { + b.Param("v", T(ty)), + b.Param("n", T(ty)), + b.Param("offset", b.ty.u32()), + b.Param("count", b.ty.u32()), + }, + T(ty), body); + + return name; + } + private: + /// Aliases + using u32 = ProgramBuilder::u32; + using i32 = ProgramBuilder::i32; + + /// @returns the AST type for the given sem type const ast::Type* T(const sem::Type* ty) const { return CreateASTTypeFor(ctx, ty); } + + /// @returns 1 if `ty` is not a vector, otherwise the vector width uint32_t WidthOf(const sem::Type* ty) const { if (auto* v = ty->As()) { return v->Width(); } return 1; } + + /// @returns a scalar or vector with the given width, with each element with + /// the given value. template const ast::Expression* ScalarOrVector(uint32_t width, T value) const { if (width == 1) { @@ -430,6 +504,11 @@ bool BuiltinPolyfill::ShouldRun(const Program* program, return true; } break; + case sem::BuiltinType::kInsertBits: + if (builtins.insert_bits != Level::kNone) { + return true; + } + break; default: break; } @@ -494,6 +573,13 @@ void BuiltinPolyfill::Run(CloneContext& ctx, }); } break; + case sem::BuiltinType::kInsertBits: + if (builtins.insert_bits != Level::kNone) { + polyfill = utils::GetOrCreate(polyfills, builtin, [&] { + return s.insertBits(builtin->ReturnType()); + }); + } + break; default: break; } diff --git a/src/tint/transform/builtin_polyfill.h b/src/tint/transform/builtin_polyfill.h index b25c878f12..131e08ac47 100644 --- a/src/tint/transform/builtin_polyfill.h +++ b/src/tint/transform/builtin_polyfill.h @@ -50,6 +50,8 @@ class BuiltinPolyfill : public Castable { bool first_leading_bit = false; /// Should `firstTrailingBit()` be polyfilled? bool first_trailing_bit = false; + /// Should `insertBits()` be polyfilled? + Level insert_bits = Level::kNone; }; /// Config is consumed by the BuiltinPolyfill transform. diff --git a/src/tint/transform/builtin_polyfill_test.cc b/src/tint/transform/builtin_polyfill_test.cc index 4ac51fdcc7..49e0471259 100644 --- a/src/tint/transform/builtin_polyfill_test.cc +++ b/src/tint/transform/builtin_polyfill_test.cc @@ -889,6 +889,233 @@ fn f() { EXPECT_EQ(expect, str(got)); } +//////////////////////////////////////////////////////////////////////////////// +// insertBits +//////////////////////////////////////////////////////////////////////////////// +DataMap polyfillInsertBits(Level level) { + BuiltinPolyfill::Builtins builtins; + builtins.insert_bits = level; + DataMap data; + data.Add(builtins); + return data; +} + +TEST_F(BuiltinPolyfillTest, ShouldRunInsertBits) { + auto* src = R"( +fn f() { + insertBits(1234, 5678, 5u, 6u); +} +)"; + + EXPECT_FALSE(ShouldRun(src)); + EXPECT_FALSE( + ShouldRun(src, polyfillInsertBits(Level::kNone))); + EXPECT_TRUE(ShouldRun( + src, polyfillInsertBits(Level::kClampParameters))); + EXPECT_TRUE( + ShouldRun(src, polyfillInsertBits(Level::kFull))); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Full_i32) { + auto* src = R"( +fn f() { + let r : i32 = insertBits(1234, 5678, 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : i32, n : i32, offset : u32, count : u32) -> i32 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + let mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & i32(mask)) | (v & i32(~(mask)))); +} + +fn f() { + let r : i32 = tint_insert_bits(1234, 5678, 5u, 6u); +} +)"; + + auto got = Run(src, polyfillInsertBits(Level::kFull)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Full_u32) { + auto* src = R"( +fn f() { + let r : u32 = insertBits(1234u, 5678u, 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : u32, n : u32, offset : u32, count : u32) -> u32 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + let mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & mask) | (v & ~(mask))); +} + +fn f() { + let r : u32 = tint_insert_bits(1234u, 5678u, 5u, 6u); +} +)"; + + auto got = Run(src, polyfillInsertBits(Level::kFull)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Full_vec3_i32) { + auto* src = R"( +fn f() { + let r : vec3 = insertBits(vec3(1234), vec3(5678), 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : vec3, n : vec3, offset : u32, count : u32) -> vec3 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + let mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << vec3(s)) & vec3(i32(mask))) | (v & vec3(i32(~(mask))))); +} + +fn f() { + let r : vec3 = tint_insert_bits(vec3(1234), vec3(5678), 5u, 6u); +} +)"; + + auto got = Run(src, polyfillInsertBits(Level::kFull)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Full_vec3_u32) { + auto* src = R"( +fn f() { + let r : vec3 = insertBits(vec3(1234u), vec3(5678u), 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : vec3, n : vec3, offset : u32, count : u32) -> vec3 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + let mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << vec3(s)) & vec3(mask)) | (v & vec3(~(mask)))); +} + +fn f() { + let r : vec3 = tint_insert_bits(vec3(1234u), vec3(5678u), 5u, 6u); +} +)"; + + auto got = Run(src, polyfillInsertBits(Level::kFull)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Clamp_i32) { + auto* src = R"( +fn f() { + let r : i32 = insertBits(1234, 5678, 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : i32, n : i32, offset : u32, count : u32) -> i32 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + return insertBits(v, n, s, (e - s)); +} + +fn f() { + let r : i32 = tint_insert_bits(1234, 5678, 5u, 6u); +} +)"; + + auto got = + Run(src, polyfillInsertBits(Level::kClampParameters)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Clamp_u32) { + auto* src = R"( +fn f() { + let r : u32 = insertBits(1234u, 5678u, 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : u32, n : u32, offset : u32, count : u32) -> u32 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + return insertBits(v, n, s, (e - s)); +} + +fn f() { + let r : u32 = tint_insert_bits(1234u, 5678u, 5u, 6u); +} +)"; + + auto got = + Run(src, polyfillInsertBits(Level::kClampParameters)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Clamp_vec3_i32) { + auto* src = R"( +fn f() { + let r : vec3 = insertBits(vec3(1234), vec3(5678), 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : vec3, n : vec3, offset : u32, count : u32) -> vec3 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + return insertBits(v, n, s, (e - s)); +} + +fn f() { + let r : vec3 = tint_insert_bits(vec3(1234), vec3(5678), 5u, 6u); +} +)"; + + auto got = + Run(src, polyfillInsertBits(Level::kClampParameters)); + + EXPECT_EQ(expect, str(got)); +} + +TEST_F(BuiltinPolyfillTest, InsertBits_Clamp_vec3_u32) { + auto* src = R"( +fn f() { + let r : vec3 = insertBits(vec3(1234u), vec3(5678u), 5u, 6u); +} +)"; + + auto* expect = R"( +fn tint_insert_bits(v : vec3, n : vec3, offset : u32, count : u32) -> vec3 { + let s = min(offset, 32u); + let e = min(32u, (s + count)); + return insertBits(v, n, s, (e - s)); +} + +fn f() { + let r : vec3 = tint_insert_bits(vec3(1234u), vec3(5678u), 5u, 6u); +} +)"; + + auto got = + Run(src, polyfillInsertBits(Level::kClampParameters)); + + EXPECT_EQ(expect, str(got)); +} + } // namespace } // namespace transform } // namespace tint diff --git a/src/tint/transform/glsl.cc b/src/tint/transform/glsl.cc index fdf0fdf301..4eae5208ec 100644 --- a/src/tint/transform/glsl.cc +++ b/src/tint/transform/glsl.cc @@ -59,6 +59,7 @@ Output Glsl::Run(const Program* in, const DataMap& inputs) const { polyfills.extract_bits = BuiltinPolyfill::Level::kClampParameters; polyfills.first_leading_bit = true; polyfills.first_trailing_bit = true; + polyfills.insert_bits = BuiltinPolyfill::Level::kClampParameters; data.Add(polyfills); manager.Add(); } diff --git a/src/tint/writer/glsl/generator_impl.cc b/src/tint/writer/glsl/generator_impl.cc index ef3d3da920..01c1d88009 100644 --- a/src/tint/writer/glsl/generator_impl.cc +++ b/src/tint/writer/glsl/generator_impl.cc @@ -607,6 +607,9 @@ bool GeneratorImpl::EmitBuiltinCall(std::ostream& out, if (builtin->Type() == sem::BuiltinType::kExtractBits) { return EmitExtractBits(out, expr); } + if (builtin->Type() == sem::BuiltinType::kInsertBits) { + return EmitInsertBits(out, expr); + } if (builtin->IsDataPacking()) { return EmitDataPackingCall(out, expr, builtin); } @@ -834,6 +837,28 @@ bool GeneratorImpl::EmitExtractBits(std::ostream& out, return true; } +bool GeneratorImpl::EmitInsertBits(std::ostream& out, + const ast::CallExpression* expr) { + out << "bitfieldInsert("; + if (!EmitExpression(out, expr->args[0])) { + return false; + } + out << ", "; + if (!EmitExpression(out, expr->args[1])) { + return false; + } + out << ", int("; + if (!EmitExpression(out, expr->args[2])) { + return false; + } + out << "), int("; + if (!EmitExpression(out, expr->args[3])) { + return false; + } + out << "))"; + return true; +} + bool GeneratorImpl::EmitSelectCall(std::ostream& out, const ast::CallExpression* expr) { auto* expr_false = expr->args[0]; diff --git a/src/tint/writer/glsl/generator_impl.h b/src/tint/writer/glsl/generator_impl.h index f48cdfd5ef..5fa94f9fad 100644 --- a/src/tint/writer/glsl/generator_impl.h +++ b/src/tint/writer/glsl/generator_impl.h @@ -176,6 +176,11 @@ class GeneratorImpl : public TextGenerator { /// @param expr the call expression /// @returns true if the expression is emitted bool EmitExtractBits(std::ostream& out, const ast::CallExpression* expr); + /// Handles generating a call to `bitfieldInsert` + /// @param out the output of the expression stream + /// @param expr the call expression + /// @returns true if the expression is emitted + bool EmitInsertBits(std::ostream& out, const ast::CallExpression* expr); /// Handles generating a call to a texture function (`textureSample`, /// `textureSampleGrad`, etc) /// @param out the output of the expression stream diff --git a/src/tint/writer/glsl/generator_impl_builtin_test.cc b/src/tint/writer/glsl/generator_impl_builtin_test.cc index 88979bfb15..5f6d04c2b9 100644 --- a/src/tint/writer/glsl/generator_impl_builtin_test.cc +++ b/src/tint/writer/glsl/generator_impl_builtin_test.cc @@ -615,6 +615,42 @@ void main() { } )"); } + +TEST_F(GlslGeneratorImplTest_Builtin, InsertBits) { + auto* v = Var("v", ty.vec3()); + auto* n = Var("n", ty.vec3()); + auto* offset = Var("offset", ty.u32()); + auto* count = Var("count", ty.u32()); + auto* call = Call("insertBits", v, n, offset, count); + WrapInFunction(v, n, offset, count, call); + + GeneratorImpl& gen = SanitizeAndBuild(); + + ASSERT_TRUE(gen.Generate()) << gen.error(); + EXPECT_EQ(gen.result(), R"(#version 310 es + +uvec3 tint_insert_bits(uvec3 v, uvec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void test_function() { + uvec3 v = uvec3(0u, 0u, 0u); + uvec3 n = uvec3(0u, 0u, 0u); + uint offset = 0u; + uint count = 0u; + uvec3 tint_symbol = tint_insert_bits(v, n, offset, count); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + test_function(); + return; +} +)"); +} + #if 0 TEST_F(GlslGeneratorImplTest_Builtin, Pack4x8Snorm) { auto* call = Call("pack4x8snorm", "p1"); diff --git a/src/tint/writer/hlsl/generator_impl.cc b/src/tint/writer/hlsl/generator_impl.cc index e2a8341440..79664ae7e2 100644 --- a/src/tint/writer/hlsl/generator_impl.cc +++ b/src/tint/writer/hlsl/generator_impl.cc @@ -150,6 +150,7 @@ SanitizedResult Sanitize( polyfills.extract_bits = transform::BuiltinPolyfill::Level::kFull; polyfills.first_leading_bit = true; polyfills.first_trailing_bit = true; + polyfills.insert_bits = transform::BuiltinPolyfill::Level::kFull; data.Add(polyfills); manager.Add(); } diff --git a/src/tint/writer/msl/generator_impl.cc b/src/tint/writer/msl/generator_impl.cc index 34006079ab..3a8c1dc058 100644 --- a/src/tint/writer/msl/generator_impl.cc +++ b/src/tint/writer/msl/generator_impl.cc @@ -134,6 +134,7 @@ SanitizedResult Sanitize( transform::BuiltinPolyfill::Level::kClampParameters; polyfills.first_leading_bit = true; polyfills.first_trailing_bit = true; + polyfills.insert_bits = transform::BuiltinPolyfill::Level::kClampParameters; data.Add(polyfills); manager.Add(); } @@ -1378,6 +1379,9 @@ std::string GeneratorImpl::generate_builtin_name(const sem::Builtin* builtin) { case sem::BuiltinType::kExtractBits: out += "extract_bits"; break; + case sem::BuiltinType::kInsertBits: + out += "insert_bits"; + break; case sem::BuiltinType::kFwidth: case sem::BuiltinType::kFwidthCoarse: case sem::BuiltinType::kFwidthFine: diff --git a/src/tint/writer/msl/generator_impl_builtin_test.cc b/src/tint/writer/msl/generator_impl_builtin_test.cc index f3505d66eb..d8cfd5401b 100644 --- a/src/tint/writer/msl/generator_impl_builtin_test.cc +++ b/src/tint/writer/msl/generator_impl_builtin_test.cc @@ -131,6 +131,8 @@ const ast::CallExpression* GenerateCall(BuiltinType builtin, return builder->Call(str.str(), "u2"); case BuiltinType::kExtractBits: return builder->Call(str.str(), "u2", "u1", "u1"); + case BuiltinType::kInsertBits: + return builder->Call(str.str(), "u2", "u2", "u1", "u1"); case BuiltinType::kMax: case BuiltinType::kMin: if (type == ParamType::kF32) { @@ -239,6 +241,7 @@ INSTANTIATE_TEST_SUITE_P( BuiltinData{BuiltinType::kFwidth, ParamType::kF32, "fwidth"}, BuiltinData{BuiltinType::kFwidthCoarse, ParamType::kF32, "fwidth"}, BuiltinData{BuiltinType::kFwidthFine, ParamType::kF32, "fwidth"}, + BuiltinData{BuiltinType::kInsertBits, ParamType::kU32, "insert_bits"}, BuiltinData{BuiltinType::kInverseSqrt, ParamType::kF32, "rsqrt"}, BuiltinData{BuiltinType::kIsFinite, ParamType::kF32, "isfinite"}, BuiltinData{BuiltinType::kIsInf, ParamType::kF32, "isinf"}, diff --git a/src/tint/writer/spirv/builder.cc b/src/tint/writer/spirv/builder.cc index 3080b8ac35..f3eff71ba3 100644 --- a/src/tint/writer/spirv/builder.cc +++ b/src/tint/writer/spirv/builder.cc @@ -267,6 +267,7 @@ SanitizedResult Sanitize(const Program* in, transform::BuiltinPolyfill::Level::kClampParameters; polyfills.first_leading_bit = true; polyfills.first_trailing_bit = true; + polyfills.insert_bits = transform::BuiltinPolyfill::Level::kClampParameters; data.Add(polyfills); manager.Add(); } @@ -2520,6 +2521,9 @@ uint32_t Builder::GenerateBuiltinCall(const sem::Call* call, case BuiltinType::kFwidthFine: op = spv::Op::OpFwidthFine; break; + case BuiltinType::kInsertBits: + op = spv::Op::OpBitFieldInsert; + break; case BuiltinType::kIsInf: op = spv::Op::OpIsInf; break; diff --git a/src/tint/writer/spirv/builder_builtin_test.cc b/src/tint/writer/spirv/builder_builtin_test.cc index 700b714314..4718e449f4 100644 --- a/src/tint/writer/spirv/builder_builtin_test.cc +++ b/src/tint/writer/spirv/builder_builtin_test.cc @@ -2708,6 +2708,176 @@ OpFunctionEnd )"); } +TEST_F(BuiltinBuilderTest, Call_InsertBits_i32) { + auto* v = Var("v", ty.i32()); + auto* n = Var("n", ty.i32()); + auto* offset = Var("offset", ty.u32()); + auto* count = Var("count", ty.u32()); + auto* call = Call("insertBits", v, n, offset, count); + auto* func = WrapInFunction(v, n, offset, count, call); + + spirv::Builder& b = Build(); + + ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); + + EXPECT_EQ(DumpBuilder(b), R"(OpEntryPoint GLCompute %3 "test_function" +OpExecutionMode %3 LocalSize 1 1 1 +OpName %3 "test_function" +OpName %5 "v" +OpName %9 "n" +OpName %10 "offset" +OpName %14 "count" +%2 = OpTypeVoid +%1 = OpTypeFunction %2 +%7 = OpTypeInt 32 1 +%6 = OpTypePointer Function %7 +%8 = OpConstantNull %7 +%12 = OpTypeInt 32 0 +%11 = OpTypePointer Function %12 +%13 = OpConstantNull %12 +%3 = OpFunction %2 None %1 +%4 = OpLabel +%5 = OpVariable %6 Function %8 +%9 = OpVariable %6 Function %8 +%10 = OpVariable %11 Function %13 +%14 = OpVariable %11 Function %13 +%16 = OpLoad %7 %5 +%17 = OpLoad %7 %9 +%18 = OpLoad %12 %10 +%19 = OpLoad %12 %14 +%15 = OpBitFieldInsert %7 %16 %17 %18 %19 +OpReturn +OpFunctionEnd +)"); +} + +TEST_F(BuiltinBuilderTest, Call_InsertBits_u32) { + auto* v = Var("v", ty.u32()); + auto* n = Var("n", ty.u32()); + auto* offset = Var("offset", ty.u32()); + auto* count = Var("count", ty.u32()); + auto* call = Call("insertBits", v, n, offset, count); + auto* func = WrapInFunction(v, n, offset, count, call); + + spirv::Builder& b = Build(); + + ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); + + EXPECT_EQ(DumpBuilder(b), R"(OpEntryPoint GLCompute %3 "test_function" +OpExecutionMode %3 LocalSize 1 1 1 +OpName %3 "test_function" +OpName %5 "v" +OpName %9 "n" +OpName %10 "offset" +OpName %11 "count" +%2 = OpTypeVoid +%1 = OpTypeFunction %2 +%7 = OpTypeInt 32 0 +%6 = OpTypePointer Function %7 +%8 = OpConstantNull %7 +%3 = OpFunction %2 None %1 +%4 = OpLabel +%5 = OpVariable %6 Function %8 +%9 = OpVariable %6 Function %8 +%10 = OpVariable %6 Function %8 +%11 = OpVariable %6 Function %8 +%13 = OpLoad %7 %5 +%14 = OpLoad %7 %9 +%15 = OpLoad %7 %10 +%16 = OpLoad %7 %11 +%12 = OpBitFieldInsert %7 %13 %14 %15 %16 +OpReturn +OpFunctionEnd +)"); +} + +TEST_F(BuiltinBuilderTest, Call_InsertBits_vec3_i32) { + auto* v = Var("v", ty.vec3()); + auto* n = Var("n", ty.vec3()); + auto* offset = Var("offset", ty.u32()); + auto* count = Var("count", ty.u32()); + auto* call = Call("insertBits", v, n, offset, count); + auto* func = WrapInFunction(v, n, offset, count, call); + + spirv::Builder& b = Build(); + + ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); + + EXPECT_EQ(DumpBuilder(b), R"(OpEntryPoint GLCompute %3 "test_function" +OpExecutionMode %3 LocalSize 1 1 1 +OpName %3 "test_function" +OpName %5 "v" +OpName %10 "n" +OpName %11 "offset" +OpName %15 "count" +%2 = OpTypeVoid +%1 = OpTypeFunction %2 +%8 = OpTypeInt 32 1 +%7 = OpTypeVector %8 3 +%6 = OpTypePointer Function %7 +%9 = OpConstantNull %7 +%13 = OpTypeInt 32 0 +%12 = OpTypePointer Function %13 +%14 = OpConstantNull %13 +%3 = OpFunction %2 None %1 +%4 = OpLabel +%5 = OpVariable %6 Function %9 +%10 = OpVariable %6 Function %9 +%11 = OpVariable %12 Function %14 +%15 = OpVariable %12 Function %14 +%17 = OpLoad %7 %5 +%18 = OpLoad %7 %10 +%19 = OpLoad %13 %11 +%20 = OpLoad %13 %15 +%16 = OpBitFieldInsert %7 %17 %18 %19 %20 +OpReturn +OpFunctionEnd +)"); +} + +TEST_F(BuiltinBuilderTest, Call_InsertBits_vec3_u32) { + auto* v = Var("v", ty.vec3()); + auto* n = Var("n", ty.vec3()); + auto* offset = Var("offset", ty.u32()); + auto* count = Var("count", ty.u32()); + auto* call = Call("insertBits", v, n, offset, count); + auto* func = WrapInFunction(v, n, offset, count, call); + + spirv::Builder& b = Build(); + + ASSERT_TRUE(b.GenerateFunction(func)) << b.error(); + + EXPECT_EQ(DumpBuilder(b), R"(OpEntryPoint GLCompute %3 "test_function" +OpExecutionMode %3 LocalSize 1 1 1 +OpName %3 "test_function" +OpName %5 "v" +OpName %10 "n" +OpName %11 "offset" +OpName %14 "count" +%2 = OpTypeVoid +%1 = OpTypeFunction %2 +%8 = OpTypeInt 32 0 +%7 = OpTypeVector %8 3 +%6 = OpTypePointer Function %7 +%9 = OpConstantNull %7 +%12 = OpTypePointer Function %8 +%13 = OpConstantNull %8 +%3 = OpFunction %2 None %1 +%4 = OpLabel +%5 = OpVariable %6 Function %9 +%10 = OpVariable %6 Function %9 +%11 = OpVariable %12 Function %13 +%14 = OpVariable %12 Function %13 +%16 = OpLoad %7 %5 +%17 = OpLoad %7 %10 +%18 = OpLoad %8 %11 +%19 = OpLoad %8 %14 +%15 = OpBitFieldInsert %7 %16 %17 %18 %19 +OpReturn +OpFunctionEnd +)"); +} + } // namespace } // namespace spirv } // namespace writer diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl new file mode 100644 index 0000000000..d643261f3a --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<2, u32>, vec<2, u32>, u32, u32) -> vec<2, u32> +fn insertBits_3c7ba5() { + var res: vec2 = insertBits(vec2(), vec2(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_3c7ba5(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_3c7ba5(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_3c7ba5(); +} diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl new file mode 100644 index 0000000000..5a68ba6a60 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +uvec2 tint_insert_bits(uvec2 v, uvec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_3c7ba5() { + uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_3c7ba5(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +uvec2 tint_insert_bits(uvec2 v, uvec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_3c7ba5() { + uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u); +} + +void fragment_main() { + insertBits_3c7ba5(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +uvec2 tint_insert_bits(uvec2 v, uvec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_3c7ba5() { + uvec2 res = tint_insert_bits(uvec2(0u, 0u), uvec2(0u, 0u), 1u, 1u); +} + +void compute_main() { + insertBits_3c7ba5(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.hlsl new file mode 100644 index 0000000000..8cf5a7ccf3 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +uint2 tint_insert_bits(uint2 v, uint2 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint2((s).xx)) & uint2((mask).xx)) | (v & uint2((~(mask)).xx))); +} + +void insertBits_3c7ba5() { + uint2 res = tint_insert_bits(uint2(0u, 0u), uint2(0u, 0u), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_3c7ba5(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_3c7ba5(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_3c7ba5(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.msl new file mode 100644 index 0000000000..7f7805a314 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +uint2 tint_insert_bits(uint2 v, uint2 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_3c7ba5() { + uint2 res = tint_insert_bits(uint2(), uint2(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_3c7ba5(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_3c7ba5(); + return; +} + +kernel void compute_main() { + insertBits_3c7ba5(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.spvasm new file mode 100644 index 0000000000..bd5c7b97dc --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.spvasm @@ -0,0 +1,89 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 48 +; Schema: 0 + OpCapability Shader + %19 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_3c7ba5 "insertBits_3c7ba5" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %uint = OpTypeInt 32 0 + %v2uint = OpTypeVector %uint 2 + %9 = OpTypeFunction %v2uint %v2uint %v2uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %25 = OpTypeFunction %void + %30 = OpConstantNull %v2uint + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v2uint = OpTypePointer Function %v2uint + %34 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v2uint None %9 + %v = OpFunctionParameter %v2uint + %n = OpFunctionParameter %v2uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpExtInst %uint %19 UMin %offset %uint_32 + %22 = OpIAdd %uint %18 %count + %21 = OpExtInst %uint %19 UMin %uint_32 %22 + %24 = OpISub %uint %21 %18 + %23 = OpBitFieldInsert %v2uint %v %n %18 %24 + OpReturnValue %23 + OpFunctionEnd +%insertBits_3c7ba5 = OpFunction %void None %25 + %28 = OpLabel + %res = OpVariable %_ptr_Function_v2uint Function %30 + %29 = OpFunctionCall %v2uint %tint_insert_bits %30 %30 %uint_1 %uint_1 + OpStore %res %29 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %34 + %36 = OpLabel + %37 = OpFunctionCall %void %insertBits_3c7ba5 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %25 + %39 = OpLabel + %40 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %40 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %25 + %43 = OpLabel + %44 = OpFunctionCall %void %insertBits_3c7ba5 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %25 + %46 = OpLabel + %47 = OpFunctionCall %void %insertBits_3c7ba5 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.wgsl new file mode 100644 index 0000000000..eee06b5622 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/3c7ba5.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_3c7ba5() { + var res : vec2 = insertBits(vec2(), vec2(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_3c7ba5(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_3c7ba5(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_3c7ba5(); +} diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl b/test/tint/builtins/gen/insertBits/428b0b.wgsl new file mode 100644 index 0000000000..e85f914e84 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<3, i32>, vec<3, i32>, u32, u32) -> vec<3, i32> +fn insertBits_428b0b() { + var res: vec3 = insertBits(vec3(), vec3(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_428b0b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_428b0b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_428b0b(); +} diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl new file mode 100644 index 0000000000..58ccf36968 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +ivec3 tint_insert_bits(ivec3 v, ivec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_428b0b() { + ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_428b0b(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +ivec3 tint_insert_bits(ivec3 v, ivec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_428b0b() { + ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u); +} + +void fragment_main() { + insertBits_428b0b(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +ivec3 tint_insert_bits(ivec3 v, ivec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_428b0b() { + ivec3 res = tint_insert_bits(ivec3(0, 0, 0), ivec3(0, 0, 0), 1u, 1u); +} + +void compute_main() { + insertBits_428b0b(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.hlsl new file mode 100644 index 0000000000..5d92f4b69f --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +int3 tint_insert_bits(int3 v, int3 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint3((s).xxx)) & int3((int(mask)).xxx)) | (v & int3((int(~(mask))).xxx))); +} + +void insertBits_428b0b() { + int3 res = tint_insert_bits(int3(0, 0, 0), int3(0, 0, 0), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_428b0b(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_428b0b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_428b0b(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.msl new file mode 100644 index 0000000000..41ff9984ee --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +int3 tint_insert_bits(int3 v, int3 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_428b0b() { + int3 res = tint_insert_bits(int3(), int3(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_428b0b(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_428b0b(); + return; +} + +kernel void compute_main() { + insertBits_428b0b(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.spvasm new file mode 100644 index 0000000000..14ffcb4373 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.spvasm @@ -0,0 +1,90 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 49 +; Schema: 0 + OpCapability Shader + %20 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_428b0b "insertBits_428b0b" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %uint = OpTypeInt 32 0 + %9 = OpTypeFunction %v3int %v3int %v3int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %26 = OpTypeFunction %void + %31 = OpConstantNull %v3int + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v3int = OpTypePointer Function %v3int + %35 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v3int None %9 + %v = OpFunctionParameter %v3int + %n = OpFunctionParameter %v3int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpExtInst %uint %20 UMin %offset %uint_32 + %23 = OpIAdd %uint %19 %count + %22 = OpExtInst %uint %20 UMin %uint_32 %23 + %25 = OpISub %uint %22 %19 + %24 = OpBitFieldInsert %v3int %v %n %19 %25 + OpReturnValue %24 + OpFunctionEnd +%insertBits_428b0b = OpFunction %void None %26 + %29 = OpLabel + %res = OpVariable %_ptr_Function_v3int Function %31 + %30 = OpFunctionCall %v3int %tint_insert_bits %31 %31 %uint_1 %uint_1 + OpStore %res %30 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %35 + %37 = OpLabel + %38 = OpFunctionCall %void %insertBits_428b0b + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %26 + %40 = OpLabel + %41 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %41 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %26 + %44 = OpLabel + %45 = OpFunctionCall %void %insertBits_428b0b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %26 + %47 = OpLabel + %48 = OpFunctionCall %void %insertBits_428b0b + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.wgsl new file mode 100644 index 0000000000..58e0a5ac2f --- /dev/null +++ b/test/tint/builtins/gen/insertBits/428b0b.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_428b0b() { + var res : vec3 = insertBits(vec3(), vec3(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_428b0b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_428b0b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_428b0b(); +} diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl b/test/tint/builtins/gen/insertBits/51ede1.wgsl new file mode 100644 index 0000000000..eee6f01df9 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<4, u32>, vec<4, u32>, u32, u32) -> vec<4, u32> +fn insertBits_51ede1() { + var res: vec4 = insertBits(vec4(), vec4(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_51ede1(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_51ede1(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_51ede1(); +} diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl new file mode 100644 index 0000000000..a2a5b07ef1 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +uvec4 tint_insert_bits(uvec4 v, uvec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_51ede1() { + uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_51ede1(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +uvec4 tint_insert_bits(uvec4 v, uvec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_51ede1() { + uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u); +} + +void fragment_main() { + insertBits_51ede1(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +uvec4 tint_insert_bits(uvec4 v, uvec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_51ede1() { + uvec4 res = tint_insert_bits(uvec4(0u, 0u, 0u, 0u), uvec4(0u, 0u, 0u, 0u), 1u, 1u); +} + +void compute_main() { + insertBits_51ede1(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.hlsl new file mode 100644 index 0000000000..b6c6bec78c --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +uint4 tint_insert_bits(uint4 v, uint4 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint4((s).xxxx)) & uint4((mask).xxxx)) | (v & uint4((~(mask)).xxxx))); +} + +void insertBits_51ede1() { + uint4 res = tint_insert_bits(uint4(0u, 0u, 0u, 0u), uint4(0u, 0u, 0u, 0u), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_51ede1(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_51ede1(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_51ede1(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.msl new file mode 100644 index 0000000000..6aebbe577c --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +uint4 tint_insert_bits(uint4 v, uint4 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_51ede1() { + uint4 res = tint_insert_bits(uint4(), uint4(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_51ede1(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_51ede1(); + return; +} + +kernel void compute_main() { + insertBits_51ede1(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.spvasm new file mode 100644 index 0000000000..b5e9f62afa --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.spvasm @@ -0,0 +1,89 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 48 +; Schema: 0 + OpCapability Shader + %19 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_51ede1 "insertBits_51ede1" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %uint = OpTypeInt 32 0 + %v4uint = OpTypeVector %uint 4 + %9 = OpTypeFunction %v4uint %v4uint %v4uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %25 = OpTypeFunction %void + %30 = OpConstantNull %v4uint + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v4uint = OpTypePointer Function %v4uint + %34 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v4uint None %9 + %v = OpFunctionParameter %v4uint + %n = OpFunctionParameter %v4uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpExtInst %uint %19 UMin %offset %uint_32 + %22 = OpIAdd %uint %18 %count + %21 = OpExtInst %uint %19 UMin %uint_32 %22 + %24 = OpISub %uint %21 %18 + %23 = OpBitFieldInsert %v4uint %v %n %18 %24 + OpReturnValue %23 + OpFunctionEnd +%insertBits_51ede1 = OpFunction %void None %25 + %28 = OpLabel + %res = OpVariable %_ptr_Function_v4uint Function %30 + %29 = OpFunctionCall %v4uint %tint_insert_bits %30 %30 %uint_1 %uint_1 + OpStore %res %29 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %34 + %36 = OpLabel + %37 = OpFunctionCall %void %insertBits_51ede1 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %25 + %39 = OpLabel + %40 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %40 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %25 + %43 = OpLabel + %44 = OpFunctionCall %void %insertBits_51ede1 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %25 + %46 = OpLabel + %47 = OpFunctionCall %void %insertBits_51ede1 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.wgsl new file mode 100644 index 0000000000..0b7461b842 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/51ede1.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_51ede1() { + var res : vec4 = insertBits(vec4(), vec4(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_51ede1(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_51ede1(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_51ede1(); +} diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl b/test/tint/builtins/gen/insertBits/65468b.wgsl new file mode 100644 index 0000000000..8c21d58051 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(i32, i32, u32, u32) -> i32 +fn insertBits_65468b() { + var res: i32 = insertBits(1, 1, 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_65468b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_65468b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_65468b(); +} diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl new file mode 100644 index 0000000000..5db1157cf7 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_65468b() { + int res = tint_insert_bits(1, 1, 1u, 1u); +} + +vec4 vertex_main() { + insertBits_65468b(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_65468b() { + int res = tint_insert_bits(1, 1, 1u, 1u); +} + +void fragment_main() { + insertBits_65468b(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_65468b() { + int res = tint_insert_bits(1, 1, 1u, 1u); +} + +void compute_main() { + insertBits_65468b(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.hlsl new file mode 100644 index 0000000000..c285500641 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +int tint_insert_bits(int v, int n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & int(mask)) | (v & int(~(mask)))); +} + +void insertBits_65468b() { + int res = tint_insert_bits(1, 1, 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_65468b(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_65468b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_65468b(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.msl new file mode 100644 index 0000000000..d27a671f57 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_65468b() { + int res = tint_insert_bits(1, 1, 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_65468b(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_65468b(); + return; +} + +kernel void compute_main() { + insertBits_65468b(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.spvasm new file mode 100644 index 0000000000..411e2892fe --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.spvasm @@ -0,0 +1,90 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 49 +; Schema: 0 + OpCapability Shader + %19 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_65468b "insertBits_65468b" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %int = OpTypeInt 32 1 + %uint = OpTypeInt 32 0 + %9 = OpTypeFunction %int %int %int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %25 = OpTypeFunction %void + %int_1 = OpConstant %int 1 + %uint_1 = OpConstant %uint 1 +%_ptr_Function_int = OpTypePointer Function %int + %34 = OpConstantNull %int + %35 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %int None %9 + %v = OpFunctionParameter %int + %n = OpFunctionParameter %int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpExtInst %uint %19 UMin %offset %uint_32 + %22 = OpIAdd %uint %18 %count + %21 = OpExtInst %uint %19 UMin %uint_32 %22 + %24 = OpISub %uint %21 %18 + %23 = OpBitFieldInsert %int %v %n %18 %24 + OpReturnValue %23 + OpFunctionEnd +%insertBits_65468b = OpFunction %void None %25 + %28 = OpLabel + %res = OpVariable %_ptr_Function_int Function %34 + %29 = OpFunctionCall %int %tint_insert_bits %int_1 %int_1 %uint_1 %uint_1 + OpStore %res %29 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %35 + %37 = OpLabel + %38 = OpFunctionCall %void %insertBits_65468b + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %25 + %40 = OpLabel + %41 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %41 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %25 + %44 = OpLabel + %45 = OpFunctionCall %void %insertBits_65468b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %25 + %47 = OpLabel + %48 = OpFunctionCall %void %insertBits_65468b + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.wgsl new file mode 100644 index 0000000000..18c5ff8c7b --- /dev/null +++ b/test/tint/builtins/gen/insertBits/65468b.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_65468b() { + var res : i32 = insertBits(1, 1, 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_65468b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_65468b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_65468b(); +} diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl b/test/tint/builtins/gen/insertBits/87826b.wgsl new file mode 100644 index 0000000000..dce9794211 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<3, u32>, vec<3, u32>, u32, u32) -> vec<3, u32> +fn insertBits_87826b() { + var res: vec3 = insertBits(vec3(), vec3(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_87826b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_87826b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_87826b(); +} diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl new file mode 100644 index 0000000000..dc028b28fd --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +uvec3 tint_insert_bits(uvec3 v, uvec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_87826b() { + uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_87826b(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +uvec3 tint_insert_bits(uvec3 v, uvec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_87826b() { + uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u); +} + +void fragment_main() { + insertBits_87826b(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +uvec3 tint_insert_bits(uvec3 v, uvec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_87826b() { + uvec3 res = tint_insert_bits(uvec3(0u, 0u, 0u), uvec3(0u, 0u, 0u), 1u, 1u); +} + +void compute_main() { + insertBits_87826b(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.hlsl new file mode 100644 index 0000000000..e43ffecdfa --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +uint3 tint_insert_bits(uint3 v, uint3 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint3((s).xxx)) & uint3((mask).xxx)) | (v & uint3((~(mask)).xxx))); +} + +void insertBits_87826b() { + uint3 res = tint_insert_bits(uint3(0u, 0u, 0u), uint3(0u, 0u, 0u), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_87826b(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_87826b(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_87826b(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.msl new file mode 100644 index 0000000000..f2533b0c17 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +uint3 tint_insert_bits(uint3 v, uint3 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_87826b() { + uint3 res = tint_insert_bits(uint3(), uint3(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_87826b(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_87826b(); + return; +} + +kernel void compute_main() { + insertBits_87826b(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.spvasm new file mode 100644 index 0000000000..cf3a5cb9fd --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.spvasm @@ -0,0 +1,89 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 48 +; Schema: 0 + OpCapability Shader + %19 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_87826b "insertBits_87826b" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 + %9 = OpTypeFunction %v3uint %v3uint %v3uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %25 = OpTypeFunction %void + %30 = OpConstantNull %v3uint + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v3uint = OpTypePointer Function %v3uint + %34 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v3uint None %9 + %v = OpFunctionParameter %v3uint + %n = OpFunctionParameter %v3uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %17 = OpLabel + %18 = OpExtInst %uint %19 UMin %offset %uint_32 + %22 = OpIAdd %uint %18 %count + %21 = OpExtInst %uint %19 UMin %uint_32 %22 + %24 = OpISub %uint %21 %18 + %23 = OpBitFieldInsert %v3uint %v %n %18 %24 + OpReturnValue %23 + OpFunctionEnd +%insertBits_87826b = OpFunction %void None %25 + %28 = OpLabel + %res = OpVariable %_ptr_Function_v3uint Function %30 + %29 = OpFunctionCall %v3uint %tint_insert_bits %30 %30 %uint_1 %uint_1 + OpStore %res %29 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %34 + %36 = OpLabel + %37 = OpFunctionCall %void %insertBits_87826b + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %25 + %39 = OpLabel + %40 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %40 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %25 + %43 = OpLabel + %44 = OpFunctionCall %void %insertBits_87826b + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %25 + %46 = OpLabel + %47 = OpFunctionCall %void %insertBits_87826b + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.wgsl new file mode 100644 index 0000000000..e71306f5ab --- /dev/null +++ b/test/tint/builtins/gen/insertBits/87826b.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_87826b() { + var res : vec3 = insertBits(vec3(), vec3(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_87826b(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_87826b(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_87826b(); +} diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl b/test/tint/builtins/gen/insertBits/d86978.wgsl new file mode 100644 index 0000000000..f6f27c89a0 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<4, i32>, vec<4, i32>, u32, u32) -> vec<4, i32> +fn insertBits_d86978() { + var res: vec4 = insertBits(vec4(), vec4(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_d86978(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_d86978(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_d86978(); +} diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl new file mode 100644 index 0000000000..e97d858227 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +ivec4 tint_insert_bits(ivec4 v, ivec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_d86978() { + ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_d86978(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +ivec4 tint_insert_bits(ivec4 v, ivec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_d86978() { + ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u); +} + +void fragment_main() { + insertBits_d86978(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +ivec4 tint_insert_bits(ivec4 v, ivec4 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_d86978() { + ivec4 res = tint_insert_bits(ivec4(0, 0, 0, 0), ivec4(0, 0, 0, 0), 1u, 1u); +} + +void compute_main() { + insertBits_d86978(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.hlsl new file mode 100644 index 0000000000..8f2349062f --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +int4 tint_insert_bits(int4 v, int4 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint4((s).xxxx)) & int4((int(mask)).xxxx)) | (v & int4((int(~(mask))).xxxx))); +} + +void insertBits_d86978() { + int4 res = tint_insert_bits(int4(0, 0, 0, 0), int4(0, 0, 0, 0), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_d86978(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_d86978(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_d86978(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.msl new file mode 100644 index 0000000000..fd4942789f --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +int4 tint_insert_bits(int4 v, int4 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_d86978() { + int4 res = tint_insert_bits(int4(), int4(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_d86978(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_d86978(); + return; +} + +kernel void compute_main() { + insertBits_d86978(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.spvasm new file mode 100644 index 0000000000..e7cf5074d1 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.spvasm @@ -0,0 +1,90 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 49 +; Schema: 0 + OpCapability Shader + %20 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_d86978 "insertBits_d86978" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %int = OpTypeInt 32 1 + %v4int = OpTypeVector %int 4 + %uint = OpTypeInt 32 0 + %9 = OpTypeFunction %v4int %v4int %v4int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %26 = OpTypeFunction %void + %31 = OpConstantNull %v4int + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v4int = OpTypePointer Function %v4int + %35 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v4int None %9 + %v = OpFunctionParameter %v4int + %n = OpFunctionParameter %v4int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpExtInst %uint %20 UMin %offset %uint_32 + %23 = OpIAdd %uint %19 %count + %22 = OpExtInst %uint %20 UMin %uint_32 %23 + %25 = OpISub %uint %22 %19 + %24 = OpBitFieldInsert %v4int %v %n %19 %25 + OpReturnValue %24 + OpFunctionEnd +%insertBits_d86978 = OpFunction %void None %26 + %29 = OpLabel + %res = OpVariable %_ptr_Function_v4int Function %31 + %30 = OpFunctionCall %v4int %tint_insert_bits %31 %31 %uint_1 %uint_1 + OpStore %res %30 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %35 + %37 = OpLabel + %38 = OpFunctionCall %void %insertBits_d86978 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %26 + %40 = OpLabel + %41 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %41 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %26 + %44 = OpLabel + %45 = OpFunctionCall %void %insertBits_d86978 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %26 + %47 = OpLabel + %48 = OpFunctionCall %void %insertBits_d86978 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.wgsl new file mode 100644 index 0000000000..531dc5ff58 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/d86978.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_d86978() { + var res : vec4 = insertBits(vec4(), vec4(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_d86978(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_d86978(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_d86978(); +} diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl new file mode 100644 index 0000000000..61635d7a32 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(u32, u32, u32, u32) -> u32 +fn insertBits_e3e3a2() { + var res: u32 = insertBits(1u, 1u, 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_e3e3a2(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_e3e3a2(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_e3e3a2(); +} diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl new file mode 100644 index 0000000000..cbc976bf26 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_e3e3a2() { + uint res = tint_insert_bits(1u, 1u, 1u, 1u); +} + +vec4 vertex_main() { + insertBits_e3e3a2(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_e3e3a2() { + uint res = tint_insert_bits(1u, 1u, 1u, 1u); +} + +void fragment_main() { + insertBits_e3e3a2(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_e3e3a2() { + uint res = tint_insert_bits(1u, 1u, 1u, 1u); +} + +void compute_main() { + insertBits_e3e3a2(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.hlsl new file mode 100644 index 0000000000..4f226ff6f6 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & mask) | (v & ~(mask))); +} + +void insertBits_e3e3a2() { + uint res = tint_insert_bits(1u, 1u, 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_e3e3a2(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_e3e3a2(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_e3e3a2(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.msl new file mode 100644 index 0000000000..ebe78e840a --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_e3e3a2() { + uint res = tint_insert_bits(1u, 1u, 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_e3e3a2(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_e3e3a2(); + return; +} + +kernel void compute_main() { + insertBits_e3e3a2(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.spvasm new file mode 100644 index 0000000000..bde4e3916c --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.spvasm @@ -0,0 +1,88 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 47 +; Schema: 0 + OpCapability Shader + %18 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_e3e3a2 "insertBits_e3e3a2" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %uint = OpTypeInt 32 0 + %9 = OpTypeFunction %uint %uint %uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %24 = OpTypeFunction %void + %uint_1 = OpConstant %uint 1 +%_ptr_Function_uint = OpTypePointer Function %uint + %32 = OpConstantNull %uint + %33 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %uint None %9 + %v = OpFunctionParameter %uint + %n = OpFunctionParameter %uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %16 = OpLabel + %17 = OpExtInst %uint %18 UMin %offset %uint_32 + %21 = OpIAdd %uint %17 %count + %20 = OpExtInst %uint %18 UMin %uint_32 %21 + %23 = OpISub %uint %20 %17 + %22 = OpBitFieldInsert %uint %v %n %17 %23 + OpReturnValue %22 + OpFunctionEnd +%insertBits_e3e3a2 = OpFunction %void None %24 + %27 = OpLabel + %res = OpVariable %_ptr_Function_uint Function %32 + %28 = OpFunctionCall %uint %tint_insert_bits %uint_1 %uint_1 %uint_1 %uint_1 + OpStore %res %28 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %33 + %35 = OpLabel + %36 = OpFunctionCall %void %insertBits_e3e3a2 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %24 + %38 = OpLabel + %39 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %39 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %24 + %42 = OpLabel + %43 = OpFunctionCall %void %insertBits_e3e3a2 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %24 + %45 = OpLabel + %46 = OpFunctionCall %void %insertBits_e3e3a2 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.wgsl new file mode 100644 index 0000000000..b6abcbcf30 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/e3e3a2.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_e3e3a2() { + var res : u32 = insertBits(1u, 1u, 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_e3e3a2(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_e3e3a2(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_e3e3a2(); +} diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl new file mode 100644 index 0000000000..45ffca787b --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl @@ -0,0 +1,45 @@ +// 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/builtin-gen +// using the template: +// test/tint/builtins/builtins.wgsl.tmpl +// and the builtin defintion file: +// src/tint/builtins.def +// +// Do not modify this file directly +//////////////////////////////////////////////////////////////////////////////// + + +// fn insertBits(vec<2, i32>, vec<2, i32>, u32, u32) -> vec<2, i32> +fn insertBits_fe6ba6() { + var res: vec2 = insertBits(vec2(), vec2(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_fe6ba6(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_fe6ba6(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_fe6ba6(); +} diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl new file mode 100644 index 0000000000..d7433ebb44 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.glsl @@ -0,0 +1,66 @@ +#version 310 es + +ivec2 tint_insert_bits(ivec2 v, ivec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_fe6ba6() { + ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u); +} + +vec4 vertex_main() { + insertBits_fe6ba6(); + return vec4(0.0f, 0.0f, 0.0f, 0.0f); +} + +void main() { + vec4 inner_result = vertex_main(); + gl_Position = inner_result; + gl_Position.y = -(gl_Position.y); + gl_Position.z = ((2.0f * gl_Position.z) - gl_Position.w); + return; +} +#version 310 es +precision mediump float; + +ivec2 tint_insert_bits(ivec2 v, ivec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_fe6ba6() { + ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u); +} + +void fragment_main() { + insertBits_fe6ba6(); +} + +void main() { + fragment_main(); + return; +} +#version 310 es + +ivec2 tint_insert_bits(ivec2 v, ivec2 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void insertBits_fe6ba6() { + ivec2 res = tint_insert_bits(ivec2(0, 0), ivec2(0, 0), 1u, 1u); +} + +void compute_main() { + insertBits_fe6ba6(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + compute_main(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.hlsl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.hlsl new file mode 100644 index 0000000000..20235d64ae --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.hlsl @@ -0,0 +1,37 @@ +int2 tint_insert_bits(int2 v, int2 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint2((s).xx)) & int2((int(mask)).xx)) | (v & int2((int(~(mask))).xx))); +} + +void insertBits_fe6ba6() { + int2 res = tint_insert_bits(int2(0, 0), int2(0, 0), 1u, 1u); +} + +struct tint_symbol { + float4 value : SV_Position; +}; + +float4 vertex_main_inner() { + insertBits_fe6ba6(); + return float4(0.0f, 0.0f, 0.0f, 0.0f); +} + +tint_symbol vertex_main() { + const float4 inner_result = vertex_main_inner(); + tint_symbol wrapper_result = (tint_symbol)0; + wrapper_result.value = inner_result; + return wrapper_result; +} + +void fragment_main() { + insertBits_fe6ba6(); + return; +} + +[numthreads(1, 1, 1)] +void compute_main() { + insertBits_fe6ba6(); + return; +} diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.msl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.msl new file mode 100644 index 0000000000..ced3cb3c8a --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.msl @@ -0,0 +1,39 @@ +#include + +using namespace metal; +int2 tint_insert_bits(int2 v, int2 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void insertBits_fe6ba6() { + int2 res = tint_insert_bits(int2(), int2(), 1u, 1u); +} + +struct tint_symbol { + float4 value [[position]]; +}; + +float4 vertex_main_inner() { + insertBits_fe6ba6(); + return float4(); +} + +vertex tint_symbol vertex_main() { + float4 const inner_result = vertex_main_inner(); + tint_symbol wrapper_result = {}; + wrapper_result.value = inner_result; + return wrapper_result; +} + +fragment void fragment_main() { + insertBits_fe6ba6(); + return; +} + +kernel void compute_main() { + insertBits_fe6ba6(); + return; +} + diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.spvasm b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.spvasm new file mode 100644 index 0000000000..b5e72718b3 --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.spvasm @@ -0,0 +1,90 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 49 +; Schema: 0 + OpCapability Shader + %20 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint Vertex %vertex_main "vertex_main" %value %vertex_point_size + OpEntryPoint Fragment %fragment_main "fragment_main" + OpEntryPoint GLCompute %compute_main "compute_main" + OpExecutionMode %fragment_main OriginUpperLeft + OpExecutionMode %compute_main LocalSize 1 1 1 + OpName %value "value" + OpName %vertex_point_size "vertex_point_size" + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %insertBits_fe6ba6 "insertBits_fe6ba6" + OpName %res "res" + OpName %vertex_main_inner "vertex_main_inner" + OpName %vertex_main "vertex_main" + OpName %fragment_main "fragment_main" + OpName %compute_main "compute_main" + OpDecorate %value BuiltIn Position + OpDecorate %vertex_point_size BuiltIn PointSize + %float = OpTypeFloat 32 + %v4float = OpTypeVector %float 4 +%_ptr_Output_v4float = OpTypePointer Output %v4float + %5 = OpConstantNull %v4float + %value = OpVariable %_ptr_Output_v4float Output %5 +%_ptr_Output_float = OpTypePointer Output %float + %8 = OpConstantNull %float +%vertex_point_size = OpVariable %_ptr_Output_float Output %8 + %int = OpTypeInt 32 1 + %v2int = OpTypeVector %int 2 + %uint = OpTypeInt 32 0 + %9 = OpTypeFunction %v2int %v2int %v2int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %26 = OpTypeFunction %void + %31 = OpConstantNull %v2int + %uint_1 = OpConstant %uint 1 +%_ptr_Function_v2int = OpTypePointer Function %v2int + %35 = OpTypeFunction %v4float + %float_1 = OpConstant %float 1 +%tint_insert_bits = OpFunction %v2int None %9 + %v = OpFunctionParameter %v2int + %n = OpFunctionParameter %v2int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %18 = OpLabel + %19 = OpExtInst %uint %20 UMin %offset %uint_32 + %23 = OpIAdd %uint %19 %count + %22 = OpExtInst %uint %20 UMin %uint_32 %23 + %25 = OpISub %uint %22 %19 + %24 = OpBitFieldInsert %v2int %v %n %19 %25 + OpReturnValue %24 + OpFunctionEnd +%insertBits_fe6ba6 = OpFunction %void None %26 + %29 = OpLabel + %res = OpVariable %_ptr_Function_v2int Function %31 + %30 = OpFunctionCall %v2int %tint_insert_bits %31 %31 %uint_1 %uint_1 + OpStore %res %30 + OpReturn + OpFunctionEnd +%vertex_main_inner = OpFunction %v4float None %35 + %37 = OpLabel + %38 = OpFunctionCall %void %insertBits_fe6ba6 + OpReturnValue %5 + OpFunctionEnd +%vertex_main = OpFunction %void None %26 + %40 = OpLabel + %41 = OpFunctionCall %v4float %vertex_main_inner + OpStore %value %41 + OpStore %vertex_point_size %float_1 + OpReturn + OpFunctionEnd +%fragment_main = OpFunction %void None %26 + %44 = OpLabel + %45 = OpFunctionCall %void %insertBits_fe6ba6 + OpReturn + OpFunctionEnd +%compute_main = OpFunction %void None %26 + %47 = OpLabel + %48 = OpFunctionCall %void %insertBits_fe6ba6 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.wgsl b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.wgsl new file mode 100644 index 0000000000..3e8848626f --- /dev/null +++ b/test/tint/builtins/gen/insertBits/fe6ba6.wgsl.expected.wgsl @@ -0,0 +1,19 @@ +fn insertBits_fe6ba6() { + var res : vec2 = insertBits(vec2(), vec2(), 1u, 1u); +} + +@stage(vertex) +fn vertex_main() -> @builtin(position) vec4 { + insertBits_fe6ba6(); + return vec4(); +} + +@stage(fragment) +fn fragment_main() { + insertBits_fe6ba6(); +} + +@stage(compute) @workgroup_size(1) +fn compute_main() { + insertBits_fe6ba6(); +} diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm b/test/tint/builtins/insertBits/scalar/i32.spvasm new file mode 100644 index 0000000000..381607f83d --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm @@ -0,0 +1,33 @@ + OpCapability Shader + %16 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %f "f" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + %void = OpTypeVoid + %1 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %_ptr_Function_int = OpTypePointer Function %int + %8 = OpConstantNull %int + %uint = OpTypeInt 32 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %13 = OpConstantNull %uint + %uint_31 = OpConstant %uint 31 + %uint_32 = OpConstant %uint 32 + %f = OpFunction %void None %1 + %4 = OpLabel + %v = OpVariable %_ptr_Function_int Function %8 + %n = OpVariable %_ptr_Function_int Function %8 + %offset = OpVariable %_ptr_Function_uint Function %13 + %count = OpVariable %_ptr_Function_uint Function %13 + %17 = OpLoad %int %v + %18 = OpLoad %int %n + %19 = OpLoad %uint %offset + %20 = OpLoad %uint %count + %15 = OpBitFieldInsert %int %17 %18 %19 %20 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.glsl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.glsl new file mode 100644 index 0000000000..049dbe1869 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.glsl @@ -0,0 +1,26 @@ +#version 310 es + +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void f_1() { + int v = 0; + int n = 0; + uint offset_1 = 0u; + uint count = 0u; + int x_15 = tint_insert_bits(v, n, offset_1, count); + return; +} + +void f() { + f_1(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f(); + return; +} diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.hlsl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.hlsl new file mode 100644 index 0000000000..8819221525 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.hlsl @@ -0,0 +1,21 @@ +int tint_insert_bits(int v, int n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & int(mask)) | (v & int(~(mask)))); +} + +void f_1() { + int v = 0; + int n = 0; + uint offset_1 = 0u; + uint count = 0u; + const int x_15 = tint_insert_bits(v, n, offset_1, count); + return; +} + +[numthreads(1, 1, 1)] +void f() { + f_1(); + return; +} diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.msl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.msl new file mode 100644 index 0000000000..7928f3d0df --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.msl @@ -0,0 +1,27 @@ +#include + +using namespace metal; +int tint_insert_bits(int v, int n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void f_1() { + int v = 0; + int n = 0; + uint offset_1 = 0u; + uint count = 0u; + int const x_17 = v; + int const x_18 = n; + uint const x_19 = offset_1; + uint const x_20 = count; + int const x_15 = tint_insert_bits(x_17, x_18, x_19, x_20); + return; +} + +kernel void f() { + f_1(); + return; +} + diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.spvasm b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.spvasm new file mode 100644 index 0000000000..b8aa1b6a60 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 39 +; Schema: 0 + OpCapability Shader + %11 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %f_1 "f_1" + OpName %v_0 "v" + OpName %n_0 "n" + OpName %offset_1 "offset_1" + OpName %count_0 "count" + OpName %f "f" + %int = OpTypeInt 32 1 + %uint = OpTypeInt 32 0 + %1 = OpTypeFunction %int %int %int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %17 = OpTypeFunction %void + %int_0 = OpConstant %int 0 +%_ptr_Function_int = OpTypePointer Function %int + %24 = OpConstantNull %int + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %29 = OpConstantNull %uint +%tint_insert_bits = OpFunction %int None %1 + %v = OpFunctionParameter %int + %n = OpFunctionParameter %int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %9 = OpLabel + %10 = OpExtInst %uint %11 UMin %offset %uint_32 + %14 = OpIAdd %uint %10 %count + %13 = OpExtInst %uint %11 UMin %uint_32 %14 + %16 = OpISub %uint %13 %10 + %15 = OpBitFieldInsert %int %v %n %10 %16 + OpReturnValue %15 + OpFunctionEnd + %f_1 = OpFunction %void None %17 + %20 = OpLabel + %v_0 = OpVariable %_ptr_Function_int Function %24 + %n_0 = OpVariable %_ptr_Function_int Function %24 + %offset_1 = OpVariable %_ptr_Function_uint Function %29 + %count_0 = OpVariable %_ptr_Function_uint Function %29 + OpStore %v_0 %int_0 + OpStore %n_0 %int_0 + OpStore %offset_1 %uint_0 + OpStore %count_0 %uint_0 + %31 = OpLoad %int %v_0 + %32 = OpLoad %int %n_0 + %33 = OpLoad %uint %offset_1 + %34 = OpLoad %uint %count_0 + %35 = OpFunctionCall %int %tint_insert_bits %31 %32 %33 %34 + OpReturn + OpFunctionEnd + %f = OpFunction %void None %17 + %37 = OpLabel + %38 = OpFunctionCall %void %f_1 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.wgsl b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.wgsl new file mode 100644 index 0000000000..65de2882a9 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/i32.spvasm.expected.wgsl @@ -0,0 +1,17 @@ +fn f_1() { + var v : i32 = 0; + var n : i32 = 0; + var offset_1 : u32 = 0u; + var count : u32 = 0u; + let x_17 : i32 = v; + let x_18 : i32 = n; + let x_19 : u32 = offset_1; + let x_20 : u32 = count; + let x_15 : i32 = insertBits(x_17, x_18, x_19, x_20); + return; +} + +@stage(compute) @workgroup_size(1, 1, 1) +fn f() { + f_1(); +} diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm b/test/tint/builtins/insertBits/scalar/u32.spvasm new file mode 100644 index 0000000000..46fb5a4c95 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm @@ -0,0 +1,30 @@ + OpCapability Shader + %13 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %f "f" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + %void = OpTypeVoid + %1 = OpTypeFunction %void + %uint = OpTypeInt 32 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %8 = OpConstantNull %uint + %uint_31 = OpConstant %uint 31 + %uint_32 = OpConstant %uint 32 + %f = OpFunction %void None %1 + %4 = OpLabel + %v = OpVariable %_ptr_Function_uint Function %8 + %n = OpVariable %_ptr_Function_uint Function %8 + %offset = OpVariable %_ptr_Function_uint Function %8 + %count = OpVariable %_ptr_Function_uint Function %8 + %14 = OpLoad %uint %v + %15 = OpLoad %uint %n + %16 = OpLoad %uint %offset + %17 = OpLoad %uint %count + %12 = OpBitFieldInsert %uint %14 %15 %16 %17 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.glsl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.glsl new file mode 100644 index 0000000000..a69f5167d4 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.glsl @@ -0,0 +1,26 @@ +#version 310 es + +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void f_1() { + uint v = 0u; + uint n = 0u; + uint offset_1 = 0u; + uint count = 0u; + uint x_12 = tint_insert_bits(v, n, offset_1, count); + return; +} + +void f() { + f_1(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f(); + return; +} diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.hlsl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.hlsl new file mode 100644 index 0000000000..3d759c7e1c --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.hlsl @@ -0,0 +1,21 @@ +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << s) & mask) | (v & ~(mask))); +} + +void f_1() { + uint v = 0u; + uint n = 0u; + uint offset_1 = 0u; + uint count = 0u; + const uint x_12 = tint_insert_bits(v, n, offset_1, count); + return; +} + +[numthreads(1, 1, 1)] +void f() { + f_1(); + return; +} diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.msl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.msl new file mode 100644 index 0000000000..6acc55d39a --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.msl @@ -0,0 +1,27 @@ +#include + +using namespace metal; +uint tint_insert_bits(uint v, uint n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void f_1() { + uint v = 0u; + uint n = 0u; + uint offset_1 = 0u; + uint count = 0u; + uint const x_14 = v; + uint const x_15 = n; + uint const x_16 = offset_1; + uint const x_17 = count; + uint const x_12 = tint_insert_bits(x_14, x_15, x_16, x_17); + return; +} + +kernel void f() { + f_1(); + return; +} + diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.spvasm b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.spvasm new file mode 100644 index 0000000000..a44f9da469 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.spvasm @@ -0,0 +1,64 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 35 +; Schema: 0 + OpCapability Shader + %10 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %f_1 "f_1" + OpName %v_0 "v" + OpName %n_0 "n" + OpName %offset_1 "offset_1" + OpName %count_0 "count" + OpName %f "f" + %uint = OpTypeInt 32 0 + %1 = OpTypeFunction %uint %uint %uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %16 = OpTypeFunction %void + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %23 = OpConstantNull %uint +%tint_insert_bits = OpFunction %uint None %1 + %v = OpFunctionParameter %uint + %n = OpFunctionParameter %uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %8 = OpLabel + %9 = OpExtInst %uint %10 UMin %offset %uint_32 + %13 = OpIAdd %uint %9 %count + %12 = OpExtInst %uint %10 UMin %uint_32 %13 + %15 = OpISub %uint %12 %9 + %14 = OpBitFieldInsert %uint %v %n %9 %15 + OpReturnValue %14 + OpFunctionEnd + %f_1 = OpFunction %void None %16 + %19 = OpLabel + %v_0 = OpVariable %_ptr_Function_uint Function %23 + %n_0 = OpVariable %_ptr_Function_uint Function %23 + %offset_1 = OpVariable %_ptr_Function_uint Function %23 + %count_0 = OpVariable %_ptr_Function_uint Function %23 + OpStore %v_0 %uint_0 + OpStore %n_0 %uint_0 + OpStore %offset_1 %uint_0 + OpStore %count_0 %uint_0 + %27 = OpLoad %uint %v_0 + %28 = OpLoad %uint %n_0 + %29 = OpLoad %uint %offset_1 + %30 = OpLoad %uint %count_0 + %31 = OpFunctionCall %uint %tint_insert_bits %27 %28 %29 %30 + OpReturn + OpFunctionEnd + %f = OpFunction %void None %16 + %33 = OpLabel + %34 = OpFunctionCall %void %f_1 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.wgsl b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.wgsl new file mode 100644 index 0000000000..aab307f507 --- /dev/null +++ b/test/tint/builtins/insertBits/scalar/u32.spvasm.expected.wgsl @@ -0,0 +1,17 @@ +fn f_1() { + var v : u32 = 0u; + var n : u32 = 0u; + var offset_1 : u32 = 0u; + var count : u32 = 0u; + let x_14 : u32 = v; + let x_15 : u32 = n; + let x_16 : u32 = offset_1; + let x_17 : u32 = count; + let x_12 : u32 = insertBits(x_14, x_15, x_16, x_17); + return; +} + +@stage(compute) @workgroup_size(1, 1, 1) +fn f() { + f_1(); +} diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm b/test/tint/builtins/insertBits/vec3/i32.spvasm new file mode 100644 index 0000000000..04fd309371 --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm @@ -0,0 +1,34 @@ + OpCapability Shader + %17 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %f "f" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + %void = OpTypeVoid + %1 = OpTypeFunction %void + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 +%_ptr_Function_v3int = OpTypePointer Function %v3int + %9 = OpConstantNull %v3int + %uint = OpTypeInt 32 0 + %_ptr_Function_uint = OpTypePointer Function %uint + %14 = OpConstantNull %uint + %uint_31 = OpConstant %uint 31 + %uint_32 = OpConstant %uint 32 + %f = OpFunction %void None %1 + %4 = OpLabel + %v = OpVariable %_ptr_Function_v3int Function %9 + %n = OpVariable %_ptr_Function_v3int Function %9 + %offset = OpVariable %_ptr_Function_uint Function %14 + %count = OpVariable %_ptr_Function_uint Function %14 + %18 = OpLoad %v3int %v + %19 = OpLoad %v3int %n + %20 = OpLoad %uint %offset + %21 = OpLoad %uint %count + %16 = OpBitFieldInsert %v3int %18 %19 %20 %21 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl new file mode 100644 index 0000000000..1befc7df04 --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.glsl @@ -0,0 +1,26 @@ +#version 310 es + +ivec3 tint_insert_bits(ivec3 v, ivec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void f_1() { + ivec3 v = ivec3(0, 0, 0); + ivec3 n = ivec3(0, 0, 0); + uint offset_1 = 0u; + uint count = 0u; + ivec3 x_16 = tint_insert_bits(v, n, offset_1, count); + return; +} + +void f() { + f_1(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f(); + return; +} diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.hlsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.hlsl new file mode 100644 index 0000000000..617fce0974 --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.hlsl @@ -0,0 +1,21 @@ +int3 tint_insert_bits(int3 v, int3 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint3((s).xxx)) & int3((int(mask)).xxx)) | (v & int3((int(~(mask))).xxx))); +} + +void f_1() { + int3 v = int3(0, 0, 0); + int3 n = int3(0, 0, 0); + uint offset_1 = 0u; + uint count = 0u; + const int3 x_16 = tint_insert_bits(v, n, offset_1, count); + return; +} + +[numthreads(1, 1, 1)] +void f() { + f_1(); + return; +} diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.msl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.msl new file mode 100644 index 0000000000..af5112b81f --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.msl @@ -0,0 +1,27 @@ +#include + +using namespace metal; +int3 tint_insert_bits(int3 v, int3 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void f_1() { + int3 v = int3(); + int3 n = int3(); + uint offset_1 = 0u; + uint count = 0u; + int3 const x_18 = v; + int3 const x_19 = n; + uint const x_20 = offset_1; + uint const x_21 = count; + int3 const x_16 = tint_insert_bits(x_18, x_19, x_20, x_21); + return; +} + +kernel void f() { + f_1(); + return; +} + diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.spvasm b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.spvasm new file mode 100644 index 0000000000..b595d27b70 --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.spvasm @@ -0,0 +1,68 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 39 +; Schema: 0 + OpCapability Shader + %12 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %f_1 "f_1" + OpName %v_0 "v" + OpName %n_0 "n" + OpName %offset_1 "offset_1" + OpName %count_0 "count" + OpName %f "f" + %int = OpTypeInt 32 1 + %v3int = OpTypeVector %int 3 + %uint = OpTypeInt 32 0 + %1 = OpTypeFunction %v3int %v3int %v3int %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %18 = OpTypeFunction %void + %22 = OpConstantNull %v3int +%_ptr_Function_v3int = OpTypePointer Function %v3int + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %29 = OpConstantNull %uint +%tint_insert_bits = OpFunction %v3int None %1 + %v = OpFunctionParameter %v3int + %n = OpFunctionParameter %v3int + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %10 = OpLabel + %11 = OpExtInst %uint %12 UMin %offset %uint_32 + %15 = OpIAdd %uint %11 %count + %14 = OpExtInst %uint %12 UMin %uint_32 %15 + %17 = OpISub %uint %14 %11 + %16 = OpBitFieldInsert %v3int %v %n %11 %17 + OpReturnValue %16 + OpFunctionEnd + %f_1 = OpFunction %void None %18 + %21 = OpLabel + %v_0 = OpVariable %_ptr_Function_v3int Function %22 + %n_0 = OpVariable %_ptr_Function_v3int Function %22 + %offset_1 = OpVariable %_ptr_Function_uint Function %29 + %count_0 = OpVariable %_ptr_Function_uint Function %29 + OpStore %v_0 %22 + OpStore %n_0 %22 + OpStore %offset_1 %uint_0 + OpStore %count_0 %uint_0 + %31 = OpLoad %v3int %v_0 + %32 = OpLoad %v3int %n_0 + %33 = OpLoad %uint %offset_1 + %34 = OpLoad %uint %count_0 + %35 = OpFunctionCall %v3int %tint_insert_bits %31 %32 %33 %34 + OpReturn + OpFunctionEnd + %f = OpFunction %void None %18 + %37 = OpLabel + %38 = OpFunctionCall %void %f_1 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.wgsl b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.wgsl new file mode 100644 index 0000000000..0360918eff --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/i32.spvasm.expected.wgsl @@ -0,0 +1,17 @@ +fn f_1() { + var v : vec3 = vec3(); + var n : vec3 = vec3(); + var offset_1 : u32 = 0u; + var count : u32 = 0u; + let x_18 : vec3 = v; + let x_19 : vec3 = n; + let x_20 : u32 = offset_1; + let x_21 : u32 = count; + let x_16 : vec3 = insertBits(x_18, x_19, x_20, x_21); + return; +} + +@stage(compute) @workgroup_size(1, 1, 1) +fn f() { + f_1(); +} diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm b/test/tint/builtins/insertBits/vec3/u32.spvasm new file mode 100644 index 0000000000..5f81ab313c --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm @@ -0,0 +1,33 @@ + OpCapability Shader + %16 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %f "f" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + %void = OpTypeVoid + %1 = OpTypeFunction %void + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 +%_ptr_Function_v3uint = OpTypePointer Function %v3uint + %9 = OpConstantNull %v3uint + %_ptr_Function_uint = OpTypePointer Function %uint + %13 = OpConstantNull %uint + %uint_31 = OpConstant %uint 31 + %uint_32 = OpConstant %uint 32 + %f = OpFunction %void None %1 + %4 = OpLabel + %v = OpVariable %_ptr_Function_v3uint Function %9 + %n = OpVariable %_ptr_Function_v3uint Function %9 + %offset = OpVariable %_ptr_Function_uint Function %13 + %count = OpVariable %_ptr_Function_uint Function %13 + %17 = OpLoad %v3uint %v + %18 = OpLoad %v3uint %n + %19 = OpLoad %uint %offset + %20 = OpLoad %uint %count + %15 = OpBitFieldInsert %v3uint %17 %18 %19 %20 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl new file mode 100644 index 0000000000..f42aebd394 --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.glsl @@ -0,0 +1,26 @@ +#version 310 es + +uvec3 tint_insert_bits(uvec3 v, uvec3 n, uint offset, uint count) { + uint s = min(offset, 32u); + uint e = min(32u, (s + count)); + return bitfieldInsert(v, n, int(s), int((e - s))); +} + +void f_1() { + uvec3 v = uvec3(0u, 0u, 0u); + uvec3 n = uvec3(0u, 0u, 0u); + uint offset_1 = 0u; + uint count = 0u; + uvec3 x_15 = tint_insert_bits(v, n, offset_1, count); + return; +} + +void f() { + f_1(); +} + +layout(local_size_x = 1, local_size_y = 1, local_size_z = 1) in; +void main() { + f(); + return; +} diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.hlsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.hlsl new file mode 100644 index 0000000000..9972d6a64b --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.hlsl @@ -0,0 +1,21 @@ +uint3 tint_insert_bits(uint3 v, uint3 n, uint offset, uint count) { + const uint s = min(offset, 32u); + const uint e = min(32u, (s + count)); + const uint mask = (((1u << s) - 1u) ^ ((1u << e) - 1u)); + return (((n << uint3((s).xxx)) & uint3((mask).xxx)) | (v & uint3((~(mask)).xxx))); +} + +void f_1() { + uint3 v = uint3(0u, 0u, 0u); + uint3 n = uint3(0u, 0u, 0u); + uint offset_1 = 0u; + uint count = 0u; + const uint3 x_15 = tint_insert_bits(v, n, offset_1, count); + return; +} + +[numthreads(1, 1, 1)] +void f() { + f_1(); + return; +} diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.msl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.msl new file mode 100644 index 0000000000..62eb987e7e --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.msl @@ -0,0 +1,27 @@ +#include + +using namespace metal; +uint3 tint_insert_bits(uint3 v, uint3 n, uint offset, uint count) { + uint const s = min(offset, 32u); + uint const e = min(32u, (s + count)); + return insert_bits(v, n, s, (e - s)); +} + +void f_1() { + uint3 v = uint3(); + uint3 n = uint3(); + uint offset_1 = 0u; + uint count = 0u; + uint3 const x_17 = v; + uint3 const x_18 = n; + uint const x_19 = offset_1; + uint const x_20 = count; + uint3 const x_15 = tint_insert_bits(x_17, x_18, x_19, x_20); + return; +} + +kernel void f() { + f_1(); + return; +} + diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.spvasm b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.spvasm new file mode 100644 index 0000000000..688e14073c --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.spvasm @@ -0,0 +1,67 @@ +; SPIR-V +; Version: 1.3 +; Generator: Google Tint Compiler; 0 +; Bound: 38 +; Schema: 0 + OpCapability Shader + %11 = OpExtInstImport "GLSL.std.450" + OpMemoryModel Logical GLSL450 + OpEntryPoint GLCompute %f "f" + OpExecutionMode %f LocalSize 1 1 1 + OpName %tint_insert_bits "tint_insert_bits" + OpName %v "v" + OpName %n "n" + OpName %offset "offset" + OpName %count "count" + OpName %f_1 "f_1" + OpName %v_0 "v" + OpName %n_0 "n" + OpName %offset_1 "offset_1" + OpName %count_0 "count" + OpName %f "f" + %uint = OpTypeInt 32 0 + %v3uint = OpTypeVector %uint 3 + %1 = OpTypeFunction %v3uint %v3uint %v3uint %uint %uint + %uint_32 = OpConstant %uint 32 + %void = OpTypeVoid + %17 = OpTypeFunction %void + %21 = OpConstantNull %v3uint +%_ptr_Function_v3uint = OpTypePointer Function %v3uint + %uint_0 = OpConstant %uint 0 +%_ptr_Function_uint = OpTypePointer Function %uint + %28 = OpConstantNull %uint +%tint_insert_bits = OpFunction %v3uint None %1 + %v = OpFunctionParameter %v3uint + %n = OpFunctionParameter %v3uint + %offset = OpFunctionParameter %uint + %count = OpFunctionParameter %uint + %9 = OpLabel + %10 = OpExtInst %uint %11 UMin %offset %uint_32 + %14 = OpIAdd %uint %10 %count + %13 = OpExtInst %uint %11 UMin %uint_32 %14 + %16 = OpISub %uint %13 %10 + %15 = OpBitFieldInsert %v3uint %v %n %10 %16 + OpReturnValue %15 + OpFunctionEnd + %f_1 = OpFunction %void None %17 + %20 = OpLabel + %v_0 = OpVariable %_ptr_Function_v3uint Function %21 + %n_0 = OpVariable %_ptr_Function_v3uint Function %21 + %offset_1 = OpVariable %_ptr_Function_uint Function %28 + %count_0 = OpVariable %_ptr_Function_uint Function %28 + OpStore %v_0 %21 + OpStore %n_0 %21 + OpStore %offset_1 %uint_0 + OpStore %count_0 %uint_0 + %30 = OpLoad %v3uint %v_0 + %31 = OpLoad %v3uint %n_0 + %32 = OpLoad %uint %offset_1 + %33 = OpLoad %uint %count_0 + %34 = OpFunctionCall %v3uint %tint_insert_bits %30 %31 %32 %33 + OpReturn + OpFunctionEnd + %f = OpFunction %void None %17 + %36 = OpLabel + %37 = OpFunctionCall %void %f_1 + OpReturn + OpFunctionEnd diff --git a/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.wgsl b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.wgsl new file mode 100644 index 0000000000..beac32208a --- /dev/null +++ b/test/tint/builtins/insertBits/vec3/u32.spvasm.expected.wgsl @@ -0,0 +1,17 @@ +fn f_1() { + var v : vec3 = vec3(); + var n : vec3 = vec3(); + var offset_1 : u32 = 0u; + var count : u32 = 0u; + let x_17 : vec3 = v; + let x_18 : vec3 = n; + let x_19 : u32 = offset_1; + let x_20 : u32 = count; + let x_15 : vec3 = insertBits(x_17, x_18, x_19, x_20); + return; +} + +@stage(compute) @workgroup_size(1, 1, 1) +fn f() { + f_1(); +}