)]}'
{
  "commit": "f598fd25c0747deee07960dfd7166a8d7679e4d4",
  "tree": "1b9ae3116ed27cace0b638d715eb2c3b524cdaa5",
  "parents": [
    "0ec791e2a6573a55f5d6697ae3631a66030a6624"
  ],
  "author": {
    "name": "Lei Zhang",
    "email": "antiagainst@google.com",
    "time": "Mon May 08 07:48:57 2023 -0700"
  },
  "committer": {
    "name": "Lei Zhang",
    "email": "antiagainst@google.com",
    "time": "Tue Jun 13 21:17:32 2023 -0700"
  },
  "message": "[metal] Use staging buffer for argument buffers and update sources\n\nThis commit switches the Metal HAL driver to use a staging buffer\nfor recording argument buffers and uploading buffer update source\ndata. This avoids creating lots of small-sized buffers like we\ndid previously, and avoids using command buffer completion callback\nto handle their lifetime.\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0b0fc22f643b69109a487ef4e932bb9a090a2f6b",
      "old_mode": 33188,
      "old_path": "experimental/metal/CMakeLists.txt",
      "new_id": "9552b585b68fa6258b4675e839838e4dcfb418b3",
      "new_mode": 33188,
      "new_path": "experimental/metal/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "0a5112b4f6ca8a63bad4b8ee149ec3ac008d51a9",
      "old_mode": 33188,
      "old_path": "experimental/metal/api.h",
      "new_id": "b2c9728f2621fc0c2b7c898cf20ea11085ba6d70",
      "new_mode": 33188,
      "new_path": "experimental/metal/api.h"
    },
    {
      "type": "modify",
      "old_id": "09c1478c17b20a1cab9783f5c0d416955242919f",
      "old_mode": 33188,
      "old_path": "experimental/metal/direct_command_buffer.h",
      "new_id": "3c929e55d2540cb729bf221c12d02d53d789d063",
      "new_mode": 33188,
      "new_path": "experimental/metal/direct_command_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "7117969ff24aeb50f9921c7ea59aaa1f5b9f0248",
      "old_mode": 33188,
      "old_path": "experimental/metal/direct_command_buffer.m",
      "new_id": "a6f3fbfc1b22f44de2838f4e044f73ba3c790550",
      "new_mode": 33188,
      "new_path": "experimental/metal/direct_command_buffer.m"
    },
    {
      "type": "modify",
      "old_id": "3ce0f33074a85176330b80af99c3011343bd6b86",
      "old_mode": 33188,
      "old_path": "experimental/metal/metal_device.m",
      "new_id": "70a775fb9300eb5d0974e418023ff06014f79b61",
      "new_mode": 33188,
      "new_path": "experimental/metal/metal_device.m"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c46df94e2471cd19434cbbbed6d81f3e39be165f",
      "new_mode": 33188,
      "new_path": "experimental/metal/staging_buffer.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "08791b4678e2f9f06c0a180fcf5464939de66b32",
      "new_mode": 33188,
      "new_path": "experimental/metal/staging_buffer.m"
    }
  ]
}
