)]}'
{
  "commit": "47870d57277087777b9de9735a1a894e4e6ea2ec",
  "tree": "5e6eaa09e0ce43f2792bb3b215dc7d23f7782d2e",
  "parents": [
    "07c0fbfdf0f6b412aa6b6e9780be8f59e5acba15"
  ],
  "author": {
    "name": "Sergio Gonzalez Martin",
    "email": "sergiog@microsoft.com",
    "time": "Thu Jul 09 19:59:29 2026 +0000"
  },
  "committer": {
    "name": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "email": "skcq-be@skia-corp.google.com.iam.gserviceaccount.com",
    "time": "Fri Jul 10 06:16:11 2026 -0700"
  },
  "message": "[rust bmp] Reduce fixed overhead for small decodes\n\nThis change adds a small memory-backed input path for Rusty BMP. When\nthe `SkStream` already exposes memory and the encoded BMP is small\n(\u003c\u003d4KB), the codec passes the bytes directly to Rust/image-rs\n`BmpDecoder` instead of wrapping the stream in `SkStreamAdapter` +\n`BufReader`. Larger or incremental streams continue to use the existing\nstreaming path.\n\nLocal Chromium decoder-boundary benchmarks show this reduces small-image\nRust overhead while preserving larger-image wins. For example, with the\nChromium-side memory-backed stream prep:\n\n - 24bit_1x1.bmp: Rust improves from ~6.2 us to ~4.3 us\n - pal4_1x1.bmp: Rust improves from ~7.4 us to ~5.3 us\n - bmp-size-32x32-8bpp.bmp remains ~73% faster than legacy C++\n - large 32bpp-topdown-320x240.bmp remains ~77% faster than legacy C++\n\nBug: 452666425\nChange-Id: I1d8975f31b7a66b158e8402341399a47dbfe26f4\nReviewed-on: https://skia-review.googlesource.com/c/skia/+/1283656\nCommit-Queue: Florin Malita \u003cfmalita@google.com\u003e\nReviewed-by: Łukasz Anforowicz \u003clukasza@google.com\u003e\nReviewed-by: Florin Malita \u003cfmalita@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f06bab4754138594c4677eaaf71aaff08ab35e6",
      "old_mode": 33188,
      "old_path": "experimental/rust_bmp/decoder/SkBmpRustDecoder.cpp",
      "new_id": "b3649f296217918332a141cdca60296fc4df976d",
      "new_mode": 33188,
      "new_path": "experimental/rust_bmp/decoder/SkBmpRustDecoder.cpp"
    },
    {
      "type": "modify",
      "old_id": "0fcdd63629924f64be6b138b33a647755e83250a",
      "old_mode": 33188,
      "old_path": "experimental/rust_bmp/decoder/impl/SkBmpRustCodec.cpp",
      "new_id": "af49b30bce7885e5ffacafa5f8b3fc67eb427c65",
      "new_mode": 33188,
      "new_path": "experimental/rust_bmp/decoder/impl/SkBmpRustCodec.cpp"
    },
    {
      "type": "modify",
      "old_id": "1191519c17c37aaf59b6b865b044246ce6dfb34a",
      "old_mode": 33188,
      "old_path": "experimental/rust_bmp/decoder/impl/SkBmpRustCodec.h",
      "new_id": "a09a6cf8c043055293e5ac721ee6843bcc1c7443",
      "new_mode": 33188,
      "new_path": "experimental/rust_bmp/decoder/impl/SkBmpRustCodec.h"
    },
    {
      "type": "modify",
      "old_id": "fd0ba39af655c6e9fc6d842300e7dfb2d8e6ec87",
      "old_mode": 33188,
      "old_path": "experimental/rust_bmp/ffi/FFI.rs",
      "new_id": "f5aec6d0a035fff23ea2db421feb1ba41557dad8",
      "new_mode": 33188,
      "new_path": "experimental/rust_bmp/ffi/FFI.rs"
    }
  ]
}
