)]}'
{
  "commit": "19696dd088b8ed5804e2f02a8f83f5afdb3e99e3",
  "tree": "6f89b1a56a56aacd6b61a532951346c36b666537",
  "parents": [
    "7780c956bd83d878b3158309a7ae6db149d97eb4"
  ],
  "author": {
    "name": "Antonio Maiorano",
    "email": "amaiorano@google.com",
    "time": "Tue Apr 28 07:34:51 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Apr 28 07:34:51 2026 -0700"
  },
  "message": "[M148][native][d3d12] Fix and rework ShaderVisibleDescriptorAllocator\n\nWith https://g-issues.chromium.org/issues/496379067, a bug was\nintroduced where the first time we pooled a heap, it would pool a\nnon-max sized one. Also, this CL introduced a performance regression:\nbecause we no longer doubled the heap size when calling\nAllocateAndSwitchShaderVisibleHeap, unless we explicitly requested to\nallocate a max size heap, most calls would result in allocating a new\nheap, and never recycling from a pool.\n\nThis CL reworks ShaderVisibleDescriptorAllocator so that we once again\ndouble the heap size when AllocateAndSwitchShaderVisibleHeap is called,\nmaking sure it\u0027s large enough to fit the request size.\n\n- Refactored the function to split adding heaps to the pool vs\n  retrieving them.\n- Added assertions to make sure the heap sizes are what we expect.\n- Fixed D3D12DescriptorHeapTests.\n\nBug: 496379067\nChange-Id: I01d5dfb8148d5ed0621901355f2da034f6174fe8\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/303915\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Antonio Maiorano \u003camaiorano@google.com\u003e\n(cherry picked from commit 419c7b7c91a11a1e20196543549bfc8a03dd98ed)\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/305336\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "9204aa4629023a906d1add43ec60b405e30dfc33",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp",
      "new_id": "461ecfcae4b89a9e8c193f3bbd63dcb3fb3ffbc4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.cpp"
    },
    {
      "type": "modify",
      "old_id": "d7ff6d54d884d48c8facf18cd165312cf9acc44c",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h",
      "new_id": "98c25602f0fe304c608bc6fbe7111d6ec0e88275",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d12/ShaderVisibleDescriptorAllocatorD3D12.h"
    },
    {
      "type": "modify",
      "old_id": "f80eb9d397307642636b23f718ca8222ce94a3d9",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/D3D12DescriptorHeapTests.cpp",
      "new_id": "7ec288a542af6662af504f122526ecf191c9b180",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/D3D12DescriptorHeapTests.cpp"
    }
  ]
}
