)]}'
{
  "commit": "2ea40036336195a2d0e911bd722fbc1cbc2f1bf2",
  "tree": "ead638aec4f92bb171e1a5542042aeb963d94779",
  "parents": [
    "4c7e1fa5c3d988cca0e626d359d30b117b9c2822"
  ],
  "author": {
    "name": "Nathan Gauër",
    "email": "brioche@google.com",
    "time": "Fri Jul 19 17:48:21 2024 +0200"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Fri Jul 19 11:48:21 2024 -0400"
  },
  "message": "opt: split composite from array flattening (#5733)\n\n* opt: split composite from array flattening\r\n\r\nDXC has an option to flatten resource arrays. But when this option\r\nis not used, the resource arrays should be kept as-is.\r\nOn the other hand, when a struct contains resources, we MUST flatten is\r\nto be compliant with the Vulkan spec.\r\n\r\nBecause this pass flattens both types of resources, using a struct of\r\nresources automatically implied flattening arrays.\r\nBy adding those 2 new settings, we decide if the pass flattens only one type\r\nof resources, or both.\r\nNote: the flatten_arrays flag only impacts resource arrays.\r\nArrays of composites containing resources are still flattened.\r\n\r\nSince the API is considered stable, I added 2 new functions to create\r\npasses with one flag or the other, and kept the original behavior as-is.\r\n\r\nRelated to https://github.com/microsoft/DirectXShaderCompiler/issues/6745\r\n\r\nSigned-off-by: Nathan Gauër \u003cbrioche@google.com\u003e\r\n\r\n* add commandline options\r\n\r\nSigned-off-by: Nathan Gauër \u003cbrioche@google.com\u003e\r\n\r\n* clang-format\r\n\r\nSigned-off-by: Nathan Gauër \u003cbrioche@google.com\u003e\r\n\r\n---------\r\n\r\nSigned-off-by: Nathan Gauër \u003cbrioche@google.com\u003e",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "216e68ade57c4b2a94e796efcc37f1c0e37b3a0b",
      "old_mode": 33188,
      "old_path": "include/spirv-tools/optimizer.hpp",
      "new_id": "fe02ec7d70b8beb486831e7feded0b553c6c01a5",
      "new_mode": 33188,
      "new_path": "include/spirv-tools/optimizer.hpp"
    },
    {
      "type": "modify",
      "old_id": "2c0f4829f2b30f1c6c52b90c1d0d9ea5cc478587",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa.cpp",
      "new_id": "124a3d3a8eaa63d1811e77333d8b2b8615772c18",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa.cpp"
    },
    {
      "type": "modify",
      "old_id": "901be3e98bcc4e5bf0bc5236d374e7bc201900bc",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa.h",
      "new_id": "d6af4df597ed1cc4ae671d1312c398d83ba7a8cb",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa.h"
    },
    {
      "type": "modify",
      "old_id": "dba3de9c051540b88d541388b023f71f810dfeed",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa_util.cpp",
      "new_id": "62d947646741ff21c77d72d387086bbfa9029b6e",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa_util.cpp"
    },
    {
      "type": "modify",
      "old_id": "2f45c0c2f4f9f774b339937824e43aa2a84f1bf5",
      "old_mode": 33188,
      "old_path": "source/opt/desc_sroa_util.h",
      "new_id": "04233565b19c6c15c86d07962380a534ed6f8307",
      "new_mode": 33188,
      "new_path": "source/opt/desc_sroa_util.h"
    },
    {
      "type": "modify",
      "old_id": "4add68a232d5696e9fbe2b7fc8a1993eb42aeaa2",
      "old_mode": 33188,
      "old_path": "source/opt/optimizer.cpp",
      "new_id": "4523d627e070a853482efd291415788be8eed532",
      "new_mode": 33188,
      "new_path": "source/opt/optimizer.cpp"
    },
    {
      "type": "modify",
      "old_id": "5c166d83f7196aac17357ce9ea2acee5aac08faf",
      "old_mode": 33188,
      "old_path": "test/opt/desc_sroa_test.cpp",
      "new_id": "f86fa3a8fab16ff9e47002c20b4050ab62939914",
      "new_mode": 33188,
      "new_path": "test/opt/desc_sroa_test.cpp"
    },
    {
      "type": "modify",
      "old_id": "f8456d71440d5691c6a80dde49a78ba69e764528",
      "old_mode": 33188,
      "old_path": "tools/opt/opt.cpp",
      "new_id": "3b8d5fc236326c48cac52ab8b71163afccdf2bd1",
      "new_mode": 33188,
      "new_path": "tools/opt/opt.cpp"
    }
  ]
}
