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