)]}'
{
  "commit": "b95ab2de8fbb9449692b0d67081a238de558df13",
  "tree": "e4c0e391a1a625d83babe079042ff65a459d2caa",
  "parents": [
    "47cdfc02b54dfad9c73905c0f3d971105f98f6af"
  ],
  "author": {
    "name": "Thomas Smith",
    "email": "thomsmit@google.com",
    "time": "Mon Oct 05 14:41:35 2026 -0400"
  },
  "committer": {
    "name": "Thomas Smith",
    "email": "thomsmit@google.com",
    "time": "Mon Oct 05 14:41:35 2026 -0400"
  },
  "message": "vello: add AaConfig::SparseMsaa16, backed by the CPU sparse strips\n\nThe CPU sparse strips (the port of the Skia MSAA sparse strips) stand in for the GPU flatten, path count and path tiling stages. The GPU still runs the draw, clip, binning and tile_alloc stages. New GPU stages: strip_scatter writes the mask tiles and backdrop deltas into the allocated tiles, backdrop_dyn is reused for the prefix sum, coarse_sparse emits the new CMD_MASK, and fine_sparse_msaa16 resolves the 16-bit sample masks.\n\nSparseMsaa16 needs the GPU shaders: with use_cpu, rendering returns Error::SparseMsaa16RequiresGpu. with_winit can cycle to the new mode.\n\nTests: end-to-end comparisons against the Area and Msaa16 pipelines on 12 test scenes, and per-pixel comparisons of the Skia rasterizer against the exact reference.\n\nKnown issue: longpathdash_butt renders one spurious solid tile.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f795db8efabd73593a772d90b12c675d67a23ef9",
      "old_mode": 33188,
      "old_path": "research/examples/with_winit/src/lib.rs",
      "new_id": "92f09250ef683c5df21b4a82e779bb1f039577e0",
      "new_mode": 33188,
      "new_path": "research/examples/with_winit/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "4bcf219113ae51f786692d1887fdf75ccd148fc5",
      "old_mode": 33188,
      "old_path": "research/examples/with_winit/src/stats.rs",
      "new_id": "ca19e964c4884ece3fbda695bc837e890c7081ae",
      "new_mode": 33188,
      "new_path": "research/examples/with_winit/src/stats.rs"
    },
    {
      "type": "modify",
      "old_id": "0b460be1da85890bf4a480aa2095d862b613a18d",
      "old_mode": 33188,
      "old_path": "research/vello_research/src/lib.rs",
      "new_id": "2e1fbcaa9620792e578b8fb8d3b691e2c1850d3e",
      "new_mode": 33188,
      "new_path": "research/vello_research/src/lib.rs"
    },
    {
      "type": "modify",
      "old_id": "8c901e3a863eda4668b5977cf78fe81aa3208b74",
      "old_mode": 33188,
      "old_path": "research/vello_research/src/render.rs",
      "new_id": "54387a143c01d5617cce0b72e239656cf8d06590",
      "new_mode": 33188,
      "new_path": "research/vello_research/src/render.rs"
    },
    {
      "type": "modify",
      "old_id": "631163796006438cad7001a2c3a44abf056f7bed",
      "old_mode": 33188,
      "old_path": "research/vello_research/src/shaders.rs",
      "new_id": "df81aa68c3d13084dc865b1429a417008d5ffeae",
      "new_mode": 33188,
      "new_path": "research/vello_research/src/shaders.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "524c82166b85f038d817e86640868dcc2892eeca",
      "new_mode": 33188,
      "new_path": "research/vello_research_tests/tests/sparse_strips.rs"
    },
    {
      "type": "modify",
      "old_id": "4e045c117297103dde6b81c636b89cdb13bf6517",
      "old_mode": 33188,
      "old_path": "research/vello_shaders/shader/coarse.wgsl",
      "new_id": "308491f0ffc9165bc965fc8a58750f40a6b2a18b",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/shader/coarse.wgsl"
    },
    {
      "type": "modify",
      "old_id": "55f615de25726d7bbe5a6a2a99b62c3a0a51594c",
      "old_mode": 33188,
      "old_path": "research/vello_shaders/shader/fine.wgsl",
      "new_id": "bf56e8fcd83bad6bc33b200e21b441f72f3e1ee8",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/shader/fine.wgsl"
    },
    {
      "type": "modify",
      "old_id": "b235168b6c97b37201fbaeaff0bba4b6b168115f",
      "old_mode": 33188,
      "old_path": "research/vello_shaders/shader/permutations",
      "new_id": "313e88e463590d89366b8dd0c41011f29967ecca",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/shader/permutations"
    },
    {
      "type": "modify",
      "old_id": "487c3496ddfa29ddea1d588fd7875c14db6f0715",
      "old_mode": 33188,
      "old_path": "research/vello_shaders/shader/shared/ptcl.wgsl",
      "new_id": "6342c21d0e901db54529821f1b31ac7d03725652",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/shader/shared/ptcl.wgsl"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8117fb96eae593c824d872bfcf6d2ab4bdb8d9e5",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/shader/strip_scatter.wgsl"
    },
    {
      "type": "modify",
      "old_id": "017598e764e171ba03e79425657990cf9f9fdeff",
      "old_mode": 33188,
      "old_path": "research/vello_shaders/src/cpu/sparse_strips/tests.rs",
      "new_id": "a9940456671f0daadcc89c7bb3ba6ada2d451ba0",
      "new_mode": 33188,
      "new_path": "research/vello_shaders/src/cpu/sparse_strips/tests.rs"
    }
  ]
}
