434 {
435
438
441 if (matSize1 < 2) {
442 continue;
443 }
444
447 if (vecLength2 < 1) {
448 continue;
449 }
450
451
452 const Uniform expectations[] = {{
"a", type1}, {
"b", type2}};
454 mgr.write(expectations[0],
kFloats);
455 mgr.write(expectations[1],
kFloats);
457
458
459 const size_t elementSize1 =
element_size(layout, type1);
460 const size_t elementSize2 =
element_size(layout, type2);
461 if (elementSize1 == elementSize2) {
462
463
464
465
466
467 static constexpr const char* kExpectedLayout[2][5][5] = {
468
469 {
470 { "", "", "", "", "" },
471 { "", "", "", "", "" },
472 { "", "AAaaAAaaB___", "AAaaAAaaBB__", "AAaaAAaaBBBb", "AAaaAAaaBBBB" },
473 { "",
474 "AAAaAAAaAAAaB___",
475 "AAAaAAAaAAAaBB__",
476 "AAAaAAAaAAAaBBBb",
477 "AAAaAAAaAAAaBBBB" },
478 { "",
479 "AAAAAAAAAAAAAAAAB___",
480 "AAAAAAAAAAAAAAAABB__",
481 "AAAAAAAAAAAAAAAABBBb",
482 "AAAAAAAAAAAAAAAABBBB" },
483 },
484
485 {
486 { "", "", "", "", "" },
487 { "", "", "", "", "" },
488 { "", "AAAAB_", "AAAABB", "AAAABBBb", "AAAABBBB" },
489 { "",
490 "AAAaAAAaAAAaB___",
491 "AAAaAAAaAAAaBB__",
492 "AAAaAAAaAAAaBBBb",
493 "AAAaAAAaAAAaBBBB" },
494 { "",
495 "AAAAAAAAAAAAAAAAB___",
496 "AAAAAAAAAAAAAAAABB__",
497 "AAAAAAAAAAAAAAAABBBb",
498 "AAAAAAAAAAAAAAAABBBB" },
499 },
500 };
501 int layoutIdx = static_cast<int>(layout != Layout::kStd140);
502 const size_t size = strlen(kExpectedLayout[layoutIdx][matSize1][vecLength2]) *
503 elementSize1;
506 "Layout: %s - Types: %s, %s matrix-vector padding test failed",
509 } else if (elementSize1 == 2 && elementSize2 == 4) {
510
511
512
513
514
515 static constexpr const char* kExpectedLayout[5][5] = {
516 { "", "", "", "", "" },
517 { "", "", "", "", "" },
518 { "", "AAAABB", "AAAABBBB", "AAAA____BBBBBBbb", "AAAA____BBBBBBBB" },
519 { "",
520 "AAAaAAAaAAAaBB__",
521 "AAAaAAAaAAAaBBBB",
522 "AAAaAAAaAAAa____BBBBBBbb",
523 "AAAaAAAaAAAa____BBBBBBBB" },
524 { "",
525 "AAAAAAAAAAAAAAAABB__",
526 "AAAAAAAAAAAAAAAABBBB",
527 "AAAAAAAAAAAAAAAABBBBBBbb",
528 "AAAAAAAAAAAAAAAABBBBBBBB" },
529 };
530 const size_t size = strlen(kExpectedLayout[matSize1][vecLength2]) * 2;
533 "Layout: %s - Types: %s, %s matrix-vector padding test failed",
536 } else if (elementSize1 == 4 && elementSize2 == 2) {
537
538
539
540
541
542 static constexpr const char* kExpectedLayout[5][5] = {
543 { "", "", "", "", "" },
544 { "", "", "", "", "" },
545 { "", "AAAAAAAAB___", "AAAAAAAABB__", "AAAAAAAABBBb", "AAAAAAAABBBB" },
546 { "",
547 "AAAAAAaaAAAAAAaaAAAAAAaaB_______",
548 "AAAAAAaaAAAAAAaaAAAAAAaaBB______",
549 "AAAAAAaaAAAAAAaaAAAAAAaaBBBb____",
550 "AAAAAAaaAAAAAAaaAAAAAAaaBBBB____" },
551 { "",
552 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB_______",
553 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABB______",
554 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBb____",
555 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBB____" },
556 };
557 const size_t size = strlen(kExpectedLayout[matSize1][vecLength2]) * 2;
560 "Layout: %s - Types: %s, %s matrix-vector padding test failed",
563 }
564 mgr.reset();
565 }
566 }
567 }
568}
it will be possible to load the file into Perfetto s trace viewer disable asset Prevents usage of any non test fonts unless they were explicitly Loaded via prefetched default font Indicates whether the embedding started a prefetch of the default font manager before creating the engine run In non interactive keep the shell running after the Dart script has completed enable serial On low power devices with low core running concurrent GC tasks on threads can cause them to contend with the UI thread which could potentially lead to jank This option turns off all concurrent GC activities domain network JSON encoded network policy per domain This overrides the DisallowInsecureConnections switch Embedder can specify whether to allow or disallow insecure connections at a domain level old gen heap size