)]}'
{
  "commit": "ecfeede6014c595d3c46065d442c4bd89dc00dae",
  "tree": "690d943fd1d37bc0d942c74205386a77f1377bc7",
  "parents": [
    "b16c5867010e82e8375751721f3f8c29073909e9"
  ],
  "author": {
    "name": "Ben Clayton",
    "email": "bclayton@google.com",
    "time": "Wed May 08 08:51:01 2019 +0100"
  },
  "committer": {
    "name": "Chris Forbes",
    "email": "chrisforbes@google.com",
    "time": "Thu May 09 01:06:17 2019 +0000"
  },
  "message": "SpirvShader: Implement OpControlBarrier.\n\nUse the new coroutines to yield when hitting a ControlBarrier.\nA barrier pushes the shader subgroup to the end of the compute invocation queue, which forces all subgroups to be brought to the fence before continuing.\n\nTests: dEQP-VK.spirv_assembly.instruction.compute.workgroup_memory.*\nTests: dEQP-VK.subgroups.basic.compute.*\nTests: dEQP-VK.compute.basic.*\n\nBug: b/131672705\nBug: b/132232716\nChange-Id: Id78be9ce9d9455cb2cb7254482568985845b8b6a\nReviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/30851\nPresubmit-Ready: Ben Clayton \u003cbclayton@google.com\u003e\nTested-by: Chris Forbes \u003cchrisforbes@google.com\u003e\nReviewed-by: Chris Forbes \u003cchrisforbes@google.com\u003e\nReviewed-by: Nicolas Capens \u003cnicolascapens@google.com\u003e\nKokoro-Presubmit: kokoro \u003cnoreply+kokoro@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "361cbb19ca31ec565852c6b5fe68f5b7ced3c1bd",
      "old_mode": 33188,
      "old_path": "src/Pipeline/ComputeProgram.cpp",
      "new_id": "081831c8d59fcd83719ff725c5933cf37c92ec68",
      "new_mode": 33188,
      "new_path": "src/Pipeline/ComputeProgram.cpp"
    },
    {
      "type": "modify",
      "old_id": "b2a3785acf710229a951392ce679869c69b6c830",
      "old_mode": 33188,
      "old_path": "src/Pipeline/ComputeProgram.hpp",
      "new_id": "762a44bcb86a138fc76c4279528777b96c36157f",
      "new_mode": 33188,
      "new_path": "src/Pipeline/ComputeProgram.hpp"
    },
    {
      "type": "modify",
      "old_id": "020309ef3a901eed4b3d2071af57171bcc35e74b",
      "old_mode": 33188,
      "old_path": "src/Pipeline/SpirvShader.cpp",
      "new_id": "ae720a28eb9fc8226a7126c0e9cd968c2945690c",
      "new_mode": 33188,
      "new_path": "src/Pipeline/SpirvShader.cpp"
    },
    {
      "type": "modify",
      "old_id": "cb37ccef037b7677fea953e9f86797445e34eabc",
      "old_mode": 33188,
      "old_path": "src/Pipeline/SpirvShader.hpp",
      "new_id": "1eaa6f8d0adb4b3e964d654ea8643d7bca0d51c7",
      "new_mode": 33188,
      "new_path": "src/Pipeline/SpirvShader.hpp"
    }
  ]
}
