)]}'
{
  "commit": "0987c3df0bd43032b0f94aed3074ebfa6e40ba02",
  "tree": "9ba68a481cbabd7b39825308f664d833216405f8",
  "parents": [
    "6d854c3fc41bf40e0c15c5603dfd6a48873aa2ac"
  ],
  "author": {
    "name": "Ryan Harrison",
    "email": "rharrison@chromium.org",
    "time": "Tue Sep 15 09:14:45 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Sep 15 09:14:45 2026 -0700"
  },
  "message": "[fuzz] Use a cache for IR modules in WGSL fuzzer\n\nThe WGSL fuzzer also runs the IR fuzzing passes via an adaptor. As-is\nthis adaptor requires re-lowering of the WGSL to IR per pass, which\ncan cause significant performance issues.\n\nThis change, if the IR binary format is available, caches the IR\nmodule as a protobuf and re-decodes it per pass, which is\nsignificantly faster (~3x for the timeout case I was looking at). The\nIR module cannot be cache\u0027d/cloned directly, so this re-decoding\npattern is the samething the IR natively does.\n\nIf the IR binary format is not available the fuzzer falls back\ngracefully to the existing lower per pass behaviour.\n\nFixes: 561406003\nChange-Id: I85bd9ab6530245ee24cfa3d43670924170420f96\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/341835\nReviewed-by: James Price \u003cjrprice@google.com\u003e\nCommit-Queue: Ryan Harrison \u003crharrison@chromium.org\u003e\nAuto-Submit: Ryan Harrison \u003crharrison@chromium.org\u003e\nCommit-Queue: James Price \u003cjrprice@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "de10b787a12405281747d8c978c7744190d4cfc2",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/common/wgsl_fuzzer.h",
      "new_id": "68e22eb4aa4e680a7f684035010b5ffcecbbe745",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/common/wgsl_fuzzer.h"
    },
    {
      "type": "modify",
      "old_id": "a60d3e0a452430b7ddd651075a3cc930bd972db9",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/ir/BUILD.cmake",
      "new_id": "87067e3e9a92f58e76db94f20abb7e120e376a1e",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/ir/BUILD.cmake"
    },
    {
      "type": "modify",
      "old_id": "364820b9190aea2966b9a0c79f7440d64038d86c",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/ir/BUILD.gn",
      "new_id": "6abfbca4b7c9a7256394c53e5a41193fc25b6ed1",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/ir/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "920eccf8a462a59a7b93ad965b6a1b4aa1e7c236",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/ir/fuzz.cc",
      "new_id": "94aaaab83c9d64ee245dd0c45da4f36ba1b86091",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/ir/fuzz.cc"
    },
    {
      "type": "modify",
      "old_id": "e3e1f69ccff1da00df7f7439308eee3af671cdb2",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/wgsl/BUILD.cmake",
      "new_id": "01ededa2c7dbdfe324779396f3fbf8be32c9689b",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/wgsl/BUILD.cmake"
    },
    {
      "type": "modify",
      "old_id": "4053dca2c46be55b96fede481b5e6bd9916a18cb",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/wgsl/BUILD.gn",
      "new_id": "a2b75c7f4afec21c26029135b20d1f57ba8e13c4",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/wgsl/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "80d587c4bab47490f378afedec0186de4ee3ef14",
      "old_mode": 33188,
      "old_path": "src/tint/cmd/fuzz/wgsl/fuzz.cc",
      "new_id": "2a67df3f54e7a0fefd39c98e64a5fd846adeb69c",
      "new_mode": 33188,
      "new_path": "src/tint/cmd/fuzz/wgsl/fuzz.cc"
    }
  ]
}
