)]}'
{
  "log": [
    {
      "commit": "a625b5349f7048005a4ce9612b74ffcce458982e",
      "tree": "c90324c637199c10a0c6a08217549904be34710e",
      "parents": [
        "f572728c472590e617ade43515b9a8ab48bb3d55"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sat Oct 24 05:06:09 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sat Oct 24 06:25:40 2026 -0700"
      },
      "message": "Roll vulkan-deps from d4ad5aee56eb to 4571d03284d8 (3 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/d4ad5aee56eb..4571d03284d8\n\nAlso rolling transitive DEPS:\n  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Tools/+log/a967170a2b8a1ded4dbdf82d533caaec89184efe..c38e7c390892e06fe4c84f0c19fb891c79f885d9\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nChange-Id: I80a9438cf86eace294012036512577d711090fa3\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1404536\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f572728c472590e617ade43515b9a8ab48bb3d55",
      "tree": "79c7312d798a6b0e53dc28f3aafaebe5509a4f4a",
      "parents": [
        "62cd8b7a9638366e4c282baac44a807683c6fae7"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Oct 23 13:37:10 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 17:03:12 2026 -0700"
      },
      "message": "Roll vulkan-deps from 0e7f541bf711 to d4ad5aee56eb (9 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/0e7f541bf711..d4ad5aee56eb\n\nAlso rolling transitive DEPS:\n  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/7651d9234622041b3f1b09e5c684c7c6eb352d08..cb1df99aa1ca64845f156181bcd1d98730414f15\n  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/52cba06636dd66f1e15398810b310caf3df50598..205badc9cf9ca28000fcea4b0addd50d75655c8c\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nChange-Id: I3216898c227fd867ed60a6e3aa445a411c755a9a\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403339\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "62cd8b7a9638366e4c282baac44a807683c6fae7",
      "tree": "b0c507efc64d9da06bd7a1351c2a1bf58564c366",
      "parents": [
        "4f02105f37a8f9d4b851b67e3d036109492dfdb7"
      ],
      "author": {
        "name": "cristina",
        "email": "huangcristina@google.com",
        "time": "Thu Oct 22 17:13:21 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 14:13:35 2026 -0700"
      },
      "message": "[fuzz] Raise loop termination limit to 257 in SkSL for fuzzer builds\n\n* Commit 3106fc501d set `kLoopTerminationLimit \u003d 256` under `SK_BUILD_FOR_FUZZER`, which caused loops with exactly 256 iterations to be incorrectly rejected.\n* Deserializing an `SkMatrixConvolutionImageFilter` with a large kernel (65..256) compiles the `kMatrixConvTexLg` runtime effect, which loops 256 times and triggers an `SK_ABORT`.\n* This CL fixes the bug by raising `kLoopTerminationLimit` to 257 under `SK_BUILD_FOR_FUZZER`, allowing 256-iteration loops while continuing to reject 257+.\n\nbug: b/562761166\nChange-Id: Iecbefdf5cf6e28f0a0cf27976c656ebdc6319693\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402496\nCommit-Queue: Cristina Huang \u003chuangcristina@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "4f02105f37a8f9d4b851b67e3d036109492dfdb7",
      "tree": "4cfa8be78d95fa3b638fbd18c9d509cfb3cd7f48",
      "parents": [
        "e1d1a6d04582afcfd70e3a13616374617af95205"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Fri Oct 23 14:48:52 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 13:25:04 2026 -0700"
      },
      "message": "[graphite] Create Draw Subdirectory\n\nBug: b/576776605\nChange-Id: Idb6417ea18e9170a983142937a371c680a591323\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403196\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n"
    },
    {
      "commit": "e1d1a6d04582afcfd70e3a13616374617af95205",
      "tree": "2c24bf7d222f7c3ebae9ff1b8781125d3e95c80b",
      "parents": [
        "dcd61ad3b8af0c5ae400482e9cb8561be9eee38a"
      ],
      "author": {
        "name": "YeungKC",
        "email": "I@YeungKC.com",
        "time": "Tue Oct 20 21:05:22 2026 +0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 08:34:07 2026 -0700"
      },
      "message": "[fontconfig] Match fallback fonts once per coverage class\n\nSkFontMgr_fontconfig::onMatchFamilyStyleCharacter did\nFcConfigSubstitute, FcDefaultSubstitute and FcFontMatch over all fonts,\nand then read the font file in FontAccessible, for each call. Text\nlayout asks for a fallback font once for each unresolved character, so\ntext with many CJK characters or emoji spends most of its layout time in\nthis function.\n\nFcFontMatch scores each font by itself and returns the first font with\nthe lowest score. Thus, for one request, the result depends only on\nwhich fonts have the character. Characters that the same fonts have\n(a coverage class) get the same font. Now:\n\n- For each request (family name, style and languages), the substituted\n  pattern is kept in an LRU cache of 64 requests.\n- For each font manager, the FcCharSet of each font is kept. When a call\n  needs a new 256-character page, FcCharSetNextPage gives the page of\n  each font, and each character of the page gets a class id. A class is\n  the ordered list of the fonts that have the character (system fonts,\n  then application fonts, as in FcFontMatch).\n- For each request, one font B with the best score on the elements that\n  FcFontMatch ranks above FC_CHARSET is found with FcFontSetSort over\n  all fonts. B is kept for each set of these elements in the request.\n- For each request and class, FcFontSetMatch runs one time over the\n  fonts of the class and then B, with FC_CHARSET \u003d {character}. As\n  before, the result must have the character (FontContainsCharacter).\n  FontAccessible runs only when the typeface cache does not have the\n  typeface. The typeface is kept for that class.\n- Pages that no font has are kept in a set. A character above U+10FFFF\n  or a negative character has no class, and the result is nullptr.\n\nWhy the result is the same as FcFontMatch: the elements above\nFC_CHARSET are FC_HASH (2.11 only), FC_FILE, FC_FONT_WRAPPER,\nFC_FONTFORMAT, FC_VARIABLE, FC_NAMED_INSTANCE, FC_SCALABLE, FC_COLOR and\nFC_FOUNDRY in fontconfig 2.11.0 to 2.18.3. Let m be the best score of\nall fonts on these elements.\n- If a font of the class C gets m, the FcFontMatch winner W has the\n  character, so W is in C. W also wins in C, because all fonts in C have\n  the same FC_CHARSET score and C keeps the font order. B gets m too,\n  but B loses on FC_CHARSET, or B is in C and comes after W.\n- If no font of C gets m, W does not have the character, and the\n  current code returns nullptr after FontContainsCharacter. Here B wins\n  over C, and the same check returns nullptr.\n\nAssumptions:\n- No config rule with target\u003d\"pattern\" tests FC_CHARSET, because\n  FcConfigSubstitute runs on the request without FC_CHARSET. The\n  default rules do not have such a rule.\n- The fonts of fFC do not change after the font manager is made. The\n  font manager owns fFC, and it already keeps fFamilyNames from the\n  construction. The font and charset pointers are not referenced.\n- Each font has FC_CHARSET (FcFreeTypeQuery always sets it).\n- A future fontconfig version that ranks a new element above\n  FC_CHARSET needs an update of the element list.\n- A FontAccessible failure is kept for the class until the request\n  leaves the LRU cache.\n- The file of a typeface in the typeface cache stays readable. The\n  current code runs FontAccessible on each call. If the file becomes\n  unreadable after its first use, the current code gives nullptr, and\n  this change gives the cached typeface.\n\nCharacters out of Unicode: FcCharSet keeps a page number in 16 bits.\nThus for a character above U+FFFFFF or a negative character, the\ncurrent code can return a font that has the Unicode character with the\nsame low 24 bits (for example 0x1000041 and \u0027A\u0027). This change returns\nnullptr for all characters out of Unicode. In the other tested cases\n(-1, 0x110000, 0x1000000, 0xFFFFFF, 0x7FFFFFFF) both give nullptr.\n\nThe page maps of all FC_CHARSET values of a font are combined, so a\nfont with more than one charset is still handled.\n\nSpeed is the number of units done in one 300 ms budget. Before is the\ncurrent code.\n\nArch Linux, fontconfig 2.18.3, 574 families (738 fonts), language \"en\"\n(emoji: und-Zsye), 9 interleaved rounds (median), calls per 300 ms:\n\n  Case                              Before  After    After/before\n  New CJK characters                635     555588   875x\n  New Latin Extended-A (128)        640     90206    141x\n  Emoji (80)                        524     1095559  2091x\n  Character no font has (U+10FFFD)  680     1134032  1668x\n  Repeated CJK characters (500)     638     1074638  1684x\n  17 requests in round robin        623     1041788  1672x\n\nWith 65 requests in round robin (one more than the LRU cache holds),\n594 before and 1688 after (2.8x, 7 rounds). U+110000 again and again:\n641 before and 1055716 after. These two results and the macOS results\nfor 17 and 65 requests come from the same tool.\n\nThe first call of a font manager (create and first match) is a\none-time cost for each font manager. It uses 5.1% of a 300 ms budget,\nbefore 4.9%. The increase is probably the FcFontSetSort for B (not\nprofiled).\n\nmacOS, fontconfig 2.14.2, 2061 fonts, 7 interleaved rounds (median),\nthree request keys, calls per 300 ms, measured with an LRU cache of 16\nrequests (not measured again):\n\n  Case                           Before   After            After/before\n  New CJK characters             321-348  742562-777889    2200-2394x\n  New Latin Extended-A (128)     323-352  698-770          2.14-2.19x\n  New emoji (80)                 320-322  94133-99328      294-308x\n  Character no font has          325-354  2865408-2988144  8434-9045x\n  Repeated CJK characters (500)  322-351  2590597-2736673  7792-8352x\n\nLatin Extended-A is slow on macOS: the 128 characters have 79 classes\nwith a mean of 891 fonts. The first match of a font manager is a\none-time cost of 0.49-0.53% of a 300 ms budget, before 0.33-0.37%. The\nfont manager creation is a one-time cost of about 2.8-3.0%, before and\nafter. The first match was not profiled.\n\nWith this change on macOS, language \"en\", 7 interleaved rounds\n(median), calls per 300 ms: 17 requests in round robin, 349 before and\n2582577 after (7400x). 65 requests in round robin, 349 before and 6452\nafter (18x).\n\nSkParagraph, the same tool source on both platforms: each paragraph has\nnew text (8 CJK characters from a pool of 400, 1 emoji, Latin text),\n7 interleaved rounds (median), paragraphs per 300 ms:\n\n  Case                          Before  After  After/before\n  Linux, new FontCollection     169     6048   36x\n  Linux, warm                   186     6678   36x\n  macOS, new FontCollection     104     315    3.0x\n  macOS, warm                   120     362    3.0x\n\n\"New FontCollection\" is the first 300 ms of a new FontCollection.\n\"Warm\" is a different new FontCollection, after 500 paragraphs that\nare not timed.\n\nThe gain on macOS is smaller. Not profiled.\n\nResults compared with the current code on Linux, byte for byte, are the\nsame for: 537600 calls (\"-\", \"sans-serif\" and \"Noto Sans\", 10\nlanguages, 13440 code points), 268800 calls with bold, 403200 calls\nwith \"serif\" and \"monospace\", 87750 calls over all 574 families and\nthe generic families (with \"emoji\"), 96 calls with only \"und-Zsye\", and\n22 configs with rules that set the elements above FC_CHARSET or with\napplication fonts (103680 or 145152 calls each: 41 families, 4 styles,\n4 language sets, 216 characters). 8 threads on one\nfont manager gave the same results as one thread, also with TSAN (no\nreports). The FontMgrFontConfig tests gave no TSAN reports. With a\ncache of 16 requests and without the two review changes, all 999 GMs\n(--config 8888 --nativeFonts) were the same.\n\nOn macOS, these results are the same as the current code: 2 x 537600\ncalls, 100200 calls over all families and the generic families, 96\ncalls with only \"und-Zsye\", 1704 calls of the fontmgr_iter pattern, and\n8 threads. FontMgrFontConfig_FreeType_AllBold fails before and after,\nbecause the test machine does not have Roboto.\n\nNew tests: FontMgrFontConfig_MatchFamilyStyleCharacter (also with\ncharacters out of Unicode) and\nFontMgrFontConfig_MatchFamilyStyleCharacter_Color.\n\nNot tested: fontconfig older than 2.13.93, the Fontations scanner,\nTSAN with an instrumented fontconfig, TSAN and GMs on macOS.\n\nBug: 575736567\nChange-Id: I5443d1235ab8dd4b03d707d68cea79496bb8a55e\n\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400696\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "dcd61ad3b8af0c5ae400482e9cb8561be9eee38a",
      "tree": "5f947f6d0256846bb9e62e1eb4ab8432bcf5a31f",
      "parents": [
        "e71ecd0795c423aae5a7d7552f05f5a258d8283f"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Mon Oct 19 15:18:44 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 08:19:25 2026 -0700"
      },
      "message": "[graphite] Add SparseStrips Debugger Slide\n\n* Adds the SparseStripsDebugger slide. It takes an skp and transform, sniffs the paths produced by it, then compares the result of the sparse strips pipeline to the oracle.\n\n* The results of the comparison are overlaid on top of the original image. Pixels with errors draw their subsample windings with green indicating correct winding, and red indicating incorrect.\n\n* The sparse strip pipeline is not exact, and naturally produces a tolerated (n \u003c\u003d 3) amount of error in coverage or winding. To accommodate this, the debugger slide can toggle between \"strict\" coverage checking, and \"non-strict\" checking, which ignores subsample errors that are within the flattener\u0027s error threshold (.25px).\n\n* The error state and grid is \"snapshotted\" at the initial resolution of the viewer, otherwise any transformation would cause the entire error checking to be recalculated, and any zoom would cause the lines to be further subdivided.\n\nBug: b/466122293\nBug: b/466119734\nBug: b/385170952\nChange-Id: I738108cc94681aabdd987e99c3bbada1163d69fe\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1381636\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nCommit-Queue: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "e71ecd0795c423aae5a7d7552f05f5a258d8283f",
      "tree": "2f54edbf10679ea50d062913471abb01150baa16",
      "parents": [
        "0abfcf118530e0e46e7e466f6d028041af61581a"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Wed Oct 21 09:58:24 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 07:25:25 2026 -0700"
      },
      "message": "miracleptr: Rewrite SkSL pointers to raw_ptr\n\nTurn use-after-free bugs on SkSL\u0027s IR and compiler objects into\nnon-exploitable crashes.\n\nThis rewrites the heap pointer fields in src/sksl.\n\nThe reference will be rewritten in next patch:\nhttps://skia-review.googlesource.com/c/skia/+/1401176/4\n\nBug: 351867706\nDoc: https://bit.ly/miracleptr-skia\nChange-Id: Ia5646bd12efe978420cd87364f6a3ba64124f7b4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399257\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nAuto-Submit: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n"
    },
    {
      "commit": "0abfcf118530e0e46e7e466f6d028041af61581a",
      "tree": "7ca57449e21501e33fffcbe49cc5071fedff2d28",
      "parents": [
        "35eec2c07f306d7ef006073d59111e6df17571cb"
      ],
      "author": {
        "name": "Sergio Gonzalez Martin",
        "email": "sergiog@microsoft.com",
        "time": "Thu Oct 22 14:49:07 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 07:21:14 2026 -0700"
      },
      "message": "[rust jpeg] Final raw output and IDCT parity\n\nTreat immutable JPEG data as final input for raw YUV decoding. Preserve\nbest-effort progressive output at final EOF without changing resumable\nstream behavior, and cover missing-EOI decoding and rewind.\n\nPin zune-jpeg to the revision from PR494 containing final-input,\naccurate-IDCT, and progressive block-smoothing fixes. Remove the\ntemporary local crate patch and its Bazel/GN patch wiring.\n\nhttps://github.com/etemesi254/zune-image/pull/494\n\nPreserve incomplete-input status when progressive color components have\nnot received DC data, without publishing incomplete color output.\nPreserve existing best-effort packed JPEG decoding.\n\nTarget GPU half-scan, missing-EOI, non-interleaved DC,\ngrayscale-profile, and YUV color-profile failures with Rust JPEG\nenabled.\n\nChromium CL porting zune-jpeg fixes as patch which requires to be landed\nbefore this CL:\nhttps://chromium-review.googlesource.com/c/chromium/src/+/8617799\n\nNOTE FOR REVIEWERS - original patch and result patch are not identical.\nPLEASE REVIEW CAREFULLY.\nDiffs between the patches:\n fn test_raw_input_finality_is_preserved_on_decode_reset() {\n\u003e +        for raw_input_complete in [false, true] {\n\u003e +            let mut reader \u003d new_reader(cxx::UniquePtr::null(), 0, raw_input_complete);\n\u003e +            assert_eq!(reader.raw_input_complete(), raw_input_complete);\n\u003e +            reader.reset_decode_state();\n\u003e +            assert_eq!(reader.raw_input_complete(), raw_input_complete);\n\u003e +        }\n\u003e +    }\n\u003e +\n\u003e +    #[test]\n\u003e --- tests/SkJpegRustCodecTest.cpp\n\u003e +++ tests/SkJpegRustCodecTest.cpp\n\u003e -                                        streamLength);\n\u003e +                                        streamLength,\n\u003e +                                        /*raw_input_complete\u003d*/false);\n\u003e +DEF_TEST(RustJpegCodec_FinalRawInputWithoutEOI, r) {\n\u003e +    sk_sp\u003cSkData\u003e data \u003d GetResourceAsData(\"images/four-colors-limited-range-420-8bpc.jpg\");\n\u003e +    REPORTER_ASSERT(r, data \u0026\u0026 data-\u003esize() \u003e 2);\n\u003e +    if (!data || data-\u003esize() \u003c\u003d 2) {\n\u003e +        return;\n\u003e +    }\n\u003e +    const auto* bytes \u003d static_cast\u003cconst uint8_t*\u003e(data-\u003edata());\n\u003e +    REPORTER_ASSERT(r, bytes[data-\u003esize() - 2] \u003d\u003d 0xFF \u0026\u0026\n\u003e +                       bytes[data-\u003esize() - 1] \u003d\u003d 0xD9);\n\u003e +    sk_sp\u003cSkData\u003e truncated \u003d SkData::MakeSubset(data.get(), 0, data-\u003esize() - 2);\n\u003e +    auto codec \u003d SkJpegRustDecoder::Decode(truncated, nullptr);\n\u003e +    auto reference \u003d SkJpegRustDecoder::Decode(data, nullptr);\n\u003e +    // A known stream length is not an explicit final-input signal.\n\u003e +    auto streamCodec \u003d SkJpegRustDecoder::Decode(SkMemoryStream::Make(truncated), nullptr);\n\u003e +    REPORTER_ASSERT(r, codec \u0026\u0026 reference \u0026\u0026 streamCodec);\n\u003e +    if (!codec || !reference || !streamCodec) {\n\u003e +        return;\n\u003e +    }\n\u003e +    SkYUVAPixmapInfo info;\n\u003e +    REPORTER_ASSERT(\n\u003e +            r, codec-\u003equeryYUVAInfo(SkYUVAPixmapInfo::SupportedDataTypes::All(), \u0026info));\n\u003e +    SkYUVAPixmaps actual \u003d SkYUVAPixmaps::Allocate(info);\n\u003e +    SkYUVAPixmaps expected \u003d SkYUVAPixmaps::Allocate(info);\n\u003e +    SkYUVAPixmaps suspended \u003d SkYUVAPixmaps::Allocate(info);\n\u003e +    REPORTER_ASSERT(r, actual.isValid() \u0026\u0026 expected.isValid() \u0026\u0026 suspended.isValid());\n\u003e +    if (!actual.isValid() || !expected.isValid() || !suspended.isValid()) {\n\u003e +        return;\n\u003e +    }\n\u003e +    REPORTER_ASSERT_SUCCESSFUL_CODEC_RESULT(r, reference-\u003egetYUVAPlanes(expected));\n\u003e +    for (int attempt \u003d 0; attempt \u003c 2; ++attempt) {\n\u003e +        REPORTER_ASSERT(r, streamCodec-\u003egetYUVAPlanes(suspended) \u003d\u003d SkCodec::kIncompleteInput);\n\u003e +        REPORTER_ASSERT_SUCCESSFUL_CODEC_RESULT(r, codec-\u003egetYUVAPlanes(actual));\n\u003e +        for (int plane \u003d 0; plane \u003c actual.numPlanes(); ++plane) {\n\u003e +            for (int row \u003d 0; row \u003c actual.plane(plane).height(); ++row) {\n\u003e +                REPORTER_ASSERT(\n\u003e +                        r, !memcmp(actual.plane(plane).addr(0, row),\n\u003e +                                   expected.plane(plane).addr(0, row),\n\u003e +                                   static_cast\u003csize_t\u003e(actual.plane(plane).width())));\n\u003e +            }\n\u003e +        }\n\u003e +    }\n\u003e +}\n\u003e +\n\u003e +DEF_TEST(RustJpegCodec_FinalRawNeedsAllComponents, r) {\n\u003e +    // A three-component progressive JPEG containing only a Y DC scan.\n\u003e +    std::vector\u003cuint8_t\u003e encoded \u003d {0xFF, 0xD8, 0xFF, 0xDB, 0, 67, 0};\n\u003e +    encoded.insert(encoded.end(), 64, 1);\n\u003e +    encoded.insert(encoded.end(), {\n\u003e +        0xFF, 0xC2, 0, 17, 8, 0, 8, 0, 8, 3,\n\u003e +        1, 0x11, 0, 2, 0x11, 0, 3, 0x11, 0,\n\u003e +        0xFF, 0xC4, 0, 20, 0,\n\u003e +        1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n\u003e +        0xFF, 0xDA, 0, 8, 1, 1, 0, 0, 0, 0, 0x7F,\n\u003e +    });\n\u003e +    auto codec \u003d SkJpegRustDecoder::Decode(\n\u003e +            SkData::MakeWithCopy(encoded.data(), encoded.size()), nullptr);\n\u003e +    REPORTER_ASSERT(r, codec);\n\u003e +    if (!codec) {\n\u003e +        return;\n\u003e +    }\n\u003e +    SkYUVAPixmapInfo info;\n\u003e +    REPORTER_ASSERT(\n\u003e +            r, codec-\u003equeryYUVAInfo(SkYUVAPixmapInfo::SupportedDataTypes::All(), \u0026info));\n\u003e +    REPORTER_ASSERT(r, info.isValid());\n\u003e +    if (!info.isValid()) {\n\u003e +        return;\n\u003e +    }\n\u003e +    std::array\u003cstd::vector\u003cuint8_t\u003e, SkYUVAPixmaps::kMaxPlanes\u003e storage;\n\u003e +    std::array\u003cSkPixmap, SkYUVAPixmaps::kMaxPlanes\u003e pixmaps;\n\u003e +    for (int plane \u003d 0; plane \u003c info.numPlanes(); ++plane) {\n\u003e +        const size_t rowBytes \u003d info.rowBytes(plane);\n\u003e +        storage[plane].assign(rowBytes * info.planeInfo(plane).height(), 0xCD);\n\u003e +        pixmaps[plane] \u003d\n\u003e +                SkPixmap(info.planeInfo(plane), storage[plane].data(), rowBytes);\n\u003e +    }\n\u003e +    SkYUVAPixmaps planes \u003d SkYUVAPixmaps::FromExternalPixmaps(info.yuvaInfo(), pixmaps.data());\n\u003e +    REPORTER_ASSERT(r, codec-\u003egetYUVAPlanes(planes) \u003d\u003d SkCodec::kIncompleteInput);\n\u003e +    for (const auto\u0026 plane : storage) {\n\u003e +        REPORTER_ASSERT(r, std::all_of(plane.begin(), plane.end(), [](uint8_t value) {\n\u003e +            return value \u003d\u003d 0xCD;\n\u003e +        }));\n\u003e +    }\n\u003e +}\n\u003e +\n\nOriginal patch:\n diff --git a/MODULE.bazel b/MODULE.bazel\nindex 2dea1ec17e2ae4637aa88128e0545928bc917e9d..949b7f7ed833dd51dc26681fb5d741366382990b 100644\n--- a/MODULE.bazel\n+++ b/MODULE.bazel\n@@ -168,7 +168,7 @@ crate.spec(\n     # and is not shipping in Chromium or other Skia clients.\n     git \u003d \"https://github.com/etemesi254/zune-image.git\",\n     package \u003d \"zune-jpeg\",\n-    rev \u003d \"a1010cf1faa91980f011c32585b4f582caf10745\",\n+    rev \u003d \"7d3e74c34b2252b6a4477399c7c52ccc9cf0fcab\",\n )\n crate.spec(\n     features \u003d [\"std\"],\ndiff --git a/MODULE.bazel.lock b/MODULE.bazel.lock\nindex 0e3e32d45992972af15f075580841c86c8b8f066..90eb30a53e8282e3dd825e5c26d2266ede177e44 100644\n--- a/MODULE.bazel.lock\n+++ b/MODULE.bazel.lock\n@@ -4733,7 +4733,7 @@\n     \"@@rules_rust+//crate_universe:extensions.bzl%crate\": {\n       \"general\": {\n         \"bzlTransitiveDigest\": \"SEbwyK0Bpc6UhNRduMkh2PMWmn8uyfpuHzW108IxnWU\u003d\",\n-        \"usagesDigest\": \"98RPnHOLfzauNznKr0YpAvMMRTSEjC+UJm4SprUFD2A\u003d\",\n+        \"usagesDigest\": \"0RXMAi1/tILyCX0fcy7tuQ5iSOFw66zCZNQtx2ek\n[[[Original patch trimmed due to size. Decoded string size: 266525. Decoded string SHA1: 0d8af89253f1d9656139637c6fbc951977303607.]]]\n\nResult patch:\n diff --git a/MODULE.bazel b/MODULE.bazel\nindex 2dea1ec..949b7f7 100644\n--- a/MODULE.bazel\n+++ b/MODULE.bazel\n@@ -168,7 +168,7 @@\n     # and is not shipping in Chromium or other Skia clients.\n     git \u003d \"https://github.com/etemesi254/zune-image.git\",\n     package \u003d \"zune-jpeg\",\n-    rev \u003d \"a1010cf1faa91980f011c32585b4f582caf10745\",\n+    rev \u003d \"7d3e74c34b2252b6a4477399c7c52ccc9cf0fcab\",\n )\n crate.spec(\n     features \u003d [\"std\"],\ndiff --git a/MODULE.bazel.lock b/MODULE.bazel.lock\nindex 0e3e32d..90eb30a 100644\n--- a/MODULE.bazel.lock\n+++ b/MODULE.bazel.lock\n@@ -4733,7 +4733,7 @@\n     \"@@rules_rust+//crate_universe:extensions.bzl%crate\": {\n       \"general\": {\n         \"bzlTransitiveDigest\": \"SEbwyK0Bpc6UhNRduMkh2PMWmn8uyfpuHzW108IxnWU\u003d\",\n-        \"usagesDigest\": \"98RPnHOLfzauNznKr0YpAvMMRTSEjC+UJm4SprUFD2A\u003d\",\n+        \"usagesDigest\": \"0RXMAi1/tILyCX0fcy7tuQ5iSOFw66zCZNQtx2ekATY\u003d\",\n         \"recordedFileInputs\": {\n           \"@@//bazel/external/cxx/BUILD.bazel.skia\": \"39b51a9bd87483932d67ad5e0707ec339de993688df60ec69\n[[[Result patch trimmed due to size. Decoded string size: 265416. Decoded string SHA1: 27918433f29fb9d62e46ea24178c8b4139aded72.]]]\n\nBug: 493315750\nChange-Id: I7131c5762c98c6aa5269042507ede514aab546e6\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400056\nCommit-Queue: Sergio Gonzalez Martin \u003csergiog@microsoft.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Łukasz Anforowicz \u003clukasza@google.com\u003e\n"
    },
    {
      "commit": "35eec2c07f306d7ef006073d59111e6df17571cb",
      "tree": "236b1395ed79c82c8afe1cd055dd8a3e776be8fb",
      "parents": [
        "019f82efb0c6e1245a8bdc844375acd8c8cbbc15"
      ],
      "author": {
        "name": "Brandon Wilson",
        "email": "bwils@google.com",
        "time": "Fri Oct 23 09:48:42 2026 -0400"
      },
      "committer": {
        "name": "Brandon Wilson",
        "email": "bwils@google.com",
        "time": "Fri Oct 23 06:54:52 2026 -0700"
      },
      "message": "[bazel] Fix dawn_version_generator genrule\n\nUpstream Dawn updated `dawn_version_generator.py` to import `dawn_json_parsing`, require the `gen` positional subcommand, and take `--version-json src/dawn/dawn_version.json`. Update `:dawn_version_generator` and `:generate_version` in `bazel/external/dawn/BUILD.bazel` accordingly.\n\nChange-Id: I169e73034f37337482c975f49e162f08dc01b50c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403816\nReviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nCommit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nAuto-Submit: Brandon Wilson \u003cbwils@google.com\u003e\n"
    },
    {
      "commit": "019f82efb0c6e1245a8bdc844375acd8c8cbbc15",
      "tree": "8e05fb86c6949cd5a48c90f1144a865a7b0d2f0f",
      "parents": [
        "51c1eacc07757e892d10ef5c0738feb2627b8f25"
      ],
      "author": {
        "name": "Greg Daniel",
        "email": "egdaniel@google.com",
        "time": "Tue Oct 20 15:54:24 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 06:29:42 2026 -0700"
      },
      "message": "[ganesh] Fail-fast and invalidate atlases on mid-flush submit failure\n\nWhen a mid-flush submitToGpu() fails (e.g. out of memory on Vulkan queue\nsubmission), the command buffer containing recorded ASAP atlas plot uploads\nis discarded, but the plots were marked as clean and CPU-tracked layouts\nadvanced. Continuing execution in executeRenderTasks results in draws\nsampling uninitialized texture memory and violates Vulkan image layout\ntransitions.\n\nThis change:\n- Aborts executeRenderTasks immediately when submitToGpu() fails.\n- Introduces GrOpFlushState::abort() to advance internal draw/upload\n  iterators and synchronize TokenTracker flush tokens so post-flush\n  invariants and reset() assertions succeed.\n- Adds an onFlushFailed() callback to GrOnFlushCallbackObject and invokes it\n  from GrDrawingManager::flush() on failed flushes.\n- Implements onFlushFailed() in GrAtlasManager (freeAll()) and\n  SmallPathAtlasMgr (reset()) to invalidate active atlas plots and ensure\n  clean re-uploads on subsequent flushes.\n\nBug: 574305493\nChange-Id: Ia654f7dd6cd1a263e4c0527643b9a0d94676629f\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400319\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Greg Daniel \u003cegdaniel@google.com\u003e\n"
    },
    {
      "commit": "51c1eacc07757e892d10ef5c0738feb2627b8f25",
      "tree": "4ab731ab0a716432f3505b9c008bda0929009709",
      "parents": [
        "5f8aa127c855a8aabdb5708454afd07deebae643"
      ],
      "author": {
        "name": "Brandon Wilson",
        "email": "bwils@google.com",
        "time": "Fri Oct 23 09:05:38 2026 -0400"
      },
      "committer": {
        "name": "Brandon Wilson",
        "email": "bwils@google.com",
        "time": "Fri Oct 23 06:14:45 2026 -0700"
      },
      "message": "[bazel] Add dawn_json_parsing.py to dawn_json_generator srcs\n\nUpstream Dawn split JSON parsing logic out of `dawn_json_generator.py`\ninto `generator/dawn_json_parsing.py`. Add the new file to the\n`dawn_json_generator` `py_binary` target in `bazel/external/dawn/BUILD.bazel`\nso it is included in the Bazel runfiles sandbox during code generation.\n\nChange-Id: Ie61b7bfac4830825dc90d6de47f51d4450be2ba4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403736\nAuto-Submit: Brandon Wilson \u003cbwils@google.com\u003e\nReviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nCommit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n"
    },
    {
      "commit": "5f8aa127c855a8aabdb5708454afd07deebae643",
      "tree": "9193e31a9f22cb3b185de0370b95d6f3901b1f4d",
      "parents": [
        "0d9b2da89f5bc190395e6b14b737f28fa8fc66c7"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Oct 23 00:23:09 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Fri Oct 23 01:34:13 2026 -0700"
      },
      "message": "Roll vulkan-deps from 33b420b98120 to 0e7f541bf711 (9 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/33b420b98120..0e7f541bf711\n\nAlso rolling transitive DEPS:\n  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Headers/+log/acbb9391c0a597272800cd3f4363661c00a27c77..73814d006638aa00bd553215b054f0f02e457e22\n  https://chromium.googlesource.com/external/github.com/KhronosGroup/Vulkan-Utility-Libraries/+log/90738f6edfa19561a978fc5f97543ba37075ba9d..52cba06636dd66f1e15398810b310caf3df50598\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nChange-Id: I07f76a713918c68ea5ab694a0ca87444773bce27\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403300\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "0d9b2da89f5bc190395e6b14b737f28fa8fc66c7",
      "tree": "801bde8381c10be700e6d6ca56d673fa7b69dcfc",
      "parents": [
        "7b400b71d4a313b589fadf2c6ad007917607e6e7"
      ],
      "author": {
        "name": "Maryla",
        "email": "maryla@google.com",
        "time": "Thu Oct 22 16:37:37 2026 +0200"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 22:34:58 2026 -0700"
      },
      "message": "[SkHdrAgtm] Fix c++ component mix function computation\n\nBug: b/395659818\nChange-Id: I8bbf1c456f5286c76206ef29a44ff743c01686a6\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402396\nReviewed-by: Christopher Cameron \u003cccameron@google.com\u003e\nCommit-Queue: Maryla Ustarroz-Calonge \u003cmaryla@google.com\u003e\n"
    },
    {
      "commit": "7b400b71d4a313b589fadf2c6ad007917607e6e7",
      "tree": "6fb9f4bfbe84adb42115ffd9d8e0a928782face9",
      "parents": [
        "f1c61b8c2000951ada5619ff6b6bdbece3a2f8f8"
      ],
      "author": {
        "name": "skia-autoroll",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Fri Oct 23 04:01:41 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 22:26:09 2026 -0700"
      },
      "message": "Roll Skia Infra from c8744433fd41 to 9446ff738410 (10 revisions)\n\nhttps://skia.googlesource.com/buildbot.git/+log/c8744433fd41..9446ff738410\n\n2026-10-22 alexrudenko@google.com [npm-audit-mirror] Do not audit devDependencies for chrome-devtools\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-final from 8f00d154ff96 to 8cb99b596857\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_test_all from 06253ddd2a2156691... to bcd1590b47272cf4e... (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_build_all from 06253ddd2a2156691... to bcd1590b47272cf4e... (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Depot Tools from 1eb46f8b23b4 to b1c2e86792a7 (11 revisions)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll cpython3 from 3@3.14.8.chromium.1 to 3@3.14.9.chromium.1 (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll command_wrapper from 06253ddd2a2156691... to bcd1590b47272cf4e... (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vpython3 from 4e1cdd5ad39a47b6b... to 84ee2a7cc6a1e40eb... (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll presubmit from 06253ddd2a2156691... to bcd1590b47272cf4e... (1 revision)\n2026-10-22 skia-autoroll@skia-public.iam.gserviceaccount.com Roll debugger-app-final from ff3de3c20079 to 7a444326da7c\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/infra-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nChange-Id: I963bf26ae34eca8cc27f66609d1bcc6e06e63848\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403356\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f1c61b8c2000951ada5619ff6b6bdbece3a2f8f8",
      "tree": "29605a235ad2ff160cc25faefc5e7febbd3c5efb",
      "parents": [
        "3e04d7ae5026578bd4fdb2d20588ff0fe0719981"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 21:01:23 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 22:19:10 2026 -0700"
      },
      "message": "Roll ANGLE from e6fd4a2e167a to b938f6073bfd (17 revisions)\n\nhttps://chromium.googlesource.com/angle/angle.git/+log/e6fd4a2e167a..b938f6073bfd\n\n2026-10-23 syoussefi@chromium.org Revert \"Standalone: Enable PartitionAlloc on Android\"\n2026-10-23 kbr@chromium.org Add 3D, 2D array and cube map oversized-mip-level tests.\n2026-10-22 abdolrashidi@google.com Traces: Upgrade trace pack 8 for merged attribs\n2026-10-22 syoussefi@chromium.org Vulkan: Don\u0027t expose EXT_multisample_compatibility if unsupported\n2026-10-22 uchintala@google.com Tests: Add mini_fidget_games and fps_strike_ops traces\n2026-10-22 syoussefi@chromium.org Remove glmark2\n2026-10-22 hibrian@google.com Android: Remove ANGLE in use toast message from settings\n2026-10-22 cclao@google.com Add ImageTest.CreateImageWithNonCurrentContextTwoThreads\n2026-10-22 syoussefi@chromium.org Vulkan: Dynamic state for alpha to coverage\n2026-10-22 syoussefi@chromium.org Vulkan: Don\u0027t process executable on alpha to coverage change\n2026-10-22 syoussefi@chromium.org Vulkan: Add command buffer functions for EDS3\n2026-10-22 kkinnunen@apple.com Metal: Avoid pointing to Query in Metal backend\n2026-10-22 hyshih@google.com Add a test for advanced blend on a multisampled shared edge\n2026-10-22 sergiosolano@google.com spanify: Add angle::Span::copy_prefix_from()\n2026-10-22 arthursonzogni@chromium.org Standalone: Enable PartitionAlloc on Android\n2026-10-22 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from 0a8b0d14dd3f to 4ab5f84445a4 (1820 revisions)\n2026-10-22 msisov@igalia.com [3p freshness] xxhash: Roll to v0.8.4 and enable auto-update\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/angle-skia-autoroll\nPlease CC bwils@google.com,jmadill@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win11-Clang-Dell3930-GPU-GTX1660-x86_64-Debug-All-ANGLE\nTest: Test: Installed on device, checked Dev Settings / ANGLE preferences.\nTest: Test: angle_end2end_tests --gtest_filter\u003dAdvancedBlendMultisampleTest.*\nTest: Test: angle_trace_tests --gtest_filter\u003d*mini_fidget_antistress_games*:*fps_strike_ops*\nChange-Id: I0c16fe1dc54e462c4b235dc5907f89f3c829a4a5\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403296\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3e04d7ae5026578bd4fdb2d20588ff0fe0719981",
      "tree": "14a357bb48a4ce0a36ced186e88ebbca997b023c",
      "parents": [
        "663251eebd95294dacedfbde6e8ad731c89cc444"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 21:01:55 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 22:13:15 2026 -0700"
      },
      "message": "Roll Dawn from 07315633c106 to 537308541a07 (12 revisions)\n\nhttps://dawn.googlesource.com/dawn.git/+log/07315633c106..537308541a07\n\n2026-10-23 kainino@chromium.org [dawn][metal] Tighten mutex for argument buffer encoding\n2026-10-23 kainino@chromium.org [clang-tidy] Fix name of modernize-use-if-consteval\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in tests/white_box/*.\n2026-10-22 lokokung@google.com [metal] Audit and document device guards for Create* functions.\n2026-10-22 kainino@chromium.org [dawn][vulkan] Clear FencedDeleter in AssumeCommandsComplete\n2026-10-22 dsinclair@chromium.org [dawn][metal] Enable resource table\n2026-10-22 rharrison@chromium.org Fix Mesa linking issue on siso\n2026-10-22 rharrison@chromium.org Add missing zstd dependency to .gitignore\n2026-10-22 rharrison@chromium.org Add SKILL.md for rolling Mesa dependency\n2026-10-22 rharrison@chromium.org Roll third_party/mesa/src/ 2e683eb73..f950de848 (14868 commits)\n2026-10-22 rharrison@chromium.org [infra] Migrate Mesa build in CMake to use custom rules\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in tests/end2end/*.\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC cwallez@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nChange-Id: Iaeb047fb6c243f3c93b3307fadf8e5fab421cd75\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403297\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "663251eebd95294dacedfbde6e8ad731c89cc444",
      "tree": "cff2d2c65e5c9fbc7df0f83016765474355f1e2e",
      "parents": [
        "c5f99538cbe23771df38b7c3e63a2beb76256681"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 21:01:50 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 21:27:27 2026 -0700"
      },
      "message": "Roll debugger-app-base from a0d5ffb35057 to 2ab63f6bb595\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/debugger-app-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nChange-Id: Iba61faa852a49c25b06f34ba61a5075bcf2da5b7\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403316\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "c5f99538cbe23771df38b7c3e63a2beb76256681",
      "tree": "8cafb5f09aeb739e1732f03ef3bc82effe87b17a",
      "parents": [
        "93bf31b563cbeb43ed5ae66f986a67c1a3b6c9a6"
      ],
      "author": {
        "name": "David Bebawy",
        "email": "dbebawy@gmail.com",
        "time": "Thu Oct 22 17:23:31 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 14:53:20 2026 -0700"
      },
      "message": "[skparagraph] Count only soft hyphens when measuring too-long words\n\nhttps://skia-review.googlesource.com/c/skia/+/1398738 made the\ntoo-long-word check in TextWrapper::lookAhead count the width of the\ncluster at a soft break before stopping, so that a letter-spaced soft\nhyphen counts. That applied to every other soft break too, including\nthe end of the text, so a too-long word at the end of a paragraph is\nnow split on the current line instead of first moving to the next line.\nThat broke a Flutter test (DropdownMenuEntries do not overflow when\nwidth is specified) and the Skia rolls into Flutter\n(https://github.com/flutter/flutter/pull/195089,\nhttps://github.com/flutter/flutter/pull/195098).\n\nCount the cluster only when it\u0027s a soft hyphen. Other soft breaks again\nend the word before their cluster, as before 1398738.\n\nR\u003dalexisdavidc@google.com, jlavrova@google.com\n\nBug: https://github.com/flutter/flutter/issues/194582\nChange-Id: Ied1e5b3b0be915952fac798002d57fba972fb5ae\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1403136\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\n"
    },
    {
      "commit": "93bf31b563cbeb43ed5ae66f986a67c1a3b6c9a6",
      "tree": "c24647d816c918c8c1fba9b4aac665c961feed16",
      "parents": [
        "d856f1b6fecf31b0b0a3e2e8ed32aed03dcf4f16"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 11:23:55 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 12:48:40 2026 -0700"
      },
      "message": "Manual roll Dawn from f7b0358d0220 to 07315633c106 (51 revisions)\n\nManual roll requested by bwils@google.com\n\nhttps://dawn.googlesource.com/dawn.git/+log/f7b0358d0220..07315633c106\n\n2026-10-22 jrprice@google.com [ir] Validate immediately after ProgramToIR\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in unittest/*.\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in unittest/[backend]/*.\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in unittest/wire/*.\n2026-10-22 dsinclair@chromium.org [dawn][metal] Upload resource table information\n2026-10-22 stevenperron@google.com Update Pixel 10 CTS expectations to reference spun-out bugs\n2026-10-22 rharrison@chromium.org [infra] Switch over to using the GN based Mesa build\n2026-10-22 jrprice@google.com [tint] Pass IR options when using `--format ir`\n2026-10-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll V8 from 293377af9f02 to d8ff74e943fa (57 revisions)\n2026-10-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 7abdbaea4606 to bbeb63c968e2 (34 revisions)\n2026-10-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3bf4faecf9a5 to 83c0381afacb (21 revisions)\n2026-10-22 lokokung@google.com [version] Tighten the PRESUBMIT to do a strict subset check.\n2026-10-22 lokokung@google.com [tests] No-op readability cleanup for tests in unittest/validation/*.\n2026-10-22 jiawei.shao@intel.com Range Analysis: Support non-constant initializer for loop control variable\n2026-10-22 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll EGL-Registry from ddda26d7b06e to e964211ff5f7 (1 revision)\n2026-10-21 jrprice@google.com [gen] Port lookup table compaction to Python\n2026-10-21 jrprice@google.com [gen] Port intrinsic resolver to Python\n2026-10-21 rharrison@chromium.org [infra] Implement GN based build rules for Mesa\n2026-10-21 lokokung@google.com [version] Remove outdated version file and fix CMake builds.\n2026-10-21 alanbaker@google.com [ir] Transform aliased function pointer params\n2026-10-21 lokokung@google.com [tests] No-op readability cleanup for tests in unittest/native/*.\n2026-10-21 lokokung@google.com [generators] Use unified JSON utils to parse addins for Dawn version.\n2026-10-21 lokokung@google.com [generators] Split out JSON parsing utilities into a separate file.\n2026-10-21 jhbanh@google.com Further suppress Linux/NVIDIA GTX 1660 WebGPU CTS test failures\n2026-10-21 jrprice@google.com [glsl] Hoist nested constant array initializers\n2026-10-21 lokokung@google.com [tests] Clean up DeviceMutex tests to not need friend.\n2026-10-21 kainino@chromium.org [clang-tidy] Disable modernize-use-consteval\n2026-10-21 wangra@google.com dawn/tests: Add a test helper for exhaustive error injection loops\n2026-10-21 chouinard@google.com [litert-lm] Add additional benchmark variations\n2026-10-21 shanxing.mei@intel.com [d3d12] Batch consecutive indexed indirect draws\n2026-10-21 dsinclair@chromium.org [dawn] Cleanup resource table update code\n2026-10-21 dsinclair@chromium.org [dawn][metal] Create basic resource table infrastructure\n2026-10-21 amaiorano@google.com [cts] Suppress Win11/GTX1660 min* limit OOM\n2026-10-21 lokokung@google.com [native][vulkan] Remove device guard for CheckAndUpdateCompletedSerials.\n2026-10-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 194bb75bea2b to c3a85328eb12 (3 revisions)\n2026-10-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll V8 from 716acb557842 to 293377af9f02 (97 revisions)\n2026-10-21 lokokung@google.com [security] Make sure that mPipeline in CreatePipelineEvent is cleared.\n2026-10-21 lokokung@google.com [native] Remove deprecated cache data entries from dawn.json.\n2026-10-21 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll EGL-Registry from db3425b82461 to ddda26d7b06e (1 revision)\n2026-10-21 ygu@microsoft.com dawn: Unskip passing tests on newer Qualcomm Windows drivers\n2026-10-21 lokokung@google.com [version] Add stable_version entry to enum and bitmasks.\n2026-10-20 jrprice@google.com [wgsl] Use `sync()` for parsing interpolated strings\n2026-10-20 lokokung@google.com [version] Add stable major and minor versions to dawn headers.\n2026-10-20 lokokung@google.com [version] Implements stable_version PRESUBMIT checks.\n2026-10-20 lokokung@google.com [metal] Enable BC texture formats on iOS 16.4+.\n2026-10-20 lokokung@google.com [version] Add initial code to add Dawn version checks for PRESUBMIT.\n2026-10-20 jhbanh@google.com Update and broaden Win/GTX 1660 exp suppressions\n2026-10-20 lokokung@google.com [generators] Defer jinja2 import in generator_lib.py.\n2026-10-20 jrprice@google.com [gen] Port AST and parser to Python\n2026-10-20 wangra@google.com Vulkan: Replace destroyed resource handles with placeholders\n2026-10-20 amaiorano@google.com Enable SplitBufferTextureCopyForOversizedRow on ARM, ImgTec, and Qualcomm\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC bwils@google.com,cwallez@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nTest: Test:\nTest: Test: *ResourceTable* tests pass\nTest: Test: ResourceTableTests.PipelineLayoutWithResourceTableCreation\nTest: Test: ResourceTableTests.ResourceTableCreation\nTest: Test: dawn_end2end_tests --gtest_filter\u003d\"*VulkanErrorInjectorTests*\"\nChange-Id: Ib4178abdd48ee28988cca01365fc08a7bf9dfe05\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402977\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d856f1b6fecf31b0b0a3e2e8ed32aed03dcf4f16",
      "tree": "84632f7d13fa03f121ad52e03220079872c42f5b",
      "parents": [
        "950c6052a2cfa20ca27fe281564c8356904746ab"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 11:09:14 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 12:19:35 2026 -0700"
      },
      "message": "Roll vulkan-deps from 83c0381afacb to 33b420b98120 (4 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/83c0381afacb..33b420b98120\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nChange-Id: Ic9614c4a11db7bca18773678d587388d501e03f2\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402956\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "950c6052a2cfa20ca27fe281564c8356904746ab",
      "tree": "3857e8b1bf318494babafab062d662285e33334b",
      "parents": [
        "4dedd019573db0f36ece1ac9efe0707b9b0a2e7a"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Thu Oct 22 13:05:49 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 11:27:44 2026 -0700"
      },
      "message": "[graphite] Remove assert in WindingHistogram addWindingRange.\n\nWhen a line left of the clip starts and ends within the same tile row,\nthe Tiler\u0027s left-edge culling computes yStart \u003d\u003d yEndIdx + 1 for the\nrows the line fully crosses. The range is empty, so the histogram is\nstill correct, but it violated the assert in\nWindingHistogram::addWindingRange (startRow \u003c\u003d endRow).\n\nBug: b/466122293\nBug: b/466119734\nBug: b/385170952\nChange-Id: Ic1c5a2b7fc526639cd0abf9bb900f619aaa32275\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401256\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n"
    },
    {
      "commit": "4dedd019573db0f36ece1ac9efe0707b9b0a2e7a",
      "tree": "ede99580c455c3ac1aeaac946951f99e4d446764",
      "parents": [
        "ff7efa891f9adffc174b154683a22bf48b68abe3"
      ],
      "author": {
        "name": "Brandon Wilson",
        "email": "bwils@google.com",
        "time": "Thu Oct 22 13:54:16 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 11:25:01 2026 -0700"
      },
      "message": "[bazel] Use @platforms//cpu:wasm32 constraint for cpu_wasm\n\nUpdate `//bazel/common_config_settings:cpu_wasm` to use\n`constraint_values \u003d [\"@platforms//cpu:wasm32\"]` instead of `values \u003d\n{\"cpu\": \"wasm\"}`.\n\nBlaze in google3 disallows `select()` on `\"cpu\"` in `config_setting`\nrules. This rule was previously migrated in google3\n(http://cl/711763608), but modifying\n`bazel/common_config_settings/BUILD.bazel` in Skia caused the roller to\noverwrite the google3 file with the outdated definition.\n\nChange-Id: Icc848a74255df20a758a1f7372b271f698242952\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402916\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Brandon Wilson \u003cbwils@google.com\u003e\n"
    },
    {
      "commit": "ff7efa891f9adffc174b154683a22bf48b68abe3",
      "tree": "34a1b202b94ec28980363d949affdc6a9862916a",
      "parents": [
        "c19399dbba55b2b2c2dd5b261e1c3d66cc764118"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Thu Oct 22 11:53:37 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 10:45:37 2026 -0700"
      },
      "message": "[dawn] update generate_dawn_files.py\n\nExtracted subcommand actions (\"gen\", \"check\") from expanded_params so they are placed immediately after the script path in cmd before --template-dir and other flags, satisfying argparse subcommand ordering requirements.\n\nChange-Id: I3d7a15f93ed00571e415ea9b51ffeb517e597ea2\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402596\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\nCommit-Queue: Brandon Wilson \u003cbwils@google.com\u003e\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Eric Boren \u003cborenet@google.com\u003e\n"
    },
    {
      "commit": "c19399dbba55b2b2c2dd5b261e1c3d66cc764118",
      "tree": "e8bf07dd3042e2091fc34c5cb981553edd69e4e0",
      "parents": [
        "0ef44edd0ec4498a1599e6987422bca461fdd6ab"
      ],
      "author": {
        "name": "Michael Ludwig",
        "email": "michaelludwig@google.com",
        "time": "Fri Oct 16 14:08:02 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 10:34:17 2026 -0700"
      },
      "message": "[graphite] Use LEQUAL for inner fills\n\nPreviously, when an inner fill was recorded, it would use the same depth\nvalue as the main draw. It would act as an occluder because the quad and\nrrect renderers used LESS. We want to be able to use LEQUAL when\nhandling the more general depth dependencies between draws and reserve\nLESS for within-draw dependencies.\n\nThis now assigns the inner fill with Z+1 and updates the Device\u0027s Z\ntracking to account for that. The inner fill\u0027s Z value needs to be known\nwhen we visit the ClipStack to ensure that any clip draws will mask both\nthe regular and the inner fill draw.\n\nRerun-Tryjobs: true\nBug: 500416105\nChange-Id: I01cf043d308e7b573f276a44fef166a1f925c414\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1382516\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "0ef44edd0ec4498a1599e6987422bca461fdd6ab",
      "tree": "33454f66174d8aceb366ceb6f6eef9fc827c60fd",
      "parents": [
        "1d7f7b13b853df11e8dd8ad3813145fc949b34ba"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Thu Oct 22 13:04:03 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 10:31:45 2026 -0700"
      },
      "message": "[SkSL:RP] Prevent slot count overflow in Raster Pipeline codegen\n\nGuard SlotManager::createSlots against signed integer overflow using SkSafeMath and SkTFitsIn\u003cint\u003e, and fail codegen if any slot table (program, uniform, or immutable slots) overflows. Also guard temporary stack depth calculations in Program::tempStackMaxDepths and Program::Program against integer overflow and reject negative slot counts in Program::allocateSlotData.\n\nBug: b/574776938\nBug: b/576194994\nChange-Id: Iac9d0a729b78eb2af4195a0f6b47511344b40754\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401636\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\n"
    },
    {
      "commit": "1d7f7b13b853df11e8dd8ad3813145fc949b34ba",
      "tree": "fbbd986a54c83e5874cae3e73827a8f1a1fb05a1",
      "parents": [
        "1e713b43816f534f423a7778b566c41bd5645c26"
      ],
      "author": {
        "name": "YeungKC",
        "email": "I@YeungKC.com",
        "time": "Tue Oct 20 07:30:39 2026 +0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 09:59:54 2026 -0700"
      },
      "message": "[skparagraph] Cache system fallback results across paragraphs\n\nEach paragraph resolves its fallback fonts again. OneLineShaper keeps\nthe defaultFallback() results only for one paragraph, and it does not\nkeep the defaultEmojiFallback() results. Thus each new paragraph calls\nFontCollection::defaultFallback() and defaultEmojiFallback() again\nfor the same codepoints. Each call is a full system query\n(CoreText on macOS, fontconfig on Linux). When an app shows many\nshort paragraphs, such as a chat list, these queries take a large\npart of the layout time.\n\nThis CL adds a FallbackCache to FontCollection. It is an SkLRUCache,\nthe same as ParagraphCache. The key has these fields:\n- the codepoint (or the emoji start)\n- a flag for emoji fallback\n- families[0], if it is present\n- the SkFontStyle\n- the locale\n\ndefaultFallback() and defaultEmojiFallback() look up the key first.\nOn a miss, they query the font managers as before and keep the\nresult. defaultFallback() keeps the typeface without FontArguments\nand applies cloneTypeface() after the lookup, as before. Thus the\nVariationCache continues to own the clones.\n\nOn macOS and iOS, defaultEmojiFallback() first matches\nApple Color Emoji by family name. This lookup does not depend on the\nemoji start, the style or the locale. Thus the cache keeps its result\nunder one key, and a new emoji does not query again. The lookup now\nuses getFontManagerOrder(). Before, it called fDefaultFontManager in\nthe loop over the font managers. Thus it skipped the font managers\nthat have a higher priority, and it dereferenced nullptr when only\nan asset, dynamic or test font manager was set. When font fallback\nis disabled, getFontManagerOrder() does not include the default font\nmanager, so this lookup does not use it either. If no font manager\nhas Apple Color Emoji, defaultEmojiFallback() continues with\nmatchFamilyStyleCharacter() and the key of the emoji start, as\nbefore.\n\nOneLineShaper::fFallbackFonts and OneLineShaper::FontKey are removed.\nOneLineShaper calls defaultFallback() directly. The old per-paragraph\nkey did not include families[0]. Thus, in a paragraph with two styles\nthat have different families[0], the second style used the fallback\nresult of the first style. Now the result does not depend on the\norder of the styles.\n\nclearCaches() clears the cache. The setters that change the font\nmanagers (setAssetFontManager(), setDynamicFontManager(),\nsetTestFontManager(), setDefaultFontManager()) and\nenableFontFallback() / disableFontFallback() also clear it, because\nthey change the managers that defaultFallback() queries. New fallback\nfonts that a system font manager registers at run time are seen after\nclearCaches(), the same as FaceCache. Flutter calls clearCaches()\n(ClearFontFamilyCache) after it loads fonts.\n\nBehavior notes:\n- The cache also keeps nullptr results. A codepoint that has no\n  fallback font is not queried again while its entry is in the cache.\n- The cache keeps at most 4096 entries and removes the least recently\n  used entry. An entry uses about 100 bytes (64 bytes for the entry\n  and about 32 bytes of hash table), so a full cache uses about\n  400 KB.\n- The key uses only families[0], because defaultFallback() gives only\n  families[0] to matchFamilyStyleCharacter().\n\nThread safety: SkLRUCache::find() moves the entry to the front of its\nlist, so a hit also changes the cache. Thus FallbackCache has an\nSkMutex and find(), insert() and reset() helpers, the same as\nParagraphCache. A FontCollection that is shared across threads can\ncall defaultFallback() and defaultEmojiFallback() at the same time.\n- They do not hold the lock while they query the font managers, so a\n  slow system query does not block the lookups on other threads.\n- If two threads query the same key at the same time, insert() keeps\n  the first result, and both threads return that result.\n- The lock is a leaf lock. While the code holds it, the code only\n  changes the cache and can release typefaces. It does not call into\n  the font managers or into other FontCollection code.\n  defaultFallback() calls cloneTypeface() after the lock is released.\n  Thus the lock does not add a lock order to the FaceCache and\n  VariationCache locks.\n\nCap selection (CoreText, temporary dm test that is not in this CL).\nEach paragraph has 3 groups of 1 to 6 random CJK ideographs from a\npool, 1 emoji from a pool of 80, and U+276F. Font manager queries for\n5000 paragraphs (15000 lookups):\n\n  ideograph pool  no cache  cap 1024  cap 2048  cap 4096  no limit\n  400             15000     481       481       481       481\n  2000            15000     3003      1916      1916      1916\n  5000            15000     4250      3607      3280      3280\n\nWith a pool of 2000 ideographs, there are up to about 2100 keys.\n4096 keeps the hit rate of the cache without a limit for these\npools. These counts are from before the macOS emoji lookup used one\nkey. That change removes up to 79 emoji keys, so it does not change\nthe choice of the cap.\n\nNumbers (CoreText, Apple M5 Pro, macOS 27, release dm, temporary dm\ntest that is not in this CL). The test lays out 1000 new paragraphs\nof synthetic text on one FontCollection. Each paragraph has 8 CJK\nideographs from a pool of 400, 1 emoji from a pool of 10, and U+276F.\nAll paragraphs have different text, so ParagraphCache does not hit.\nFont manager calls, and paragraphs that one thread lays out in 300 ms\n(median of 7 interleaved rounds):\n\n                    matchFamilyStyleCharacter  matchFamilyStyle  per 300 ms\n  first 500, base   1000                       500                5235\n  first 500, CL      284                         1                9191\n  next 500, base    1000                       500                7047\n  next 500, CL        68                         0               25808\n\nSkParagraph_FallbackCacheAcrossParagraphs counts the font manager\ncalls. It also makes sure that:\n- a cached fallback gives the same font family as a new query,\n- a new emoji does not query Apple Color Emoji again,\n- emoji fallback does not crash when only a test font manager is set,\n- two styles with different families[0] in one paragraph do not\n  share a fallback result.\nSkParagraph_FallbackCacheIsBounded makes sure that the oldest entry\nis removed after 65536 new codepoints. Both tests fail without the\nchange to FontCollection. On macOS, the emoji checks fail or crash\nwithout the getFontManagerOrder() change. The families[0] check\nfails if the key does not include families[0].\nSkParagraph_FallbackCacheConcurrently calls defaultFallback() with\nFontArguments and defaultEmojiFallback() from 8 threads on one\nFontCollection, and compares each result with the result of one\nthread. Without the lock, the test crashes in most runs, and TSAN\nreports data races.\n\nChange-Id: I2aaaec2b19a03fddd4eabbc35a0d251d4f34b741\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398816\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "1e713b43816f534f423a7778b566c41bd5645c26",
      "tree": "9ed8ce649163b7da691d9804b3e2b16faf8912bc",
      "parents": [
        "5f040d813c138ffb4820c9832c8430fab6f65534"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Thu Oct 22 10:46:24 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 09:06:47 2026 -0700"
      },
      "message": "[sksl] Add subgroup builtins for compute shaders\n\nAdds sk_SubgroupSize, sk_SubgroupID and sk_SubgroupInvocationID to the\ncompute module. Builtin IDs are the SPIR-V BuiltIn values (36, 40, 41).\n\n- SPIR-V: BuiltIn decorations plus the GroupNonUniform capability.\n- Metal: [[threads_per_simdgroup]], [[simdgroup_index_in_threadgroup]],\n  [[thread_index_in_simdgroup]].\n- WGSL: subgroup_size / subgroup_id / subgroup_invocation_id, and\n  \u0027enable subgroups;\u0027 when used.\n- Each backend reports \"\u0027\u003cname\u003e\u0027 not supported\" when a builtin is used\n  without ShaderCaps::fSubgroupSupport.\n- ProgramInterface gains fUseSubgroups (persistent cache version bumped).\n- Vulkan: compute pipelines that use subgroups set\n  ALLOW_VARYING_SUBGROUP_SIZE so sk_SubgroupSize reports the real size.\n- Dawn: fSubgroupSupport also requires the subgroup_id WGSL language\n  feature (shipped with a killswitch); disabled on Emscripten.\n- skslc gains a SubgroupSupport settings pragma; the WGSL validator\n  allows the subgroups extension and subgroup_id feature.\n\nBug: b/419535128\nChange-Id: I97a660b863fce294ddd56867a35d488a29729095\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1379457\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\nCommit-Queue: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "5f040d813c138ffb4820c9832c8430fab6f65534",
      "tree": "75e7d2d16311164c7e7ee8e533bfd05c37d8e512",
      "parents": [
        "d13c86b4b3d1e0714389037abda0b9959f33052f"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Wed Oct 21 11:44:20 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 08:21:30 2026 -0700"
      },
      "message": "[graphite] Include whole SparseStrips tiles in EndCap draw bounds\n\nEndCaps rasterize whole tiles, so a SparseStrips draw can touch pixels up\nto a tile outside of its AA-outset draw bounds. Those pixels have zero\ncoverage, but they are still shaded and write depth, and Graphite relies\non the draw bounds for draw ordering, clip element usage, dst-read copy\nbounds, the render pass bounds, and RenderStep::getScissor() deciding\nwhether a draw\u0027s scissor can be skipped.\n\nAdd Clip::outsetBoundsToGrid() and use it to outset the bounds of EndCap\ndraws to the tile grid, right after the AA outset. The draw bounds also\ndefine the SparseStrips culling clip, so its right and bottom edges are\nnow tile aligned too, which does not change coverage.\n\nAdds SparseStrips_Coverage_StripsInsideDrawBounds.\n\nChange-Id: Ia625b39a11296e90bc76d0a8a32c69907698c627\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1381936\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n"
    },
    {
      "commit": "d13c86b4b3d1e0714389037abda0b9959f33052f",
      "tree": "4b74f85b39d434c3e5b45982432a46b1762d3b81",
      "parents": [
        "88eb0aa6e9deed8199a2267ea74c33884dc2fb60"
      ],
      "author": {
        "name": "David Bebawy",
        "email": "dbebawy@gmail.com",
        "time": "Wed Oct 21 18:48:36 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 08:18:52 2026 -0700"
      },
      "message": "[skparagraph] Count the hyphen in min intrinsic width at soft hyphens\n\nA word that ends at a soft hyphen is drawn with a hyphen when the line\nbreaks there, but the min intrinsic width left the hyphen out. Laid out\nat its min intrinsic width, \"xy abcd\\u00ADef\" broke as \"xy\" / \"abcd-\" /\n\"ef\" and the second line overflowed by the hyphen\u0027s width.\n\nTextWrapper::lookAhead now adds the hyphen string\u0027s width to such a\nword, both where words end normally and for a word too long for the\nline, so the result doesn\u0027t depend on the layout width. This matches\nCSS min-content in Chrome, where \"abcd\\u00ADefgh\" is as wide as\n\"abcd-\". A soft hyphen that ends the text adds nothing, since no\nhyphen is drawn there. Lines that may get an ellipsis still reserve no\nroom for the hyphen while breaking, but their words now count it in\nthe min intrinsic width too.\n\nThe hyphen is measured in the soft hyphen\u0027s font when that font has\nglyphs for the hyphen string, and otherwise shaped with font fallback\nthe same way it is drawn (TextLine::ShapeString, factored out of\nshapeEllipsis). The too-long-word measurement includes the soft break\ncluster\u0027s own width, which letter spacing makes non-zero, and records\nthe hyphenated word\u0027s width even when the word fits on a line. The\nscan of the text after maxLines now ends words at soft breaks as well\nas at spaces, so truncated text without spaces, such as CJK, also gets\nthe min intrinsic width of its longest word rather than of the whole\nremainder.\n\nR\u003dalexisdavidc@google.com, jlavrova@google.com\n\nBug: https://github.com/flutter/flutter/issues/194582\nChange-Id: I2aff91fdd7db647d5c81b9296fe8521449497724\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398738\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nAuto-Submit: David H Bebawy \u003cdbebawy@gmail.com\u003e\n"
    },
    {
      "commit": "88eb0aa6e9deed8199a2267ea74c33884dc2fb60",
      "tree": "7f32fc4042c2a5908f989d3a23a10fa2cb6a8107",
      "parents": [
        "c64a7d30b87c3bac0b6b169ddefc1022f457cc6e"
      ],
      "author": {
        "name": "Francisco Chavez",
        "email": "frankchavez@google.com",
        "time": "Wed Oct 21 19:33:48 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 07:34:15 2026 -0700"
      },
      "message": "Reland \"spanification: Support for -Wunsafe-buffer-usage in Bazel\"\n\nThis is a reland of commit 48812206cfc3defbef01616c3f047d77432b8ed3.\n\nThe original change was reverted because the Windows toolchain configs\ndeclared the `unsafe_buffers_mappings` label attribute without\n`allow_single_file \u003d True`. Bazel then rejected the mappings source file\n(\"source file ... is misplaced here (expected no files)\") and\n`ctx.file.unsafe_buffers_mappings` was unavailable, causing analysis of\n`//toolchain:windows_amd64_toolchain_config` to fail.\n\nAdditionally, there are some compatibility issues with the Clang version\non the Mac toolchain. Changes for the Mac toolchain will remain pending\nuntil we discuss and review possible alternatives, or until the\ntoolchain\u0027s Clang version is compatible with our current approach.\n\nOriginal change\u0027s description:\n\u003e spanification: Support for -Wunsafe-buffer-usage in Bazel\n\u003e\n\u003e As part of the effort to enforce -Wunsafe-buffer-usage globally in\n\u003e Skia, update Bazel configuration files to support Clang\u0027s\n\u003e warning for it.\n\u003e\n\u003e Bug: b/532990050\n\nBug: b/532990050\nChange-Id: Id3cabb483ee2f3f55bfaff7d93279b33bb89fbe6\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1391476\nReviewed-by: Eric Boren \u003cborenet@google.com\u003e\nCommit-Queue: Francisco Ochoa \u003cfrankchavez@google.com\u003e\n"
    },
    {
      "commit": "c64a7d30b87c3bac0b6b169ddefc1022f457cc6e",
      "tree": "954dd940599484b876f38738d55e11fb5ee06f2b",
      "parents": [
        "9754994555ab434b7486ddff6f338a0506203289"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Thu Oct 22 04:35:17 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 04:40:57 2026 -0700"
      },
      "message": "Revert \"[SkContext] Forwarding SkGraphics calls to SkContext\"\n\nThis reverts commit dae53eda20524e39c0f13fb9124f9207e3b7b7db.\n\nReason for revert: I think this is blocking the Chrome roll\n\nFailure Link: \u003cLINK TO FAILURE\u003e\n\nOriginal change\u0027s description:\n\u003e [SkContext] Forwarding SkGraphics calls to SkContext\n\u003e\n\u003e As part of the SkContext project, we are moving away from SkGraphics globals and moving them into a global SkContext (along with a global SkSharedContext).\n\u003e\n\u003e The global SkContext and SkSharedContext will hold the previous globals as field variables, such as the SkStrikeCache, ResourceCache, and the SkTypefaceCache\n\u003e\n\u003e Change-Id: I4d9e1e4fc44df7b2fd1d17809be66ca42e4e50f4\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1395176\n\u003e Reviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Commit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I5d0dbd739a67119e78ff3bdf121d0c4f40b78b8c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1402336\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9754994555ab434b7486ddff6f338a0506203289",
      "tree": "198fea5140a9377ac62a4e20208fa36a7fde7b81",
      "parents": [
        "b33356d6ccf1fe2692e3b616b257f07f78414c47"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Tue Oct 20 09:13:14 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Thu Oct 22 01:38:21 2026 -0700"
      },
      "message": "sksl: Mark stack-only helpers SK_ONLY_STACK_ALLOCATABLE\n\nThese RAII guards, visitors and function-local helpers only ever live\non the stack. Marking them lets the MiraclePtr rewriter skip their\npointer fields, and the compiler now rejects heap-allocating them.\n\nMarking TProgramVisitor covers every ProgramVisitor and ProgramWriter\nsubclass at once.\n\nBug: 351867706\nDoc: https://bit.ly/miracleptr-skia\nChange-Id: Iefea39a0aa60f65b161387119b7747c163ba478f\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399996\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\n"
    },
    {
      "commit": "b33356d6ccf1fe2692e3b616b257f07f78414c47",
      "tree": "e9b54b38b605addefd6860a76ca3c446aae77dbd",
      "parents": [
        "04a0cb98be721256648c2fabd80e75c806bf64eb"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 21:45:21 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 23:06:11 2026 -0700"
      },
      "message": "Roll vulkan-deps from f31145a4865a to 83c0381afacb (6 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/f31145a4865a..83c0381afacb\n\nAlso rolling transitive DEPS:\n  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Headers/+log/86f980c731e62ae4eaf383d320449d71687936bf..fbf86836a9b1966586faf7be7bb8a6440e156d62\n  https://skia.googlesource.com/external/github.com/KhronosGroup/SPIRV-Tools/+log/71f287f18ed78d496e724fbfb1c3feae3a2af75a..7651d9234622041b3f1b09e5c684c7c6eb352d08\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: Ia78623cadec024df0bc675d0b550d03752bb4390\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399908\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "04a0cb98be721256648c2fabd80e75c806bf64eb",
      "tree": "0121c9c5d02b4d19d328b61eec9c52360031621f",
      "parents": [
        "8218ad7786b6921e706bc0401b18c59ba5a41f65"
      ],
      "author": {
        "name": "skia-autoroll",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Thu Oct 22 04:01:01 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 22:55:00 2026 -0700"
      },
      "message": "Roll Skia Infra from 70e8b73d508c to c8744433fd41 (20 revisions)\n\nhttps://skia.googlesource.com/buildbot.git/+log/70e8b73d508c..c8744433fd41\n\n2026-10-21 smolkaj@google.com [gold] Store and serve cached baselines gzipped.\n2026-10-21 davidsegovia@google.com [skfe] Add _validation-persist TXT tests for skia.org\n2026-10-21 davidsegovia@google.com [skfe] Add ACME gfe-ssl dns-persist-01 TXT record for skia.org\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll debugger-app-final from 31c3406ba420 to ff3de3c20079\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll luci-auth from 5717e024639e344ee... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Depot Tools from 3a8af1e64be0 to 1eb46f8b23b4 (2 revisions)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll isolate from 5717e024639e344ee... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll goldctl from 5717e024639e344ee... to b2324e42f77961aa3... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-final from 327cc339f2fd to 8f00d154ff96\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll kitchen from 5717e024639e344ee... to b2324e42f77961aa3... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll git-credential-luci from 5717e024639e344ee... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll docker-credential-luci from 5717e024639e344ee... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll git_wrapper from 5717e024639e344ee... to b2324e42f77961aa3... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll cipd from 88c551cb4de7b8c76... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll command_wrapper from d256c8204dc400b42... to 06253ddd2a2156691... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll presubmit from d256c8204dc400b42... to 06253ddd2a2156691... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_build_all from d256c8204dc400b42... to 06253ddd2a2156691... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_test_all from d256c8204dc400b42... to 06253ddd2a2156691... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll swarming from f86d3644d4f6169e9... to abe8fd1550c6fdfaf... (1 revision)\n2026-10-21 skia-autoroll@skia-public.iam.gserviceaccount.com Roll lucicfg from 5717e024639e344ee... to abe8fd1550c6fdfaf... (1 revision)\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/infra-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: chromium:529394388,chromium:574560585\nTbr: borenet@google.com\nChange-Id: I70e4242e8847f2dbe26bbcb30a780d78ec625468\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401419\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "8218ad7786b6921e706bc0401b18c59ba5a41f65",
      "tree": "2fc7437b9494dbd0a56908d7bb89c42c58229ed9",
      "parents": [
        "db56af9502b2971ca4d94c9a485792d7ee178b87"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 21:01:02 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 22:20:21 2026 -0700"
      },
      "message": "Roll ANGLE from c326829357ca to e6fd4a2e167a (6 revisions)\n\nhttps://chromium.googlesource.com/angle/angle.git/+log/c326829357ca..e6fd4a2e167a\n\n2026-10-22 abdolrashidi@google.com Capture/Replay: Optimize texture parameter reset\n2026-10-22 cnorthrop@google.com GN: Turn zstd off until Android can link it\n2026-10-22 bajones@chromium.org GL: Force finish on IMG when copying within a texture\n2026-10-21 cnorthrop@google.com Revert \"Android: Use Android\u0027s zstd when rolling into AOSP\"\n2026-10-21 yuxinhu@google.com IR: Skip failing end2end test\n2026-10-21 syoussefi@chromium.org Vulkan: Dynamic state for patch control points\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/angle-skia-autoroll\nPlease CC bwils@google.com,jmadill@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win11-Clang-Dell3930-GPU-GTX1660-x86_64-Debug-All-ANGLE\nTbr: bwils@google.com\nChange-Id: Ic6c3d023d0ad3bbee84d2dc8f3fb0e5e6b811b1e\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401836\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "db56af9502b2971ca4d94c9a485792d7ee178b87",
      "tree": "715a688f4a6de4830306df129f062d81a596a22a",
      "parents": [
        "7b3dbd525440f2f4bafdc3050ac516a71011661a"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 21:01:27 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 21:28:15 2026 -0700"
      },
      "message": "Roll debugger-app-base from a9150fe5f17f to a0d5ffb35057\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/debugger-app-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: Ia14781ec406c00338f9b84b868611984f687c9f8\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401559\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "7b3dbd525440f2f4bafdc3050ac516a71011661a",
      "tree": "60421ebf3d3428d6d774853ae3d9e82708dac08a",
      "parents": [
        "dbb674ab35967ef776b44eb145672c98e99c29fe"
      ],
      "author": {
        "name": "Sergio Gonzalez Martin",
        "email": "sergiog@microsoft.com",
        "time": "Mon Oct 12 19:06:45 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 16:02:35 2026 -0700"
      },
      "message": "[rust jpeg] Decode directly to native N32 on x86\n\nNegotiate RGBA/BGRA packed scanline output according to\nSK_PMCOLOR_BYTE_ORDER. Write eligible opaque full-size YCbCr decodes\ndirectly into caller rows on x86. Retain swizzler fallback for\ntransforms, non-native formats, grayscale, CMYK/YCCK, subsets/scaling,\nprogressive/DNL, and unsupported targets. Include direct/fallback parity\nand padding coverage. Stacked on converted scanline decoding.\n\nBug: 493315750\nChange-Id: I96c03285c392787d6dbed4737f74f69ab8200d67\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1392057\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Łukasz Anforowicz \u003clukasza@google.com\u003e\nCommit-Queue: Sergio Gonzalez Martin \u003csergiog@microsoft.com\u003e\n"
    },
    {
      "commit": "dbb674ab35967ef776b44eb145672c98e99c29fe",
      "tree": "78e4d6e16e47795fa77310f5405e86d3e618c833",
      "parents": [
        "c5fd98382b90489a639cbd9eafdeef94632b0990"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Mon Oct 19 12:10:33 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 15:29:19 2026 -0700"
      },
      "message": "miracleptr: Rewrite Graphite pointers to raw_ptr\n\nTurn use-after-free bugs on Graphite\u0027s long-lived objects into\nnon-exploitable crashes.\n\nThis rewrites the heap pointer fields in src/gpu/graphite. Stack-only\nclasses keep plain pointers. Pinpoint showed no measurable cost on\nSpeedometer 3, JetStream 2 or MotionMark.\n\nBug: 351867706\nDoc: https://bit.ly/miracleptr-skia\nChange-Id: Id80c992ff680031dd0d3692f76592adec9775f9b\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398476\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nAuto-Submit: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\n"
    },
    {
      "commit": "c5fd98382b90489a639cbd9eafdeef94632b0990",
      "tree": "60f6a0fb2ba1ff16f218f4635f48604a9508fe93",
      "parents": [
        "d75bb0e56db3feacba8713bb2cb3465a8266af52"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 12:01:02 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 13:25:02 2026 -0700"
      },
      "message": "Manual roll ANGLE from f71b297c59c8 to c326829357ca (28 revisions)\n\nManual roll requested by bwils@google.com\n\nhttps://chromium.googlesource.com/angle/angle.git/+log/f71b297c59c8..c326829357ca\n\n2026-10-21 cnorthrop@google.com Android: Use Android\u0027s zstd when rolling into AOSP\n2026-10-21 cnorthrop@google.com GN: Make zstd optional for embedders\n2026-10-21 kkinnunen@apple.com Update element limit on format-only VertexAttribPointer change\n2026-10-21 roberto_rodriguez2@apple.com Translator: Fix nested interpolateAtOffset offsets\n2026-10-21 roberto_rodriguez2@apple.com Metal: Fix unindexed references to interpolant arrays\n2026-10-21 wangra@google.com Vulkan: Reject non-8-bit cross-format transfers in CopyTexture\n2026-10-21 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 3bf4faecf9a5 to 10d2498d3094 (13 revisions)\n2026-10-21 msisov@igalia.com [3p freshness] xxhash: Add Crowbar workflow\n2026-10-21 msisov@igalia.com [3p freshness] ffx_spd: Restore upstream ffx_spd.h bytes\n2026-10-21 msisov@igalia.com [3p freshness] ffx_spd: Move upstream files into src/\n2026-10-21 syoussefi@chromium.org Failing test suppressions and build fixes\n2026-10-21 syoussefi@chromium.org Translator: Even more finite loop detection bugfixes\n2026-10-21 kbr@chromium.org GL: virtualize base level and mipmap chain on PowerVR.\n2026-10-20 cclao@google.com Android: Add system ANGLE feature override config\n2026-10-20 cnorthrop@google.com Add zstd support to compression helpers\n2026-10-20 cnorthrop@google.com DEPS: Add zstd to third_party\n2026-10-20 bajones@chromium.org GL: Use local variables for SyncGL operation results\n2026-10-20 cnorthrop@google.com Vulkan: Size the pipeline cache to the platform blob cache\n2026-10-20 vinayakareddy@google.com Tests: Add epic_seven, sea_of_conquest \u0026 sonic_dash_run traces\n2026-10-20 syoussefi@chromium.org Vulkan: Don\u0027t add srgb formats for R8/RG8 if unsupported\n2026-10-20 syoussefi@chromium.org Manual roll VK-GL-CTS from bee837225470 to d18e4c685431 (40 revisions)\n2026-10-20 syoussefi@chromium.org Skip failing tests + suppress buggy VVL error\n2026-10-20 hyshih@google.com Add a test for atomicOr on mediump uint with bit 15 set\n2026-10-20 sergiosolano@google.com spanify: Use a fixed-extent span in MSRTT helpers\n2026-10-20 kkinnunen@apple.com Metal: Remove generateShareableShaders\n2026-10-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 601d5e9c59eb to 3bf4faecf9a5 (7 revisions)\n2026-10-20 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from c300679f2883 to 0a8b0d14dd3f (1028 revisions)\n2026-10-20 msisov@igalia.com [3p freshness] xxhash: Move upstream code into src/\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/angle-skia-autoroll\nPlease CC bwils@google.com,jmadill@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win11-Clang-Dell3930-GPU-GTX1660-x86_64-Debug-All-ANGLE\nTbr: bwils@google.com\nTest: Test:\nTest: Test: VertexAttributeOORTest.FormatOnlyChangeRefreshesElementLimit\nTest: Test: angle_end2end_tests --gtest_filter\u003d*AtomicOrMediumpUintHighBit*\nTest: Test: angle_trace_tests --gtest_filter\u003d*epic_seven*:*sea_of_conquest*:*sonic_dash_run*\nChange-Id: I3d870a4218a0b103276985b860908d33daa66756\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401557\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "d75bb0e56db3feacba8713bb2cb3465a8266af52",
      "tree": "8b107c7e71334b491f38f9f684bc5e3380049291",
      "parents": [
        "45ae98392a01e48fe49953bc94a44a8eae41ef89"
      ],
      "author": {
        "name": "Lokbondo Kung",
        "email": "lokokung@google.com",
        "time": "Wed Oct 21 18:46:11 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 13:00:28 2026 -0700"
      },
      "message": "[dawn] Remove deprecated generated version file from BUILD.bazel.\n\nBug: 575526443\nChange-Id: I4e582df0b89adbffa0553aaa213b1b105ae8667d\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401050\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\nAuto-Submit: Loko Kung \u003clokokung@google.com\u003e\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\nCommit-Queue: Brandon Wilson \u003cbwils@google.com\u003e\n"
    },
    {
      "commit": "45ae98392a01e48fe49953bc94a44a8eae41ef89",
      "tree": "7fcd0aee8375621056918a99b13d81a774187cbc",
      "parents": [
        "0a8b2fc4864f895efd170fc81fe780a6c77d0b9d"
      ],
      "author": {
        "name": "Francisco Chavez",
        "email": "frankchavez@google.com",
        "time": "Wed Oct 21 17:52:29 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 11:30:39 2026 -0700"
      },
      "message": "spanification: Add presubmit checks for unsafe buffer macros\n\nAdd a generic and extensible presubmit check (CheckBannedPatterns) to\nscan for banned patterns based on a configurable list.\n- Warn against new insertions of SK_UNSAFE_TODO in C++ files.\n- Require a safety comment (`// SAFETY:`) on SK_UNSAFE_BUFFERS\n  macro invocations to justify ignoring Clang -Wunsafe-buffer-usage.\n\nAdd unit tests to verify the correctness of the new presubmit checks.\n\nBug: b/559168168\nChange-Id: If6082f1a0204f555fc37f753cbc51a2401601258\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1368196\nReviewed-by: Greg Daniel \u003cegdaniel@google.com\u003e\nCommit-Queue: Francisco Ochoa \u003cfrankchavez@google.com\u003e\n"
    },
    {
      "commit": "0a8b2fc4864f895efd170fc81fe780a6c77d0b9d",
      "tree": "187cddb47973054528cd921030e4625a5b22d607",
      "parents": [
        "dae53eda20524e39c0f13fb9124f9207e3b7b7db"
      ],
      "author": {
        "name": "Nathan Sanchez",
        "email": "nathanasanchez@google.com",
        "time": "Tue Oct 20 14:50:22 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 11:09:12 2026 -0700"
      },
      "message": "[SkSL] Reject invalid types when parsing\n\nWhen parsing runtime effects, we alias private types to fInvalid to\nensure they are not used or referenced as variable names. This ensures\nwe emit errors for those types anywhere they are encountered, moving the\ncheck from variable declarations to the parser.\n\nBug: 574213633\nChange-Id: I6a27aead1ed83315e137752c5ef124e2f2020df4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400318\nCommit-Queue: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n"
    },
    {
      "commit": "dae53eda20524e39c0f13fb9124f9207e3b7b7db",
      "tree": "c3de72cda8d05fb977d23ea9a0dd7656acbd48d5",
      "parents": [
        "ca14cab77c861e85d12c4dccf256ea4713d76460"
      ],
      "author": {
        "name": "Alexis Cruz-Ayala",
        "email": "alexisdavidc@google.com",
        "time": "Wed Oct 21 13:27:54 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 11:05:02 2026 -0700"
      },
      "message": "[SkContext] Forwarding SkGraphics calls to SkContext\n\nAs part of the SkContext project, we are moving away from SkGraphics globals and moving them into a global SkContext (along with a global SkSharedContext).\n\nThe global SkContext and SkSharedContext will hold the previous globals as field variables, such as the SkStrikeCache, ResourceCache, and the SkTypefaceCache\n\nChange-Id: I4d9e1e4fc44df7b2fd1d17809be66ca42e4e50f4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1395176\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "ca14cab77c861e85d12c4dccf256ea4713d76460",
      "tree": "d2793f9d6d5e7e76fdce2b6dd11c6688bb397861",
      "parents": [
        "3dcd22c1ff0689094193437253efd30c46bfae6a"
      ],
      "author": {
        "name": "Cameron Chisholm",
        "email": "cam9810@gmail.com",
        "time": "Mon Oct 19 21:42:05 2026 +0100"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 10:27:35 2026 -0700"
      },
      "message": "Reland \"[graphite] Keep runtime effect locals from colliding with main\u0027s params\"\n\nThis is a reland of commit 6fe61137607ef7f90e98121ac0df1c79114a1514\n\nIt was reverted because the new Graphite variant of the runtime blender\ntests failed on\nTest-Win11-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Graphite_Native_Vulkan.\nEvery failing case reads the destination color, and the failures include\nexisting tests with no colliding locals: on that bot `d` held the\nsurface\u0027s contents from before the draw that precedes each test\n(https://ci.chromium.org/raw/build/logs.chromium.org/skia/7b6dcb383fcd8c11/+/annotations).\n\nThe reland leaves the name-mangling fix unchanged and leaves the Graphite\nrun of the whole blender suite for a separate change. The inColor and\ndestColor cases move to their own Graphite test,\nSkRuntimeEffect_BlenderLocalNames_Graphite, whose output doesn\u0027t depend\non the destination; it now covers a nested-scope shadow as well as a\nredeclaration. They no longer run on CPU or Ganesh, which name these\nparameters differently and so never collided. Without the fix the test\nfails (\"symbol \u0027inColor\u0027 was already defined\", or the wrong color for\nthe shadowed case).\n\nOriginal change\u0027s description:\n\u003e [graphite] Keep runtime effect locals from colliding with main\u0027s params\n\u003e\n\u003e Graphite substitutes `pos`, `inColor` and `destColor`\n\u003e (ShaderSnippet::kDefaultArgs) for a runtime effect\u0027s main() parameters,\n\u003e but PipelineStageCodeGenerator writes local variable names verbatim. A\n\u003e local named `pos` in main() therefore redeclares the coordinates\n\u003e (\"symbol \u0027pos\u0027 was already defined\") and the GraphicsPipeline fails to\n\u003e build. A local in a nested scope compiles but shadows the coordinates,\n\u003e so the effect silently renders the wrong pixels. Locals that share a\n\u003e name with the main() parameters now get mangled names.\n\u003e\n\u003e Adds shader and blender cases for both, and a Graphite variant of the\n\u003e runtime blender tests, which previously only ran on CPU and Ganesh.\n\u003e Without the fix the new Graphite cases crash.\n\u003e\n\u003e Change-Id: I86640f403acb81f9d76e13b87088a45a15980b4e\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1391097\n\u003e Reviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Commit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n\u003e Auto-Submit: Cameron Chisholm \u003ccam9810@gmail.com\u003e\n\u003e Commit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Reviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n\nR\u003djmbetancourt@google.com, michaelludwig@google.com\n\nCq-Include-Trybots: skia/skia.primary:Test-Win11-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Graphite_Native_Vulkan\nChange-Id: Ib35e5394521cefc748744fce74ca4359d18bb2ec\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399276\nReviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nReviewed-by: Thomas Smith \u003cthomsmit@google.com\u003e\nAuto-Submit: Cameron Chisholm \u003ccam9810@gmail.com\u003e\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n"
    },
    {
      "commit": "3dcd22c1ff0689094193437253efd30c46bfae6a",
      "tree": "32f05ec8067490ae069028dca54f674f1b6f097e",
      "parents": [
        "b81c69985fd14bb7bfbd356b7618633ce07dc1a4"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Tue Oct 20 15:53:47 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 10:13:37 2026 -0700"
      },
      "message": "[skparagraph] Make FontCollection thread-safe\n\nIn multi-threaded C++ clients and engine C APIs (such as\nImpellerTypographyContext), a single sk_sp\u003cFontCollection\u003e is shared\nacross multiple threads that concurrently construct ParagraphBuilders\nand call Paragraph::layout() on independent Paragraph instances.\n\nWhile ParagraphCache inside FontCollection is already synchronized via\nSkMutex, FaceCache and VariationCache used unsynchronized THashMap\ninstances, leading to data races during parallel typeface lookups,\nvariation cloning, and cache resets.\n\nGuard FaceCache and VariationCache with internal SkMutex members inside\ntheir pimpl structs to preserve FontCollection\u0027s ABI layout, and add a\nmulti-threaded unit test exercising concurrent layout, findTypefaces,\nand defaultFallback calls with FontArguments.\n\nAssisted-by: Gemini Pro Next\nChange-Id: I47071b0fa2a841dd57a9246d26b07a437425bee5\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400636\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "b81c69985fd14bb7bfbd356b7618633ce07dc1a4",
      "tree": "e964526261f96a754880e25a176b0cd4d66cb4a2",
      "parents": [
        "1126e0dc1bcc69967547559a89729c9c2be53f40"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 08:18:21 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 09:42:28 2026 -0700"
      },
      "message": "Roll vulkan-deps from eef798d0fd96 to f31145a4865a (3 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/eef798d0fd96..f31145a4865a\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: I8a0b864d7988823b51aa7f423b0380d9962156d8\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1401316\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "1126e0dc1bcc69967547559a89729c9c2be53f40",
      "tree": "d9d9b1164b1e758a58e79d555bc380abcdbd87b0",
      "parents": [
        "f9351592148c20856c101452e122ef13e20aff98"
      ],
      "author": {
        "name": "Yury Semikhatsky",
        "email": "yurys@chromium.org",
        "time": "Tue Oct 20 16:36:20 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 09:23:27 2026 -0700"
      },
      "message": "Expose the libwebp compression method in SkWebpEncoder::Options\n\nAdd Options::fMethod (0..6) to control how much effort libwebp spends\nsearching for a compact encoding. The default of -1 keeps the current\nbehavior (3 for lossy, 0 for lossless), so existing callers are\nunaffected.\n\nLossless output at method 0 is close to PNG size; method 1 and above\nis often several times smaller.\n\nBug: b/575911992\nChange-Id: Idceb7f51afecad8eb16144f79afd6cb86b2b3843\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400816\nReviewed-by: Christopher Cameron \u003cccameron@google.com\u003e\nCommit-Queue: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\n"
    },
    {
      "commit": "f9351592148c20856c101452e122ef13e20aff98",
      "tree": "8f93c5022579872a2cb41401388b4f347cce5ae4",
      "parents": [
        "bab2eabda0312b00019315a9e043e4bdc61a52b0"
      ],
      "author": {
        "name": "Renato Grottesi",
        "email": "otaner@google.com",
        "time": "Tue Oct 20 15:13:00 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 08:39:29 2026 -0700"
      },
      "message": "[graphite] Skip transfer fns for transparent black\n\nThe color space transform stages applied their transfer functions to\nevery color, including transparent black, which is common in the\ntransparent parts of layers (e.g. UI overlays on top of video). All of\nthese transfer functions map 0 to 0, so sk_csxform_srgb(),\nsk_csxform_pq(), sk_csxform_hlg() and sk_csxform_hlginv() now return\ntransparent black unchanged. The output is the same for every alpha\nmode, and the HLG OOTF no longer computes pow(0, negative) for these\ncolors.\n\nOn a Pixel 9 Pro Fold, skipping the sRGB transfer functions for\ntransparent colors saved 0.85 ms (15%) of GPU time per frame in\nAndroid\u0027s SurfaceFlinger, in the render pass that draws a full screen\nHDR10 video under a mostly transparent SDR overlay. That was measured\nwith an earlier version that only tested alpha; the overlay\u0027s\ntransparent pixels are transparent black, so the gain should be the\nsame. The PQ and HLG stages were not measured.\n\nBug: b/449977498\nChange-Id: I960ad8c4e5b0521df7cd80a572937b1a0285f955\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400436\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Renato Grottesi \u003cotaner@google.com\u003e\n"
    },
    {
      "commit": "bab2eabda0312b00019315a9e043e4bdc61a52b0",
      "tree": "3806b9fcac1cb1f675b188617bdbf08346b8a854",
      "parents": [
        "fef85164f8f030f886f411d81bca95b50dbddcdf"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Tue Oct 20 16:07:00 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 08:29:33 2026 -0700"
      },
      "message": "[graphite] Detect subgroup and maximal reconvergence support in ShaderCaps\n\nAdds SkSL::ShaderCaps::fSubgroupSupport, a single flag that gates all\nsubgroup builtins and intrinsics in SkSL compute shaders.\n\nAdds SkSL::ShaderCaps::fSubgroupMaximalReconvergence, which indicates\nthe subgroup reconvergence behavior of the backend. Reconvergence is\npreferred, but not required for SubgroupSupport.\n\nFor D3D12 and Metal maximal reconvergence is the default behavior. On\nVulkan, reconvergence depends on VK_KHR_shader_maximal_reconvergence.\nFor Dawn, reconvergence is inferred through the backend (e.g. on Metal\nand D3D12 reconvergence is present); on Vulkan, there is no current way\nto query reconvergence support, so we assume that there is no support.\n\nVulkan subgroup support requires the compute stage,\nBASIC|VOTE|ARITHMETIC|BALLOT|SHUFFLE operations, and an enabled\nsubgroupSizeControl feature (VK_EXT_subgroup_size_control or Vulkan\n1.3). VulkanPreferredFeatures now adds the extension and enables\nsubgroupSizeControl (computeFullSubgroups is left disabled in Skia-owned\nstructs). This adds VkPhysicalDeviceSubgroupSizeControlFeatures to the\npublic VulkanPreferredFeatures header.\n\nMetal subgroup support: Apple7+ or Mac2, excluding Intel\n(crbug.com/391680973).\n\nDawn subgroup support: wgpu::FeatureName::Subgroups; Dawn test contexts\nrequest it.\n\nBug: b/419535128\nChange-Id: Ie49e20065daa4597bd0b6b4316708197b3eb59c5\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1379456\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n"
    },
    {
      "commit": "fef85164f8f030f886f411d81bca95b50dbddcdf",
      "tree": "ed31d2f934c2c001b9edf00b1be012ded296f3fb",
      "parents": [
        "7c38048c7eda8bb70fc5237b9bc179dd09adf3cd"
      ],
      "author": {
        "name": "Alexis Cruz-Ayala",
        "email": "alexisdavidc@google.com",
        "time": "Wed Oct 21 09:25:08 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 08:14:35 2026 -0700"
      },
      "message": "[SkScalerContext] Guard unfiltered glyph bounds\n\nWhen a mask filter is set, SkScalerContext::getImage regenerates the unfiltered glyph via a second makeGlyph() call and aliases origGlyph.fImage if tmpGlyph.imageSize() \u003c\u003d origGlyph.imageSize(). Because SkGlyph::imageSize() returns 0 when isEmpty() or imageTooLarge() is true, a non-deterministic font backend that returns an oversized glyph on the second load passes the size check and aliases the small origGlyph buffer, leading to a heap buffer overflow during rasterization.\n\nCheck for empty or too-large unfiltered glyphs immediately after the second makeGlyph() call, and guard against non-overlapping bounds before copying the filtered mask.\n\nBug: b/574221485\nBug: b/574214125\nChange-Id: I6966d3b6f95de924e1a4f0e962761283640d35bc\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400236\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "7c38048c7eda8bb70fc5237b9bc179dd09adf3cd",
      "tree": "8a241995218867963e18c04cbeaa6e7de213678a",
      "parents": [
        "a90e5f4e59fc9a67b475515ff1dbb243efad392d"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 13:53:50 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Wed Oct 21 07:24:20 2026 -0700"
      },
      "message": "[skparagraph] Fix underlines in gaps mode vanishing or gapping wrongly\n\nDecorations::calculateGaps() intersects the glyphs with the underline\nband relative to the baseline it is given. TextLine::paintDecorations()\npassed -rawAscent + baselineShift, while the decoration origin is\nalready shifted by baselineShift and the text is drawn at baseline().\nWith a non-zero baselineShift or a height override the band missed the\nglyphs, so gaps landed in the wrong places or disappeared. Pass the\nbaseline buildTextBlob() draws the text at, relative to the shifted\norigin.\n\ncalculateGaps() also emitted only a moveTo when no glyph crossed the\nband, so an underline under text without descenders was not drawn at\nall. Draw it across the whole rect in that case.\n\nAlso include baselineShift in the ascent offset passed to\nDecorations::calculatePosition() for TextDecoration::kOverline so it\ncancels the baselineShift present in context.clip.top() instead of\nshifting the overline twice.\n\nReported for skia-safe: https://github.com/rust-skia/rust-skia/issues/1187\n\nAssisted-by: Gemini 4 Argon (Medium)\nChange-Id: I79774677cf5f919738404e633f5eb694d143349c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396857\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "a90e5f4e59fc9a67b475515ff1dbb243efad392d",
      "tree": "d9f50270da0c58f18bacfed55ea8bc6b2384fda8",
      "parents": [
        "f4c1630b188909b053ab47af97e4bfb806b9c26e"
      ],
      "author": {
        "name": "skia-autoroll",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Wed Oct 21 04:01:12 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 22:27:41 2026 -0700"
      },
      "message": "Roll Skia Infra from 67f915c5c49d to 70e8b73d508c (8 revisions)\n\nhttps://skia.googlesource.com/buildbot.git/+log/67f915c5c49d..70e8b73d508c\n\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-final from 70281b89224e to 327cc339f2fd\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Depot Tools from c9ab98c81990 to 3a8af1e64be0 (8 revisions)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_test_all from 64d8f2e0a0d034e18... to d256c8204dc400b42... (1 revision)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_build_all from 4d791751c887d606b... to d256c8204dc400b42... (1 revision)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll swarming from 88c551cb4de7b8c76... to f86d3644d4f6169e9... (1 revision)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll presubmit from 4d791751c887d606b... to d256c8204dc400b42... (1 revision)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll command_wrapper from 64d8f2e0a0d034e18... to d256c8204dc400b42... (1 revision)\n2026-10-20 skia-autoroll@skia-public.iam.gserviceaccount.com Roll debugger-app-final from 95599744d30a to 31c3406ba420\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/infra-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: None\nTbr: borenet@google.com\nChange-Id: I45adf591072f6f58866181410884874f4695a082\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400821\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f4c1630b188909b053ab47af97e4bfb806b9c26e",
      "tree": "f24b24bbd4a4db27cec77f638823282d08184afc",
      "parents": [
        "b667731938d8a0921e543a04bfa01a5ecb7950f6"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Oct 20 21:36:25 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 21:54:33 2026 -0700"
      },
      "message": "Roll debugger-app-base from 485a766127d9 to a9150fe5f17f\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/debugger-app-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: I04e9d280d10bea4aef80696cd1c8e70bf223692f\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400822\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "b667731938d8a0921e543a04bfa01a5ecb7950f6",
      "tree": "c75a3a64e3ac8e84f7391b8e1288c3d40dce453c",
      "parents": [
        "09b14219f98e0a73f6a33497e1aa8cd5924a7611"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Oct 20 19:04:50 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 20:15:35 2026 -0700"
      },
      "message": "Roll vulkan-deps from 639fc6c207b1 to eef798d0fd96 (11 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/639fc6c207b1..eef798d0fd96\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: Ia1670232b2883f805ef76c4cfafb11cbcaaa212c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400856\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "09b14219f98e0a73f6a33497e1aa8cd5924a7611",
      "tree": "3c701350ffdd9d27969051cdd16eeb83c78f764d",
      "parents": [
        "637dce57fdbc0d856cc0d75c32cb7e472ae1eeb4"
      ],
      "author": {
        "name": "Jorge Betancourt",
        "email": "jmbetancourt@google.com",
        "time": "Tue Oct 20 15:49:43 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 14:15:24 2026 -0700"
      },
      "message": "[skcapture] Transition Recorder and CaptureManager to SkCaptureAsset\n\nMigrate SkRecorder, Recording, Recorder, and SkCaptureManager to use SkCaptureAsset instead of raw SkPicture references.\n\n- Out-of-line SkRecorder\u0027s constructor and destructor into SkRecorder.cpp to avoid including SkCaptureAsset.h in public headers.\n- Update Graphite Recording and Recorder to track and pass SkCaptureAsset.\n- Update SkCaptureManager to snap and manage SkCaptureAsset instances, using a temporary staging shim that gets resolved in a followup CL\n\nChange-Id: I04a0df7c0a3d0d7ac52670b07d0f8e04173d37ac\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1378417\nCommit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nReviewed-by: Greg Daniel \u003cegdaniel@google.com\u003e\n"
    },
    {
      "commit": "637dce57fdbc0d856cc0d75c32cb7e472ae1eeb4",
      "tree": "695bc9d5e7e72d8fc816b74202287ebfa797353d",
      "parents": [
        "4f9cbc8fdbae21d7e8759e447210c2a9e997d4d3"
      ],
      "author": {
        "name": "Nathan Sanchez",
        "email": "nathanasanchez@google.com",
        "time": "Mon Oct 19 16:02:02 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 12:15:21 2026 -0700"
      },
      "message": "Add circles_xform GM\n\nThis tests the BlurMaskFilter on transformed circles, as well as a\nnon-respectCTM variant. This tests how anisotrophic sigmas behave with\ncircles, similar to GM_blur_matrix_rect.\n\nChange-Id: I8e9973dbf388d7164427186d649381cdece7e22f\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399136\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "4f9cbc8fdbae21d7e8759e447210c2a9e997d4d3",
      "tree": "b2b9ba67cd9650492d3023cdf07fdbc3d9c7292c",
      "parents": [
        "f2f4ac0e784f8666a5215da13125c9ed05c1c514"
      ],
      "author": {
        "name": "Florin Malita",
        "email": "fmalita@google.com",
        "time": "Tue Oct 20 11:14:43 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 08:39:16 2026 -0700"
      },
      "message": "Include SkData.h in SkPngEncoder.h\n\nSpeculative fix for the G3 roll.\n\nUltimately we want G3 to IWYU, this is a temporary workaround.\n\nChange-Id: Ide0ea212c186e90111f22518020d6502c79eddf3\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400416\nCommit-Queue: Brandon Wilson \u003cbwils@google.com\u003e\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\nAuto-Submit: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Florin Malita \u003cfmalita@google.com\u003e\n"
    },
    {
      "commit": "f2f4ac0e784f8666a5215da13125c9ed05c1c514",
      "tree": "78d077daf8617cc8ec76911cf46853e4439296e7",
      "parents": [
        "e4d7b83742f55a5dd439e606daf6f3f393d6f6ce"
      ],
      "author": {
        "name": "William Selna",
        "email": "wselna123@gmail.com",
        "time": "Sun Oct 18 12:28:47 2026 +0200"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 08:31:35 2026 -0700"
      },
      "message": "[skparagraph] Keep unresolved glyph diagnostics on ParagraphCache hits\n\nParagraphCacheValue stores the shaped runs but not fUnresolvedGlyphs and\nfUnresolvedCodepoints, so a paragraph restored from the cache reports\nzero missing glyphs even when the cold layout had reported some. The\ncount was cached when unresolvedGlyphs() was added in 3281b961c5 and\ndropped when the cache value was rewritten in c0360582d2; the codepoint\nset added in 11cc9e6c40 was never cached. Store both alongside the runs\nand restore them with the other shaping results.\n\nAdds SkParagraph_CachePreservesUnresolvedGlyphs, which lays out the same\ntext twice with fallback disabled and expects identical diagnostics.\n\nChange-Id: I82b570002662166f3f47bb647f5ab6c03d0461f7\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397896\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "e4d7b83742f55a5dd439e606daf6f3f393d6f6ce",
      "tree": "53c8a63459ed2c0a11233f13d57ce9db6aacae34",
      "parents": [
        "123ec1997d572bd819d9b5dbd76ce91e790fde5d"
      ],
      "author": {
        "name": "David Bebawy",
        "email": "dbebawy@gmail.com",
        "time": "Fri Oct 16 15:03:41 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 08:03:12 2026 -0700"
      },
      "message": "[skparagraph] Reserve room for the hyphen at soft hyphen line breaks\n\nWhen a line breaks at a soft hyphen, the rendered hyphen is added after\nthe break is chosen (TextLine::createSoftHyphen), so its width is never\nreserved and the line can overflow the paragraph width by the hyphen\u0027s\nadvance.\n\nTextWrapper::lookAhead now checks whether a soft hyphen break still\nfits once the hyphen string is added, measured in the soft hyphen\u0027s\nfont. If the line has to end at a soft hyphen break that doesn\u0027t fit,\nit ends at the last break opportunity on the line that does instead:\na space or an earlier soft hyphen. As in browsers, the hyphen still\noverflows when the soft hyphen is the line\u0027s first break opportunity.\nLines that may get an ellipsis reserve no room, since they draw no\nhyphen.\n\nThis matches Chrome with hyphens: manual. For example, \"xy abcd\\u00ADefgh\"\nat width(\"xy abcd\") plus half a hyphen now breaks as \"xy\" / \"abcd-\" /\n\"efgh\" instead of \"xy abcd-\" / \"efgh\".\n\nR\u003dalexisdavidc@google.com, jlavrova@google.com\n\nBug: https://github.com/flutter/flutter/issues/194582\nChange-Id: Id04da01f33a15db0ee2181373d7656bcabded39f\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397276\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "123ec1997d572bd819d9b5dbd76ce91e790fde5d",
      "tree": "66873a78587fd082706cf17963c97591c45aa9ab",
      "parents": [
        "fae1d2bdc4f2ec8ec92fbe418468f115ad13d5a2"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Tue Oct 20 09:06:08 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 07:46:00 2026 -0700"
      },
      "message": "Reland \"Templatize SkExecutor\"\n\nThis reverts commit 21b94830033816285d4b2e74ec20060c97c6d345.\n\nReason for revert: Fix MSVC build\n\nOriginal change\u0027s description:\n\u003e Revert \"Templatize SkExecutor\"\n\u003e\n\u003e This reverts commit dc4b148cdf9873029a5c91af838659bc48d092d3.\n\u003e\n\u003e Reason for revert: MSVC\n\u003e\n\u003e Failure Link: \u003cLINK TO FAILURE\u003e\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e Templatize SkExecutor\n\u003e \u003e\n\u003e \u003e In order to accommodate alternate threading models, Skia needs the SkExecutor to support different calling models. To this end, we maintain the preexisting std::function based model but now allow a callback style model too.\n\u003e \u003e\n\u003e \u003e This CL:\n\u003e \u003e   splits SkExecutor into StdFunction and Callback variants\n\u003e \u003e      but leaves an SkExecutor class to avoid breaking clients\n\u003e \u003e   splits SkExecutors into StdFunction and Callback variants\n\u003e \u003e   leaves SkTaskGroup specialized to StdFunctionExecutors\n\u003e \u003e   updates all the internal usage sites\n\u003e \u003e\n\u003e \u003e Bug: 559158308\n\u003e \u003e Change-Id: I427eab84674dd4b22c3ecb4e7a9ec4807adb2b55\n\u003e \u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1367836\n\u003e \u003e Reviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e \u003e Commit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n\u003e\n\u003e Bug: 559158308\n\u003e No-Presubmit: true\n\u003e No-Tree-Checks: true\n\u003e No-Try: true\n\u003e Change-Id: I4244c9ce0b8d193a5ff9037b6adbdbeb4cdf66df\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1399096\n\u003e Commit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n\u003e Reviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\nBug: 559158308\nChange-Id: I36a62557231b829a1061dbf7d7a70b7c69e403e2\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400096\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n"
    },
    {
      "commit": "fae1d2bdc4f2ec8ec92fbe418468f115ad13d5a2",
      "tree": "8b528c7c34f68b20267d6699f0c1edbfc97b94e5",
      "parents": [
        "403bc2b346cc3585e8ba674af51258e9c77eae9f"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Mon Oct 19 15:18:43 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 07:27:06 2026 -0700"
      },
      "message": "[graphite] Add GPU_TEST_UTILS debug capture hook to StripGenerator\n\nBug: b/466122293\nBug: b/466119734\nBug: b/385170952\nChange-Id: I4bc1bd66d80633eee215acb439a964c7bfa30b7c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397737\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n"
    },
    {
      "commit": "403bc2b346cc3585e8ba674af51258e9c77eae9f",
      "tree": "7978ac9505fc3e66a667b80030630fe446355e88",
      "parents": [
        "66ea49c459f392c6639f026f78e92278c39b3c0c"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Mon Oct 19 14:44:44 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 07:19:15 2026 -0700"
      },
      "message": "[viewer] Improve touch gesture zoom/pan transitions and ImGui invalidation\n\nFixes several ways the viewer could lose a pan or snap the view back,\nmostly seen on macOS when clicking in slides that use clicks (e.g. to\nselect whatever is under the cursor).\n\nFling (inertia) is kept, but only starts for a real drag:\n- Touch timestamps are doubles. SkTime::GetSecs() counts from boot on\n  macOS, so as a float it has a ULP of 0.125s after ~2 weeks of\n  uptime; the release duration was 0 or 0.125s and flings were\n  essentially random.\n- Velocity is exponentially smoothed rather than taken from the last\n  two moves, so events handled back-to-back (e.g. queued behind a slow\n  frame) can\u0027t produce huge spikes.\n- A release only flings if it ends a single-touch pan (not the last\n  finger of a pinch), moved at least 8px, was still moving within 50ms\n  of release, and is faster than 100px/s.\n- onIdle() redraws while a fling is active. Before, a fling on a\n  non-animating slide wasn\u0027t drawn; later mouse moves evaluated it via\n  mapEvent() and baked it into the matrix, so the view jumped on the\n  next click.\n- Starting a zoom flushes the in-progress pan and stops any fling,\n  instead of discarding the pending translation.\n\nOther changes:\n- Wheel events are ignored during a drag. macOS trackpad momentum\n  scrolling could arrive mid-drag, discard the drag\u0027s translation\n  (snapping the view back) and end the drag.\n- Replaced double-tap to reset the view with an \u0027R\u0027 command, which\n  also resets the Up/Down zoom level. Double-tap fired on any two\n  clicks within 300ms and 100px (e.g. selecting nearby things in a\n  slide). TouchGesture::reset() now also stops any active fling, so a\n  reset mid-fling sticks.\n- Removed the translation limit applied on release. It used the\n  slide\u0027s reported bounds, so it snapped the view back when panning to\n  content drawn outside them. Use \u0027R\u0027 to get back to the default view.\n- ImGuiLayer invalidates when it wants the mouse, and onIdle() redraws\n  while it does. io.WantCaptureMouse only updates on a new frame, so it\n  could get stuck true (e.g. after closing the Tools window with the\n  cursor over it) and swallow all mouse input.\n\nChange-Id: Ib27691aa27c470f16487925746e652d3ad3cd9e3\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397736\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\n"
    },
    {
      "commit": "66ea49c459f392c6639f026f78e92278c39b3c0c",
      "tree": "c1e6a4dbde515825c8c67afce6799c40ced92f32",
      "parents": [
        "41205dab0709e92ac90bd3fb2e134e4ac01fc9a0"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Oct 20 05:45:28 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 07:09:06 2026 -0700"
      },
      "message": "Manual roll Dawn from 4185d90b28e2 to f7b0358d0220 (6 revisions)\n\nManual roll requested by robertphillips@google.com\n\nhttps://dawn.googlesource.com/dawn.git/+log/4185d90b28e2..f7b0358d0220\n\n2026-10-20 hocheung@chromium.org Refactor IOSurface creation helpers\n2026-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from f290b75a45a2 to 3bf4faecf9a5 (8 revisions)\n2026-10-20 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from b82a564646a2 to 7abdbaea4606 (13 revisions)\n2026-10-20 cwallez@chromium.org [dawn][vk] Handle noop draw for AddWorkToEmptyPass workaround.\n2026-10-20 cwallez@chromium.org [dawn][vk] Add support for VK_KHR_maintenance9\n2026-10-20 jiawei.shao@intel.com Add `.claude/*` to .gitignore\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC cwallez@google.com,robertphillips@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nTbr: cwallez@google.com,robertphillips@google.com\nChange-Id: I64a1390a6e76df54dbbb32609cbd06c5174737da\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400136\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "41205dab0709e92ac90bd3fb2e134e4ac01fc9a0",
      "tree": "03c2ca95743172c96d2548610106de4cba2e522e",
      "parents": [
        "87cb1426259ac2a57f1bf3060a42f3c76e3ddf83"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Oct 20 05:43:50 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 07:02:05 2026 -0700"
      },
      "message": "Roll vulkan-deps from 3bf4faecf9a5 to 639fc6c207b1 (1 revision)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/3bf4faecf9a5..639fc6c207b1\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: Ieb643427b2bbef1475d2624de40537be593ec2aa\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1400116\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "87cb1426259ac2a57f1bf3060a42f3c76e3ddf83",
      "tree": "5729c61a9f8dce8a9f6192f227d2f97131db7ddd",
      "parents": [
        "97f9f021bb442285d9d02c3c0544016b500c6804"
      ],
      "author": {
        "name": "Jeffrey Yu",
        "email": "yuje@google.com",
        "time": "Mon Oct 19 17:39:24 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Tue Oct 20 06:40:36 2026 -0700"
      },
      "message": "Respect the length parameter in SkParse::FindNamedColor.\n- Construct a `std::string_view` from `(name, len)` in `SkParse::FindNamedColor` so binary search and equality comparison evaluate only the specified substring length rather than reading up to the null terminator with `strcmp`.\n- Update `ParseNamedColor` unit tests to pass un-truncated color name buffers with partial lengths to verify that `len` is respected for both valid and invalid prefix substrings.\n\nChange-Id: I4669c136e8ec1cac2a83622fa89b8e375f016e69\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398316\nAuto-Submit: Jeffrey Yu \u003cyuje@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "97f9f021bb442285d9d02c3c0544016b500c6804",
      "tree": "b61b19bf20a26e3a6dd24aae696d3215167229da",
      "parents": [
        "6fc82d7622226a38b3a188b5e1f79fa5ebf92d7d"
      ],
      "author": {
        "name": "skia-autoroll",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Tue Oct 20 04:01:29 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 22:26:32 2026 -0700"
      },
      "message": "Roll Skia Infra from 3453607cf0ba to 67f915c5c49d (10 revisions)\n\nhttps://skia.googlesource.com/buildbot.git/+log/3453607cf0ba..67f915c5c49d\n\n2026-10-19 smolkaj@google.com [gold] Share main baseline for untriaged CLs.\n2026-10-19 smolkaj@google.com [gold] Prevent partial DB responses from poisoning the baseline cache.\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll debugger-app-final from 4f39d4e51fc9 to 95599744d30a\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_test_all from 968b70d24fc61ea8f... to 64d8f2e0a0d034e18... (1 revision)\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-final from 8f33e65a8ae4 to 70281b89224e\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Depot Tools from 382c208a9973 to c9ab98c81990 (5 revisions)\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_build_all from 968b70d24fc61ea8f... to 4d791751c887d606b... (1 revision)\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll vpython3 from 15be0dc3ca826e846... to 4e1cdd5ad39a47b6b... (1 revision)\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll command_wrapper from 968b70d24fc61ea8f... to 64d8f2e0a0d034e18... (1 revision)\n2026-10-19 skia-autoroll@skia-public.iam.gserviceaccount.com Roll presubmit from 968b70d24fc61ea8f... to 4d791751c887d606b... (1 revision)\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/infra-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: chromium:568399534,chromium:573720392,chromium:574560102\nTbr: borenet@google.com\nChange-Id: I5f1d8a41651e130214a3537e3bb1fc686bc171c3\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399097\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6fc82d7622226a38b3a188b5e1f79fa5ebf92d7d",
      "tree": "168125d0cd3a655fce3f139513b91cc80de70c69",
      "parents": [
        "f1657948abfc3d147e50a8b4740d224a22639389"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 21:01:31 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 22:20:21 2026 -0700"
      },
      "message": "Roll ANGLE from b82a564646a2 to f71b297c59c8 (12 revisions)\n\nhttps://chromium.googlesource.com/angle/angle.git/+log/b82a564646a2..f71b297c59c8\n\n2026-10-20 syoussefi@chromium.org Metal: Remove injectAsmStatementIntoLoopBodies\n2026-10-19 yuxinhu@google.com IR: Validate Instruction operand and result data types\n2026-10-19 hyshih@google.com Vulkan: Split cross-format layered image copies on Adreno 702\n2026-10-19 syoussefi@chromium.org Vulkan: Hook up VK_EXT_extended_dynamic_state3\n2026-10-19 vinayakareddy@google.com Tests: Add zombie_tsunami, the_battle_cats \u0026 zynga_poker trace\n2026-10-19 m.maiya@samsung.com Vulkan: Handle a couple of VVL errors\n2026-10-19 abdolrashidi@google.com Vulkan: Include noncoherent atom size alignment\n2026-10-19 arthursonzogni@chromium.org Fix glGetShaderPrecisionFormat error for GL_COMPUTE_SHADER\n2026-10-19 m.maiya@samsung.com Vulkan: Enable dynamic rendering on newer Nvidia drivers\n2026-10-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 00a7dde0a6b4 to 601d5e9c59eb (17 revisions)\n2026-10-19 arthursonzogni@chromium.org Reland \"Enable dangling pointer detector in ANGLE test runner\"\n2026-10-19 angle-autoroll@skia-public.iam.gserviceaccount.com Roll Chromium from fc6bec1defd3 to c300679f2883 (742 revisions)\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/angle-skia-autoroll\nPlease CC bwils@google.com,jmadill@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win11-Clang-Dell3930-GPU-GTX1660-x86_64-Debug-All-ANGLE\nTbr: bwils@google.com\nTest: Test: angle_end2end_tests --gtest_filter\u003dCopyImageTestES31.CrossFormat*\nTest: Test: angle_trace_tests --gtest_filter\u003d*zombie_tsunami*:*the_battle_cats*:*zynga_poker_texas_holdem*\nTest: Test: dEQP-GLES31.functional.copy_image.* on Adreno 702\nChange-Id: I737d205fb79274516cfd311ad74b3c441677daca\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399596\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "f1657948abfc3d147e50a8b4740d224a22639389",
      "tree": "24262adc0e515dd9a7a0b1d570a7e575b2788d35",
      "parents": [
        "6783c1c380ccf5995b11d4c3fe0fc7ab0738d84c"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 21:01:11 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 22:19:40 2026 -0700"
      },
      "message": "Roll Dawn from b8efbbd7c5b9 to 4185d90b28e2 (9 revisions)\n\nhttps://dawn.googlesource.com/dawn.git/+log/b8efbbd7c5b9..4185d90b28e2\n\n2026-10-20 lokokung@google.com [version] Audit and add initial dawn_version.json.\n2026-10-20 jrprice@google.com [gen] Rename `runes` to `str`\n2026-10-20 shrekshao@google.com [opengl] Check for unchecked GL errors before data is app-visible\n2026-10-20 jrprice@google.com [tint] Add missing commas to .def files\n2026-10-19 lokokung@google.com [native] Update Device::HandleError to just take the error directly.\n2026-10-19 lokokung@google.com [dawn] Remove ErrorAdapter and return concrete error types from macros\n2026-10-19 lokokung@google.com [dawn] Support implicit error conversion in Result\u003cT, E\u003e\n2026-10-19 alanbaker@google.com [ir] Fix broken robustness tests\n2026-10-19 jrprice@google.com [gen] Port intrinsic definition lexer to Python\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC cwallez@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nTbr: cwallez@google.com\nChange-Id: Id0af19f01fa26a87f7072027c8af8606f1e6e7c3\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399576\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "6783c1c380ccf5995b11d4c3fe0fc7ab0738d84c",
      "tree": "2d067b101e48f10ba54e0d3672652ddfbf94d149",
      "parents": [
        "96669c16535d7c411784e74aa8d96a292fb28848"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 21:41:10 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 21:58:02 2026 -0700"
      },
      "message": "Roll debugger-app-base from 21501cfbf475 to 485a766127d9\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/debugger-app-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: Icba112bdca417b8e79cbdca44d0e678332fba9de\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399557\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "96669c16535d7c411784e74aa8d96a292fb28848",
      "tree": "febaa6a30e308b9435f92ef1f6e568c4c2c7c293",
      "parents": [
        "87002299235987ace504133d8ed6570f3cb87bc2"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 14:58:56 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 16:47:33 2026 -0700"
      },
      "message": "Roll vulkan-deps from 601d5e9c59eb to 3bf4faecf9a5 (7 revisions)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/601d5e9c59eb..3bf4faecf9a5\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: Icc39324628c05be7fdd1db33917e457dfd6ace95\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399376\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "87002299235987ace504133d8ed6570f3cb87bc2",
      "tree": "1c903c50216f4498c0d4752873556775a93add6c",
      "parents": [
        "6ecd55c7e717025d8f37cce64a8f17d92b5431d6"
      ],
      "author": {
        "name": "alexis cruz-ayala",
        "email": "alexisdavidc@google.com",
        "time": "Mon Oct 19 18:31:46 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 15:55:45 2026 -0700"
      },
      "message": "[skif] Update SkImageFilter_Base uniqueID to 64-bit\n\nSkImageFilter_Base previously assigned each filter a 32-bit uniqueID\nfrom an atomic counter that could wrap after 2^32 constructions and\ncause cache collisions in SkImageFilterCache.\n\nUpdate SkImageFilter_Base::fUniqueID and SkImageFilterCacheKey::fUniqueID to uint64_t, with an explicit zero-initialized padding field in SkImageFilterCacheKey to maintain tight packing for hashing.\n\nBug: b/568936530\nChange-Id: If1b172c41e582bccb3c2323e54bbce43e0fd2671\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398516\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nAuto-Submit: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "6ecd55c7e717025d8f37cce64a8f17d92b5431d6",
      "tree": "092ac926bb1818bb72d8320c4f10abac0273e9a0",
      "parents": [
        "2ef40640e8fd9d0bdd55c45b93c08cf145cb5337"
      ],
      "author": {
        "name": "Christopher Cameron",
        "email": "ccameron@google.com",
        "time": "Mon Oct 19 22:20:34 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 15:47:10 2026 -0700"
      },
      "message": "Add skhdr::Metadata option to ICC-supporting image encoders\n\nThe function SkWriteICCProfile takes an SkColorSpace and an\nskhdr::Metadata.\n\nAdd a const skhdr::Metadata* fHdrMetadata to all of the codecs that\nmight write ICC profiles (SkJpegEncoder, SkPngEncoder, SkPngRustEncoder,\nand SkWebpEncoder).\n\nChange-Id: I15d789f620a9b379f26d929d80e2c13a3a1c2d0c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399256\nCommit-Queue: Christopher Cameron \u003cccameron@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\n"
    },
    {
      "commit": "2ef40640e8fd9d0bdd55c45b93c08cf145cb5337",
      "tree": "6c47acb99fded555639bc4586bbc12af34ca17d9",
      "parents": [
        "76ad163ceeb6ccd2b6345219424d116e464644f1"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 11:08:47 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 15:31:42 2026 -0700"
      },
      "message": "Manual roll Dawn from 6de9ac520d77 to b8efbbd7c5b9 (11 revisions)\n\nManual roll requested by robertphillips@google.com\n\nhttps://dawn.googlesource.com/dawn.git/+log/6de9ac520d77..b8efbbd7c5b9\n\n2026-10-19 dsinclair@chromium.org [dawn][metal] Split the tracker objects out of CommandBuffer.\n2026-10-19 dsinclair@chromium.org [dawn][metal] Split helpers from `RecordCommands`\n2026-10-19 dsinclair@chromium.org [dawn] Make compute and render pass helper name consistent.\n2026-10-19 dsinclair@chromium.org [dawn] Make the command processing function consistent.\n2026-10-19 dsinclair@chromium.org [tint] Reserve space for the texture queries result.\n2026-10-19 dsinclair@chromium.org Fix clang-tidy push_back warning in test files.\n2026-10-19 cwallez@chromium.org Roll V8 from e433e19589ba to 716acb557842 (138 revisions)\n2026-10-19 kainino@chromium.org [cmake] Fix some path issues in HermeticXcode\n2026-10-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from 00a7dde0a6b4 to f290b75a45a2 (16 revisions)\n2026-10-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 61e9771fc34b to 194bb75bea2b (2 revisions)\n2026-10-19 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from 33f8caff4b77 to b82a564646a2 (17 revisions)\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC cwallez@google.com,robertphillips@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nTbr: cwallez@google.com,robertphillips@google.com\nChange-Id: I028fb259272fe357d2cd0302cda6011ad346a3b2\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398876\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "76ad163ceeb6ccd2b6345219424d116e464644f1",
      "tree": "44c1ae4cbafe9089bf818b84b09444ebc5a0a2f1",
      "parents": [
        "e0d79efbf171fdd78063f7673d517491154c9a7a"
      ],
      "author": {
        "name": "alexis cruz-ayala",
        "email": "alexisdavidc@google.com",
        "time": "Mon Oct 19 12:16:49 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 15:11:48 2026 -0700"
      },
      "message": "Revert \"Reland \"[SkRecorder] Move cpu/Recorder.h to src/cpu/Recorder.h\"\"\n\nThis reverts commit 3113f0a24aef684d7adbd5246281b5da2112692e.\n\nReason for revert: Broke flutter roller because they are still referencing SkCPURecorder\n\nFailure Link: https://logs.chromium.org/logs/flutter/buildbucket/cr-buildbucket/8667520259327171601/+/u/build_ci_host_debug_test_flutter:unittests_flutter_build_dart:dart_sdk_flutter_shell_testing_flutter_tools_path_ops/stdout\n\nOriginal change\u0027s description:\n\u003e Reland \"[SkRecorder] Move cpu/Recorder.h to src/cpu/Recorder.h\"\n\u003e\n\u003e This is a reland of commit b59dbca03b03a967a6cceeec979cb09ae0e59189\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e [SkRecorder] Move cpu/Recorder.h to src/cpu/Recorder.h\n\u003e \u003e\n\u003e \u003e Also remove unused include/core/SkCPURecorder.h and makeCPURecorder()\n\u003e \u003e from GrRecordingContext and skgpu::graphite::Context.\n\u003e \u003e\n\u003e \u003e Change-Id: I0d9940fef97b924a6df0b1b4c4770560482b8595\n\u003e \u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1383416\n\u003e \u003e Reviewed-by: Greg Daniel \u003cegdaniel@google.com\u003e\n\u003e \u003e Commit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n\u003e\n\u003e Change-Id: I71c47a7be32ab08f2788b13ab89cb92f285acd44\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1388477\n\u003e Commit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n\u003e Reviewed-by: Greg Daniel \u003cegdaniel@google.com\u003e\n\nChange-Id: If863a86f835cc51a74bd8c6a9a2d55b05b9d7701\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398736\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "e0d79efbf171fdd78063f7673d517491154c9a7a",
      "tree": "2ebaca17b11687e287ef14d567d1af856c7b2e27",
      "parents": [
        "283d51b0a705c6959e8707f2f5e04f7d0e6b7c81"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 14:27:27 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 14:27:05 2026 -0700"
      },
      "message": "[skparagraph] Compare all shaping inputs when merging styles and caching\n\nTwo places decide whether text styles are interchangeable for shaping,\nand both missed inputs the shaper reads. OneLineShaper merges adjacent\nstyles that match by TextStyle::matchOneAttribute(kFont) into one\nshaping call with the first style\u0027s font; that check ignored edging,\nhinting, subpixel and compared the raw height, so a neighbor differing\nonly in one of them was shaped with the wrong font or height.\n\nParagraphCache reuses shaped runs when paragraphs compare equal, but its\nkey ignored TextStyle and StrutStyle halfLeading, edging, hinting and\nsubpixel, ParagraphStyle fakeMissingFontStyles and\nletterSpacingByCSSSpec, and the text style a placeholder takes its font\nfrom. TextStyle\u0027s equalsByFonts() compared the raw height while the hash\nand the shaper use the effective one. On a hit the cache also did not\nrestore the resolved fonts.\n\nShare one predicate over the shaper\u0027s font inputs between kFont and\nequalsByFonts(), hash text and placeholder styles through one helper,\ncompare the paragraph style flags, and store the resolved fonts with\nthe shaped runs.\n\nFixes https://github.com/flutter/flutter/issues/194296\nFixes https://github.com/flutter/flutter/issues/163687\nUpstreams the fix already shipped in JetBrains\u0027 fork for\nhttps://youtrack.jetbrains.com/issue/CMP-5638 (ignored edging, hinting, subpixel)\n\nAssisted-by: Claude Opus 5.5 (High)\nAssisted-by: Gemini 4 Argon (Medium)\nChange-Id: Ic49fd85cbfb40f212dcde8d654bbf575153d29f5\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396957\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "283d51b0a705c6959e8707f2f5e04f7d0e6b7c81",
      "tree": "97101430e1be387d214ca89980743a7547107b24",
      "parents": [
        "da7dd4cf479cb2899c2c01b20f950e0c01d221e6"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 20:55:28 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 13:54:21 2026 -0700"
      },
      "message": "[canvaskit] Add standalone skbidi WASM target\n\nAdd a lightweight standalone WASM target and C API for SkUnicode BiDi\nwithout embind or full CanvasKit dependencies, enabling consumers like\nWebParagraph to perform BiDi analysis and visual run reordering with\nminimal binary size.\n\nAssisted-by: Gemini 4 Argon (High)\nChange-Id: I2d726722a04b20c44db01453c98d0f8c023e1ed0\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397396\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "da7dd4cf479cb2899c2c01b20f950e0c01d221e6",
      "tree": "7a2b5f510828396a1693492c236d4271efe89c78",
      "parents": [
        "7bce8e0b5b91bdc934e1e194098bde998e8c599d"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Sun Oct 18 00:21:52 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 13:27:46 2026 -0700"
      },
      "message": "Reland \"Reland \"[sksl] Emit SPIR-V 1.3\"\"\n\nThis reverts commit fc85057dba8aff82154d8f42a9a0d2f65114f7ea.\n\nOriginal change\u0027s description:\n\u003e Revert \"Reland \"[sksl] Emit SPIR-V 1.3\"\"\n\u003e\n\u003e This reverts commit 059143aec54e9234134f83c04b16f52673063bcc.\n\u003e\n\u003e Reason for revert: Shader compilation failure\n\u003e\n\u003e Failure Link: https://ci.chromium.org/raw/build/logs.chromium.org/skia/7b308fb0f32e6b11/+/annotations\n\u003e\n\u003e Original change\u0027s description:\n\u003e \u003e Reland \"[sksl] Emit SPIR-V 1.3\"\n\u003e \u003e\n\u003e \u003e This reverts commit 5196c6736414e6cb2b7bbc09fe977ae9c0239658.\n\u003e \u003e\n\u003e \u003e Original change\u0027s description:\n\u003e \u003e \u003e Revert \"[sksl] Emit SPIR-V 1.3\"\n\u003e \u003e \u003e\n\u003e \u003e \u003e This reverts commit 655fcc60a0f24d5bc4afb3c781d187f27703e077.\n\u003e \u003e \u003e\n\u003e \u003e \u003e Reason for revert: Fails to compile SPIR-V on some devices.\n\u003e \u003e \u003e\n\u003e \u003e \u003e Failure Link: https://task-scheduler.skia.org/task/8B6DQ2596VIBIASvXiBb\n\u003e \u003e \u003e\n\u003e \u003e \u003e Original change\u0027s description:\n\u003e \u003e \u003e \u003e [sksl] Emit SPIR-V 1.3\n\u003e \u003e \u003e \u003e\n\u003e \u003e \u003e \u003e Bump the SPIR-V version emitted by SkSL from 1.0 to 1.3. SPIR-V 1.3 is\n\u003e \u003e \u003e \u003e the newest version Vulkan 1.1 (Skia\u0027s minimum) is required to accept,\n\u003e \u003e \u003e \u003e and the first version with GroupNonUniform (subgroup) operations.\n\u003e \u003e \u003e \u003e\n\u003e \u003e \u003e \u003e The SPIRV-Tools target environment used for validation (SkSL validator,\n\u003e \u003e \u003e \u003e skslc golden disassembly, and viewer) moves from SPV_ENV_VULKAN_1_0 to\n\u003e \u003e \u003e \u003e SPV_ENV_VULKAN_1_1 accordingly.\n\u003e \u003e \u003e \u003e\n\u003e \u003e \u003e \u003e Storage buffers still use Uniform + BufferBlock, which is deprecated but\n\u003e \u003e \u003e \u003e valid through SPIR-V 1.3. No change in generated golden output.\n\u003e \u003e \u003e \u003e\n\u003e \u003e \u003e \u003e Clients must create their VkInstance with apiVersion \u003e\u003d 1.1 and set\n\u003e \u003e \u003e \u003e\n\u003e \u003e \u003e \u003e VulkanBackendContext::fMaxAPIVersion to match; see the release note.\n\u003e \u003e \u003e \u003e Change-Id: Ifa6d0853e8035f58142d1ba0afe573cd1c9b9823\n\u003e \u003e \u003e \u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1378479\n\u003e \u003e \u003e \u003e Reviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n\u003e \u003e \u003e \u003e Commit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n\u003e \u003e \u003e \u003e Reviewed-by: Greg Daniel \u003cegdaniel@google.com\u003e\n\u003e \u003e \u003e\n\u003e \u003e \u003e No-Presubmit: true\n\u003e \u003e \u003e No-Tree-Checks: true\n\u003e \u003e \u003e No-Try: true\n\u003e \u003e \u003e Change-Id: If749eaeec00c08416451148304685f58d6fc317b\n\u003e \u003e \u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1383576\n\u003e \u003e \u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e \u003e \u003e Commit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n\u003e \u003e\n\u003e \u003e Change-Id: I689e59435c289e7384c505ccb4a94cc468cb67ec\n\u003e \u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1385596\n\u003e \u003e Commit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n\u003e \u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e\n\u003e No-Presubmit: true\n\u003e No-Tree-Checks: true\n\u003e No-Try: true\n\u003e Change-Id: I8661ae8ac84b008e9fa79ea11ceab373684402e3\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1386858\n\u003e Bot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n\u003e Commit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n\nChange-Id: I755afac3326366c5ee7d61448352cdbba945f02a\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1391270\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\nCommit-Queue: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "7bce8e0b5b91bdc934e1e194098bde998e8c599d",
      "tree": "12a078fe8f28126a494cf1bf51f28047dc2fbfd9",
      "parents": [
        "8cb670e4cfa6f964b62d8e1b6f0fa4b770d76184"
      ],
      "author": {
        "name": "Sergio Gonzalez Martin",
        "email": "sergiog@microsoft.com",
        "time": "Mon Oct 12 17:18:49 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 13:26:39 2026 -0700"
      },
      "message": "[rust jpeg] Add converted scanline decoding\n\nExpose stateful converted scanline read/skip sessions from zune-jpeg;\nintegrate SkCodec scanline lifecycle; route baseline and\nextended-sequential getPixels through bounded scanline batches while\nprogressive/DNL keep packed fallback; preserve replay, truncation,\npadding, and color-transform behavior; stacked on the raw YUVA change.\n\nBug: 493315750\nChange-Id: Ib068e1e4cef873aaea65e440667a9bdce95de9ba\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1392056\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Łukasz Anforowicz \u003clukasza@google.com\u003e\nCommit-Queue: Sergio Gonzalez Martin \u003csergiog@microsoft.com\u003e\n"
    },
    {
      "commit": "8cb670e4cfa6f964b62d8e1b6f0fa4b770d76184",
      "tree": "bd36f76d577b8c4482fb52b73be7f6fe3fb337cc",
      "parents": [
        "21b94830033816285d4b2e74ec20060c97c6d345"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Mon Oct 19 11:19:53 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 12:42:15 2026 -0700"
      },
      "message": "Revert \"[graphite] Keep runtime effect locals from colliding with main\u0027s params\"\n\nThis reverts commit 6fe61137607ef7f90e98121ac0df1c79114a1514.\n\nBreaking Test-Win11-Clang-NUC6i5SYK-GPU-IntelIris540-x86_64-Release-All-Graphite_Native_Vulkan\n\nFailure Link: https://ci.chromium.org/raw/build/logs.chromium.org/skia/7b6dcb383fcd8c11/+/annotations\n\nOriginal change\u0027s description:\n\u003e [graphite] Keep runtime effect locals from colliding with main\u0027s params\n\u003e\n\u003e Graphite substitutes `pos`, `inColor` and `destColor`\n\u003e (ShaderSnippet::kDefaultArgs) for a runtime effect\u0027s main() parameters,\n\u003e but PipelineStageCodeGenerator writes local variable names verbatim. A\n\u003e local named `pos` in main() therefore redeclares the coordinates\n\u003e (\"symbol \u0027pos\u0027 was already defined\") and the GraphicsPipeline fails to\n\u003e build. A local in a nested scope compiles but shadows the coordinates,\n\u003e so the effect silently renders the wrong pixels. Locals that share a\n\u003e name with the main() parameters now get mangled names.\n\u003e\n\u003e Adds shader and blender cases for both, and a Graphite variant of the\n\u003e runtime blender tests, which previously only ran on CPU and Ganesh.\n\u003e Without the fix the new Graphite cases crash.\n\u003e\n\u003e Change-Id: I86640f403acb81f9d76e13b87088a45a15980b4e\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1391097\n\u003e Reviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Commit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n\u003e Auto-Submit: Cameron Chisholm \u003ccam9810@gmail.com\u003e\n\u003e Commit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Reviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: Ib2e300e12ff2b63469d2707c9cf256e046a028f4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398956\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\nCommit-Queue: Thomas Smith \u003cthomsmit@google.com\u003e\n"
    },
    {
      "commit": "21b94830033816285d4b2e74ec20060c97c6d345",
      "tree": "1deefca6c91e20b63e9f5ed4f5d14bb88a60d9fa",
      "parents": [
        "9e7d156285ad5052a5fb1d250578a6b8907f6c67"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Mon Oct 19 12:27:56 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 12:29:32 2026 -0700"
      },
      "message": "Revert \"Templatize SkExecutor\"\n\nThis reverts commit dc4b148cdf9873029a5c91af838659bc48d092d3.\n\nReason for revert: MSVC\n\nFailure Link: \u003cLINK TO FAILURE\u003e\n\nOriginal change\u0027s description:\n\u003e Templatize SkExecutor\n\u003e\n\u003e In order to accommodate alternate threading models, Skia needs the SkExecutor to support different calling models. To this end, we maintain the preexisting std::function based model but now allow a callback style model too.\n\u003e\n\u003e This CL:\n\u003e   splits SkExecutor into StdFunction and Callback variants\n\u003e      but leaves an SkExecutor class to avoid breaking clients\n\u003e   splits SkExecutors into StdFunction and Callback variants\n\u003e   leaves SkTaskGroup specialized to StdFunctionExecutors\n\u003e   updates all the internal usage sites\n\u003e\n\u003e Bug: 559158308\n\u003e Change-Id: I427eab84674dd4b22c3ecb4e7a9ec4807adb2b55\n\u003e Reviewed-on: https://skia-review.googlesource.com/c/skia/+/1367836\n\u003e Reviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n\u003e Commit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n\nBug: 559158308\nNo-Presubmit: true\nNo-Tree-Checks: true\nNo-Try: true\nChange-Id: I4244c9ce0b8d193a5ff9037b6adbdbeb4cdf66df\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1399096\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nBot-Commit: rubber-stamper@appspot.gserviceaccount.com \u003crubber-stamper@appspot.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9e7d156285ad5052a5fb1d250578a6b8907f6c67",
      "tree": "1ba0be469c2791ed3f51bb9661a552ba605c2dcb",
      "parents": [
        "dc284ec57eb9324f2cce0a2b0b68046c39d41d31"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 14:59:41 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 12:02:00 2026 -0700"
      },
      "message": "[skparagraph] Deprecate dead ParagraphStyle height\n\nParagraphStyle::setHeight() stores a value that layout never reads;\nline height comes from TextStyle and StrutStyle. ParagraphCache still\nkeyed on it, so paragraphs that differed only in this ignored value were\nshaped twice.\n\nDrop the dead value from the cache key, remove Skia\u0027s own calls, and\nmark the accessors deprecated. The field stays until Skiko, CanvasKit\nand other clients stop calling it.\n\nAssisted-by: Claude Opus 5.5 (High)\nChange-Id: I9b81192cff92b6612e9bef6df5a15cb2d670e4c2\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396959\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "dc284ec57eb9324f2cce0a2b0b68046c39d41d31",
      "tree": "bfe9babe6bb3a0399dc3db02a40c26f9c5574647",
      "parents": [
        "d4152af4abde2dab87d2bd86dc658ffb79121dcd"
      ],
      "author": {
        "name": "Thomas Smith",
        "email": "thomsmit@google.com",
        "time": "Sun Oct 18 00:21:52 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 11:23:13 2026 -0700"
      },
      "message": "[infra] Update GTX1660 bots to NVIDIA driver 32.0.16.1742 and Windows 11 26H2\n\nThe Dell3930 GTX1660 machines were updated to a newer NVIDIA driver and\nWindows 11 26H2:\n  gpu: 10de:2184-31.0.15.4601 -\u003e 10de:2184-32.0.16.1742\n  os:  Windows-11-26100       -\u003e Windows-11-26300\n\nThe old driver intermittently failed vkCreateGraphicsPipelines when\nGraphite compiled SPIR-V 1.3 pipelines on multiple threads. The\nGraphite_Native_Vulkan jobs pass with SPIR-V 1.3 on the updated driver,\nwhich unblocks https://skia-review.googlesource.com/c/skia/+/1391270.\n\nChange-Id: I0813ca885b6354d0f307e94be851c17226a3a7c6\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397776\nAuto-Submit: Thomas Smith \u003cthomsmit@google.com\u003e\nReviewed-by: Robert Phillips \u003crobertphillips@google.com\u003e\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\n"
    },
    {
      "commit": "d4152af4abde2dab87d2bd86dc658ffb79121dcd",
      "tree": "af1db416640787c9bb40dfa086683b976a797537",
      "parents": [
        "5bb0dcff53d6532b930fe9274b1db0c66cbc4b6f"
      ],
      "author": {
        "name": "Jorge Betancourt",
        "email": "jmbetancourt@google.com",
        "time": "Mon Oct 19 11:21:56 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 11:22:47 2026 -0700"
      },
      "message": "Correct tests for slug serialization\n\nChange-Id: Ibd1a84e3b8f5f900a49cd8e224c1d6aa81128d8d\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398636\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\nCommit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n"
    },
    {
      "commit": "5bb0dcff53d6532b930fe9274b1db0c66cbc4b6f",
      "tree": "83cba25bcead1837a976adb4cecc3d82387e0764",
      "parents": [
        "dc4b148cdf9873029a5c91af838659bc48d092d3"
      ],
      "author": {
        "name": "YeungKC",
        "email": "I@YeungKC.com",
        "time": "Mon Oct 19 22:51:35 2026 +0900"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 11:10:50 2026 -0700"
      },
      "message": "[skparagraph] Do not ask for a fallback font for CR LF\n\nsortOutGlyphs does not count control code points as unresolved, but it\ndoes this check only for the first glyph of a grapheme. CR LF is one\ngrapheme (UAX #29 GB3), and HarfBuzz gives it two glyphs. When the font\nhas no glyph for CR and LF, the LF glyph is 0 and is not the first\nglyph of its grapheme, so the full grapheme becomes unresolved. Then\nmatchResolvedFonts asks the font manager for a fallback font for\nU+000D and for U+000A. A lone CR or LF does not do this.\n\nDo the control check for each glyph. Only CR LF can put a control code\npoint after the first glyph of a grapheme (GB4 and GB5 break before\nand after Control, CR and LF), so other graphemes do not change.\n\nThe layout does not change: no font has these characters, so the\nfallback finds nothing and the original glyphs stay. But the requests\nare not free. With fontconfig, each request is one FcFontMatch call\n(approximately 0.4 ms on a laptop), and a failed result is not cached.\nText with Windows line endings causes 2 requests for each CR LF block\nin each layout.\n\nThe new test uses a font manager that counts fallback requests.\nWithout this change it fails: 2 requests for \"a\\r\\nb\" and 3 requests\nfor \"a\\r\\n\\r\\nb\". Line count and height are the same as for LF.\n\nAdded the author to the list of Skia AUTHORS.\n\nRelated: https://skia-review.googlesource.com/c/skia/+/1386076\n\nChange-Id: Id79a9b7edc9e79364c087b9f01177de4d9d72ba7\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398496\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "dc4b148cdf9873029a5c91af838659bc48d092d3",
      "tree": "90eb18128e14d611dc6010d54c6e5e8e35a7024c",
      "parents": [
        "5af3217b1f3217a7040de79aec9c3c527478d6aa"
      ],
      "author": {
        "name": "Robert Phillips",
        "email": "robertphillips@google.com",
        "time": "Mon Oct 19 11:51:42 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 10:51:18 2026 -0700"
      },
      "message": "Templatize SkExecutor\n\nIn order to accommodate alternate threading models, Skia needs the SkExecutor to support different calling models. To this end, we maintain the preexisting std::function based model but now allow a callback style model too.\n\nThis CL:\n  splits SkExecutor into StdFunction and Callback variants\n     but leaves an SkExecutor class to avoid breaking clients\n  splits SkExecutors into StdFunction and Callback variants\n  leaves SkTaskGroup specialized to StdFunctionExecutors\n  updates all the internal usage sites\n\nBug: 559158308\nChange-Id: I427eab84674dd4b22c3ecb4e7a9ec4807adb2b55\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1367836\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Robert Phillips \u003crobertphillips@google.com\u003e\n"
    },
    {
      "commit": "5af3217b1f3217a7040de79aec9c3c527478d6aa",
      "tree": "ee8eb72d8cc70f569fedeb244a7fb435a0f72cd8",
      "parents": [
        "79f67f7b53544ed59316103875ae42efa8088e46"
      ],
      "author": {
        "name": "Michael Ludwig",
        "email": "michaelludwig@google.com",
        "time": "Fri Oct 16 13:49:05 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 10:20:17 2026 -0700"
      },
      "message": "[graphite] Fix AnalyticRRectRenderstep mesh to avoid double triangles\n\nWithout these four extra indices, the last very small triangle of\neach corner outset structure would end up being duplicated\n(albeit with opposite winding), before continuing to generate\ntriangles along the edge of the rrect to connect the corners.\n\nThis was not visible previously because the extra triangles would\nalways fail the LESS test. In https://skia-review.git.corp.google.com/c/skia/+/1382516\nswitching to LEQUAL exposed the self intersections (since this\nclaimed to have kNoSelfIntersection in its Flags). Adding\nthese indices instead changes the strip generation to produce\nempty triangles so there is no more double blending.\n\nThe similar PerEdgeAAQuadRenderStep\u0027s mesh is structured\ndifferently enough that it does not have this issue in its corner\noutset vertices.\n\nBug: 500416105\nChange-Id: I7de943623b8d8ce2a51332767936acd8a1f33a14\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396818\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Nathan Sanchez \u003cnathanasanchez@google.com\u003e\n"
    },
    {
      "commit": "79f67f7b53544ed59316103875ae42efa8088e46",
      "tree": "fee667dbacf967f0c9b8675ae1964a07eb0babbb",
      "parents": [
        "06f5047db3d6d8b5dcc4e0bffd9b4fb09fcaeb56"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 07:48:48 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 09:53:41 2026 -0700"
      },
      "message": "Roll skcms from ec12624e9419 to f0bbebbebb50 (1 revision)\n\nhttps://skia.googlesource.com/skcms.git/+log/ec12624e9419..f0bbebbebb50\n\n2026-10-19 hasinoff@google.com Mark skcms.h as exporting src/skcms_public.h for include-cleaner\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/skcms-skia-autoroll\nPlease CC bwils@google.com,kjlubick@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Canary-Chromium\nTbr: bwils@google.com,kjlubick@google.com\nChange-Id: I19d67b10c6fb54af896ed7a3c1e93961699d4b1a\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398557\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nReviewed-by: Brandon Wilson \u003cbwils@google.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "06f5047db3d6d8b5dcc4e0bffd9b4fb09fcaeb56",
      "tree": "bdb175cba3e2af534c8222766ed2273759d61640",
      "parents": [
        "a098835514d074e589e19d1ee884ac2484ecaf2f"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Mon Oct 19 08:40:43 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 08:59:35 2026 -0700"
      },
      "message": "miracleptr: Exclude pointers in unconstructed storage\n\nSkTDArray and SkDeque get their memory from sk_malloc and never run\nconstructors or destructors. A raw_ptr stored there would start out\nas garbage and never drop its reference, so keep these as plain\npointers.\n\nSwitching to TArray would also work, but these pointers are\nshort-lived and internal, so it isn\u0027t worth the churn.\n\nBug: 351867706\nDoc: https://bit.ly/miracleptr-skia\nChange-Id: I09f1e34148c03cb9e66b2d8f5cc6e81b023801b8\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398356\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\n"
    },
    {
      "commit": "a098835514d074e589e19d1ee884ac2484ecaf2f",
      "tree": "5c3ec083818c808a76d132ecf119f5f903eb19be",
      "parents": [
        "6fe61137607ef7f90e98121ac0df1c79114a1514"
      ],
      "author": {
        "name": "Arthur Sonzogni",
        "email": "arthursonzogni@chromium.org",
        "time": "Mon Oct 12 08:39:33 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 08:47:05 2026 -0700"
      },
      "message": "Annotate Core and Shader stack-only classes\n\nMiraclePtr is only meant to rewrite pointers in heap-allocated structs.\nPointers in stack-allocated structs are short-lived, less likely to\ndangle, and often sit in performance hotspots (such as loop iterators\nor scoped helpers). Adding SK_ONLY_STACK_ALLOCATABLE enforces that\nthese types are only allocated on the stack and tells the MiraclePtr\nclang rewriter to skip them.\n\nSee:\nhttps://docs.google.com/document/d/1bfOWAGpE3cVDkHr_mSbmfSbcVV22Af5nt21n7WCFOYs/edit?resourcekey\u003d0-rgbBtkU3Bdlq-x_-1YhhKg\u0026tab\u003dt.0#heading\u003dh.dk8o1u7vmxzq\n\nBug: 351867706\nDoc: https://bit.ly/miracleptr-skia\nChange-Id: I5e9615ebbcec703e686a9d0fd4768076bbcf69cb\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1391136\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nAuto-Submit: Arthur Sonzogni \u003carthursonzogni@chromium.org\u003e\n"
    },
    {
      "commit": "6fe61137607ef7f90e98121ac0df1c79114a1514",
      "tree": "6802e4a26ee3e8a3ca8b9d2d521b74c84a6c6c10",
      "parents": [
        "4849012c1459493ed2ef4ce0b7e7184545a98cc5"
      ],
      "author": {
        "name": "Cameron Chisholm",
        "email": "cam9810@gmail.com",
        "time": "Fri Oct 16 18:31:01 2026 +0100"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 08:36:10 2026 -0700"
      },
      "message": "[graphite] Keep runtime effect locals from colliding with main\u0027s params\n\nGraphite substitutes `pos`, `inColor` and `destColor`\n(ShaderSnippet::kDefaultArgs) for a runtime effect\u0027s main() parameters,\nbut PipelineStageCodeGenerator writes local variable names verbatim. A\nlocal named `pos` in main() therefore redeclares the coordinates\n(\"symbol \u0027pos\u0027 was already defined\") and the GraphicsPipeline fails to\nbuild. A local in a nested scope compiles but shadows the coordinates,\nso the effect silently renders the wrong pixels. Locals that share a\nname with the main() parameters now get mangled names.\n\nAdds shader and blender cases for both, and a Graphite variant of the\nruntime blender tests, which previously only ran on CPU and Ganesh.\nWithout the fix the new Graphite cases crash.\n\nChange-Id: I86640f403acb81f9d76e13b87088a45a15980b4e\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1391097\nReviewed-by: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nCommit-Queue: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\nAuto-Submit: Cameron Chisholm \u003ccam9810@gmail.com\u003e\nCommit-Queue: Michael Ludwig \u003cmichaelludwig@google.com\u003e\nReviewed-by: Jorge Betancourt \u003cjmbetancourt@google.com\u003e\n"
    },
    {
      "commit": "4849012c1459493ed2ef4ce0b7e7184545a98cc5",
      "tree": "933d23c3e11cf9ca978364e44f5603c0b50ef9f0",
      "parents": [
        "b41c0d657b441fb1fabcedecf59c1f1adfa77383"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 13:49:18 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 07:49:14 2026 -0700"
      },
      "message": "[skparagraph] Honor TextStyle halfLeading for empty lines and getFontMetrics\n\nhalfLeading support in TextStyle reached Run::calculateMetrics() but\nnot two other places that apply the same height override.\nParagraphImpl::computeEmptyMetrics() picked between half-leading and\nproportional scaling using the strut style\u0027s flag, so empty lines and\nempty paragraphs ignored TextStyle::setHalfLeading(). The public\nTextStyle::getFontMetrics() always scaled proportionally, so its ascent\nand descent disagreed with the laid out run. Use the text style\u0027s flag\nin both, mirroring Run::calculateMetrics().\n\nAssisted-by: Claude Opus 5.5 (High)\nChange-Id: I1b5676c89bc806b331ca66014fee0dd58f652f38\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396936\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\n"
    },
    {
      "commit": "b41c0d657b441fb1fabcedecf59c1f1adfa77383",
      "tree": "27f729c1f37a0bfb486e913dfa0ec2f866216e7d",
      "parents": [
        "36aa6fa994092414f7f53e7b5c5aec47022bd040"
      ],
      "author": {
        "name": "David Bebawy",
        "email": "dbebawy@gmail.com",
        "time": "Fri Oct 16 16:48:18 2026 -0400"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 07:46:05 2026 -0700"
      },
      "message": "[skparagraph] Include the rendered soft hyphen in getRectsForRange\n\ngetRectsForRange skipped the rendered soft hyphen, so a selection that\nspans a soft hyphen line break highlighted the text on both lines but\nnot the hyphen drawn at the end of the first one. In RTL text the skip\nalso left the hyphen\u0027s width out of the run offsets, so the rects for\nthe rest of that line were shifted left by the hyphen\u0027s width.\ngetGlyphPositionAtCoordinate had the same RTL offset bug.\n\ncreateSoftHyphen() now sizes the hyphen run\u0027s text range to the soft\nhyphen cluster that ends the line, so iterateThroughSingleRunByStyles\nmaps the hyphen to exactly that soft hyphen\u0027s source range, whatever\nthe hyphen string\u0027s length. getRectsForRange no longer gives the\nunrendered soft hyphen cluster in the text run a box of its own, which\nproduced a second box with fallback fonts, letter spacing and bidi\nlines. Run::fHyphen and Run::isHyphen() are no longer needed.\n\nIn RTL, iterateThroughVisualRuns now stops when the visitor returns\nfalse for the line-end hyphen or ellipsis, and\ngetGlyphPositionAtCoordinate counts the affix\u0027s width and stops only\nwhen the coordinate is inside it.\n\nR\u003dalexisdavidc@google.com, jlavrova@google.com\n\nBug: https://github.com/flutter/flutter/issues/189234\nChange-Id: I3de30e16f9e442fdbf64f02ca57c9a4ffd78bd5a\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396916\nReviewed-by: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\n"
    },
    {
      "commit": "36aa6fa994092414f7f53e7b5c5aec47022bd040",
      "tree": "fcb895e6aeb6f2aaf126d3e19c737fda7c5c82d3",
      "parents": [
        "2967de958a1015bd3822338bc63ed1227692db35"
      ],
      "author": {
        "name": "Julia Lavrova",
        "email": "jlavrova@google.com",
        "time": "Fri Oct 16 13:48:00 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 07:04:58 2026 -0700"
      },
      "message": "[skparagraph] Apply baselineShift once when heightOverride is set\n\nRun::calculateMetrics() added fBaselineShift to fCorrectAscent and\nfCorrectDescent, but correctAscent() and correctDescent() add it again\non read. With a non-zero height multiplier this shifted the run metrics\ntwice, so a shifted run grew the line box by twice its shift and the\ntext was placed against the wrong baseline. Keep the stored values\nunshifted and let the accessors apply the shift, as they already do\nwithout a height override.\n\nCompose Multiplatform hits this with BaselineShift and lineHeight:\nhttps://youtrack.jetbrains.com/issue/CMP-7669\nhttps://youtrack.jetbrains.com/issue/CMP-5782\n\nAssisted-by: Claude Opus 5.5 (High)\nChange-Id: I3e12fcd4a7f7c5c95d6a83ac5ccdf8e5f276b9a4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1396917\nCommit-Queue: Julia Lavrova \u003cjlavrova@google.com\u003e\nReviewed-by: Alexis Cruz-Ayala \u003calexisdavidc@google.com\u003e\n"
    },
    {
      "commit": "2967de958a1015bd3822338bc63ed1227692db35",
      "tree": "42351d9b522b09c023a371c21fffa9dbd76ca2b2",
      "parents": [
        "3a8e3ab9939d532ba50cab7a91d145e767e193dd"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 01:43:56 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Mon Oct 19 02:56:32 2026 -0700"
      },
      "message": "Roll vulkan-deps from f290b75a45a2 to 601d5e9c59eb (1 revision)\n\nhttps://chromium.googlesource.com/vulkan-deps.git/+log/f290b75a45a2..601d5e9c59eb\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/vulkan-deps-skia-autoroll\nPlease CC bwils@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE\nBug: None\nTbr: bwils@google.com\nChange-Id: I7029881d96718001a01867fdaf549b84a089377c\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398376\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "3a8e3ab9939d532ba50cab7a91d145e767e193dd",
      "tree": "89294e0c63d979ef9395d5b644aba71a4a4af233",
      "parents": [
        "e6d48942fde321ef381cb1872e3dc80034ab6f32"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:01:11 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 23:12:43 2026 -0700"
      },
      "message": "Roll ANGLE from 33f8caff4b77 to b82a564646a2 (17 revisions)\n\nhttps://chromium.googlesource.com/angle/angle.git/+log/33f8caff4b77..b82a564646a2\n\n2026-10-18 syoussefi@chromium.org Translator: Apply loop-forward-progress transform to PowerVR\n2026-10-16 yuxinhu@google.com IR: return bvec for isnan and isinf if operand is vec\n2026-10-16 cnorthrop@google.com Tests: Preserve test args for bot-mode execution\n2026-10-16 abdolrashidi@google.com Add test for read stage mask check across RPs\n2026-10-16 cnorthrop@google.com Tests: android_helper.py support for headless system user\n2026-10-16 syoussefi@chromium.org IR: Update trace expectations\n2026-10-16 abdolrashidi@google.com Skip failing OpenGL test on Linux/NVIDIA\n2026-10-16 angle-autoroll@skia-public.iam.gserviceaccount.com Manual roll Chromium from 1994e54c9282 to fc6bec1defd3 (768 revisions)\n2026-10-16 wangra@google.com D3D11: Clamp constant buffer range size and offset\n2026-10-16 abdolrashidi@google.com Manual roll Chromium 758f937f32 to 1994e54c92\n2026-10-16 cnorthrop@google.com PRESUBMIT: Fix tab check crash under Python 3\n2026-10-16 cnorthrop@google.com Vulkan: Give each thread its own blob cache scratch buffer\n2026-10-16 syoussefi@chromium.org IR: Update trace expectations\n2026-10-16 cnorthrop@google.com Vulkan: Parse DisplayVkAndroid\u0027s system properties as int64_t\n2026-10-16 angle-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from b297df3dd79a to 00a7dde0a6b4 (21 revisions)\n2026-10-16 abdolrashidi@google.com Skip packed encoder uniform test on Linux/NVIDIA\n2026-10-16 abdolrashidi@google.com Tests: Skip raid_rush on Pixel 6\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/angle-skia-autoroll\nPlease CC bwils@google.com,jmadill@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in ANGLE: https://bugs.chromium.org/p/angleproject/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Release-ANGLE;skia/skia.primary:Build-Mac-Clang-arm64-Release-ANGLE;skia/skia.primary:Test-Win11-Clang-Golo-GPU-QuadroP400-x86_64-Debug-All-ANGLE;skia/skia.primary:Test-Win11-Clang-Dell3930-GPU-GTX1660-x86_64-Debug-All-ANGLE\nTbr: bwils@google.com\nTest: Test:\nChange-Id: I966f0eda9270114e3597b489dea78469b33c30c6\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397937\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "e6d48942fde321ef381cb1872e3dc80034ab6f32",
      "tree": "9d1b540460e99c1192404dfd0be42a091f6fb798",
      "parents": [
        "fa6714e857d3b8643c0a90429ceac19bfcf518fd"
      ],
      "author": {
        "name": "skia-autoroll",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Mon Oct 19 04:01:23 2026 +0000"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 22:29:16 2026 -0700"
      },
      "message": "Roll Skia Infra from 02b18441f3cd to 3453607cf0ba (16 revisions)\n\nhttps://skia.googlesource.com/buildbot.git/+log/02b18441f3cd..3453607cf0ba\n\n2026-10-16 davidsegovia@google.com [CBB] Email chrome-cbb on browser version and STP download failures\n2026-10-16 davidsegovia@google.com [CBB] Add nil-CAS check and alert email helper\n2026-10-16 davidsegovia@google.com [CBB] Update STP downloader to target MacOS 27\n2026-10-16 borenet@google.com [fiddler] Fix server shutdown race\n2026-10-16 borenet@google.com [fiddle] Better filtering for /proc/self/task\n2026-10-16 gmarcoesau@google.com [perf] Use AnomaliesTableSk as single source of truth on report page\n2026-10-16 borenet@google.com Move some checks to presubmit, run presubmit after submit as well\n2026-10-16 gmarcoesau@google.com [temporal] Harden entrypoint broadcast address and perf-internal init\n2026-10-16 sergeirudenkov@google.com [perf] Load Google Fonts without the @import chain; defer the cookie bar script\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll jsfiddle-final from cf31324ce447 to 8f33e65a8ae4\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll Depot Tools from 97ed77526c27 to 382c208a9973 (3 revisions)\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll command_wrapper from 4976c10807c2d4d6f... to 968b70d24fc61ea8f... (1 revision)\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll presubmit from 4976c10807c2d4d6f... to 968b70d24fc61ea8f... (1 revision)\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_test_all from 4976c10807c2d4d6f... to 968b70d24fc61ea8f... (1 revision)\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll bazel_build_all from 4976c10807c2d4d6f... to 968b70d24fc61ea8f... (1 revision)\n2026-10-16 skia-autoroll@skia-public.iam.gserviceaccount.com Roll debugger-app-final from 099acdb73d00 to 4f39d4e51fc9\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/infra-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia Infra: https://bugs.chromium.org/p/skia/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nBug: chromium:525710652\nTbr: borenet@google.com\nChange-Id: I4616771332f39534888e7606a00391abd2605a91\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398056\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "fa6714e857d3b8643c0a90429ceac19bfcf518fd",
      "tree": "450cdd8b07c9cd794e88170d10b078c94d6ee0b5",
      "parents": [
        "ed0a9a175b53ee9792f2acdcafe4000f7d919aff"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:01:30 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 22:26:50 2026 -0700"
      },
      "message": "Roll Dawn from 2193f6584b6d to 6de9ac520d77 (14 revisions)\n\nhttps://dawn.googlesource.com/dawn.git/+log/2193f6584b6d..6de9ac520d77\n\n2026-10-19 hao.x.li@intel.com Fix use-after-free for empty buffer/texture copy workarounds\n2026-10-18 dsinclair@chromium.org Word wrap some of the doc files\n2026-10-17 kainino@chromium.org [cts] Suppress have_all_language_features:feature\u003d\"fragment_depth\"\n2026-10-16 kainino@chromium.org [dawn][metal] ArgBufs: directly map BindGroup slot to ArgBuf buffer index\n2026-10-16 jrprice@google.com [tint] Always clamp sample index for textureLoad\n2026-10-16 alanbaker@google.com [ir] Clamp workgroup runtime-sized arrays\n2026-10-16 hocheung@chromium.org Move InstanceBase pointer into PhysicalDeviceBase\n2026-10-16 mridulgoyal@google.com [Vulkan] Remove ImportedTexture mLastExternalState\n2026-10-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll vulkan-deps from c4c101895112 to 00a7dde0a6b4 (15 revisions)\n2026-10-16 mridulgoyal@google.com [WebGPU][Kotlin] Unwrap object handles in Kotlin before crossing JNI\n2026-10-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll DirectX Shader Compiler from 78d896efe764 to 61e9771fc34b (4 revisions)\n2026-10-16 mridulgoyal@google.com [Vulkan] Call TweakTransition only on barriers\n2026-10-16 dawn-autoroll@skia-public.iam.gserviceaccount.com Roll ANGLE from afa978f8ca67 to 33f8caff4b77 (14 revisions)\n2026-10-16 dsinclair@chromium.org Validate argument buffer configuration.\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/dawn-skia-autoroll\nPlease CC cwallez@google.com,kainino@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Dawn: https://bugs.chromium.org/p/dawn/issues/entry\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nCq-Include-Trybots: skia/skia.primary:Build-Ubuntu24.04-Clang-x86_64-Debug-Graphite_Dawn_Vulkan;skia/skia.primary:Test-Mac14-Clang-MacMini9.1-GPU-AppleM1-arm64-Debug-All-ASAN_Graphite_Dawn_Metal;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D12;skia/skia.primary:Test-Win11-MSVC-Golo-GPU-QuadroP400-x86_64-Release-All-Graphite_Dawn_D3D11\nBug: None\nTbr: kainino@google.com\nTest: Test: BindGroupTests.DrawThenChangePipelineAndBindGroup\nTest: Test: BindGroupTests.DrawThenChangePipelineTwiceAndBindGroup\nTest: Test: DynamicBufferOffsetTests.BasicInheritRenderPipeline\nTest: Test: DynamicBufferOffsetTests.InheritDynamicOffsetsComputePipeline\nTest: Test: TextureShaderBuiltinTests.MultiplePipelinesOneBindGroup\nChange-Id: I32d58779faaf6f399cdc54ee868e4f319a0a4158\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397996\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ed0a9a175b53ee9792f2acdcafe4000f7d919aff",
      "tree": "3aff0d0cf620006d8f8a8d25c4a84b3b456cfeb5",
      "parents": [
        "ba9765b636c2e70c3b9ca7e31b768c2ab94aaf65"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:48:17 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 22:06:06 2026 -0700"
      },
      "message": "Roll debugger-app-base from 4711d822d730 to 21501cfbf475\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/debugger-app-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: I33b759c359ef403e2634bc3b93572008621e43c5\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1398019\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "ba9765b636c2e70c3b9ca7e31b768c2ab94aaf65",
      "tree": "d3a51cfc29ff8672a535d68ce16f9dfd3037cc98",
      "parents": [
        "9a7e1215702ccecaf85366ab99d1da01f8385428"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:01:50 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:32:31 2026 -0700"
      },
      "message": "Roll shaders-base from 2c861cb82614 to b5d16ac50a7b\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/shaders-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: I5979b21c929c6ac143a7d5046758f2a5b45c1c73\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397978\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    },
    {
      "commit": "9a7e1215702ccecaf85366ab99d1da01f8385428",
      "tree": "62388571b3dbeec1d197dc5f2dee22955e2b0efd",
      "parents": [
        "90b53bb3275443b809f95f81a2c3d430bff62b92"
      ],
      "author": {
        "name": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "email": "skia-autoroll@skia-public.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:01:18 2026 -0700"
      },
      "committer": {
        "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
        "time": "Sun Oct 18 21:32:13 2026 -0700"
      },
      "message": "Roll fiddler-base from dd48f4f7345a to 4a9260b9789d\n\nIf this roll has caused a breakage, revert this CL and set the roller\nto dry run mode using the controls here:\nhttps://autoroll.skia.org/r/fiddler-base-skia\nPlease CC borenet@google.com,skiabot@google.com on the revert to ensure that a human\nis aware of the problem.\n\nTo file a bug in Skia: https://bugs.chromium.org/p/skia/issues/entry\n\nTo report a problem with the AutoRoller itself, please file a bug:\nhttps://issues.skia.org/issues/new?component\u003d1389291\u0026template\u003d1850622\n\nDocumentation for the AutoRoller is here:\nhttps://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md\n\nTbr: borenet@google.com\nChange-Id: I81dd9c99abe8d67850b98c5a80be76374f286a7a\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1397977\nBot-Commit: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\nCommit-Queue: skia-autoroll@skia-public.iam.gserviceaccount.com \u003cskia-autoroll@skia-public.iam.gserviceaccount.com\u003e\n"
    }
  ],
  "next": "90b53bb3275443b809f95f81a2c3d430bff62b92"
}
