)]}'
{
  "commit": "398295e3593dfb25c890d532b6d06e17d08dcd1d",
  "tree": "8ac5b60ab79619558163eb9cb395f92b589b8724",
  "parents": [
    "c0bc481ee3f620236bfbaa4adfb0901749a49eac"
  ],
  "author": {
    "name": "Lokbondo Kung",
    "email": "lokokung@google.com",
    "time": "Wed Jul 08 17:13:07 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jul 08 17:13:07 2026 -0700"
  },
  "message": "[wire] Separate the client Device alive state into lost and destroyed.\n\n- We separate the alive state on the client Device into two separate\n  states to have a clear distinction between client-side versus\n  server-side states. The destroyed state is always set as soon as\n  the client-side calls device.Destroy(), whereas the lost state is\n  only set once the lost callback has been called. This distinction\n  will allow us to handle synchronous (buffer mapping) and\n  asynchronous (pipeline creation) APIs differently when applicable.\n- This change also removes the check for Surfaces because the call\n  is actually supposed to generate a validation error which can only\n  happen by sending the command to the server right now.\n\nBug: 521662708\nChange-Id: I044f4ee1d667b9a4b7065af1e552e4d9ee84c864\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/322595\nReviewed-by: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Kai Ninomiya \u003ckainino@chromium.org\u003e\nCommit-Queue: Loko Kung \u003clokokung@google.com\u003e\nAuto-Submit: Loko Kung \u003clokokung@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1192fb29da3aadfcbd9cbd069bb5f4a4c5741cb8",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/wire/WireInjectSurfaceTests.cpp",
      "new_id": "754ff0940f3a31f9ad0cd141f8bfb38573d98047",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/wire/WireInjectSurfaceTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "df978635a96bad4c53d06f60e772bda3dbe0b260",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Buffer.cpp",
      "new_id": "93c3db485bdb36b0c50c4511aab5390a9cbc88df",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Buffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "39cd0bccea108a3c6736ceb2002564026be326bd",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Device.cpp",
      "new_id": "320e8eb012cd837406f33b8a9ce5f229d07da05d",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "ca09b427eb6d961e64af82ff2111bed374f76bfc",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Device.h",
      "new_id": "88d0cca941e5bc3d61d0b998d5d7ed5791152053",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Device.h"
    },
    {
      "type": "modify",
      "old_id": "28f8e314cb7ce5142f02af23a6a8547490229e02",
      "old_mode": 33188,
      "old_path": "src/dawn/wire/client/Surface.cpp",
      "new_id": "cc4b5b370ef9c8f1571c6caa795e2a09279af903",
      "new_mode": 33188,
      "new_path": "src/dawn/wire/client/Surface.cpp"
    }
  ]
}
