)]}'
{
  "commit": "31641b8e7269b5afc8cac86e2607909df61a99d7",
  "tree": "6efe0a11eb69c1c0cff915ae07dfd7aa43c35eda",
  "parents": [
    "82654e5d51b3b4e7f56a5edd68892ba63ed576e5"
  ],
  "author": {
    "name": "Shahbaz Youssefi",
    "email": "syoussefi@chromium.org",
    "time": "Sat Jun 05 02:17:47 2021 -0400"
  },
  "committer": {
    "name": "Angle LUCI CQ",
    "email": "angle-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Jun 10 18:37:22 2021 +0000"
  },
  "message": "Declare specialization constants in the AST\n\nA new qualifier (EvqSpecConst) is added so that specialization constants\ncan be declared in tree.\n\nThis enables TVariable references to specialization constants to be\nvalidated, which were in fact invalid as every reference declared a new\nvariable.  That is fixed.\n\nBug: angleproject:4889\nChange-Id: I1711e41cbc5a1260843d2d004d3568bdae11e963\nReviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/2941451\nReviewed-by: Tim Van Patten \u003ctimvp@google.com\u003e\nReviewed-by: Jamie Madill \u003cjmadill@chromium.org\u003e\nCommit-Queue: Shahbaz Youssefi \u003csyoussefi@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "b60be9a89c4341ccc47edcf6981f8827515522d0",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/BaseTypes.h",
      "new_id": "429a01cc9bbfb36ded67bce18291959f06cfeded",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/BaseTypes.h"
    },
    {
      "type": "modify",
      "old_id": "087edbf09de620139322940b64d04dde3b706151",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/IntermNode.cpp",
      "new_id": "5e5be591b7e637cda30a145b583e0b1425b3fce8",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/IntermNode.cpp"
    },
    {
      "type": "modify",
      "old_id": "f1ca1e7527a613136d691c239b3da68898b5e06a",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/OutputGLSLBase.cpp",
      "new_id": "2f562dfb21274324cd3a6d20e99644afaceb5863",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/OutputGLSLBase.cpp"
    },
    {
      "type": "modify",
      "old_id": "8dbb3935eb6be7ad8f995d0926b5b51f09c85b1f",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/OutputGLSLBase.h",
      "new_id": "1da666e0c1a9256d7dbc1892820ef64ffb27cfb7",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/OutputGLSLBase.h"
    },
    {
      "type": "modify",
      "old_id": "3419eb8e26472e2b07b149ab8059b66a00f2ebcc",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/OutputVulkanGLSL.cpp",
      "new_id": "0725b0c2aa01180fe5ffaad18565b43b0cb447b6",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/OutputVulkanGLSL.cpp"
    },
    {
      "type": "modify",
      "old_id": "921aad18281e0a247f77488fe31869894e057400",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/OutputVulkanGLSL.h",
      "new_id": "6cb57a1bea0aa56a1c545782ce96c3f0f45249cf",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/OutputVulkanGLSL.h"
    },
    {
      "type": "modify",
      "old_id": "5279ae118f0f166f21f76e31e7e40eec2f860341",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/TranslatorVulkan.cpp",
      "new_id": "294c501b001d91fb7df7171cd9230afaf0b0ca10",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/TranslatorVulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "e4a65812740c0af2e3200331b2fc6da3fb3f75ea",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/ValidateAST.cpp",
      "new_id": "066afb08cf88166ca501e20705ae5aa2b3fac0e7",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/ValidateAST.cpp"
    },
    {
      "type": "modify",
      "old_id": "8ac44cddea219ccb1d5a50251e40993066c7f263",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/ValidateAST.h",
      "new_id": "2fad928c3cd283b3aa9296234dd0bccf7c7a9389",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/ValidateAST.h"
    },
    {
      "type": "modify",
      "old_id": "25b48aee65ec0f3f04a84f9027d818719187d19f",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/tree_util/SpecializationConstant.cpp",
      "new_id": "9f4a233168b7254b9a3ab1f935d9d95ea0c3201f",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/tree_util/SpecializationConstant.cpp"
    },
    {
      "type": "modify",
      "old_id": "f9db84fd32e5edcae24f79aa9027232382dcda99",
      "old_mode": 33188,
      "old_path": "src/compiler/translator/tree_util/SpecializationConstant.h",
      "new_id": "e4ac8c30e25051413113b0ea495c20a6a606321d",
      "new_mode": 33188,
      "new_path": "src/compiler/translator/tree_util/SpecializationConstant.h"
    },
    {
      "type": "modify",
      "old_id": "7b4532b5d8fad910b6c5aeedb550a1e9a26a81b6",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/vk_helpers.cpp",
      "new_id": "aa196b9dc4bdef454e58a08735ad0ab0069d88d3",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/vk_helpers.cpp"
    },
    {
      "type": "modify",
      "old_id": "4e4bff7406423d7653f7ef9447fbeeb0cb7d2abd",
      "old_mode": 33188,
      "old_path": "src/libANGLE/renderer/vulkan/vk_utils.h",
      "new_id": "8c2c220ab4e6e5f188500d8407c582b9a1550147",
      "new_mode": 33188,
      "new_path": "src/libANGLE/renderer/vulkan/vk_utils.h"
    }
  ]
}
