)]}'
{
  "commit": "fdbdca9263a4c09dbfb4a51c76e3e9d9f52bc504",
  "tree": "da0ae5ff5ad515b2ef834aa31ae10a0b82c30dce",
  "parents": [
    "ce138e2c2d6992b31ff4cd2e955904637785a881"
  ],
  "author": {
    "name": "Jason Simmons",
    "email": "jsimmons@google.com",
    "time": "Mon Jun 29 16:17:59 2026 -0700"
  },
  "committer": {
    "name": "Jason Simmons",
    "email": "jsimmons@google.com",
    "time": "Tue Jun 30 08:50:01 2026 -0700"
  },
  "message": "Generate bindings for uniforms that are not wrapped in a struct\n\nGlslang no longer assigns bindings to loose uniforms that are not part\nof a struct.\n(see https://github.com/KhronosGroup/glslang/pull/4066)\n\nHowever, Flutter depends on the previous behavior.\n\nBy default the spirv-cross Metal back end will set the indexes of\nuniforms based on the order in which they are used within the shader.\nBut Flutter\u0027s runtime shader API requires that indexes be set based on\nwhere they were declared in the shader.  So ImpellerC\u0027s Metal back end\nremaps the uniforms to the desired locations by calling the spirv-cross\nCompilerMSL::add_msl_resource_binding API.\n\nCompilerMSL::add_msl_resource_binding identifies each uniform by its\nbinding.  Flutter supports non-struct uniforms on Metal, and thus\nFlutter requires that every uniform have a unique binding so that it\ncan perform the remapping.\n\nThis patch restores the legacy behavior where bindings are assigned to\nall uniforms regardless of whether they are structs.\n\nChange-Id: I93e730c21772a19e72af8db77247df1184faaee8\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "f37a070d742d5473af1cd3f4ca11e4a28447266e",
      "old_mode": 33188,
      "old_path": "glslang/MachineIndependent/iomapper.cpp",
      "new_id": "23cc36080806d76a3ddabd72daf09c1ba5932975",
      "new_mode": 33188,
      "new_path": "glslang/MachineIndependent/iomapper.cpp"
    },
    {
      "type": "modify",
      "old_id": "b297cab59fc7176d82ce89a6146103d0305587e4",
      "old_mode": 33188,
      "old_path": "glslang/MachineIndependent/iomapper.h",
      "new_id": "05727b8084a35926f267fd76a2ceaa48afb3abcb",
      "new_mode": 33188,
      "new_path": "glslang/MachineIndependent/iomapper.h"
    }
  ]
}
