)]}'
{
  "commit": "1b24e77ba4e01d12f5db86a9b1b5f2cf828a6a33",
  "tree": "6c65af414511151fc2befda41fbbd407601783ee",
  "parents": [
    "c687f1229ab31568de2f3196b4f6f7d955aa3956"
  ],
  "author": {
    "name": "Thomas Smith",
    "email": "68340554+b0nes164@users.noreply.github.com",
    "time": "Sat May 09 16:52:49 2026 -0400"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Sat May 09 20:52:49 2026 +0000"
  },
  "message": "Add early culling for lines fully left of the viewport. (#1368)\n\nApologies this took an embarrassingly long time due to a funny bug. Adds\nchanges as discussed.\n\nUPDATED:\nLines left of the viewport are not visible but still contribute winding,\ncreating a left to right dependency for rendering. This patch simplifies\nrendering in this scenario by culling the left-of-viewport portion of\nlines, and recording their equivalent winding contribution inside a\nhistogram. If a line is *entirely* left of the viewport, it is\ncompletely culled and produces no tiles.\n\nCorrespondingly `strip.rs` has been updated to consume this histogram.\nNotably, `strip.rs` now handles cases where no tiles are present, but\nculling occured, and cases where winding is \"captive\" either between\nleft edge of the viewport and the first tile in the row, or between two\nnon-consecutive rows.\n\nRemoves the previous handling of left of edge lines in `strip.rs`.\n\nNo culling, Ghostscript_Tiger shifted 50% off screen:\n```\ntile_aaa_shift50/Ghostscript_Tiger\n                        time:   [51.574 µs 51.650 µs 51.732 µs]\n```\n\nWith culling:\n```\ntile_aaa_shift50_cull/Ghostscript_Tiger\n                        time:   [46.319 µs 46.380 µs 46.436 µs]\n```\n\n---------\n\nCo-authored-by: Thomas Smith \u003cthomsmit@google.com\u003e\nCo-authored-by: Laurenz Stampfl \u003claurenz.stampfl+github@gmail.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "188922b8c7709601399cadea0b0f6d66f76794c1",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_bench/benches/main.rs",
      "new_id": "8e1b563555fdb1609056f8f403e1379456e83f91",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_bench/benches/main.rs"
    },
    {
      "type": "modify",
      "old_id": "a192872cbe8be7214182303bf2dced0268132609",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_bench/src/data.rs",
      "new_id": "eda3b7a4642be61d7ebb1ea9887cc03cd2afe035",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_bench/src/data.rs"
    },
    {
      "type": "modify",
      "old_id": "bfa5799766a88663046d7a99a1643c929eb27652",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_bench/src/strip.rs",
      "new_id": "0ec6cbf1c10709ad072760aa415d9400935abdbc",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_bench/src/strip.rs"
    },
    {
      "type": "modify",
      "old_id": "2dcba2c11aabe96d76b37308bf7194f3d790736b",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_bench/src/tile.rs",
      "new_id": "f6853295f3709c40a3bdb74b6760002474c85686",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_bench/src/tile.rs"
    },
    {
      "type": "modify",
      "old_id": "b38529a1a42a9f55ef53d0ca0489fd9c5f683095",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/strip.rs",
      "new_id": "315f1972ee7e9069eeabbfee2e2a6ad05d855961",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/strip.rs"
    },
    {
      "type": "modify",
      "old_id": "fde085a9fb19cb3286a0c01252f6e3e54bc72985",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/strip_generator.rs",
      "new_id": "9a8bfc237b995bbe4d42c42140dd29898680f76c",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/strip_generator.rs"
    },
    {
      "type": "modify",
      "old_id": "f980fa9748d2503faa5b3e7345ba897d566592c0",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/tile.rs",
      "new_id": "f23433d95449d0dcbc18a2c18c82489db27967b3",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/tile.rs"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a83fbe3a46b0be1733c6ce79f9938ff390016a0d",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_cross_left_combined.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5720fdadc3caf940ad8db06081bbde9546b321ea",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_encloses_viewport.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "892c39b17fa30779218d4cb51c2b37ee34888e03",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_fully_left_combined.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "822301530471d76ed9474bc0dbd38133f9c87100",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_mask_cross_combined.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "60604504d069df84eb7bd6efdc50cf61e54e552d",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_mask_encloses_viewport.png"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c8a3313980743623d3d049b8fcad48a91dc3090e",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/snapshots/left_cull_triangle_expands_below_viewport.png"
    },
    {
      "type": "modify",
      "old_id": "ba7ce66b3387b4d6c2e04abf6d562aaeaf657f3c",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_sparse_tests/tests/basic.rs",
      "new_id": "4d9838363bda263a6a124ea0c6040e757f8821d7",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_sparse_tests/tests/basic.rs"
    },
    {
      "type": "modify",
      "old_id": "7ff5ce1bc90fb7148484dcecd2884a82389d4fa8",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_toy/src/debug.rs",
      "new_id": "f6dd15800443f9b3aea2a784d4df97b75caee6ab",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_toy/src/debug.rs"
    }
  ]
}
