)]}'
{
  "commit": "3f5a9376dea63b041f604afef820651213272a9d",
  "tree": "6d733f4dcaed485f35a57e191e3c8336e03033ed",
  "parents": [
    "6a294b931ac942984bdeb350d608c93c0fef8cae"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Fri Jun 20 01:49:00 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Jun 20 01:49:00 2025 -0700"
  },
  "message": "[tint][spirv-writer] Add a KeepBindingArrayAsPointer transform.\n\nKeepBindingArrayAsPointer is a transform that ensures that binding_arrays\nare never stored by value but only used via a pointer to them. This is\nused to produce SPIR-V that\u0027s more similar to what drivers typically\ningest where OpTypeArray\u003cOpTypeImage\u003e is always kept as a pointer.\n\nNote that it doesn\u0027t handle function parameters so DirectVariableAccess\n(DVA) for handles must have run prior to this transform.\n\nThis mismatch between Tint IR and SPIR-V at the time of writing is\nbecause Tint IR disallows handle address space pointers as function\narguments, while \"idiomatic\" SPIR-V that drivers are used to use pointers\nto pass handle types as function arguments.\n\nBug: 393558555\nChange-Id: I2a37899b938dd773a6d991d6ebf58f30a3a6a5ca\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/247054\nReviewed-by: James Price \u003cjrprice@google.com\u003e\nAuto-Submit: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1bd116cf79942b0363468314bf5a3cf4195114fc",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.bazel",
      "new_id": "a4285dfda72b7f7265f2e0aa954426667b38abdd",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.bazel"
    },
    {
      "type": "modify",
      "old_id": "93f2fef4dcc08aae2ad85913f105fec6bd51685c",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.cmake",
      "new_id": "04f8809ba53d21773ae279f96efa7bf2e0d37878",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.cmake"
    },
    {
      "type": "modify",
      "old_id": "afbcfe558b2689d3529d88fbd84bd90fe63e9545",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/BUILD.gn",
      "new_id": "246b67769d5c552005adafb6c9dd9dc86d870f53",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/BUILD.gn"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "ef47bc25c0149c048a47b21806eb340b1bfc33f2",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.cc"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "8d3951c1eaab90d850d4329df0276759e869fe82",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b13368adeb80961ab501374b531fe99fa895de4c",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer_test.cc"
    },
    {
      "type": "modify",
      "old_id": "85fcd0e2e3cfe07a374ad19bcfa8d5264b98c9e2",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/raise.cc",
      "new_id": "7506b7eb8411497798e7dc6cec6747c85c9dce78",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/raise.cc"
    }
  ]
}
