)]}'
{
  "commit": "cd852dc06bc0f9011385fc63a4852b0fc853f4b1",
  "tree": "2290b4c05dee9ec290c0976705c92d475ba58004",
  "parents": [
    "fbc3fd93e513c419b29324dd97b1c1a83b23d45a"
  ],
  "author": {
    "name": "Laurenz Stampfl",
    "email": "47084093+LaurenzV@users.noreply.github.com",
    "time": "Wed Jul 08 08:04:39 2026 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Wed Jul 08 06:04:39 2026 +0000"
  },
  "message": "sparse_strips: Distinguish between sentinel strips and zero-width delimiter strips (#1714)\n\nThis is based on top of #1705.\n\n# Context\n\nIn the very early days, the so-called \"sentinel strip\" was simply used\nas to indicate \"the final strip in a sequence of strips\". It provided a\nway for us to avoid special casing handling the last real strip. In\norder to determine the width of a strip, we need to look at the\n`alpha_idx` of the next strip. So having this sentinel strip allows us\nto treat the last real strip like any other strip.\n\nStarting with commit https://github.com/linebender/vello/commit/4a75eced\nand then also https://github.com/linebender/vello/commit/1b24e77b, we\nstarted to essentially have two versions of sentinel strips: One that,\nas was the original version, is used to terminate a sequence of strips\nand make it possible to _not_ have to special case the last strip. And\nanother kind of sentinel strip which simply indicates \"fill this area\nhorizontally until the end of the viewport\".\n\n# Problem\nFor fine rasterization, it would be easier if we can assume that a strip\nnever exceeds the viewport. This is generally the case, except in the\ncase where such row-level sentinel strips are emitted, because their x\nposition is set to `u16::MAX`. Therefore, during fine rasterization, we\nhave to manually clamp strips to the viewport width.\n\n# Solution\nThis PR proposes to solve this problem by\n1) Adding a constructor for \"sentinel strips\" which is really just used\nterminate a sequence of strips.\n2) Instead of also using sentinel strips as a marker of \"fill this row\nacross the whole viewport width\", instead explicitly allow using\nzero-width strips as a terminator in the row, and make sure that this\nterminating strip itself is placed exactly at the viewport boundary.\n\n# TODO\nI still need to run this through my PDF test suite, but overall I think\nthis is ready for review.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9ba659c8d3d7113a845d23ab73ed376f9bbaf6b5",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/clip.rs",
      "new_id": "3d1dfbf6aa1ee0ce0774ac9bdd9cf178c0f316fe",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/clip.rs"
    },
    {
      "type": "modify",
      "old_id": "327e773f366db2c6f8840b2379ac0e13f6f529b0",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/coarse.rs",
      "new_id": "02ca437932915a398bb3a792249d1999f553f253",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/coarse.rs"
    },
    {
      "type": "modify",
      "old_id": "49ac7366c6329daa67bfa9098cea0e168a05e379",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/rect.rs",
      "new_id": "56f175007b109199ff8b3ed06d0826d899b25f8d",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/rect.rs"
    },
    {
      "type": "modify",
      "old_id": "0cb0d0949bfdac2d194ccfa27b4c4e335e986dd4",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/strip.rs",
      "new_id": "52c915793b2995701a9bb0cc083f503eb19f4023",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/strip.rs"
    },
    {
      "type": "modify",
      "old_id": "a516a35e09449a33d6e9f898beea7dae3d0f3042",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/tile.rs",
      "new_id": "b0d09df48c553e2c6391de6d2f33ec92e361fb74",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/tile.rs"
    },
    {
      "type": "modify",
      "old_id": "7d78792119e2c4b1a6554ccfca01f44ec8ae5ee5",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_cpu/src/dispatch/multi_threaded.rs",
      "new_id": "b5d57d722e48564ae9d37fa370a6b7d196bbeb68",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_cpu/src/dispatch/multi_threaded.rs"
    },
    {
      "type": "modify",
      "old_id": "784a12b86f91d0c61309069b645849cedd5f9afb",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_cpu/src/dispatch/single_threaded.rs",
      "new_id": "1482556bb9a3e42dcf30026d358445971dc75c6c",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_cpu/src/dispatch/single_threaded.rs"
    },
    {
      "type": "modify",
      "old_id": "2a6a89a30d1c90a3d38e1d99e29bd030e2109bc2",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_cpu/src/record.rs",
      "new_id": "1f685503bab3f01de2041c27f34848497c12ac7b",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_cpu/src/record.rs"
    }
  ]
}
