)]}'
{
  "commit": "ddf2e1f61d20171ecd10ae3be70acb750a56686d",
  "tree": "2ecc93df6e4ff29c542d3f53a410279dac8b3393",
  "parents": [
    "1ab31225062d76ec23b7af38a90f9d934cd117e7"
  ],
  "author": {
    "name": "Brandon Jones",
    "email": "bajones@chromium.org",
    "time": "Tue Jul 08 13:30:05 2025 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Tue Jul 08 13:30:05 2025 -0700"
  },
  "message": "Cache VkFramebuffers (re-reland)\n\nCreation of VkFramebuffers is more expensive than expected on mobile\ndevices, so this introduces a framebuffer cache to reduce that\noverhead.\n\nPrevious attempt at landing was reverted after an MSan error on Linux.\nSee https://ci.chromium.org/ui/p/chromium/builders/try/linux_chromium_msan_rel_ng/10596/test-results\n\nPrior to that, had trouble landing due to crashes reported in\nhttps://crbug.com/425093010.\n\nDiscovered that the likely reason for the crashes was that Vulkan may\nreuse handle values for things like image views, making them\ninappropriate for use as cache keys, as I was doing previously.\nRefactored this CL to use explicit unique IDs instead, which resolved\nthe problems on the hardware I tested against.\n\nBug: 416088623\nChange-Id: Ic22483f0d5388ab8ea3fc307bcc69910d6699888\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/251254\nReviewed-by: Loko Kung \u003clokokung@google.com\u003e\nCommit-Queue: Brandon Jones \u003cbajones@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "a57c6ac8e4e078900cb4715cc99d35f5f9c6f5b1",
      "old_mode": 33188,
      "old_path": "src/dawn/common/LRUCache.h",
      "new_id": "448f6292c94810dc224801280f04664368e659cd",
      "new_mode": 33188,
      "new_path": "src/dawn/common/LRUCache.h"
    },
    {
      "type": "modify",
      "old_id": "fd4da9b42f3ba9be4ceb78791b5423271eb74484",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "1f9682e620adbc7c77e5ea4f1fb9516bae4c6789",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "852e277dd83ac7848538fc5351c0c3243333d086",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "6a144efbf65d2cc12e236230c18894277c6b0628",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "81883e6c0c2dbfac7a7cf0840c4281a002bd4e89",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.cpp",
      "new_id": "99a420beb05df59fc967563986b43387d07885ee",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "ce434f035152494ba21c2d4e437b05d3522fc37a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "3d82975f22ac6eb083a930d32b25b9260c0d646c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "547e3621e263ba87b7a15d3bb4c82c4a24a2623e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.h",
      "new_id": "690e9e90c1127517c40aeeb0e2054b49ffbee062",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.h"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "b6497b708d0d2a3a30d14207372241eb2f1e99ec",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/FramebufferCache.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "a632d3cc191a46288001ec756a28f45f4fb20819",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/FramebufferCache.h"
    },
    {
      "type": "modify",
      "old_id": "b6054936423b0387d3060b264aed57080adf6ca2",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/RenderPassCache.cpp",
      "new_id": "108608022b271e15bd201e5e0da57df5d5deb970",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/RenderPassCache.cpp"
    },
    {
      "type": "modify",
      "old_id": "29470aa931264fb9963b8328ccca18fdf2b95c16",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/RenderPassCache.h",
      "new_id": "5753fd01fceb5e6a938ce26dbdf105bddd4ddd4d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/RenderPassCache.h"
    },
    {
      "type": "modify",
      "old_id": "f0e90dbe4d31a471635e7535707362b5d7008aa0",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/TextureVk.cpp",
      "new_id": "98781ba5aaf32319e563792b981ea082d8b1ff71",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TextureVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "88398b9acf050968b794e994fbe5135a5762adc7",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/TextureVk.h",
      "new_id": "557ea672a630054827ea4161aa3c19928e6a7098",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TextureVk.h"
    }
  ]
}
