)]}'
{
  "commit": "e9cfa262db36400a579cac3f2720dd51233c8a8e",
  "tree": "c460d22ec8a3aea31fe9edb09a96b134068ad52c",
  "parents": [
    "b461f80b0cd4df9e1ebc0a68c0297ca1b9d4b2c6"
  ],
  "author": {
    "name": "Zhaoming Jiang",
    "email": "zhaoming.jiang@microsoft.com",
    "time": "Tue Jun 17 07:29:21 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jun 17 07:29:21 2025 -0700"
  },
  "message": "Dawn: Implement shader module front-end blob cache\n\nThis CL implement the blob cache for shader module front-end, currently\ncaching the reflection information, compilation messages, and validation\nerror (if any) into disk. With this CL, shader modules and pipelines can\nbe created without calling Tint and backend compilers at all on backends\nsupporting pipeline cache (i.e. D3D and vk) if cache hit.\n\nThis CL also make FeaturesSet and TogglesSet serializable so we can add\nthem in cache request.\n\nBug: 42240459, 402772740\nChange-Id: Id576776f7e1b9d54f431a2fa50082bc5951880ee\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/242854\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Zhaoming Jiang \u003czhaoming.jiang@microsoft.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1fad3324e67b3d25daf5164cba26388c00e8fb64",
      "old_mode": 33188,
      "old_path": "include/dawn/native/D3DBackend.h",
      "new_id": "7c37184659814a58c04d7ba27fbd1a40c98add75",
      "new_mode": 33188,
      "new_path": "include/dawn/native/D3DBackend.h"
    },
    {
      "type": "modify",
      "old_id": "9d04c28291df689dac6796538e483ce60630a354",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "b866cf07690497045c916580b4dd109688b9f8b3",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "d0439eb3519afde5df6ad0b63ef31e85c1c28f81",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Buffer.h",
      "new_id": "a6484f1bbd7079c9a6828f521ad7de87bccd34fe",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Buffer.h"
    },
    {
      "type": "modify",
      "old_id": "ee38f41bd746395a1289bb61577261e6ec79c48e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "3ff07d88db53b6f33352ed0d8f2a17e1f286181b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "11cd5d9b4848c3d363149988b862da2e1668c074",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.cpp",
      "new_id": "1124f13a8834dee09cde579521ca8accbbfa13b4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "9fbdef6615873468da7a33f02525b9021799d8fd",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.h",
      "new_id": "8b5bcf89502c0a069645ceb952c7a7184b061291",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.h"
    },
    {
      "type": "modify",
      "old_id": "0cea9a92f4881dce4da7b7077a7d0db1defa6067",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Error.h",
      "new_id": "39485e5ce99e5791119c01041d91b320287fcae4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Error.h"
    },
    {
      "type": "modify",
      "old_id": "4869100bbde3834dda490b4c297f51193556e723",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Features.h",
      "new_id": "7ae6f03c2563b01d8525b253c729b65f56faa97b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Features.h"
    },
    {
      "type": "modify",
      "old_id": "bb94732096684f714e8ddb461cc794af1a01cd1e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Limits.cpp",
      "new_id": "086331e94297dda9ea786d6574002ac65eb163c0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Limits.cpp"
    },
    {
      "type": "modify",
      "old_id": "4858982dec7565f3340214413c6038d66d6f2704",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Limits.h",
      "new_id": "d87acdda8ad77c229fc74bf03f8d421c2494cab3",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Limits.h"
    },
    {
      "type": "modify",
      "old_id": "88918c2cb5e160772e072b528bcf2dae8600ff28",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Serializable.h",
      "new_id": "31ea636555a6bf872ecc0694479d4e86466f89c1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Serializable.h"
    },
    {
      "type": "modify",
      "old_id": "da1ffe6946288141e1df5f8e52732c389f8ae85e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/ShaderModule.cpp",
      "new_id": "5f54066f6811c3ebb6f7b3a99816d1cfc3184eb2",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ShaderModule.cpp"
    },
    {
      "type": "modify",
      "old_id": "54aea404da731c84f64337cf75f2cec9cf78236f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/ShaderModule.h",
      "new_id": "fe1ad3359df54d16d3b9577ba264736667963da8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ShaderModule.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "17ec31238e1b4790533ffa391f03b63e0cd6fc1a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ShaderModuleParseRequest.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "d807bfa5a8a1986187dd57e0aea2a8b6331dc56a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ShaderModuleParseRequest.h"
    },
    {
      "type": "modify",
      "old_id": "f12cee6efa6ee57edecfa46c2c5c721abfe48de8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/SpirvValidation.cpp",
      "new_id": "61aac75857d5408ce83a9b439bf1f6e03ea1db97",
      "new_mode": 33188,
      "new_path": "src/dawn/native/SpirvValidation.cpp"
    },
    {
      "type": "modify",
      "old_id": "3743655bbc88f69a1abd88435fc613bc2fb2ab3f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Texture.h",
      "new_id": "e9d88777267d82dde2f894eb24caa6be26151dae",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Texture.h"
    },
    {
      "type": "modify",
      "old_id": "21bd277dfdd5f56df5309e81231c6a518cd9b431",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.cpp",
      "new_id": "5103ae41edfee2bbd835a65f53883f2b25782ea1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.cpp"
    },
    {
      "type": "modify",
      "old_id": "e2ea5c6b28aa37debde3493d0aeded838290c60a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.h",
      "new_id": "0c7f919a12f88cf64820e12fdedaa6ce742a7f00",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.h"
    },
    {
      "type": "modify",
      "old_id": "35198b638c9d5031880facecc8bfdaabfae7f4c8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/WaitListEvent.cpp",
      "new_id": "70f4420801011174e82f4be15a74edfe68a26f91",
      "new_mode": 33188,
      "new_path": "src/dawn/native/WaitListEvent.cpp"
    },
    {
      "type": "modify",
      "old_id": "5f07c57f437c48eb4a0b6b0087ccd9b259b53e0c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d/QueueD3D.cpp",
      "new_id": "a737869de98f18348aebf99c94b7378b2b6edfe6",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d/QueueD3D.cpp"
    },
    {
      "type": "modify",
      "old_id": "17833a76094de07e5cd60391b94cb651dea7e702",
      "old_mode": 33188,
      "old_path": "src/dawn/native/metal/CommandRecordingContext.h",
      "new_id": "b155aa8214f0526b5d37ef29031a1b7ed792e205",
      "new_mode": 33188,
      "new_path": "src/dawn/native/metal/CommandRecordingContext.h"
    },
    {
      "type": "modify",
      "old_id": "78dab01d42baee4c283cf9cd17b45ebd68c1d045",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/BUILD.gn",
      "new_id": "76206b89c0e0a897fe71cdd6741208ad3a5ff40a",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "f5382a00d22800cb16bc4e7088165c4818467c5f",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/ShaderModuleCachingTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "3cca776737c20b3b13d3bf10587b79cc1afeabde",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/ChainUtilsTests.cpp",
      "new_id": "819c6af1234113491c80d3f1fd987ec7ea9ce4c8",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/ChainUtilsTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "748218e2610d9baf64c7e514f5e57d6d12d6a30d",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/native/mocks/ShaderModuleMock.cpp",
      "new_id": "de47fcbd4e8de34184e51cdeff05cc6ae4028ff8",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/native/mocks/ShaderModuleMock.cpp"
    }
  ]
}
