)]}'
{
  "commit": "1ac84c800aa8d5f2d89154ef6960b7ce40e80392",
  "tree": "f5f9fcb5446f59ddf72fb4803c1fbebb720ff506",
  "parents": [
    "2ea3b76dff86887d82258a25e2c59d4ff7d2906b"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Wed Sep 03 09:15:31 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Sep 03 09:15:31 2025 -0700"
  },
  "message": "[dawn][native] Update typeId metadata for dynamic binding arrays.\n\nThis metadata is used inside shaders to know what to return for\nhasBinding\u003cT\u003e(resource_binding, iu32) for the various kinds of T.\nThis CL adds all the mechanisms to track and update the typeIds but only\nmakes the difference between \"empty\" and \"texture_2d\u003cf32\u003e\".\n\n - In Textures, add a map of all the (DynamicArrayState, slot) they are\n   referenced in, and maintain it as DynamicArrayStates are created and\n   destroyed. (this map contains WeakRefs to the DynamicArrayState to\n   break what would otherwise be a ref cycle),\n - Add support for Hash to WeakRef for the above map.\n - Notify the DynamicArrayState on texture.Pin/Unpin so that it can\n   track the \"pinned\" status of each slot.\n - In DynamicArrayState maintain the tint::ResourceType for each slot\n   and return a list of updates to the metadata that backends must\n   perform before using the dynamic binding array.\n - In the Vulkan backend, implement this update of the binding array\n   metadata.\n - Fix an issue in Vulkan where setting a destroyed texture in the\n   dynamic binding array at creation, would cause a VK_NULL_HANDLE to be\n   written in vkWriteDescriptorSets, which is invalid.\n - Add a bunch of tests that hasBinding works correctly to exercise the\n   newly added code paths.\n\nBug: 435317394\nChange-Id: Ie5a4568f033cb3f8d0d7dac29a9575514564a32e\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/259875\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\nReviewed-by: Geoff Lang \u003cgeofflang@chromium.org\u003e\nAuto-Submit: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "5322b5974492f1fff680540b658d38c65dc3250d",
      "old_mode": 33188,
      "old_path": "src/dawn/common/WeakRef.h",
      "new_id": "16adf5372f2a245c1ad5718206790c9eed36da3d",
      "new_mode": 33188,
      "new_path": "src/dawn/common/WeakRef.h"
    },
    {
      "type": "modify",
      "old_id": "860dbbdefade384ef842ec02b9249866064c3231",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindGroup.cpp",
      "new_id": "a61efcc52f596753fc778296ab16498d6e1de119",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindGroup.cpp"
    },
    {
      "type": "modify",
      "old_id": "9144ffc9332ea4a70053bab366e9b26759f09805",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindGroup.h",
      "new_id": "e98e948ff20f7789aab68ccd85f611f3f33b2b2a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindGroup.h"
    },
    {
      "type": "modify",
      "old_id": "d5902d623c5002218ba7d038c4eff6ca93e9ab32",
      "old_mode": 33188,
      "old_path": "src/dawn/native/DynamicArrayState.cpp",
      "new_id": "64bc9b74af0987e11986ebdf7e9fec6526f64407",
      "new_mode": 33188,
      "new_path": "src/dawn/native/DynamicArrayState.cpp"
    },
    {
      "type": "modify",
      "old_id": "1ddeae798c598f774486a41dba8582e16ebc13a6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/DynamicArrayState.h",
      "new_id": "b33094924a360f0825a0754a484d157ed9791e9d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/DynamicArrayState.h"
    },
    {
      "type": "modify",
      "old_id": "d4ce94b4e9ada5876eae4873303b2001bbdf62d4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Texture.cpp",
      "new_id": "e61fc0f8ff4afeb220ba8696bdde4e4697ba1e0e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Texture.cpp"
    },
    {
      "type": "modify",
      "old_id": "4510c9f73f93309acc7fff8e8f80b2ed697f9db5",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Texture.h",
      "new_id": "d1f88787827db576c0757cd194a5c674c214a382",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Texture.h"
    },
    {
      "type": "modify",
      "old_id": "c375e2894f8cfe5936ab8c26595bca44c25857ed",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupVk.cpp",
      "new_id": "da70d2d7aa5d97d008ec2927e68c4e34e8b45226",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "eba7850c2bb7da0b7305023c6c6c487c3af2d52f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.cpp",
      "new_id": "5ff6edddb95ebb9c2ed3d824a479316c601bfa96",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "156cb004d6989845d6a20895b89163857d0692d9",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BindingArrayTests.cpp",
      "new_id": "fa71a05d6655fd2d13f341ca9abccc5f3bd81e77",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BindingArrayTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "96fde447e4ce18151c5cedcdcf9f5affda1b2e1f",
      "old_mode": 33188,
      "old_path": "src/tint/api/common/resource_type.h",
      "new_id": "0d23267fc8fbe8fd6dea4387e9f90c86b0ba9763",
      "new_mode": 33188,
      "new_path": "src/tint/api/common/resource_type.h"
    }
  ]
}
