)]}'
{
  "commit": "bfab4a89d0e65be2d7ad4c9daa5a34496f517d8e",
  "tree": "676fb940b3c603c0f2f5b39607069bde46004a7e",
  "parents": [
    "c8cdd20958db4c72608211de0bca1f48df0fb6f8"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Mon Sep 22 19:55:49 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Mon Sep 22 19:55:49 2025 -0700"
  },
  "message": "[dawn][native] Add DynamicArrayState default bindings\n\nThe default bindings are used instead of the dynamic array element when\n!hasBinding\u003cT\u003e. They are inserted at the end of the dynamic binding\narray, after all of the slots for the users\u0027 bindings. This CL:\n\n - Adds creation of all 26 default bindings for\n   wgpu::DynamicBindingKind::SampledTexture. This is cached on a\n   DynamicArrayDefaultBindings object.\n - Makes the DynamicArrayDefaultBindings object part of the device so it\n   can be reused between bindgroups.\n - Inserts the default bindings at the end of the DynamicArrayState\n   bindings.\n    - This requires updating the Vulkan backend to reserve enough space\n      for the additional bindings.\n    - Separately keep track of the API size of the DynamicArrayState\n      since mBindings now also contains default bindings.\n    - Changes the logic in DynamicArrayState metadata updates to only do\n      updates for the user bindings.\n      - Updates the Vulkan backend to handle empty metadata updates.\n - Pass to Tint the order in which we put the default bindings at the\n   end of the binding array.\n - Adds a test that default bindings contain zeroes and have size 1\n   (only for a few interesting types).\n    - Fix the KeepBIndingArrayAsPointer transform to list\n      DuplicateBindings as a capability.\n\nBug: 435317394\nChange-Id: I97201f193b0136d6c5b1003e9ba6ac2598295bbf\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/260255\nReviewed-by: Geoff Lang \u003cgeofflang@chromium.org\u003e\nReviewed-by: dan sinclair \u003cdsinclair@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "0178f9b2d08ac8d5bff7b058df3fdd718065ec20",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindGroup.cpp",
      "new_id": "7f6cf8988ac28d8d50e9c11fe9f47e57583b3a3d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindGroup.cpp"
    },
    {
      "type": "modify",
      "old_id": "807267087ef8742f8dde370d2d8108b02a6664c0",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.cpp",
      "new_id": "a760777a5035eea335e3f4bf6767d6caff93da9b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "3bfdabc6235a7ed320903a25751884d71702bf22",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.h",
      "new_id": "073a62b1a9bbcd72543ebd7b0a228f8c9ba6ac46",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.h"
    },
    {
      "type": "modify",
      "old_id": "9b7d5486d1f678f3ac25aab809b4dcd7c67272c8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/DynamicArrayState.cpp",
      "new_id": "9edb188390adfdf61fb002fc87ca4ccbf6dfef5f",
      "new_mode": 33188,
      "new_path": "src/dawn/native/DynamicArrayState.cpp"
    },
    {
      "type": "modify",
      "old_id": "b33094924a360f0825a0754a484d157ed9791e9d",
      "old_mode": 33188,
      "old_path": "src/dawn/native/DynamicArrayState.h",
      "new_id": "4b3fbedab252141e92c003d066e9e59a6cf8018b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/DynamicArrayState.h"
    },
    {
      "type": "modify",
      "old_id": "ded18751a12b0d02a2770fedb303f795690df37a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp",
      "new_id": "df56ccc300423a35e64557a19e96673aa42c73a8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "5ff6edddb95ebb9c2ed3d824a479316c601bfa96",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.cpp",
      "new_id": "e87c931f454b78438b9f09da4addff009c356385",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "844aba7f4498326a88f88790370f0cb525bdca12",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp",
      "new_id": "175393626535b6e2b01f3eacb211a7589719c3cc",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "ea3c2500d515f4382f7e99a12667c8f873d3e1b6",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/BindingArrayTests.cpp",
      "new_id": "269ce7b1b55656b61405eb50a09a9b625de4732d",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/BindingArrayTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "ef47bc25c0149c048a47b21806eb340b1bfc33f2",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.cc",
      "new_id": "40e9533655c0db4422ea8564d08f24ffb9c4a749",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.cc"
    },
    {
      "type": "modify",
      "old_id": "8d3951c1eaab90d850d4329df0276759e869fe82",
      "old_mode": 33188,
      "old_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.h",
      "new_id": "edcb4b407a676b73d20b53e0e97736788b48118f",
      "new_mode": 33188,
      "new_path": "src/tint/lang/spirv/writer/raise/keep_binding_array_as_pointer.h"
    }
  ]
}
