)]}'
{
  "commit": "5d40cfd4cf77fee5a479e97e8912ca45b143ef0d",
  "tree": "359710c002d9954739ba0e9918364f711fa8cd5d",
  "parents": [
    "dffbf10fa579216ec3fa0b2fd776716d595aef9b"
  ],
  "author": {
    "name": "Kyle Charbonneau",
    "email": "kylechar@google.com",
    "time": "Fri May 01 11:25:57 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri May 01 11:25:57 2026 -0700"
  },
  "message": "vulkan: Implement coherent FramebufferFetch\n\nThis adds FramebufferFetch support to the Vulkan backend when the\nVK_EXT_rasterization_order_attachment_access extension is available. The\ngeneral approach is that when FramebufferFetch is enabled the main\nsubpass will have one input attachment corresponding to each color\nattachment. If a pipeline uses the @color attribute a VkDescriptorSet\nwith an input attachment for each color attachment is created/bound\nthat Tint can sample them. Tint already has the logic to handle the\ncolor attribute and sample attachments.\n\nThe rasterization order extension ensures that any previous draws in the\nsame render pass are complete before pixel values are sampled.\n\nFramebufferFetchHelper encapsulates the logic to allocate\nVkDescriptorSets and VkDescriptorSetLayouts for this feature.\n\nBug: 42241389\nChange-Id: I369886c75577966663b181800a71c4d08f9541bc\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/290895\nCommit-Queue: Kyle Charbonneau \u003ckylechar@google.com\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nAuto-Submit: Kyle Charbonneau \u003ckylechar@google.com\u003e\nReviewed-by: Brandon Jones \u003cbajones@chromium.org\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "e9e0b222c9fe4f09b7d721ee77a30eb848cec0a8",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BUILD.gn",
      "new_id": "89eb96ee63e24917daac64a44c80fbb60ce83e1c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BUILD.gn"
    },
    {
      "type": "modify",
      "old_id": "1eaea375f1ea0529036a10c659a7fcb266711854",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "3e2501fe5e31ebab2b9117848cf1919fbe39606b",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "736ad6146c4e8fe8e1f62083fa0b9a1c5d28a227",
      "old_mode": 33188,
      "old_path": "src/dawn/native/PassResourceUsage.h",
      "new_id": "2cb45c571deaf09c43ba00b1c17f6448f60b4470",
      "new_mode": 33188,
      "new_path": "src/dawn/native/PassResourceUsage.h"
    },
    {
      "type": "modify",
      "old_id": "7e6e06d14f48a21fc2c0d7ad91dc6d678335e8ec",
      "old_mode": 33188,
      "old_path": "src/dawn/native/PassResourceUsageTracker.cpp",
      "new_id": "266a8a6b58ef89287cd485bc0037ce8f922a2a5f",
      "new_mode": 33188,
      "new_path": "src/dawn/native/PassResourceUsageTracker.cpp"
    },
    {
      "type": "modify",
      "old_id": "e67a9cc4553ba7cd647442745bb97d00e24b95f5",
      "old_mode": 33188,
      "old_path": "src/dawn/native/PassResourceUsageTracker.h",
      "new_id": "33af9877124a87ac44a792badff29d45177cfdb3",
      "new_mode": 33188,
      "new_path": "src/dawn/native/PassResourceUsageTracker.h"
    },
    {
      "type": "modify",
      "old_id": "c892848984a5c5360e70e1dc18af36f16e292826",
      "old_mode": 33188,
      "old_path": "src/dawn/native/RenderEncoderBase.cpp",
      "new_id": "672248780dad5688cf05ced98292eb35bb973edb",
      "new_mode": 33188,
      "new_path": "src/dawn/native/RenderEncoderBase.cpp"
    },
    {
      "type": "modify",
      "old_id": "86c846b7ec4d581a2a9fb11040a332cce2710552",
      "old_mode": 33188,
      "old_path": "src/dawn/native/RenderPassEncoder.cpp",
      "new_id": "5ac5dbf02b2f00a311d97e2bebeb7cd38a45b2d1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/RenderPassEncoder.cpp"
    },
    {
      "type": "modify",
      "old_id": "3c109503858a0090f3d2d5a6223d1ab4c2049371",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.cpp",
      "new_id": "450e44530e351d6e7526b78d1e9116f4c2d30451",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e00cb19b69d9a3b23c5431541d7da61fd2c67827",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.h",
      "new_id": "77396bceab000bf67b6c719799fbc4071b3c0d7f",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.h"
    },
    {
      "type": "modify",
      "old_id": "bce88cdd7d9167f6bf949133c75ebecbb9a3a03f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "4dd4a96c9ff360027f874a4b4e5196af14f270e8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "5c74441bced754d81536debd08c8b66fe77be39f",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.h",
      "new_id": "4feece8bd46396ec9c3dd5689653927dc295dfcd",
      "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": "8b73aeeadf9dc080c35f33a5817d12bf4757a97f",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/FramebufferFetchHelper.cpp"
    },
    {
      "type": "add",
      "old_id": "0000000000000000000000000000000000000000",
      "old_mode": 0,
      "old_path": "/dev/null",
      "new_id": "5a65164064d444e5aa3b075b6912cc50c6b7b643",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/FramebufferFetchHelper.h"
    },
    {
      "type": "modify",
      "old_id": "a6618c5c3f9e38692d326735e6e43c23d71c1cbe",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp",
      "new_id": "28fdc0026a5842d6d0643ceba50ec6520fdfbe9e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "817742abecb681d820dd811d742661ab428efde3",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/PipelineLayoutVk.cpp",
      "new_id": "d3a4411e86cc5bb4f015c87be9d83867c43c4a58",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/PipelineLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "82c4efa40489c5c68f0903650b6fcebe95a0fb65",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/PipelineLayoutVk.h",
      "new_id": "a07c5214051825f5b668fe2331d43ca5a79f0cb6",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/PipelineLayoutVk.h"
    },
    {
      "type": "modify",
      "old_id": "2a2be4623c225d757923b6645226c1be445881ca",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/RenderPassCache.cpp",
      "new_id": "bddbd8952c9336f11a8fb8d9a9552202a1dae112",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/RenderPassCache.cpp"
    },
    {
      "type": "modify",
      "old_id": "ed4727de3fd233fef9c87e891cc8622865eaf250",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/RenderPipelineVk.cpp",
      "new_id": "0cceb5b3927ee8d7222f62b7c78693a224576db3",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/RenderPipelineVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "534f0d1f6da68995c49aa40acaf136ff81b11dc9",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp",
      "new_id": "b97369c656ea72a92e2c6d1bd8c0842735b29838",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/ShaderModuleVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "38de4727c57a8642ac9fc6e55f2ecf47f01dbcb6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/ShaderModuleVk.h",
      "new_id": "eefd10b29ae2f1e635469bbe614373d27a8ceaf4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/ShaderModuleVk.h"
    },
    {
      "type": "modify",
      "old_id": "e3a87bbd0623dd13f102eb742cac6c64de195a1e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/TextureVk.cpp",
      "new_id": "42eb66d440845293df4afb6975ea49aad1c30e05",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TextureVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "1342fa974216d959a68a5e55daccd1b4936b5d93",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/UtilsVulkan.cpp",
      "new_id": "4825d870ffdd4c5bde6096a10de998034d97db5c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/UtilsVulkan.cpp"
    },
    {
      "type": "modify",
      "old_id": "48782d168ebadc651f138b49429bc03770f326c1",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/UtilsVulkan.h",
      "new_id": "ae5af901888d02bb481fe4bbda602a43b7d5d131",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/UtilsVulkan.h"
    },
    {
      "type": "modify",
      "old_id": "0f20c157ba4ecb9cfba680220a85fcaa436f0549",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/VulkanExtensions.cpp",
      "new_id": "40f782055e1ecfe87addbabc2997d1f290a9af8e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/VulkanExtensions.cpp"
    },
    {
      "type": "modify",
      "old_id": "fa82cc406d1a3fcf613de8ce6aeb07698263290a",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/VulkanExtensions.h",
      "new_id": "455be6cb593159a36b77fe63b96d000d81f785a6",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/VulkanExtensions.h"
    },
    {
      "type": "modify",
      "old_id": "2d870689b8af80ffc9eb4cd124be8a33905c02b6",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/VulkanInfo.cpp",
      "new_id": "0538369a2799add721a193f0757c85dec22a0312",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/VulkanInfo.cpp"
    },
    {
      "type": "modify",
      "old_id": "a6a5f480e2e76ede7bb9f0254ed8d42319ceb720",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/VulkanInfo.h",
      "new_id": "25bf34053cd6b9b9198b102415e2535741a92bb1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/VulkanInfo.h"
    },
    {
      "type": "modify",
      "old_id": "29805d29fbc240afe99e9dd9703c5692e64e6406",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/FramebufferFetchTests.cpp",
      "new_id": "07ed9cbbd532b370bedb417fc3e8811abbe7a2ce",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/FramebufferFetchTests.cpp"
    }
  ]
}
