)]}'
{
  "commit": "ecc35205ee51aed5f59c6b9ebc7107f8efa9b9a5",
  "tree": "b1c7061438c87ec75fcb154a97eaf6f78489330d",
  "parents": [
    "ea1cea778c4a2312ef1b963b29a62fe595dd4df8"
  ],
  "author": {
    "name": "Shahbaz Youssefi",
    "email": "syoussefi@chromium.org",
    "time": "Thu Jan 25 23:58:25 2024 -0500"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Feb 01 17:50:30 2024 +0000"
  },
  "message": "Move uniform block dirty bits to State\n\nWhen glUniformBlockBinding changes the mapping from a program uniform\nblock to a buffer binding, all contexts in the share group need to\nreprocess the affected block index.  Prior to this change, the dirty\nbits that indicated which blocks have their mapping redefined were\nplaced in the program executable, and were reset by the first context\nthat processed them.  As a result, the other contexts in the share group\nwhere not aware of such modifications.\n\nSimilarly, when a buffer changed in one context, the mapped program\nblocks were marked dirty, with similar cross-context issues.\n\nIn this change, the dirty bits are moved to State, so every context\nwould react to these changes.\n\nBug: angleproject:8493\nChange-Id: I5712002224cbc4a576bf2ac46e8e75f26ebc5b2a\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/5238991\nReviewed-by: Geoff Lang \u003cgeofflang@chromium.org\u003e\nReviewed-by: Charlie Lao \u003ccclao@google.com\u003e\nCommit-Queue: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "272ad8b2a9eefcde21c145f5bff5bb0fe1bcaca5",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Context.cpp",
      "new_id": "ebcf7e9c5b6dfdea484c466d5e5308d6ccc27d21",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Context.cpp"
    },
    {
      "type": "modify",
      "old_id": "f7edcb9d74dad78c0a5a9240526cf3057b061d0c",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Context.h",
      "new_id": "49dc8c5006e4c36b39ba42dbb2ce44f094783baf",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Context.h"
    },
    {
      "type": "modify",
      "old_id": "1c5f974b7fd3a7045bd97ff1832713db628fcc98",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Observer.h",
      "new_id": "71726b31a7a7bfacb9ffdf94b1636c5075055a6b",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Observer.h"
    },
    {
      "type": "modify",
      "old_id": "d4977b496f0f459b26cf283b0ec739643f3768a7",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Program.cpp",
      "new_id": "2dd6dc17261f2c2ccb7ae0825f35b492269bfab6",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Program.cpp"
    },
    {
      "type": "modify",
      "old_id": "7170b7f8152d57af39586febe5aadbeb41791f74",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramExecutable.cpp",
      "new_id": "8aff3ce92161c705f525a357ba0b663f8d80ad2e",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramExecutable.cpp"
    },
    {
      "type": "modify",
      "old_id": "bdc499b93a5227999356affd8f26b7090bbe0dae",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramExecutable.h",
      "new_id": "caa35a353d17c2c38f8242c7ec93aeb43027bfb3",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramExecutable.h"
    },
    {
      "type": "modify",
      "old_id": "dc2d078007c6fa730c4be98812887624c15acd28",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramPipeline.cpp",
      "new_id": "f43b6948f345c125eb2305907010400b17cb50d1",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramPipeline.cpp"
    },
    {
      "type": "modify",
      "old_id": "1163fb8dda3de5732e1136da1c68da41180dd492",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramPipeline.h",
      "new_id": "df4a56a62c9a7d1a8f1e5ee0c8c130160d8a3126",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramPipeline.h"
    },
    {
      "type": "modify",
      "old_id": "fad01de05c05fbe1a8ff59b2791178634a31a9c2",
      "old_mode": 33188,
      "old_path": "src/libANGLE/State.cpp",
      "new_id": "6b0adeba62891567ab4ea4258749c32e632b9f9b",
      "new_mode": 33188,
      "new_path": "src/libANGLE/State.cpp"
    },
    {
      "type": "modify",
      "old_id": "2c7734348082e3c45d7a761527a7ec852f3f1e6e",
      "old_mode": 33188,
      "old_path": "src/libANGLE/State.h",
      "new_id": "997b928cd509e8ac640f4407e57932bb31d6cdf4",
      "new_mode": 33188,
      "new_path": "src/libANGLE/State.h"
    },
    {
      "type": "modify",
      "old_id": "4b30ff08b5783eafad0448efd514f83797db4e88",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/ContextVk.cpp",
      "new_id": "aac34c6736d1121cf364d105d4e81ef97a4e870e",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/ContextVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "19dcf0c15cbb545183752ee436f9114db3c3cbd3",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/ProgramExecutableVk.h",
      "new_id": "3fec52de5b9c72b13612edaa2316f156b0172724",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/ProgramExecutableVk.h"
    },
    {
      "type": "modify",
      "old_id": "85daf5508b4fee221cce64f2c84122ebfc8a9d20",
      "old_mode": 33188,
      "old_path": "src/tests/angle_end2end_tests_expectations.txt",
      "new_id": "88904fddccb09ce70b5718fcbe1f5c148e9f44de",
      "new_mode": 33188,
      "new_path": "src/tests/angle_end2end_tests_expectations.txt"
    }
  ]
}
