)]}'
{
  "commit": "eae7bfbf6f365b5b1315fb9c2bb5e854862c7537",
  "tree": "c0013c76649af3e0234fa9743ce1732d94717a73",
  "parents": [
    "e53fea4c68d2b53de9a566f6daedf9d533a44e88"
  ],
  "author": {
    "name": "Ben Vanik",
    "email": "ben.vanik@gmail.com",
    "time": "Tue Dec 10 09:05:46 2024 -0800"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Tue Dec 10 09:05:46 2024 -0800"
  },
  "message": "Adding iree_hal_buffer_placement_t info to allocated HAL buffers. (#19160)\n\nThis allows users to query for the device, queue affinity, and origin\r\nflags of an allocated buffer so that they can decide whether to copy\r\nbuffers when moving across devices/queues, perform synchronous or\r\nasynchronous deallocations, and select queues to perform such\r\noperations. The downside is that prior to this buffers could be defined\r\nas shared across multiple devices that share a single allocator -\r\nbecause it\u0027s still the case that they can be shared \"placement\" was used\r\nas it\u0027s not \"availability\" or \"access permissions\" but only indicating\r\nthe origin of the buffer and where it\u0027s preferred location is. Buffer\r\ncompatibility queries are still the way to determine access visibility.\r\n\r\nThe base `iree_hal_buffer_t` structure was cleaned up a bit and though\r\nstill ugly is better prepared for removal of the device allocator back\r\nreference. #19159 tracks removing the allocator reference that is\r\ncurrently only used by the caching allocator due to our lack of dynamic\r\ncasts.\r\n\r\nBreaking API changes:\r\n* `iree_hal_buffer_subspan` now requires an `iree_allocator_t\r\nhost_allocator` that was previously implicit.\r\n* `iree_hal_subspan_buffer_initialize` removed as it was not safe and\r\nshouldn\u0027t have been used.\r\n* `iree_hal_deferred_buffer_t` removed as it is not possible to do the\r\nplacement checks without an allocated buffer reference. This is used in\r\na branch for async allocations on CPU but either a different approach is\r\nrequired there or it can be moved into `iree/hal/local/` where we can\r\nmake assertions about universal accessibility.\r\n* `iree_hal_heap_buffer_wrap` and all other buffer creation now requires\r\na placement.\r\n* `iree_hal_buffer_initialize` used by HAL implementations now requires\r\na placement.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "8f7d4d4b2dda030ce1220278263ee9bf1329d7bc",
      "old_mode": 33188,
      "old_path": "experimental/web/sample_webgpu/main.c",
      "new_id": "aaf8336927ca1810cde5ab00d4a4a5112091b697",
      "new_mode": 33188,
      "new_path": "experimental/web/sample_webgpu/main.c"
    },
    {
      "type": "modify",
      "old_id": "cd83587a7be11229480158870ce949d4e95e3602",
      "old_mode": 33188,
      "old_path": "experimental/webgpu/buffer.c",
      "new_id": "564393f872293f99bdd91e9905e63ca2f4a483e1",
      "new_mode": 33188,
      "new_path": "experimental/webgpu/buffer.c"
    },
    {
      "type": "modify",
      "old_id": "056185d62d6b9bc1c31c0ce70f3f8742e43cc40e",
      "old_mode": 33188,
      "old_path": "experimental/webgpu/buffer.h",
      "new_id": "c837753bd7a4816f3f9860fd44dae97fa38d108a",
      "new_mode": 33188,
      "new_path": "experimental/webgpu/buffer.h"
    },
    {
      "type": "modify",
      "old_id": "d6016a1ca8f5854fd001e63ff7a132ec317dfd44",
      "old_mode": 33188,
      "old_path": "experimental/webgpu/simple_allocator.c",
      "new_id": "ac0cc072973f7dfabf806319a6fc6e74089cbc10",
      "new_mode": 33188,
      "new_path": "experimental/webgpu/simple_allocator.c"
    },
    {
      "type": "modify",
      "old_id": "de0ec30e8d780e7a5ac6a0d1899399294ec9916c",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/allocator.h",
      "new_id": "7698b2e171134da17e88f1d86dc9ba2d667b597a",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/allocator.h"
    },
    {
      "type": "modify",
      "old_id": "2008de4c3d5ebda039584ab4f349b3f0726a512f",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/allocator_heap.c",
      "new_id": "e7ed9bbdb06f26d3866cc15bebeac46f7ab7665a",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/allocator_heap.c"
    },
    {
      "type": "modify",
      "old_id": "6b3327618d2aa1dff834d4799187297999a1263c",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/buffer.c",
      "new_id": "a55f2482d584e6b80feaa4108e8d07aec178d0bc",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/buffer.c"
    },
    {
      "type": "modify",
      "old_id": "82c1f478df22dfc3f5641a7e7be8a494c9071660",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/buffer.h",
      "new_id": "502a68b35d2f03e4e7d1f5057c75029e61a16ccd",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/buffer.h"
    },
    {
      "type": "modify",
      "old_id": "e7b763e9d9ed45764743c463032d5c84ba028dda",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/buffer_heap.c",
      "new_id": "93b38270c6e9b7fcefe0d539f3738ae44fc5b0f8",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/buffer_heap.c"
    },
    {
      "type": "modify",
      "old_id": "6068c28549c4dcd3136bbdb357479fd45cb56877",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/buffer_heap_impl.h",
      "new_id": "f358db87facbc2f0b3bbe331c6d0ee99910140de",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/buffer_heap_impl.h"
    },
    {
      "type": "modify",
      "old_id": "504f3d5e9c40391606f7c3533843d3280e578859",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/cts/buffer_mapping_test.h",
      "new_id": "b78c8a84fa96546f74217e1b6c13488bfbde19d8",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/cts/buffer_mapping_test.h"
    },
    {
      "type": "modify",
      "old_id": "0ba96e478b9971b03d62156979c9b7bdf70b7b01",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/cts/command_buffer_update_buffer_test.h",
      "new_id": "861ff5711b01e019e7167039462f8295b899ebb0",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/cts/command_buffer_update_buffer_test.h"
    },
    {
      "type": "modify",
      "old_id": "72332dbd48798808703fcb14bdd461ccac3281d3",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/cuda_allocator.c",
      "new_id": "fde4abe178e1a2c269d7acf5c510d2ff12bbe868",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/cuda_allocator.c"
    },
    {
      "type": "modify",
      "old_id": "3b4dbb3886d25f966ab9af65dd516c3f857cf166",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/cuda_allocator.h",
      "new_id": "845ef3e3411c0febd541dbae8fa85ab637689805",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/cuda_allocator.h"
    },
    {
      "type": "modify",
      "old_id": "8f73aa12ea0d44cec46d0882c47b1f664938183b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/cuda_buffer.c",
      "new_id": "ab33c5f74e9fb5a3f1aa92bd27ff2872ae92b2c0",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/cuda_buffer.c"
    },
    {
      "type": "modify",
      "old_id": "3c677ae7d27df6fbaf0406a4ecd87448b468a2b4",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/cuda_buffer.h",
      "new_id": "16a8ae8becaeeb73bea36f0b31c93a08b2174f84",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/cuda_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "d5ed448160565d07bb24b9a4c1800abe7d6d2f40",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/cuda_device.c",
      "new_id": "9c9c7c61e02c8ce18e78722f28431d78a1035e38",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/cuda_device.c"
    },
    {
      "type": "modify",
      "old_id": "1e34422478f585f99399769ddc92dc10766c0cb8",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/memory_pools.c",
      "new_id": "ac53271283b09b55560a78c160f5ca71aedf70e2",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/memory_pools.c"
    },
    {
      "type": "modify",
      "old_id": "98917dc04431fbd06fb960b529545838249b5930",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/cuda/memory_pools.h",
      "new_id": "99e4d271447f957aa6841d016baa179198a02a20",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/cuda/memory_pools.h"
    },
    {
      "type": "modify",
      "old_id": "95a04cd1812b2e2afcf063f88872acd4d93309a3",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/hip_allocator.c",
      "new_id": "c8bc93f52aa4b0cf45915b1763e0fee4d4ac295e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/hip_allocator.c"
    },
    {
      "type": "modify",
      "old_id": "89ed0936be0c88ac9f9f569cdfbe4dda3a3bc523",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/hip_allocator.h",
      "new_id": "5c19a7a957df2579fc1b6e9e82f722077e8f7ffb",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/hip_allocator.h"
    },
    {
      "type": "modify",
      "old_id": "46e768ace25fe61b1e7cd9f15751f6d2e6aa1730",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/hip_buffer.c",
      "new_id": "a0efa9a60d8f72e14838ddf4ec11392bb29f9c1b",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/hip_buffer.c"
    },
    {
      "type": "modify",
      "old_id": "4264b54ddb14b027ceeafcc6f0cfabbf24923371",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/hip_buffer.h",
      "new_id": "3a18956effdee03084b57ab6a3e05b1386e86de2",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/hip_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "bc001d645c3a3a821784a485feee05e341e9bffd",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/hip_device.c",
      "new_id": "c6fe92967cd64ee55248cf848351da6dcd050a16",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/hip_device.c"
    },
    {
      "type": "modify",
      "old_id": "93a046b1f59ec4be95b8f6acf80880d4efef348b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/memory_pools.c",
      "new_id": "c5a927fc0bbd8773fe30645cb50c5306c0f38f47",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/memory_pools.c"
    },
    {
      "type": "modify",
      "old_id": "f95b76d9816b1efb57e8240799e16d9b27dd7e6b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/hip/memory_pools.h",
      "new_id": "7d66090e33f6e517cd538f62f17f2c6fd6de9671",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/hip/memory_pools.h"
    },
    {
      "type": "modify",
      "old_id": "bbd460916ce8f586a8546079744784a318bdaebf",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/direct_allocator.h",
      "new_id": "6b5b49122032147fa8be0a4bd5745d5d3066bc67",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/direct_allocator.h"
    },
    {
      "type": "modify",
      "old_id": "d97886e6f7c21509c5ebd0ed8e98791e282dfd22",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/direct_allocator.m",
      "new_id": "b9c6a40c48207b279c5fa03c2bf113de3c6a0de8",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/direct_allocator.m"
    },
    {
      "type": "modify",
      "old_id": "1a30fd3a5779a88affb110e5a91d5fcad76cab99",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/metal_buffer.h",
      "new_id": "0607dc72e00b6932af624a672ee79719f17e3081",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/metal_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "2f22c842d485d73da7a3f0c85f3a172a1817c239",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/metal_buffer.m",
      "new_id": "b92ee9ec1d48436e5a16d8f1aa2b2f0237f9945f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/metal_buffer.m"
    },
    {
      "type": "modify",
      "old_id": "4f8b4fd3e0bf976ec9790588b8a4af98223a9fbb",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/metal/metal_device.m",
      "new_id": "ef8e2c97446500e188702f585e21ad7f828b95c7",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/metal/metal_device.m"
    },
    {
      "type": "modify",
      "old_id": "6e676526b1b50cb0be6d5ef85ef0bd9f858b828c",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/null/buffer.c",
      "new_id": "fc52c02a2461171f8402e473dd7b01d1aa59f183",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/null/buffer.c"
    },
    {
      "type": "modify",
      "old_id": "edf2e457e5e8e11a25aa23af233ae9e9ccbc0440",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/null/buffer.h",
      "new_id": "4befac5090068e3dca67cd7d92815f47e446f05c",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/null/buffer.h"
    },
    {
      "type": "modify",
      "old_id": "ea872b56488621cdb2bcf8f8a4fe490f7a08c7b0",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/base_buffer.h",
      "new_id": "7f7d798b3a506e30761115f66946aa14e6653ecf",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/base_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "2114c5b5e4af1b82f2e82e104ce5f3ea2f6de401",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/native_allocator.cc",
      "new_id": "47f15d8b17ab52d5d6a4404501f6b3de861eb73e",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/native_allocator.cc"
    },
    {
      "type": "modify",
      "old_id": "147f1b9ceb67d4cbc876fd0fc44a152a4f1fa7a1",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/native_allocator.h",
      "new_id": "481b7c0e5f7717ddc9b4054e713e2cb4441f2cd6",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/native_allocator.h"
    },
    {
      "type": "modify",
      "old_id": "f0c0ec7b7b8af635a52e4bbaed604ecf95b62f8b",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/native_buffer.cc",
      "new_id": "6e7190098c7a344b2c85e64bd93ede725e7f6c31",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/native_buffer.cc"
    },
    {
      "type": "modify",
      "old_id": "7d8a2738b43d4e86b7b58539ed10c26e73b84e4c",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/native_buffer.h",
      "new_id": "0049e2e9f95838923cbea049957161cfd4fc8153",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/native_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "2ed3a8f2f9fbfc9adb74bb2197eb1bbe43cc0e92",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/sparse_buffer.cc",
      "new_id": "b1f2778a65dcc45ef7fa7ffa10685bb51248c46f",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/sparse_buffer.cc"
    },
    {
      "type": "modify",
      "old_id": "9ab7d6557910d7635df3eb4fbbe4d58da1db0fb5",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/sparse_buffer.h",
      "new_id": "a74397c170e50c739a173d59f3f7ff5feaf91b52",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/sparse_buffer.h"
    },
    {
      "type": "modify",
      "old_id": "6db27bc47c619f66d5b3dee3e2bd9ae8e6277fb9",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/drivers/vulkan/vulkan_device.cc",
      "new_id": "0433942921888df29e3f8effb37f361b1c049486",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/drivers/vulkan/vulkan_device.cc"
    },
    {
      "type": "modify",
      "old_id": "599f416949d81ab61ca58d8baed72b1eb7dc1bbf",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/hal/utils/caching_allocator.c",
      "new_id": "8b4771c1b05d7af9c3e825d73ce7785716a42bbf",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/hal/utils/caching_allocator.c"
    },
    {
      "type": "modify",
      "old_id": "c3c5deae5213c806a20dc9ebae1f399cc2e4f4a8",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/modules/hal/inline/module.c",
      "new_id": "a8924535e3191b9baf55da4a3b8c7f73b6981a43",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/modules/hal/inline/module.c"
    },
    {
      "type": "modify",
      "old_id": "3baa27dd91e437d647e2aae7205ae2de92fa1b3e",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/modules/hal/module.c",
      "new_id": "24a11dbb09974609ca8b51b9c8aa9014dcfd6f9d",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/modules/hal/module.c"
    },
    {
      "type": "modify",
      "old_id": "d416a0dfd7ce0afac4900f2a7a272a8130f580e4",
      "old_mode": 33188,
      "old_path": "runtime/src/iree/tooling/function_io.c",
      "new_id": "c38a4cf414ab9897f7acfd15322b534485549d01",
      "new_mode": 33188,
      "new_path": "runtime/src/iree/tooling/function_io.c"
    }
  ]
}
