)]}'
{
  "commit": "484f5a66c23bf6dbd30cfb5884fdbdc2b5fac51b",
  "tree": "1cf1e8735984abfad7357c8f20b989c6dda7203e",
  "parents": [
    "b7f82779272a6a8c7e92fabb544233b0ec49c968"
  ],
  "author": {
    "name": "Thomas Churchman",
    "email": "thomas@churchman.nl",
    "time": "Wed Apr 16 16:24:53 2025 +0200"
  },
  "committer": {
    "name": "Thomas Churchman",
    "email": "thomas@churchman.nl",
    "time": "Thu Apr 24 10:50:23 2025 +0200"
  },
  "message": "Reduce clipping memory usage and allocation\n\nThe scratch strip buffer may be quite large when the render context has\nbeen used for rendering complex paths. If the clip geometry is simple,\nstoring that buffer in the clip state has two downsides:\n- the buffer will have unused capacity, inflating the memory footprint\n  of the renderer,\n- as the buffer is moved into the clip state, a new buffer has to be\n  allocated, and for subsequent rendering of complex paths will have to\n  grow large again.\n\nThis PR proposes keeping the original allocation for the scratch strip\nbuffer and memcpy\u0027ing the clip\u0027s strips to a new allocation of the right\nsize. (As a side-effect the size of the `Clip` struct is reduced from 40\nto 32 bytes.)\n\nThere are alternatives: the first downside could be alleviated by a\n`shrink_to_fit`, and allocator thrashing of the second downside could be\nreduced by allocating the new buffer with the same capacity as the old\nbuffer. It\u0027s probably better to just keep the original allocation for\nthe scratch buffer, though.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0f1f0b9fd14f584242bc052c29b55e2e853579de",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_common/src/coarse.rs",
      "new_id": "29487791b8e7dd564f0c985c62055bd65e270dd2",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_common/src/coarse.rs"
    },
    {
      "type": "modify",
      "old_id": "f6b98159cef202ac011d3df54841ad4f3da7176d",
      "old_mode": 33188,
      "old_path": "sparse_strips/vello_cpu/src/render.rs",
      "new_id": "68931b477b8e2d10e3e9696513ee2e24862e18d5",
      "new_mode": 33188,
      "new_path": "sparse_strips/vello_cpu/src/render.rs"
    }
  ]
}
