)]}'
{
  "commit": "f24ea41e11e03eb07af9c49dde088ee90c3fb267",
  "tree": "10a7029157b05e1cbdacd87824bc84b83357f3dc",
  "parents": [
    "7b0c78bac0a7c342c3b9df4809af4f10f0123a6b"
  ],
  "author": {
    "name": "Charlie Lao",
    "email": "cclao@google.com",
    "time": "Mon Jul 31 11:12:44 2023 -0700"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Aug 03 18:45:54 2023 +0000"
  },
  "message": "Embed sh::ShaderVariable data member into gl::LinkedUniform\n\nProgramExecutable::load and save function is load/save each individual\ndata members. Uniform can be quite large as shown in some app traces and\nthis causes performance problem even when program memory has a cache\nhit. This CL flattens gl::LinkedUniform structure by embedding\nsh::ShaderVariable data members so that we can remove unrelated members\nand also prepare for further optimization in future CLs.\n\nBug: b/275102061\nChange-Id: I7c18cb73e359fba7cd6375b4b1635e9040ef140d\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/4735152\nReviewed-by: Roman Lavrov \u003cromanl@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": "c29fcda54550af78fc3c3627c0e90ca70354fa13",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Program.cpp",
      "new_id": "d3aabfad6e42cbb0e01a23152b402806dabe4686",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Program.cpp"
    },
    {
      "type": "modify",
      "old_id": "ee092a21d2b005e156e0c2de21306c4f65e9d764",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Program.h",
      "new_id": "a133b4f709aaeaf1a0ab8bbdcd3e5b28608eacee",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Program.h"
    },
    {
      "type": "modify",
      "old_id": "0cd26794f5a76903eb66fd7df57862f0eb52dc17",
      "old_mode": 33188,
      "old_path": "src/libANGLE/ProgramExecutable.cpp",
      "new_id": "1c46fb7d0e956e9f72509571bb92286780eacc3a",
      "new_mode": 33188,
      "new_path": "src/libANGLE/ProgramExecutable.cpp"
    },
    {
      "type": "modify",
      "old_id": "003e99e8e9f22057461a52445d36ac358de6f2c1",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Uniform.cpp",
      "new_id": "93c76c5b5738b9867d110545486da14ea1d36003",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Uniform.cpp"
    },
    {
      "type": "modify",
      "old_id": "48ecca6834241926b10b6e78fea1d333ea197832",
      "old_mode": 33188,
      "old_path": "src/libANGLE/Uniform.h",
      "new_id": "d7833c609caf9eaff9a0df0176697941b8419b0f",
      "new_mode": 33188,
      "new_path": "src/libANGLE/Uniform.h"
    },
    {
      "type": "modify",
      "old_id": "806e8f4abfafa8e1e60838c5624464797682694c",
      "old_mode": 33188,
      "old_path": "src/libANGLE/queryutils.cpp",
      "new_id": "ec2d7d324cad625668378b1e32c360eb209dddba",
      "new_mode": 33188,
      "new_path": "src/libANGLE/queryutils.cpp"
    }
  ]
}
