t_wの輪郭

Feedlyでフォローするボタン
@group(0)
@binding(0)
var<storage, read_write> v_indices: array<u32>; // this is used as both input and output for convenience

@compute
@workgroup_size(1)
fn main(@builtin(global_invocation_id) global_id: vec3<u32>) {
    var arr: array<u32, 1000>;
    arr[0] = 0u;
    arr[1] = 1u;
    arr[2] = 2u;
    arr[3] = 3u;
    arr[4] = 4u;
    arr[5] = 5u;
    arr[6] = 6u;
    arr[7] = 7u;
    arr[8] = 8u;
    arr[9] = 9u;
    arr[10] = 10u;
    arr[11] = 11u;
    arr[12] = 12u;
    arr[13] = 13u;
    arr[14] = 14u;
    arr[15] = 15u;
    arr[16] = 16u;
    arr[17] = 17u;
    arr[18] = 18u;
    arr[19] = 19u;
    arr[20] = 20u;
    arr[21] = 21u;
    arr[22] = 22u;
    arr[23] = 23u;
    arr[24] = 24u;
    arr[25] = 25u;
    arr[26] = 26u;
    arr[27] = 27u;
    arr[28] = 28u;
    arr[29] = 29u;
    arr[30] = 30u;
    arr[31] = 31u;
    arr[32] = 32u;
    arr[33] = 33u;
    arr[34] = 34u;
    arr[35] = 35u;
    arr[36] = 36u;
    arr[37] = 37u;
    arr[38] = 38u;
    arr[39] = 39u;
    arr[40] = 40u;
    arr[41] = 41u;
    arr[42] = 42u;
    arr[43] = 43u;
    arr[44] = 44u;
    arr[45] = 45u;
    arr[46] = 46u;
    arr[47] = 47u;
    arr[48] = 48u;
    arr[49] = 49u;
    arr[50] = 50u;
    arr[51] = 51u;
    arr[52] = 52u;
    arr[53] = 53u;
    arr[54] = 54u;
    arr[55] = 55u;
    arr[56] = 56u;
    arr[57] = 57u;
    arr[58] = 58u;
    arr[59] = 59u;
    arr[60] = 60u;
    arr[61] = 61u;
    arr[62] = 62u;
    arr[63] = 63u;
    arr[64] = 64u;
    arr[65] = 65u;
    arr[66] = 66u;
    arr[67] = 67u;
    arr[68] = 68u;
    arr[69] = 69u;
    arr[70] = 70u;
    arr[71] = 71u;
    arr[72] = 72u;
    arr[73] = 73u;
    arr[74] = 74u;
    arr[75] = 75u;
    arr[76] = 76u;
    arr[77] = 77u;
    arr[78] = 78u;
    arr[79] = 79u;
    arr[80] = 80u;
    arr[81] = 81u;
    arr[82] = 82u;
    arr[83] = 83u;
    arr[84] = 84u;
    arr[85] = 85u;
    arr[86] = 86u;
    arr[87] = 87u;
    arr[88] = 88u;
    arr[89] = 89u;
    arr[90] = 90u;
    arr[91] = 91u;
    arr[92] = 92u;
    arr[93] = 93u;
    arr[94] = 94u;
    arr[95] = 95u;
    arr[96] = 96u;
    arr[97] = 97u;
    arr[98] = 98u;
    arr[99] = 99u;
    arr[100] = 100u;
    arr[101] = 101u;
    arr[102] = 102u;
    arr[103] = 103u;
    arr[104] = 104u;
    arr[105] = 105u;
    arr[106] = 106u;
    arr[107] = 107u;
    arr[108] = 108u;
    arr[109] = 109u;
    arr[110] = 110u;
    arr[111] = 111u;
    arr[112] = 112u;
    arr[113] = 113u;
    arr[114] = 114u;
    arr[115] = 115u;
    arr[116] = 116u;
    arr[117] = 117u;
    arr[118] = 118u;
    arr[119] = 119u;
    arr[120] = 120u;
    arr[121] = 121u;
    arr[122] = 122u;
    arr[123] = 123u;
    arr[124] = 124u;
    arr[125] = 125u;
    arr[126] = 126u;
    arr[127] = 127u;
    arr[128] = 128u;
    arr[129] = 129u;
    arr[130] = 130u;
    arr[131] = 131u;
    arr[132] = 132u;
    arr[133] = 133u;
    arr[134] = 134u;
    arr[135] = 135u;
    arr[136] = 136u;
    arr[137] = 137u;
    arr[138] = 138u;
    arr[139] = 139u;
    arr[140] = 140u;
    arr[141] = 141u;
    arr[142] = 142u;
    arr[143] = 143u;
    arr[144] = 144u;
    arr[145] = 145u;
    arr[146] = 146u;
    arr[147] = 147u;
    arr[148] = 148u;
    arr[149] = 149u;
    arr[150] = 150u;
    arr[151] = 151u;
    arr[152] = 152u;
    arr[153] = 153u;
    arr[154] = 154u;
    arr[155] = 155u;
    arr[156] = 156u;
    arr[157] = 157u;
    arr[158] = 158u;
    arr[159] = 159u;
    arr[160] = 160u;
    arr[161] = 161u;
    arr[162] = 162u;
    arr[163] = 163u;
    arr[164] = 164u;
    arr[165] = 165u;
    arr[166] = 166u;
    arr[167] = 167u;
    arr[168] = 168u;
    arr[169] = 169u;
    arr[170] = 170u;
    arr[171] = 171u;
    arr[172] = 172u;
    arr[173] = 173u;
    arr[174] = 174u;
    arr[175] = 175u;
    arr[176] = 176u;
    arr[177] = 177u;
    arr[178] = 178u;
    arr[179] = 179u;
    arr[180] = 180u;
    arr[181] = 181u;
    arr[182] = 182u;
    arr[183] = 183u;
    arr[184] = 184u;
    arr[185] = 185u;
    arr[186] = 186u;
    arr[187] = 187u;
    arr[188] = 188u;
    arr[189] = 189u;
    arr[190] = 190u;
    arr[191] = 191u;
    arr[192] = 192u;
    arr[193] = 193u;
    arr[194] = 194u;
    arr[195] = 195u;
    arr[196] = 196u;
    arr[197] = 197u;
    arr[198] = 198u;
    arr[199] = 199u;
    arr[200] = 200u;
    arr[201] = 201u;
    arr[202] = 202u;
    arr[203] = 203u;
    arr[204] = 204u;
    arr[205] = 205u;
    arr[206] = 206u;
    arr[207] = 207u;
    arr[208] = 208u;
    arr[209] = 209u;
    arr[210] = 210u;
    arr[211] = 211u;
    arr[212] = 212u;
    arr[213] = 213u;
    arr[214] = 214u;
    arr[215] = 215u;
    arr[216] = 216u;
    arr[217] = 217u;
    arr[218] = 218u;
    arr[219] = 219u;
    arr[220] = 220u;
    arr[221] = 221u;
    arr[222] = 222u;
    arr[223] = 223u;
    arr[224] = 224u;
    arr[225] = 225u;
    arr[226] = 226u;
    arr[227] = 227u;
    arr[228] = 228u;
    arr[229] = 229u;
    arr[230] = 230u;
    arr[231] = 231u;
    arr[232] = 232u;
    arr[233] = 233u;
    arr[234] = 234u;
    arr[235] = 235u;
    arr[236] = 236u;
    arr[237] = 237u;
    arr[238] = 238u;
    arr[239] = 239u;
    arr[240] = 240u;
    arr[241] = 241u;
    arr[242] = 242u;
    arr[243] = 243u;
    arr[244] = 244u;
    arr[245] = 245u;
    arr[246] = 246u;
    arr[247] = 247u;
    arr[248] = 248u;
    arr[249] = 249u;
    arr[250] = 250u;
    arr[251] = 251u;
    arr[252] = 252u;
    arr[253] = 253u;
    arr[254] = 254u;
    arr[255] = 255u;
    arr[256] = 256u;
    arr[257] = 257u;
    arr[258] = 258u;
    arr[259] = 259u;
    arr[260] = 260u;
    arr[261] = 261u;
    arr[262] = 262u;
    arr[263] = 263u;
    arr[264] = 264u;
    arr[265] = 265u;
    arr[266] = 266u;
    arr[267] = 267u;
    arr[268] = 268u;
    arr[269] = 269u;
    arr[270] = 270u;
    arr[271] = 271u;
    arr[272] = 272u;
    arr[273] = 273u;
    arr[274] = 274u;
    arr[275] = 275u;
    arr[276] = 276u;
    arr[277] = 277u;
    arr[278] = 278u;
    arr[279] = 279u;
    arr[280] = 280u;
    arr[281] = 281u;
    arr[282] = 282u;
    arr[283] = 283u;
    arr[284] = 284u;
    arr[285] = 285u;
    arr[286] = 286u;
    arr[287] = 287u;
    arr[288] = 288u;
    arr[289] = 289u;
    arr[290] = 290u;
    arr[291] = 291u;
    arr[292] = 292u;
    arr[293] = 293u;
    arr[294] = 294u;
    arr[295] = 295u;
    arr[296] = 296u;
    arr[297] = 297u;
    arr[298] = 298u;
    arr[299] = 299u;
    arr[300] = 300u;
    arr[301] = 301u;
    arr[302] = 302u;
    arr[303] = 303u;
    arr[304] = 304u;
    arr[305] = 305u;
    arr[306] = 306u;
    arr[307] = 307u;
    arr[308] = 308u;
    arr[309] = 309u;
    arr[310] = 310u;
    arr[311] = 311u;
    arr[312] = 312u;
    arr[313] = 313u;
    arr[314] = 314u;
    arr[315] = 315u;
    arr[316] = 316u;
    arr[317] = 317u;
    arr[318] = 318u;
    arr[319] = 319u;
    arr[320] = 320u;
    arr[321] = 321u;
    arr[322] = 322u;
    arr[323] = 323u;
    arr[324] = 324u;
    arr[325] = 325u;
    arr[326] = 326u;
    arr[327] = 327u;
    arr[328] = 328u;
    arr[329] = 329u;
    arr[330] = 330u;
    arr[331] = 331u;
    arr[332] = 332u;
    arr[333] = 333u;
    arr[334] = 334u;
    arr[335] = 335u;
    arr[336] = 336u;
    arr[337] = 337u;
    arr[338] = 338u;
    arr[339] = 339u;
    arr[340] = 340u;
    arr[341] = 341u;
    arr[342] = 342u;
    arr[343] = 343u;
    arr[344] = 344u;
    arr[345] = 345u;
    arr[346] = 346u;
    arr[347] = 347u;
    arr[348] = 348u;
    arr[349] = 349u;
    arr[350] = 350u;
    arr[351] = 351u;
    arr[352] = 352u;
    arr[353] = 353u;
    arr[354] = 354u;
    arr[355] = 355u;
    arr[356] = 356u;
    arr[357] = 357u;
    arr[358] = 358u;
    arr[359] = 359u;
    arr[360] = 360u;
    arr[361] = 361u;
    arr[362] = 362u;
    arr[363] = 363u;
    arr[364] = 364u;
    arr[365] = 365u;
    arr[366] = 366u;
    arr[367] = 367u;
    arr[368] = 368u;
    arr[369] = 369u;
    arr[370] = 370u;
    arr[371] = 371u;
    arr[372] = 372u;
    arr[373] = 373u;
    arr[374] = 374u;
    arr[375] = 375u;
    arr[376] = 376u;
    arr[377] = 377u;
    arr[378] = 378u;
    arr[379] = 379u;
    arr[380] = 380u;
    arr[381] = 381u;
    arr[382] = 382u;
    arr[383] = 383u;
    arr[384] = 384u;
    arr[385] = 385u;
    arr[386] = 386u;
    arr[387] = 387u;
    arr[388] = 388u;
    arr[389] = 389u;
    arr[390] = 390u;
    arr[391] = 391u;
    arr[392] = 392u;
    arr[393] = 393u;
    arr[394] = 394u;
    arr[395] = 395u;
    arr[396] = 396u;
    arr[397] = 397u;
    arr[398] = 398u;
    arr[399] = 399u;
    arr[400] = 400u;
    arr[401] = 401u;
    arr[402] = 402u;
    arr[403] = 403u;
    arr[404] = 404u;
    arr[405] = 405u;
    arr[406] = 406u;
    arr[407] = 407u;
    arr[408] = 408u;
    arr[409] = 409u;
    arr[410] = 410u;
    arr[411] = 411u;
    arr[412] = 412u;
    arr[413] = 413u;
    arr[414] = 414u;
    arr[415] = 415u;
    arr[416] = 416u;
    arr[417] = 417u;
    arr[418] = 418u;
    arr[419] = 419u;
    arr[420] = 420u;
    arr[421] = 421u;
    arr[422] = 422u;
    arr[423] = 423u;
    arr[424] = 424u;
    arr[425] = 425u;
    arr[426] = 426u;
    arr[427] = 427u;
    arr[428] = 428u;
    arr[429] = 429u;
    arr[430] = 430u;
    arr[431] = 431u;
    arr[432] = 432u;
    arr[433] = 433u;
    arr[434] = 434u;
    arr[435] = 435u;
    arr[436] = 436u;
    arr[437] = 437u;
    arr[438] = 438u;
    arr[439] = 439u;
    arr[440] = 440u;
    arr[441] = 441u;
    arr[442] = 442u;
    arr[443] = 443u;
    arr[444] = 444u;
    arr[445] = 445u;
    arr[446] = 446u;
    arr[447] = 447u;
    arr[448] = 448u;
    arr[449] = 449u;
    arr[450] = 450u;
    arr[451] = 451u;
    arr[452] = 452u;
    arr[453] = 453u;
    arr[454] = 454u;
    arr[455] = 455u;
    arr[456] = 456u;
    arr[457] = 457u;
    arr[458] = 458u;
    arr[459] = 459u;
    arr[460] = 460u;
    arr[461] = 461u;
    arr[462] = 462u;
    arr[463] = 463u;
    arr[464] = 464u;
    arr[465] = 465u;
    arr[466] = 466u;
    arr[467] = 467u;
    arr[468] = 468u;
    arr[469] = 469u;
    arr[470] = 470u;
    arr[471] = 471u;
    arr[472] = 472u;
    arr[473] = 473u;
    arr[474] = 474u;
    arr[475] = 475u;
    arr[476] = 476u;
    arr[477] = 477u;
    arr[478] = 478u;
    arr[479] = 479u;
    arr[480] = 480u;
    arr[481] = 481u;
    arr[482] = 482u;
    arr[483] = 483u;
    arr[484] = 484u;
    arr[485] = 485u;
    arr[486] = 486u;
    arr[487] = 487u;
    arr[488] = 488u;
    arr[489] = 489u;
    arr[490] = 490u;
    arr[491] = 491u;
    arr[492] = 492u;
    arr[493] = 493u;
    arr[494] = 494u;
    arr[495] = 495u;
    arr[496] = 496u;
    arr[497] = 497u;
    arr[498] = 498u;
    arr[499] = 499u;
    arr[500] = 500u;
    arr[501] = 501u;
    arr[502] = 502u;
    arr[503] = 503u;
    arr[504] = 504u;
    arr[505] = 505u;
    arr[506] = 506u;
    arr[507] = 507u;
    arr[508] = 508u;
    arr[509] = 509u;
    arr[510] = 510u;
    arr[511] = 511u;
    arr[512] = 512u;
    arr[513] = 513u;
    arr[514] = 514u;
    arr[515] = 515u;
    arr[516] = 516u;
    arr[517] = 517u;
    arr[518] = 518u;
    arr[519] = 519u;
    arr[520] = 520u;
    arr[521] = 521u;
    arr[522] = 522u;
    arr[523] = 523u;
    arr[524] = 524u;
    arr[525] = 525u;
    arr[526] = 526u;
    arr[527] = 527u;
    arr[528] = 528u;
    arr[529] = 529u;
    arr[530] = 530u;
    arr[531] = 531u;
    arr[532] = 532u;
    arr[533] = 533u;
    arr[534] = 534u;
    arr[535] = 535u;
    arr[536] = 536u;
    arr[537] = 537u;
    arr[538] = 538u;
    arr[539] = 539u;
    arr[540] = 540u;
    arr[541] = 541u;
    arr[542] = 542u;
    arr[543] = 543u;
    arr[544] = 544u;
    arr[545] = 545u;
    arr[546] = 546u;
    arr[547] = 547u;
    arr[548] = 548u;
    arr[549] = 549u;
    arr[550] = 550u;
    arr[551] = 551u;
    arr[552] = 552u;
    arr[553] = 553u;
    arr[554] = 554u;
    arr[555] = 555u;
    arr[556] = 556u;
    arr[557] = 557u;
    arr[558] = 558u;
    arr[559] = 559u;
    arr[560] = 560u;
    arr[561] = 561u;
    arr[562] = 562u;
    arr[563] = 563u;
    arr[564] = 564u;
    arr[565] = 565u;
    arr[566] = 566u;
    arr[567] = 567u;
    arr[568] = 568u;
    arr[569] = 569u;
    arr[570] = 570u;
    arr[571] = 571u;
    arr[572] = 572u;
    arr[573] = 573u;
    arr[574] = 574u;
    arr[575] = 575u;
    arr[576] = 576u;
    arr[577] = 577u;
    arr[578] = 578u;
    arr[579] = 579u;
    arr[580] = 580u;
    arr[581] = 581u;
    arr[582] = 582u;
    arr[583] = 583u;
    arr[584] = 584u;
    arr[585] = 585u;
    arr[586] = 586u;
    arr[587] = 587u;
    arr[588] = 588u;
    arr[589] = 589u;
    arr[590] = 590u;
    arr[591] = 591u;
    arr[592] = 592u;
    arr[593] = 593u;
    arr[594] = 594u;
    arr[595] = 595u;
    arr[596] = 596u;
    arr[597] = 597u;
    arr[598] = 598u;
    arr[599] = 599u;
    arr[600] = 600u;
    arr[601] = 601u;
    arr[602] = 602u;
    arr[603] = 603u;
    arr[604] = 604u;
    arr[605] = 605u;
    arr[606] = 606u;
    arr[607] = 607u;
    arr[608] = 608u;
    arr[609] = 609u;
    arr[610] = 610u;
    arr[611] = 611u;
    arr[612] = 612u;
    arr[613] = 613u;
    arr[614] = 614u;
    arr[615] = 615u;
    arr[616] = 616u;
    arr[617] = 617u;
    arr[618] = 618u;
    arr[619] = 619u;
    arr[620] = 620u;
    arr[621] = 621u;
    arr[622] = 622u;
    arr[623] = 623u;
    arr[624] = 624u;
    arr[625] = 625u;
    arr[626] = 626u;
    arr[627] = 627u;
    arr[628] = 628u;
    arr[629] = 629u;
    arr[630] = 630u;
    arr[631] = 631u;
    arr[632] = 632u;
    arr[633] = 633u;
    arr[634] = 634u;
    arr[635] = 635u;
    arr[636] = 636u;
    arr[637] = 637u;
    arr[638] = 638u;
    arr[639] = 639u;
    arr[640] = 640u;
    arr[641] = 641u;
    arr[642] = 642u;
    arr[643] = 643u;
    arr[644] = 644u;
    arr[645] = 645u;
    arr[646] = 646u;
    arr[647] = 647u;
    arr[648] = 648u;
    arr[649] = 649u;
    arr[650] = 650u;
    arr[651] = 651u;
    arr[652] = 652u;
    arr[653] = 653u;
    arr[654] = 654u;
    arr[655] = 655u;
    arr[656] = 656u;
    arr[657] = 657u;
    arr[658] = 658u;
    arr[659] = 659u;
    arr[660] = 660u;
    arr[661] = 661u;
    arr[662] = 662u;
    arr[663] = 663u;
    arr[664] = 664u;
    arr[665] = 665u;
    arr[666] = 666u;
    arr[667] = 667u;
    arr[668] = 668u;
    arr[669] = 669u;
    arr[670] = 670u;
    arr[671] = 671u;
    arr[672] = 672u;
    arr[673] = 673u;
    arr[674] = 674u;
    arr[675] = 675u;
    arr[676] = 676u;
    arr[677] = 677u;
    arr[678] = 678u;
    arr[679] = 679u;
    arr[680] = 680u;
    arr[681] = 681u;
    arr[682] = 682u;
    arr[683] = 683u;
    arr[684] = 684u;
    arr[685] = 685u;
    arr[686] = 686u;
    arr[687] = 687u;
    arr[688] = 688u;
    arr[689] = 689u;
    arr[690] = 690u;
    arr[691] = 691u;
    arr[692] = 692u;
    arr[693] = 693u;
    arr[694] = 694u;
    arr[695] = 695u;
    arr[696] = 696u;
    arr[697] = 697u;
    arr[698] = 698u;
    arr[699] = 699u;
    arr[700] = 700u;
    arr[701] = 701u;
    arr[702] = 702u;
    arr[703] = 703u;
    arr[704] = 704u;
    arr[705] = 705u;
    arr[706] = 706u;
    arr[707] = 707u;
    arr[708] = 708u;
    arr[709] = 709u;
    arr[710] = 710u;
    arr[711] = 711u;
    arr[712] = 712u;
    arr[713] = 713u;
    arr[714] = 714u;
    arr[715] = 715u;
    arr[716] = 716u;
    arr[717] = 717u;
    arr[718] = 718u;
    arr[719] = 719u;
    arr[720] = 720u;
    arr[721] = 721u;
    arr[722] = 722u;
    arr[723] = 723u;
    arr[724] = 724u;
    arr[725] = 725u;
    arr[726] = 726u;
    arr[727] = 727u;
    arr[728] = 728u;
    arr[729] = 729u;
    arr[730] = 730u;
    arr[731] = 731u;
    arr[732] = 732u;
    arr[733] = 733u;
    arr[734] = 734u;
    arr[735] = 735u;
    arr[736] = 736u;
    arr[737] = 737u;
    arr[738] = 738u;
    arr[739] = 739u;
    arr[740] = 740u;
    arr[741] = 741u;
    arr[742] = 742u;
    arr[743] = 743u;
    arr[744] = 744u;
    arr[745] = 745u;
    arr[746] = 746u;
    arr[747] = 747u;
    arr[748] = 748u;
    arr[749] = 749u;
    arr[750] = 750u;
    arr[751] = 751u;
    arr[752] = 752u;
    arr[753] = 753u;
    arr[754] = 754u;
    arr[755] = 755u;
    arr[756] = 756u;
    arr[757] = 757u;
    arr[758] = 758u;
    arr[759] = 759u;
    arr[760] = 760u;
    arr[761] = 761u;
    arr[762] = 762u;
    arr[763] = 763u;
    arr[764] = 764u;
    arr[765] = 765u;
    arr[766] = 766u;
    arr[767] = 767u;
    arr[768] = 768u;
    arr[769] = 769u;
    arr[770] = 770u;
    arr[771] = 771u;
    arr[772] = 772u;
    arr[773] = 773u;
    arr[774] = 774u;
    arr[775] = 775u;
    arr[776] = 776u;
    arr[777] = 777u;
    arr[778] = 778u;
    arr[779] = 779u;
    arr[780] = 780u;
    arr[781] = 781u;
    arr[782] = 782u;
    arr[783] = 783u;
    arr[784] = 784u;
    arr[785] = 785u;
    arr[786] = 786u;
    arr[787] = 787u;
    arr[788] = 788u;
    arr[789] = 789u;
    arr[790] = 790u;
    arr[791] = 791u;
    arr[792] = 792u;
    arr[793] = 793u;
    arr[794] = 794u;
    arr[795] = 795u;
    arr[796] = 796u;
    arr[797] = 797u;
    arr[798] = 798u;
    arr[799] = 799u;
    arr[800] = 800u;
    arr[801] = 801u;
    arr[802] = 802u;
    arr[803] = 803u;
    arr[804] = 804u;
    arr[805] = 805u;
    arr[806] = 806u;
    arr[807] = 807u;
    arr[808] = 808u;
    arr[809] = 809u;
    arr[810] = 810u;
    arr[811] = 811u;
    arr[812] = 812u;
    arr[813] = 813u;
    arr[814] = 814u;
    arr[815] = 815u;
    arr[816] = 816u;
    arr[817] = 817u;
    arr[818] = 818u;
    arr[819] = 819u;
    arr[820] = 820u;
    arr[821] = 821u;
    arr[822] = 822u;
    arr[823] = 823u;
    arr[824] = 824u;
    arr[825] = 825u;
    arr[826] = 826u;
    arr[827] = 827u;
    arr[828] = 828u;
    arr[829] = 829u;
    arr[830] = 830u;
    arr[831] = 831u;
    arr[832] = 832u;
    arr[833] = 833u;
    arr[834] = 834u;
    arr[835] = 835u;
    arr[836] = 836u;
    arr[837] = 837u;
    arr[838] = 838u;
    arr[839] = 839u;
    arr[840] = 840u;
    arr[841] = 841u;
    arr[842] = 842u;
    arr[843] = 843u;
    arr[844] = 844u;
    arr[845] = 845u;
    arr[846] = 846u;
    arr[847] = 847u;
    arr[848] = 848u;
    arr[849] = 849u;
    arr[850] = 850u;
    arr[851] = 851u;
    arr[852] = 852u;
    arr[853] = 853u;
    arr[854] = 854u;
    arr[855] = 855u;
    arr[856] = 856u;
    arr[857] = 857u;
    arr[858] = 858u;
    arr[859] = 859u;
    arr[860] = 860u;
    arr[861] = 861u;
    arr[862] = 862u;
    arr[863] = 863u;
    arr[864] = 864u;
    arr[865] = 865u;
    arr[866] = 866u;
    arr[867] = 867u;
    arr[868] = 868u;
    arr[869] = 869u;
    arr[870] = 870u;
    arr[871] = 871u;
    arr[872] = 872u;
    arr[873] = 873u;
    arr[874] = 874u;
    arr[875] = 875u;
    arr[876] = 876u;
    arr[877] = 877u;
    arr[878] = 878u;
    arr[879] = 879u;
    arr[880] = 880u;
    arr[881] = 881u;
    arr[882] = 882u;
    arr[883] = 883u;
    arr[884] = 884u;
    arr[885] = 885u;
    arr[886] = 886u;
    arr[887] = 887u;
    arr[888] = 888u;
    arr[889] = 889u;
    arr[890] = 890u;
    arr[891] = 891u;
    arr[892] = 892u;
    arr[893] = 893u;
    arr[894] = 894u;
    arr[895] = 895u;
    arr[896] = 896u;
    arr[897] = 897u;
    arr[898] = 898u;
    arr[899] = 899u;
    arr[900] = 900u;
    arr[901] = 901u;
    arr[902] = 902u;
    arr[903] = 903u;
    arr[904] = 904u;
    arr[905] = 905u;
    arr[906] = 906u;
    arr[907] = 907u;
    arr[908] = 908u;
    arr[909] = 909u;
    arr[910] = 910u;
    arr[911] = 911u;
    arr[912] = 912u;
    arr[913] = 913u;
    arr[914] = 914u;
    arr[915] = 915u;
    arr[916] = 916u;
    arr[917] = 917u;
    arr[918] = 918u;
    arr[919] = 919u;
    arr[920] = 920u;
    arr[921] = 921u;
    arr[922] = 922u;
    arr[923] = 923u;
    arr[924] = 924u;
    arr[925] = 925u;
    arr[926] = 926u;
    arr[927] = 927u;
    arr[928] = 928u;
    arr[929] = 929u;
    arr[930] = 930u;
    arr[931] = 931u;
    arr[932] = 932u;
    arr[933] = 933u;
    arr[934] = 934u;
    arr[935] = 935u;
    arr[936] = 936u;
    arr[937] = 937u;
    arr[938] = 938u;
    arr[939] = 939u;
    arr[940] = 940u;
    arr[941] = 941u;
    arr[942] = 942u;
    arr[943] = 943u;
    arr[944] = 944u;
    arr[945] = 945u;
    arr[946] = 946u;
    arr[947] = 947u;
    arr[948] = 948u;
    arr[949] = 949u;
    arr[950] = 950u;
    arr[951] = 951u;
    arr[952] = 952u;
    arr[953] = 953u;
    arr[954] = 954u;
    arr[955] = 955u;
    arr[956] = 956u;
    arr[957] = 957u;
    arr[958] = 958u;
    arr[959] = 959u;
    arr[960] = 960u;
    arr[961] = 961u;
    arr[962] = 962u;
    arr[963] = 963u;
    arr[964] = 964u;
    arr[965] = 965u;
    arr[966] = 966u;
    arr[967] = 967u;
    arr[968] = 968u;
    arr[969] = 969u;
    arr[970] = 970u;
    arr[971] = 971u;
    arr[972] = 972u;
    arr[973] = 973u;
    arr[974] = 974u;
    arr[975] = 975u;
    arr[976] = 976u;
    arr[977] = 977u;
    arr[978] = 978u;
    arr[979] = 979u;
    arr[980] = 980u;
    arr[981] = 981u;
    arr[982] = 982u;
    arr[983] = 983u;
    arr[984] = 984u;
    arr[985] = 985u;
    arr[986] = 986u;
    arr[987] = 987u;
    arr[988] = 988u;
    arr[989] = 989u;
    arr[990] = 990u;
    arr[991] = 991u;
    arr[992] = 992u;
    arr[993] = 993u;
    arr[994] = 994u;
    arr[995] = 995u;
    arr[996] = 996u;
    arr[997] = 997u;
    arr[998] = 998u;
    arr[999] = 999u;
    v_indices[0] = arr[0];
    v_indices[1] = arr[1];
    v_indices[2] = arr[2];
    v_indices[3] = arr[3];
    v_indices[4] = arr[4];
    v_indices[5] = arr[5];
    v_indices[6] = arr[6];
    v_indices[7] = arr[7];
    v_indices[8] = arr[8];
    v_indices[9] = arr[9];
    v_indices[10] = arr[10];
    v_indices[11] = arr[11];
    v_indices[12] = arr[12];
    v_indices[13] = arr[13];
    v_indices[14] = arr[14];
    v_indices[15] = arr[15];
    v_indices[16] = arr[16];
    v_indices[17] = arr[17];
    v_indices[18] = arr[18];
    v_indices[19] = arr[19];
    v_indices[20] = arr[20];
    v_indices[21] = arr[21];
    v_indices[22] = arr[22];
    v_indices[23] = arr[23];
    v_indices[24] = arr[24];
    v_indices[25] = arr[25];
    v_indices[26] = arr[26];
    v_indices[27] = arr[27];
    v_indices[28] = arr[28];
    v_indices[29] = arr[29];
    v_indices[30] = arr[30];
    v_indices[31] = arr[31];
    v_indices[32] = arr[32];
    v_indices[33] = arr[33];
    v_indices[34] = arr[34];
    v_indices[35] = arr[35];
    v_indices[36] = arr[36];
    v_indices[37] = arr[37];
    v_indices[38] = arr[38];
    v_indices[39] = arr[39];
    v_indices[40] = arr[40];
    v_indices[41] = arr[41];
    v_indices[42] = arr[42];
    v_indices[43] = arr[43];
    v_indices[44] = arr[44];
    v_indices[45] = arr[45];
    v_indices[46] = arr[46];
    v_indices[47] = arr[47];
    v_indices[48] = arr[48];
    v_indices[49] = arr[49];
    v_indices[50] = arr[50];
    v_indices[51] = arr[51];
    v_indices[52] = arr[52];
    v_indices[53] = arr[53];
    v_indices[54] = arr[54];
    v_indices[55] = arr[55];
    v_indices[56] = arr[56];
    v_indices[57] = arr[57];
    v_indices[58] = arr[58];
    v_indices[59] = arr[59];
    v_indices[60] = arr[60];
    v_indices[61] = arr[61];
    v_indices[62] = arr[62];
    v_indices[63] = arr[63];
    v_indices[64] = arr[64];
    v_indices[65] = arr[65];
    v_indices[66] = arr[66];
    v_indices[67] = arr[67];
    v_indices[68] = arr[68];
    v_indices[69] = arr[69];
    v_indices[70] = arr[70];
    v_indices[71] = arr[71];
    v_indices[72] = arr[72];
    v_indices[73] = arr[73];
    v_indices[74] = arr[74];
    v_indices[75] = arr[75];
    v_indices[76] = arr[76];
    v_indices[77] = arr[77];
    v_indices[78] = arr[78];
    v_indices[79] = arr[79];
    v_indices[80] = arr[80];
    v_indices[81] = arr[81];
    v_indices[82] = arr[82];
    v_indices[83] = arr[83];
    v_indices[84] = arr[84];
    v_indices[85] = arr[85];
    v_indices[86] = arr[86];
    v_indices[87] = arr[87];
    v_indices[88] = arr[88];
    v_indices[89] = arr[89];
    v_indices[90] = arr[90];
    v_indices[91] = arr[91];
    v_indices[92] = arr[92];
    v_indices[93] = arr[93];
    v_indices[94] = arr[94];
    v_indices[95] = arr[95];
    v_indices[96] = arr[96];
    v_indices[97] = arr[97];
    v_indices[98] = arr[98];
    v_indices[99] = arr[99];
    v_indices[100] = arr[100];
    v_indices[101] = arr[101];
    v_indices[102] = arr[102];
    v_indices[103] = arr[103];
    v_indices[104] = arr[104];
    v_indices[105] = arr[105];
    v_indices[106] = arr[106];
    v_indices[107] = arr[107];
    v_indices[108] = arr[108];
    v_indices[109] = arr[109];
    v_indices[110] = arr[110];
    v_indices[111] = arr[111];
    v_indices[112] = arr[112];
    v_indices[113] = arr[113];
    v_indices[114] = arr[114];
    v_indices[115] = arr[115];
    v_indices[116] = arr[116];
    v_indices[117] = arr[117];
    v_indices[118] = arr[118];
    v_indices[119] = arr[119];
    v_indices[120] = arr[120];
    v_indices[121] = arr[121];
    v_indices[122] = arr[122];
    v_indices[123] = arr[123];
    v_indices[124] = arr[124];
    v_indices[125] = arr[125];
    v_indices[126] = arr[126];
    v_indices[127] = arr[127];
    v_indices[128] = arr[128];
    v_indices[129] = arr[129];
    v_indices[130] = arr[130];
    v_indices[131] = arr[131];
    v_indices[132] = arr[132];
    v_indices[133] = arr[133];
    v_indices[134] = arr[134];
    v_indices[135] = arr[135];
    v_indices[136] = arr[136];
    v_indices[137] = arr[137];
    v_indices[138] = arr[138];
    v_indices[139] = arr[139];
    v_indices[140] = arr[140];
    v_indices[141] = arr[141];
    v_indices[142] = arr[142];
    v_indices[143] = arr[143];
    v_indices[144] = arr[144];
    v_indices[145] = arr[145];
    v_indices[146] = arr[146];
    v_indices[147] = arr[147];
    v_indices[148] = arr[148];
    v_indices[149] = arr[149];
    v_indices[150] = arr[150];
    v_indices[151] = arr[151];
    v_indices[152] = arr[152];
    v_indices[153] = arr[153];
    v_indices[154] = arr[154];
    v_indices[155] = arr[155];
    v_indices[156] = arr[156];
    v_indices[157] = arr[157];
    v_indices[158] = arr[158];
    v_indices[159] = arr[159];
    v_indices[160] = arr[160];
    v_indices[161] = arr[161];
    v_indices[162] = arr[162];
    v_indices[163] = arr[163];
    v_indices[164] = arr[164];
    v_indices[165] = arr[165];
    v_indices[166] = arr[166];
    v_indices[167] = arr[167];
    v_indices[168] = arr[168];
    v_indices[169] = arr[169];
    v_indices[170] = arr[170];
    v_indices[171] = arr[171];
    v_indices[172] = arr[172];
    v_indices[173] = arr[173];
    v_indices[174] = arr[174];
    v_indices[175] = arr[175];
    v_indices[176] = arr[176];
    v_indices[177] = arr[177];
    v_indices[178] = arr[178];
    v_indices[179] = arr[179];
    v_indices[180] = arr[180];
    v_indices[181] = arr[181];
    v_indices[182] = arr[182];
    v_indices[183] = arr[183];
    v_indices[184] = arr[184];
    v_indices[185] = arr[185];
    v_indices[186] = arr[186];
    v_indices[187] = arr[187];
    v_indices[188] = arr[188];
    v_indices[189] = arr[189];
    v_indices[190] = arr[190];
    v_indices[191] = arr[191];
    v_indices[192] = arr[192];
    v_indices[193] = arr[193];
    v_indices[194] = arr[194];
    v_indices[195] = arr[195];
    v_indices[196] = arr[196];
    v_indices[197] = arr[197];
    v_indices[198] = arr[198];
    v_indices[199] = arr[199];
    v_indices[200] = arr[200];
    v_indices[201] = arr[201];
    v_indices[202] = arr[202];
    v_indices[203] = arr[203];
    v_indices[204] = arr[204];
    v_indices[205] = arr[205];
    v_indices[206] = arr[206];
    v_indices[207] = arr[207];
    v_indices[208] = arr[208];
    v_indices[209] = arr[209];
    v_indices[210] = arr[210];
    v_indices[211] = arr[211];
    v_indices[212] = arr[212];
    v_indices[213] = arr[213];
    v_indices[214] = arr[214];
    v_indices[215] = arr[215];
    v_indices[216] = arr[216];
    v_indices[217] = arr[217];
    v_indices[218] = arr[218];
    v_indices[219] = arr[219];
    v_indices[220] = arr[220];
    v_indices[221] = arr[221];
    v_indices[222] = arr[222];
    v_indices[223] = arr[223];
    v_indices[224] = arr[224];
    v_indices[225] = arr[225];
    v_indices[226] = arr[226];
    v_indices[227] = arr[227];
    v_indices[228] = arr[228];
    v_indices[229] = arr[229];
    v_indices[230] = arr[230];
    v_indices[231] = arr[231];
    v_indices[232] = arr[232];
    v_indices[233] = arr[233];
    v_indices[234] = arr[234];
    v_indices[235] = arr[235];
    v_indices[236] = arr[236];
    v_indices[237] = arr[237];
    v_indices[238] = arr[238];
    v_indices[239] = arr[239];
    v_indices[240] = arr[240];
    v_indices[241] = arr[241];
    v_indices[242] = arr[242];
    v_indices[243] = arr[243];
    v_indices[244] = arr[244];
    v_indices[245] = arr[245];
    v_indices[246] = arr[246];
    v_indices[247] = arr[247];
    v_indices[248] = arr[248];
    v_indices[249] = arr[249];
    v_indices[250] = arr[250];
    v_indices[251] = arr[251];
    v_indices[252] = arr[252];
    v_indices[253] = arr[253];
    v_indices[254] = arr[254];
    v_indices[255] = arr[255];
    v_indices[256] = arr[256];
    v_indices[257] = arr[257];
    v_indices[258] = arr[258];
    v_indices[259] = arr[259];
    v_indices[260] = arr[260];
    v_indices[261] = arr[261];
    v_indices[262] = arr[262];
    v_indices[263] = arr[263];
    v_indices[264] = arr[264];
    v_indices[265] = arr[265];
    v_indices[266] = arr[266];
    v_indices[267] = arr[267];
    v_indices[268] = arr[268];
    v_indices[269] = arr[269];
    v_indices[270] = arr[270];
    v_indices[271] = arr[271];
    v_indices[272] = arr[272];
    v_indices[273] = arr[273];
    v_indices[274] = arr[274];
    v_indices[275] = arr[275];
    v_indices[276] = arr[276];
    v_indices[277] = arr[277];
    v_indices[278] = arr[278];
    v_indices[279] = arr[279];
    v_indices[280] = arr[280];
    v_indices[281] = arr[281];
    v_indices[282] = arr[282];
    v_indices[283] = arr[283];
    v_indices[284] = arr[284];
    v_indices[285] = arr[285];
    v_indices[286] = arr[286];
    v_indices[287] = arr[287];
    v_indices[288] = arr[288];
    v_indices[289] = arr[289];
    v_indices[290] = arr[290];
    v_indices[291] = arr[291];
    v_indices[292] = arr[292];
    v_indices[293] = arr[293];
    v_indices[294] = arr[294];
    v_indices[295] = arr[295];
    v_indices[296] = arr[296];
    v_indices[297] = arr[297];
    v_indices[298] = arr[298];
    v_indices[299] = arr[299];
    v_indices[300] = arr[300];
    v_indices[301] = arr[301];
    v_indices[302] = arr[302];
    v_indices[303] = arr[303];
    v_indices[304] = arr[304];
    v_indices[305] = arr[305];
    v_indices[306] = arr[306];
    v_indices[307] = arr[307];
    v_indices[308] = arr[308];
    v_indices[309] = arr[309];
    v_indices[310] = arr[310];
    v_indices[311] = arr[311];
    v_indices[312] = arr[312];
    v_indices[313] = arr[313];
    v_indices[314] = arr[314];
    v_indices[315] = arr[315];
    v_indices[316] = arr[316];
    v_indices[317] = arr[317];
    v_indices[318] = arr[318];
    v_indices[319] = arr[319];
    v_indices[320] = arr[320];
    v_indices[321] = arr[321];
    v_indices[322] = arr[322];
    v_indices[323] = arr[323];
    v_indices[324] = arr[324];
    v_indices[325] = arr[325];
    v_indices[326] = arr[326];
    v_indices[327] = arr[327];
    v_indices[328] = arr[328];
    v_indices[329] = arr[329];
    v_indices[330] = arr[330];
    v_indices[331] = arr[331];
    v_indices[332] = arr[332];
    v_indices[333] = arr[333];
    v_indices[334] = arr[334];
    v_indices[335] = arr[335];
    v_indices[336] = arr[336];
    v_indices[337] = arr[337];
    v_indices[338] = arr[338];
    v_indices[339] = arr[339];
    v_indices[340] = arr[340];
    v_indices[341] = arr[341];
    v_indices[342] = arr[342];
    v_indices[343] = arr[343];
    v_indices[344] = arr[344];
    v_indices[345] = arr[345];
    v_indices[346] = arr[346];
    v_indices[347] = arr[347];
    v_indices[348] = arr[348];
    v_indices[349] = arr[349];
    v_indices[350] = arr[350];
    v_indices[351] = arr[351];
    v_indices[352] = arr[352];
    v_indices[353] = arr[353];
    v_indices[354] = arr[354];
    v_indices[355] = arr[355];
    v_indices[356] = arr[356];
    v_indices[357] = arr[357];
    v_indices[358] = arr[358];
    v_indices[359] = arr[359];
    v_indices[360] = arr[360];
    v_indices[361] = arr[361];
    v_indices[362] = arr[362];
    v_indices[363] = arr[363];
    v_indices[364] = arr[364];
    v_indices[365] = arr[365];
    v_indices[366] = arr[366];
    v_indices[367] = arr[367];
    v_indices[368] = arr[368];
    v_indices[369] = arr[369];
    v_indices[370] = arr[370];
    v_indices[371] = arr[371];
    v_indices[372] = arr[372];
    v_indices[373] = arr[373];
    v_indices[374] = arr[374];
    v_indices[375] = arr[375];
    v_indices[376] = arr[376];
    v_indices[377] = arr[377];
    v_indices[378] = arr[378];
    v_indices[379] = arr[379];
    v_indices[380] = arr[380];
    v_indices[381] = arr[381];
    v_indices[382] = arr[382];
    v_indices[383] = arr[383];
    v_indices[384] = arr[384];
    v_indices[385] = arr[385];
    v_indices[386] = arr[386];
    v_indices[387] = arr[387];
    v_indices[388] = arr[388];
    v_indices[389] = arr[389];
    v_indices[390] = arr[390];
    v_indices[391] = arr[391];
    v_indices[392] = arr[392];
    v_indices[393] = arr[393];
    v_indices[394] = arr[394];
    v_indices[395] = arr[395];
    v_indices[396] = arr[396];
    v_indices[397] = arr[397];
    v_indices[398] = arr[398];
    v_indices[399] = arr[399];
    v_indices[400] = arr[400];
    v_indices[401] = arr[401];
    v_indices[402] = arr[402];
    v_indices[403] = arr[403];
    v_indices[404] = arr[404];
    v_indices[405] = arr[405];
    v_indices[406] = arr[406];
    v_indices[407] = arr[407];
    v_indices[408] = arr[408];
    v_indices[409] = arr[409];
    v_indices[410] = arr[410];
    v_indices[411] = arr[411];
    v_indices[412] = arr[412];
    v_indices[413] = arr[413];
    v_indices[414] = arr[414];
    v_indices[415] = arr[415];
    v_indices[416] = arr[416];
    v_indices[417] = arr[417];
    v_indices[418] = arr[418];
    v_indices[419] = arr[419];
    v_indices[420] = arr[420];
    v_indices[421] = arr[421];
    v_indices[422] = arr[422];
    v_indices[423] = arr[423];
    v_indices[424] = arr[424];
    v_indices[425] = arr[425];
    v_indices[426] = arr[426];
    v_indices[427] = arr[427];
    v_indices[428] = arr[428];
    v_indices[429] = arr[429];
    v_indices[430] = arr[430];
    v_indices[431] = arr[431];
    v_indices[432] = arr[432];
    v_indices[433] = arr[433];
    v_indices[434] = arr[434];
    v_indices[435] = arr[435];
    v_indices[436] = arr[436];
    v_indices[437] = arr[437];
    v_indices[438] = arr[438];
    v_indices[439] = arr[439];
    v_indices[440] = arr[440];
    v_indices[441] = arr[441];
    v_indices[442] = arr[442];
    v_indices[443] = arr[443];
    v_indices[444] = arr[444];
    v_indices[445] = arr[445];
    v_indices[446] = arr[446];
    v_indices[447] = arr[447];
    v_indices[448] = arr[448];
    v_indices[449] = arr[449];
    v_indices[450] = arr[450];
    v_indices[451] = arr[451];
    v_indices[452] = arr[452];
    v_indices[453] = arr[453];
    v_indices[454] = arr[454];
    v_indices[455] = arr[455];
    v_indices[456] = arr[456];
    v_indices[457] = arr[457];
    v_indices[458] = arr[458];
    v_indices[459] = arr[459];
    v_indices[460] = arr[460];
    v_indices[461] = arr[461];
    v_indices[462] = arr[462];
    v_indices[463] = arr[463];
    v_indices[464] = arr[464];
    v_indices[465] = arr[465];
    v_indices[466] = arr[466];
    v_indices[467] = arr[467];
    v_indices[468] = arr[468];
    v_indices[469] = arr[469];
    v_indices[470] = arr[470];
    v_indices[471] = arr[471];
    v_indices[472] = arr[472];
    v_indices[473] = arr[473];
    v_indices[474] = arr[474];
    v_indices[475] = arr[475];
    v_indices[476] = arr[476];
    v_indices[477] = arr[477];
    v_indices[478] = arr[478];
    v_indices[479] = arr[479];
    v_indices[480] = arr[480];
    v_indices[481] = arr[481];
    v_indices[482] = arr[482];
    v_indices[483] = arr[483];
    v_indices[484] = arr[484];
    v_indices[485] = arr[485];
    v_indices[486] = arr[486];
    v_indices[487] = arr[487];
    v_indices[488] = arr[488];
    v_indices[489] = arr[489];
    v_indices[490] = arr[490];
    v_indices[491] = arr[491];
    v_indices[492] = arr[492];
    v_indices[493] = arr[493];
    v_indices[494] = arr[494];
    v_indices[495] = arr[495];
    v_indices[496] = arr[496];
    v_indices[497] = arr[497];
    v_indices[498] = arr[498];
    v_indices[499] = arr[499];
    v_indices[500] = arr[500];
    v_indices[501] = arr[501];
    v_indices[502] = arr[502];
    v_indices[503] = arr[503];
    v_indices[504] = arr[504];
    v_indices[505] = arr[505];
    v_indices[506] = arr[506];
    v_indices[507] = arr[507];
    v_indices[508] = arr[508];
    v_indices[509] = arr[509];
    v_indices[510] = arr[510];
    v_indices[511] = arr[511];
    v_indices[512] = arr[512];
    v_indices[513] = arr[513];
    v_indices[514] = arr[514];
    v_indices[515] = arr[515];
    v_indices[516] = arr[516];
    v_indices[517] = arr[517];
    v_indices[518] = arr[518];
    v_indices[519] = arr[519];
    v_indices[520] = arr[520];
    v_indices[521] = arr[521];
    v_indices[522] = arr[522];
    v_indices[523] = arr[523];
    v_indices[524] = arr[524];
    v_indices[525] = arr[525];
    v_indices[526] = arr[526];
    v_indices[527] = arr[527];
    v_indices[528] = arr[528];
    v_indices[529] = arr[529];
    v_indices[530] = arr[530];
    v_indices[531] = arr[531];
    v_indices[532] = arr[532];
    v_indices[533] = arr[533];
    v_indices[534] = arr[534];
    v_indices[535] = arr[535];
    v_indices[536] = arr[536];
    v_indices[537] = arr[537];
    v_indices[538] = arr[538];
    v_indices[539] = arr[539];
    v_indices[540] = arr[540];
    v_indices[541] = arr[541];
    v_indices[542] = arr[542];
    v_indices[543] = arr[543];
    v_indices[544] = arr[544];
    v_indices[545] = arr[545];
    v_indices[546] = arr[546];
    v_indices[547] = arr[547];
    v_indices[548] = arr[548];
    v_indices[549] = arr[549];
    v_indices[550] = arr[550];
    v_indices[551] = arr[551];
    v_indices[552] = arr[552];
    v_indices[553] = arr[553];
    v_indices[554] = arr[554];
    v_indices[555] = arr[555];
    v_indices[556] = arr[556];
    v_indices[557] = arr[557];
    v_indices[558] = arr[558];
    v_indices[559] = arr[559];
    v_indices[560] = arr[560];
    v_indices[561] = arr[561];
    v_indices[562] = arr[562];
    v_indices[563] = arr[563];
    v_indices[564] = arr[564];
    v_indices[565] = arr[565];
    v_indices[566] = arr[566];
    v_indices[567] = arr[567];
    v_indices[568] = arr[568];
    v_indices[569] = arr[569];
    v_indices[570] = arr[570];
    v_indices[571] = arr[571];
    v_indices[572] = arr[572];
    v_indices[573] = arr[573];
    v_indices[574] = arr[574];
    v_indices[575] = arr[575];
    v_indices[576] = arr[576];
    v_indices[577] = arr[577];
    v_indices[578] = arr[578];
    v_indices[579] = arr[579];
    v_indices[580] = arr[580];
    v_indices[581] = arr[581];
    v_indices[582] = arr[582];
    v_indices[583] = arr[583];
    v_indices[584] = arr[584];
    v_indices[585] = arr[585];
    v_indices[586] = arr[586];
    v_indices[587] = arr[587];
    v_indices[588] = arr[588];
    v_indices[589] = arr[589];
    v_indices[590] = arr[590];
    v_indices[591] = arr[591];
    v_indices[592] = arr[592];
    v_indices[593] = arr[593];
    v_indices[594] = arr[594];
    v_indices[595] = arr[595];
    v_indices[596] = arr[596];
    v_indices[597] = arr[597];
    v_indices[598] = arr[598];
    v_indices[599] = arr[599];
    v_indices[600] = arr[600];
    v_indices[601] = arr[601];
    v_indices[602] = arr[602];
    v_indices[603] = arr[603];
    v_indices[604] = arr[604];
    v_indices[605] = arr[605];
    v_indices[606] = arr[606];
    v_indices[607] = arr[607];
    v_indices[608] = arr[608];
    v_indices[609] = arr[609];
    v_indices[610] = arr[610];
    v_indices[611] = arr[611];
    v_indices[612] = arr[612];
    v_indices[613] = arr[613];
    v_indices[614] = arr[614];
    v_indices[615] = arr[615];
    v_indices[616] = arr[616];
    v_indices[617] = arr[617];
    v_indices[618] = arr[618];
    v_indices[619] = arr[619];
    v_indices[620] = arr[620];
    v_indices[621] = arr[621];
    v_indices[622] = arr[622];
    v_indices[623] = arr[623];
    v_indices[624] = arr[624];
    v_indices[625] = arr[625];
    v_indices[626] = arr[626];
    v_indices[627] = arr[627];
    v_indices[628] = arr[628];
    v_indices[629] = arr[629];
    v_indices[630] = arr[630];
    v_indices[631] = arr[631];
    v_indices[632] = arr[632];
    v_indices[633] = arr[633];
    v_indices[634] = arr[634];
    v_indices[635] = arr[635];
    v_indices[636] = arr[636];
    v_indices[637] = arr[637];
    v_indices[638] = arr[638];
    v_indices[639] = arr[639];
    v_indices[640] = arr[640];
    v_indices[641] = arr[641];
    v_indices[642] = arr[642];
    v_indices[643] = arr[643];
    v_indices[644] = arr[644];
    v_indices[645] = arr[645];
    v_indices[646] = arr[646];
    v_indices[647] = arr[647];
    v_indices[648] = arr[648];
    v_indices[649] = arr[649];
    v_indices[650] = arr[650];
    v_indices[651] = arr[651];
    v_indices[652] = arr[652];
    v_indices[653] = arr[653];
    v_indices[654] = arr[654];
    v_indices[655] = arr[655];
    v_indices[656] = arr[656];
    v_indices[657] = arr[657];
    v_indices[658] = arr[658];
    v_indices[659] = arr[659];
    v_indices[660] = arr[660];
    v_indices[661] = arr[661];
    v_indices[662] = arr[662];
    v_indices[663] = arr[663];
    v_indices[664] = arr[664];
    v_indices[665] = arr[665];
    v_indices[666] = arr[666];
    v_indices[667] = arr[667];
    v_indices[668] = arr[668];
    v_indices[669] = arr[669];
    v_indices[670] = arr[670];
    v_indices[671] = arr[671];
    v_indices[672] = arr[672];
    v_indices[673] = arr[673];
    v_indices[674] = arr[674];
    v_indices[675] = arr[675];
    v_indices[676] = arr[676];
    v_indices[677] = arr[677];
    v_indices[678] = arr[678];
    v_indices[679] = arr[679];
    v_indices[680] = arr[680];
    v_indices[681] = arr[681];
    v_indices[682] = arr[682];
    v_indices[683] = arr[683];
    v_indices[684] = arr[684];
    v_indices[685] = arr[685];
    v_indices[686] = arr[686];
    v_indices[687] = arr[687];
    v_indices[688] = arr[688];
    v_indices[689] = arr[689];
    v_indices[690] = arr[690];
    v_indices[691] = arr[691];
    v_indices[692] = arr[692];
    v_indices[693] = arr[693];
    v_indices[694] = arr[694];
    v_indices[695] = arr[695];
    v_indices[696] = arr[696];
    v_indices[697] = arr[697];
    v_indices[698] = arr[698];
    v_indices[699] = arr[699];
    v_indices[700] = arr[700];
    v_indices[701] = arr[701];
    v_indices[702] = arr[702];
    v_indices[703] = arr[703];
    v_indices[704] = arr[704];
    v_indices[705] = arr[705];
    v_indices[706] = arr[706];
    v_indices[707] = arr[707];
    v_indices[708] = arr[708];
    v_indices[709] = arr[709];
    v_indices[710] = arr[710];
    v_indices[711] = arr[711];
    v_indices[712] = arr[712];
    v_indices[713] = arr[713];
    v_indices[714] = arr[714];
    v_indices[715] = arr[715];
    v_indices[716] = arr[716];
    v_indices[717] = arr[717];
    v_indices[718] = arr[718];
    v_indices[719] = arr[719];
    v_indices[720] = arr[720];
    v_indices[721] = arr[721];
    v_indices[722] = arr[722];
    v_indices[723] = arr[723];
    v_indices[724] = arr[724];
    v_indices[725] = arr[725];
    v_indices[726] = arr[726];
    v_indices[727] = arr[727];
    v_indices[728] = arr[728];
    v_indices[729] = arr[729];
    v_indices[730] = arr[730];
    v_indices[731] = arr[731];
    v_indices[732] = arr[732];
    v_indices[733] = arr[733];
    v_indices[734] = arr[734];
    v_indices[735] = arr[735];
    v_indices[736] = arr[736];
    v_indices[737] = arr[737];
    v_indices[738] = arr[738];
    v_indices[739] = arr[739];
    v_indices[740] = arr[740];
    v_indices[741] = arr[741];
    v_indices[742] = arr[742];
    v_indices[743] = arr[743];
    v_indices[744] = arr[744];
    v_indices[745] = arr[745];
    v_indices[746] = arr[746];
    v_indices[747] = arr[747];
    v_indices[748] = arr[748];
    v_indices[749] = arr[749];
    v_indices[750] = arr[750];
    v_indices[751] = arr[751];
    v_indices[752] = arr[752];
    v_indices[753] = arr[753];
    v_indices[754] = arr[754];
    v_indices[755] = arr[755];
    v_indices[756] = arr[756];
    v_indices[757] = arr[757];
    v_indices[758] = arr[758];
    v_indices[759] = arr[759];
    v_indices[760] = arr[760];
    v_indices[761] = arr[761];
    v_indices[762] = arr[762];
    v_indices[763] = arr[763];
    v_indices[764] = arr[764];
    v_indices[765] = arr[765];
    v_indices[766] = arr[766];
    v_indices[767] = arr[767];
    v_indices[768] = arr[768];
    v_indices[769] = arr[769];
    v_indices[770] = arr[770];
    v_indices[771] = arr[771];
    v_indices[772] = arr[772];
    v_indices[773] = arr[773];
    v_indices[774] = arr[774];
    v_indices[775] = arr[775];
    v_indices[776] = arr[776];
    v_indices[777] = arr[777];
    v_indices[778] = arr[778];
    v_indices[779] = arr[779];
    v_indices[780] = arr[780];
    v_indices[781] = arr[781];
    v_indices[782] = arr[782];
    v_indices[783] = arr[783];
    v_indices[784] = arr[784];
    v_indices[785] = arr[785];
    v_indices[786] = arr[786];
    v_indices[787] = arr[787];
    v_indices[788] = arr[788];
    v_indices[789] = arr[789];
    v_indices[790] = arr[790];
    v_indices[791] = arr[791];
    v_indices[792] = arr[792];
    v_indices[793] = arr[793];
    v_indices[794] = arr[794];
    v_indices[795] = arr[795];
    v_indices[796] = arr[796];
    v_indices[797] = arr[797];
    v_indices[798] = arr[798];
    v_indices[799] = arr[799];
    v_indices[800] = arr[800];
    v_indices[801] = arr[801];
    v_indices[802] = arr[802];
    v_indices[803] = arr[803];
    v_indices[804] = arr[804];
    v_indices[805] = arr[805];
    v_indices[806] = arr[806];
    v_indices[807] = arr[807];
    v_indices[808] = arr[808];
    v_indices[809] = arr[809];
    v_indices[810] = arr[810];
    v_indices[811] = arr[811];
    v_indices[812] = arr[812];
    v_indices[813] = arr[813];
    v_indices[814] = arr[814];
    v_indices[815] = arr[815];
    v_indices[816] = arr[816];
    v_indices[817] = arr[817];
    v_indices[818] = arr[818];
    v_indices[819] = arr[819];
    v_indices[820] = arr[820];
    v_indices[821] = arr[821];
    v_indices[822] = arr[822];
    v_indices[823] = arr[823];
    v_indices[824] = arr[824];
    v_indices[825] = arr[825];
    v_indices[826] = arr[826];
    v_indices[827] = arr[827];
    v_indices[828] = arr[828];
    v_indices[829] = arr[829];
    v_indices[830] = arr[830];
    v_indices[831] = arr[831];
    v_indices[832] = arr[832];
    v_indices[833] = arr[833];
    v_indices[834] = arr[834];
    v_indices[835] = arr[835];
    v_indices[836] = arr[836];
    v_indices[837] = arr[837];
    v_indices[838] = arr[838];
    v_indices[839] = arr[839];
    v_indices[840] = arr[840];
    v_indices[841] = arr[841];
    v_indices[842] = arr[842];
    v_indices[843] = arr[843];
    v_indices[844] = arr[844];
    v_indices[845] = arr[845];
    v_indices[846] = arr[846];
    v_indices[847] = arr[847];
    v_indices[848] = arr[848];
    v_indices[849] = arr[849];
    v_indices[850] = arr[850];
    v_indices[851] = arr[851];
    v_indices[852] = arr[852];
    v_indices[853] = arr[853];
    v_indices[854] = arr[854];
    v_indices[855] = arr[855];
    v_indices[856] = arr[856];
    v_indices[857] = arr[857];
    v_indices[858] = arr[858];
    v_indices[859] = arr[859];
    v_indices[860] = arr[860];
    v_indices[861] = arr[861];
    v_indices[862] = arr[862];
    v_indices[863] = arr[863];
    v_indices[864] = arr[864];
    v_indices[865] = arr[865];
    v_indices[866] = arr[866];
    v_indices[867] = arr[867];
    v_indices[868] = arr[868];
    v_indices[869] = arr[869];
    v_indices[870] = arr[870];
    v_indices[871] = arr[871];
    v_indices[872] = arr[872];
    v_indices[873] = arr[873];
    v_indices[874] = arr[874];
    v_indices[875] = arr[875];
    v_indices[876] = arr[876];
    v_indices[877] = arr[877];
    v_indices[878] = arr[878];
    v_indices[879] = arr[879];
    v_indices[880] = arr[880];
    v_indices[881] = arr[881];
    v_indices[882] = arr[882];
    v_indices[883] = arr[883];
    v_indices[884] = arr[884];
    v_indices[885] = arr[885];
    v_indices[886] = arr[886];
    v_indices[887] = arr[887];
    v_indices[888] = arr[888];
    v_indices[889] = arr[889];
    v_indices[890] = arr[890];
    v_indices[891] = arr[891];
    v_indices[892] = arr[892];
    v_indices[893] = arr[893];
    v_indices[894] = arr[894];
    v_indices[895] = arr[895];
    v_indices[896] = arr[896];
    v_indices[897] = arr[897];
    v_indices[898] = arr[898];
    v_indices[899] = arr[899];
    v_indices[900] = arr[900];
    v_indices[901] = arr[901];
    v_indices[902] = arr[902];
    v_indices[903] = arr[903];
    v_indices[904] = arr[904];
    v_indices[905] = arr[905];
    v_indices[906] = arr[906];
    v_indices[907] = arr[907];
    v_indices[908] = arr[908];
    v_indices[909] = arr[909];
    v_indices[910] = arr[910];
    v_indices[911] = arr[911];
    v_indices[912] = arr[912];
    v_indices[913] = arr[913];
    v_indices[914] = arr[914];
    v_indices[915] = arr[915];
    v_indices[916] = arr[916];
    v_indices[917] = arr[917];
    v_indices[918] = arr[918];
    v_indices[919] = arr[919];
    v_indices[920] = arr[920];
    v_indices[921] = arr[921];
    v_indices[922] = arr[922];
    v_indices[923] = arr[923];
    v_indices[924] = arr[924];
    v_indices[925] = arr[925];
    v_indices[926] = arr[926];
    v_indices[927] = arr[927];
    v_indices[928] = arr[928];
    v_indices[929] = arr[929];
    v_indices[930] = arr[930];
    v_indices[931] = arr[931];
    v_indices[932] = arr[932];
    v_indices[933] = arr[933];
    v_indices[934] = arr[934];
    v_indices[935] = arr[935];
    v_indices[936] = arr[936];
    v_indices[937] = arr[937];
    v_indices[938] = arr[938];
    v_indices[939] = arr[939];
    v_indices[940] = arr[940];
    v_indices[941] = arr[941];
    v_indices[942] = arr[942];
    v_indices[943] = arr[943];
    v_indices[944] = arr[944];
    v_indices[945] = arr[945];
    v_indices[946] = arr[946];
    v_indices[947] = arr[947];
    v_indices[948] = arr[948];
    v_indices[949] = arr[949];
    v_indices[950] = arr[950];
    v_indices[951] = arr[951];
    v_indices[952] = arr[952];
    v_indices[953] = arr[953];
    v_indices[954] = arr[954];
    v_indices[955] = arr[955];
    v_indices[956] = arr[956];
    v_indices[957] = arr[957];
    v_indices[958] = arr[958];
    v_indices[959] = arr[959];
    v_indices[960] = arr[960];
    v_indices[961] = arr[961];
    v_indices[962] = arr[962];
    v_indices[963] = arr[963];
    v_indices[964] = arr[964];
    v_indices[965] = arr[965];
    v_indices[966] = arr[966];
    v_indices[967] = arr[967];
    v_indices[968] = arr[968];
    v_indices[969] = arr[969];
    v_indices[970] = arr[970];
    v_indices[971] = arr[971];
    v_indices[972] = arr[972];
    v_indices[973] = arr[973];
    v_indices[974] = arr[974];
    v_indices[975] = arr[975];
    v_indices[976] = arr[976];
    v_indices[977] = arr[977];
    v_indices[978] = arr[978];
    v_indices[979] = arr[979];
    v_indices[980] = arr[980];
    v_indices[981] = arr[981];
    v_indices[982] = arr[982];
    v_indices[983] = arr[983];
    v_indices[984] = arr[984];
    v_indices[985] = arr[985];
    v_indices[986] = arr[986];
    v_indices[987] = arr[987];
    v_indices[988] = arr[988];
    v_indices[989] = arr[989];
    v_indices[990] = arr[990];
    v_indices[991] = arr[991];
    v_indices[992] = arr[992];
    v_indices[993] = arr[993];
    v_indices[994] = arr[994];
    v_indices[995] = arr[995];
    v_indices[996] = arr[996];
    v_indices[997] = arr[997];
    v_indices[998] = arr[998];
    v_indices[999] = arr[999];
}

あれ

2023/7/17 22:55:00

goから越境してrustやるの嫌じゃな~~~。

そもそも、wgpuのレポジトリ見てても動かし方がよくわからん。

なんとなくIssueをcompute shaderで検索して眺めてみる。すでにIssueが出てれば幸甚。

なかったわ。一般的には巨大シェーダーを動かす動機がないらしい。


wgpuのレポジトリにExampleを発見したので動かしてみる。

wgpuでboidsが動いた。やったねたえちゃん!


巨大シェーダー実証の元としてhello-computeが良さそう。コードが簡単。見覚えもある。

サクッとシェーダーを書き換えてみたら動いた。いいぞ。


条件分岐が1万行の巨大シェーダーを試してみた結果、wgpuにおいてはそんなに時間がかからない。500msとかそんなもん。じゃあRustでwgpu使って遺伝的プログラミングすればええやんという判断が浮かび上がってくるが、Rust難しすぎてあれなのであれ。覚悟を決めるのに1週間ぐらいかかるやつ。

とはいえ現状は wgpu → wgpu-native → go-webgpu という依存をしており、wgpuを直接ぶったたくよりも隔靴搔痒となる。依存しているコードがどこでどう変わるかもわからない。wgpuはブラウザでも使われているらしいので、多分大丈夫だろう。

本丸の遺伝的プログラミングのコードは2000行程度なので、1週間もあれば行ける気がする。Rustを理解できれば。

その前にgo-webgpuをアップデートすべく、go get -uを叩く。よし、最新版でも直ってない。wgpuに乗り換えだ。

遺伝的プログラミングのコード全部を書き換えるのは骨が折れる。泣く。なので、wgpuを叩く部分だけRustで書けばええんちゃうんかという判断が生えてくる。『wgpu-go』や。

念のためにgoでもrustで動かしたのとまったく同じシェーダーを実行してみる。いや、普通に動く。先生……!これは……!条件分岐の数がCreateComputePipelineの処理時間に影響していると思われていたが、実はそうではなかった可能性が高い。Rustのwgpuで行った検証も不十分だった可能性が高い。

配列アクセスが悪いのではないかと思い至り、配列利用型巨大WGSLシェーダーを動かしてみたが普通に動く。機序がわからん。キショい。

関数実行が悪いのではないかと思い至り、配列及関数利用型巨大WGSLシェーダーを動かしてみたが普通に動く。静的だと最適化してないかこいつ。


関数がインライン展開されている気がしてきた。多分。わからんけど。そう考えると、関数の再起呼び出しができないのも、配列の添え字に変数が使えないのもしっくりくる。


「気晴らしにcompute.toysとか言うので遊んでみるかぁ」つって、何気なく配列の添え字に変数を入れてみたところ、なんと動いた。はぁ?じゃあっつって、最新版のgo-webgpuだとどうなんのよって試したら配列の添え字に変数を入れても動く。CreatePipelineも300ms以内に終わる。はぁ???今までの苦労は何だったんだ。3日返してほしい。

なお、最新版が出てきたのは5 days agoである。タイムリー。