)]}'
{
  "commit": "dbd1f46e12cdf3ee8dcb53756bcd76a6cb8b3476",
  "tree": "12ac03a5844c1aca88f547a4c64a09178097a942",
  "parents": [
    "a8e13819f66bceeaaeac46994187ea3cdf4f6bb0"
  ],
  "author": {
    "name": "Richard Geldreich",
    "email": "richgel99@protonmail.com",
    "time": "Fri Oct 30 11:23:43 2026 -0400"
  },
  "committer": {
    "name": "Richard Geldreich",
    "email": "richgel99@protonmail.com",
    "time": "Fri Oct 30 11:23:43 2026 -0400"
  },
  "message": "PVRTC1: fill the small-level 2x2 block minimum in the low-level transcode_image() and transcode_slice() too\n\nThe fill moves from the .basis/KTX2 transcode_image_level() functions into the four low-level\ntranscode_image() functions that can output PVRTC1 (ETC1S, UASTC LDR 4x4, XUASTC/ASTC LDR, XUBC7), which\nboth transcode_image_level()s call, and into basisu_transcoder::transcode_slice(). The fill must run\nexactly once per transcode (a second pass would move already-tiled blocks), so it lives only at these\nbuffer-aware exits. The low-level transcode_slice() functions take no buffer size and still write\nonly the level\u0027s own blocks. Comments updated to match.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c043108b2442e1ea893c62c72248143de9093fc5",
      "old_mode": 33188,
      "old_path": "transcoder/basisu_transcoder.cpp",
      "new_id": "458eabfea475c73e368d1b7ef8454397de1dc3c9",
      "new_mode": 33188,
      "new_path": "transcoder/basisu_transcoder.cpp"
    },
    {
      "type": "modify",
      "old_id": "e689d1174b19d6e0627520b55da9977cf737effa",
      "old_mode": 33188,
      "old_path": "transcoder/basisu_transcoder.h",
      "new_id": "1cea4792db0d7215425c254670ebb5c0d3afceb7",
      "new_mode": 33188,
      "new_path": "transcoder/basisu_transcoder.h"
    }
  ]
}
