)]}'
{
  "commit": "00b94fdae4d74ff22b076d26d3e19d804ec8cd20",
  "tree": "c1c7d2eff8ac50fe7b83b756b3c00dc5121e9509",
  "parents": [
    "1e3197f4759652f60f06b773b108d563b1f0eb50"
  ],
  "author": {
    "name": "Charlie Lao",
    "email": "cclao@google.com",
    "time": "Tue Jan 17 11:12:14 2023 -0800"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Jan 25 23:21:57 2023 +0000"
  },
  "message": "Vulkan: CommandProcessor::WaitForWorkComplete only if needed\n\nWhen async command queue enabled, there is another queue (mTask) in\nCommandProcessor object. When we wait for a queueSerial to finish, right\nnow we always flush everything from CommandProcessor (i.e, wait until\nmTask is empty), even though the work in mTask is unrelated to this\nqueueSerial that waiting for. With the work of previous CLs, now we can\nactually wait for mTask to empty only if there is still pending\nsubmission of queueSerial.\n\nThis CL also renames ComandProcessor::ensureNoPendingWork to\nwaitForQueueSerialToBeSubmitted to reflect what it does (it does not\nwait for GPU to finish).\n\nBug: b/261098465\nChange-Id: I0114dadd86a84f75bf8b71735f0adc0dbb9b6bf2\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4174873\nReviewed-by: Amirali Abdolrashidi \u003cabdolrashidi@google.com\u003e\nReviewed-by: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\nCommit-Queue: Charlie Lao \u003ccclao@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "ed6fe6d995bb7a52597db47b06f34ff9780a7cfe",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/CommandProcessor.cpp",
      "new_id": "5714810ca4b45f8dc19554035e336257beb12f7d",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/CommandProcessor.cpp"
    },
    {
      "type": "modify",
      "old_id": "f9581487896fd5337b06d17b4ec696c8bb0889f8",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/CommandProcessor.h",
      "new_id": "cce17b1bf32934caa2216187e42032bb9a6a3065",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/CommandProcessor.h"
    },
    {
      "type": "modify",
      "old_id": "4b4f035e6291367087a8e699013f56ee55133b0c",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/ContextVk.cpp",
      "new_id": "c64fa6ab7081b6ac68ca6a285b180631f35370bb",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/ContextVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "adc9ab05194e061272c1e83867237c6bb9537678",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/RendererVk.h",
      "new_id": "03fa7d3657ad739ecae73daa9d2fec60a76914b6",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/RendererVk.h"
    },
    {
      "type": "modify",
      "old_id": "8efac23d30c301aaca96edc6b7e79aa0a980553e",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/SemaphoreVk.cpp",
      "new_id": "8f704fc2e0c146dc0f0ad0890eb9bbd212a000ed",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/SemaphoreVk.cpp"
    }
  ]
}
