)]}'
{
  "commit": "7fdccb46d4afeaafe9f4e8a81c80fa8b03aed82e",
  "tree": "7a272068e608082e002cc7fa6b239f21cc6f8c84",
  "parents": [
    "da44df7daa86ecf3ca8086792e344a7452db08c3"
  ],
  "author": {
    "name": "shaoboyan",
    "email": "shaoboyan@microsoft.com",
    "time": "Wed Aug 05 03:19:24 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Aug 05 03:19:24 2026 -0700"
  },
  "message": "Fix Oversized D3D11 Immediate Uniform Buffer\n\nkMaxImmediateSizeD3D11 was defined as sizeof(RenderImmediates /\nComputeImmediates), i.e. a byte count, but every use treats it as a\nnumber of uint32_t elements: it sizes std::array\u003cuint32_t, N\u003e, bounds\nthe element offset, and multiplies by sizeof(uint32_t) for the GPU\nbuffer byte size. As a result the CPU array and the GPU uniform buffer\nwere 4x larger than needed.\n\nRename the constant to kMaxImmediateSlotsD3D11 and convert the maximum\nimmediate struct byte size to uint32_t slots with Align, so the buffer\nstays correctly sized even if a struct size is not a multiple of four.\nMake IsPowerOfTwo constexpr so Align can be used in constant expressions,\nand add compile-time coverage for both helpers.\n\nBug: 366291600\nChange-Id: I7375650f0de766b154f72e8ef4f70ba266d5248a\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/329755\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Quyen Le \u003clehoangquyen@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a6826b964ba98255b8375247c7e6f993d508fe50",
      "old_mode": 33188,
      "old_path": "src/dawn/common/Math.cpp",
      "new_id": "9579482cdc2f22105067ba08802400f6754362c9",
      "new_mode": 33188,
      "new_path": "src/dawn/common/Math.cpp"
    },
    {
      "type": "modify",
      "old_id": "2bec112ac4e9be141c23a1a9f616fcf01d0ab96e",
      "old_mode": 33188,
      "old_path": "src/dawn/common/Math.h",
      "new_id": "7461d97fc0fc5075898fe25a67b5830401fcc532",
      "new_mode": 33188,
      "new_path": "src/dawn/common/Math.h"
    },
    {
      "type": "modify",
      "old_id": "de84c4aef8a27f75fa7bb49bb8b3dfff85609ab0",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.cpp",
      "new_id": "aa717b4a11b7e1be0e42cb29efec6a4b95f03ceb",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.cpp"
    },
    {
      "type": "modify",
      "old_id": "4ee007c6ba19781a90ef25c58883724a3e1e7fa8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.h",
      "new_id": "a14eda6cff3ea18735223ab1249c1ea772772421",
      "new_mode": 33188,
      "new_path": "src/dawn/native/d3d11/CommandRecordingContextD3D11.h"
    },
    {
      "type": "modify",
      "old_id": "8447c314fe3490d953fc888ab12f2d73cee3c79a",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/MathTests.cpp",
      "new_id": "feb2bd8fcf26bacef572a766e2b09f26dfd82e4f",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/MathTests.cpp"
    }
  ]
}
