)]}'
{
  "commit": "012f6e92c62bb449f80dea7ef4eb18fa58d761ac",
  "tree": "41edebf40ca7597c0ba07cfe8d6f7f3a9b8aa009",
  "parents": [
    "e04481699562139b7dd9d7eafb4c97d88950b35f"
  ],
  "author": {
    "name": "Diego Rodrigues",
    "email": "diejorarr@gmail.com",
    "time": "Thu Mar 26 18:05:16 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Mar 26 18:05:16 2026 -0700"
  },
  "message": "[dawn][vk] Support storage texel buffers\n\nImplements `TexelBufferViewVk` wrapping `VkBufferView`, wires it into\nbind groups and descriptor set updates, and maps `TEXEL_BUFFER` buffer\nusage to `VK_BUFFER_USAGE_STORAGE_TEXEL_BUFFER_BIT`.\n\nTexel buffer bindings are remapped through `GenerateBindingRemapping`\nin `TintUtils.h` by injecting into the `storage_texture` sub-map of\n`tint::Bindings`. This is a workaround because `tint::Bindings` has no\ndedicated `texel_buffer` field yet. The `BindingRemapper` transform is\ntype-agnostic — it remaps any WGSL variable whose `binding_point`\nappears in the map regardless of descriptor type — so the remapping is\ncorrect. Without it, texel buffers would keep their original WGSL\n`@binding` numbers in SPIR-V, diverging from their `BindingIndex` in\n`VkDescriptorSetLayout` whenever a binding type that sorts before\n`TexelBuffer` (e.g. `StorageTexture`) occupies an earlier slot.\n\nBug: 382544164\nChange-Id: I889230b2bc1e2d6cfb3d599a020c6735d9646673\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/258500\nReviewed-by: James Price \u003cjrprice@google.com\u003e\nReviewed-by: Diego Rodrigues \u003cdiejorarr@gmail.com\u003e\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: James Price \u003cjrprice@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9664021c9d016a0a0476f52bfcb975b540f75b72",
      "old_mode": 33188,
      "old_path": "src/dawn/common/Constants.h",
      "new_id": "2a2131cc0a4910bd73a7c587417cfe4d0c32e8f5",
      "new_mode": 33188,
      "new_path": "src/dawn/common/Constants.h"
    },
    {
      "type": "modify",
      "old_id": "70c39bcfd7e7d8947fb833a8040f1ab3d0a856f6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "61e7b95d13343d0b9ed345ac58a78d3e137973c8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "617d5c329da5e325bd05caf1a77d8f655ab8d908",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Buffer.cpp",
      "new_id": "d5e912fbab7c9d58e4276ce65f1dbccdc111a2cf",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Buffer.cpp"
    },
    {
      "type": "modify",
      "old_id": "0ec901e01a76b07c361576c677cdd6b6b2577a60",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "c8acc30a86028f5c779be98534d3dc65d3b66064",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "8749ebb951728e40f524d8527560c23997ac88f8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CommandBufferStateTracker.cpp",
      "new_id": "297540f0b7cd646bc6b6afa107ddc51131f736ae",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CommandBufferStateTracker.cpp"
    },
    {
      "type": "modify",
      "old_id": "bf022279ca786c726d11982a3fc40127fa057cca",
      "old_mode": 33188,
      "old_path": "src/dawn/native/TintUtils.h",
      "new_id": "27e7feaf31336000e7401668d13d1947aba99c97",
      "new_mode": 33188,
      "new_path": "src/dawn/native/TintUtils.h"
    },
    {
      "type": "modify",
      "old_id": "8b9d2391fc90209a9e4c38e8e16f1f216cee493e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp",
      "new_id": "14d41e117260d55c60999a56d354953f354b49aa",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "f351c391093aa20eeca55879689b659de2e5beef",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupVk.cpp",
      "new_id": "515fc29efda245d1ef48acf8f7e653034fe9cbd5",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "2d045cedf1751e43e28817102a6744d882eae92e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BufferVk.cpp",
      "new_id": "3764aee206c1700fd6185207a2ea68901e494942",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "80fbd893b333519e2423bc8e78e8bdc13c3afc17",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "7c67b4efd0104e857853880a6c5e6ee6c975c946",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "1ca90c718f35e389f646ce854c92a43f67cee0e7",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.h",
      "new_id": "16200a8e5c93f587368293830dd7e36f6fe753b0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.h"
    },
    {
      "type": "modify",
      "old_id": "baca0b989610339d8fe185739882d9f118deba51",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/FencedDeleter.h",
      "new_id": "e87d575348484cff6cde1954e807cd787d05fbd6",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/FencedDeleter.h"
    },
    {
      "type": "modify",
      "old_id": "9102e3b1e1e8f2013b3198b64db65dffe0b08a0c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/Forward.h",
      "new_id": "d0c6f2cdb468795bd479fb794550343f41a47fc4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/Forward.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "0573cec2c7400171de84b7999ff1ef4c5fd657b7",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TexelBufferViewVk.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "c8159b6986ee668eb3bce423f51a9198a1d48fd0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TexelBufferViewVk.h"
    },
    {
      "type": "modify",
      "old_id": "1158bc9ae63a56d6af1a4893fc1c42d4c952c88e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/UtilsVulkan.cpp",
      "new_id": "3957a4bb94e346f88fca810a283a3e485882a64c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/UtilsVulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "91cb74f85a3d7e01dc47c16eff0629da1e5c31ef",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/BUILD.gn",
      "new_id": "063f8894ba46f876cf53e181de2f473423b6b8c8",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "01c0609201745a0720013f31dcd475c2334d3461",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/CMakeLists.txt",
      "new_id": "72cba88ee07a7f02d03758ab48cfb89300e9f78f",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/CMakeLists.txt"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "161c15d2bad0f92b3cc1a78712361477d5e34625",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/TexelBufferTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "dafd74e1b503c3ba1c7c3025bc67ea3bc949b0d1",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/validation/TexelBufferValidationTests.cpp",
      "new_id": "6ac575de73d63ad76e42d34e7abc25091de75c3d",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/validation/TexelBufferValidationTests.cpp"
    }
  ]
}
