)]}'
{
  "commit": "18f63b4e16c7fa2e77cbc5d7641a1a2264e9aa34",
  "tree": "804f46d298756a335c9084ccf6681fa81c40f535",
  "parents": [
    "f50c22b9985e5162ece8afe326fb14c8c6b161b6"
  ],
  "author": {
    "name": "Dawn Autoroller",
    "email": "dawn-autoroll@skia-public.iam.gserviceaccount.com",
    "time": "Wed Jul 21 15:41:29 2021 +0000"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jul 21 15:41:29 2021 +0000"
  },
  "message": "Metal: Handle failure to allocate an MTLCommandBuffer\n\nThis requires restructuring the logic around MTLCommandBuffer allocation\nso that GetPendingCommandContext is guaranteed to never fail. Logic in\nthe Metal backend is now similar to the Vulkan backend: the\nMTLCommandBuffer is prepared at device initialization time, or after a\nsubmission, such that it is always valid.\n\nA new mUsed boolean is added to CommandRecordingContext to say whether\nany commands have been recording. Previously mCommandBuffer was used for\nthat purpose, but it is now always non-null.\n\nBug: dawn:801\n\nChange-Id: I5dc6747d1e6d538054010cc50533a03a49af921a\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/58720\nAuto-Submit: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Stephen White \u003csenorblanco@chromium.org\u003e\nReviewed-by: Austin Eng \u003cenga@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e711f7133a9a8b20071a63cb220ced6e293457b4",
      "old_mode": 33188,
      "old_path": "src/common/NonCopyable.h",
      "new_id": "61f15cabcff2b4d3c140178434406c2bad560467",
      "new_mode": 33188,
      "new_path": "src/common/NonCopyable.h"
    },
    {
      "type": "modify",
      "old_id": "a0047a831adfca71d5c38e49a654c2f1431f0987",
      "old_mode": 33188,
      "old_path": "src/dawn_native/metal/CommandRecordingContext.h",
      "new_id": "5189a53e745a975dfcd28da86c4222505e691ff5",
      "new_mode": 33188,
      "new_path": "src/dawn_native/metal/CommandRecordingContext.h"
    },
    {
      "type": "modify",
      "old_id": "decb6506763987cb939e9b51ac2b5f01ba39cb10",
      "old_mode": 33188,
      "old_path": "src/dawn_native/metal/CommandRecordingContext.mm",
      "new_id": "f07c48c7ae7ab94a06fc56c82396162924115fff",
      "new_mode": 33188,
      "new_path": "src/dawn_native/metal/CommandRecordingContext.mm"
    },
    {
      "type": "modify",
      "old_id": "442741809bf37d35dbdf2aa5a4e3a15e98886a84",
      "old_mode": 33188,
      "old_path": "src/dawn_native/metal/DeviceMTL.h",
      "new_id": "d1881e51e697572a954498e7df164d8baa0b7161",
      "new_mode": 33188,
      "new_path": "src/dawn_native/metal/DeviceMTL.h"
    },
    {
      "type": "modify",
      "old_id": "0359698a25008d27b3772ebd40de20e744a40d2c",
      "old_mode": 33188,
      "old_path": "src/dawn_native/metal/DeviceMTL.mm",
      "new_id": "359dfda4d1ddc94b6470cde38697ba37d39d64d6",
      "new_mode": 33188,
      "new_path": "src/dawn_native/metal/DeviceMTL.mm"
    },
    {
      "type": "modify",
      "old_id": "bfa33ac2c1587d2d1cb6eccabb4ee5e89796ebba",
      "old_mode": 33188,
      "old_path": "src/dawn_native/metal/QueueMTL.mm",
      "new_id": "ad1fad6f0e953ae6e1eee06709fb80f7ec3810b7",
      "new_mode": 33188,
      "new_path": "src/dawn_native/metal/QueueMTL.mm"
    },
    {
      "type": "modify",
      "old_id": "47632395ca45c8797e702307dbcda733b82e4053",
      "old_mode": 33188,
      "old_path": "src/tests/white_box/MetalAutoreleasePoolTests.mm",
      "new_id": "1202307e8534980ad6f8c1aece0224443f8876b6",
      "new_mode": 33188,
      "new_path": "src/tests/white_box/MetalAutoreleasePoolTests.mm"
    }
  ]
}
