)]}'
{
  "commit": "ea7208a84dc59cefadfd57a24fb432e71af1bfaa",
  "tree": "2e880bd803d1e3661da970915368222b5712e8d2",
  "parents": [
    "3c14f6b5d00285cba2a3c33ac7f56de1042f2127"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Fri Mar 27 03:06:10 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Fri Mar 27 03:06:10 2026 -0700"
  },
  "message": "[YUV AHB] Add toggle adding static sampler to external texture expansions\n\nIn Vulkan, static YCbCr samplers must be used to sample YCbCr AHBs. In\nfollow-up commits, support of JITing pipelines to use specific YCbCr\nstatic samplers will be added. In order to have the backend support an\nextra static sampler per ExternalTexture, an option is added in\nExternalTexture expansion to multiple bindings to also add a static\nsampler.\n\n - Adds the Device::NeedsStaticSamplerForExternalTexture option and a\n   toggle that can be used in Vulkan to force that option to be true.\n - Adds logic in BindGroupLayoutInternalBase to add a static sampler\n   to the external texture expansion into multiple bindings.\n - BindGroups validate that each static sampler is compatible with its\n   texture passed for \"sampledTextureIndex\". For static samplers\n   expanded from external textures, no such texture is passed by the\n   application since the \"sampledTextureIndex\" is for another expanded\n   binding, so just skip that case.\n - Adds a placeholder sampler in DeviceBase, which is used as the static\n   sampler before the pipeline JITing replaces it. This required updating\n   the DestroyObjectTests to not use the default sampler descriptor as\n   content-less object caching made the placeholder sampler be returned,\n   that is referenced by the device and not destroyed until the device\n   destruction.\n\nBug: 468988322\nChange-Id: Ib1cacda0ed1f50eab09ce8f942b82921aa208e2b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/297176\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Brandon Jones \u003cbajones@chromium.org\u003e\nReviewed-by: Kyle Charbonneau \u003ckylechar@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "96939ab116a1e311f67d2492c73915ccc90b0d1d",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindGroup.cpp",
      "new_id": "237a4aa0356fa44962a2c7c3a91b7ae09edac1e1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindGroup.cpp"
    },
    {
      "type": "modify",
      "old_id": "983d5ce02763fc9551b4aa3da86e511a0df78b09",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindGroupLayoutInternal.cpp",
      "new_id": "d273840a8821ea57e627588d9cff71948002e67a",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindGroupLayoutInternal.cpp"
    },
    {
      "type": "modify",
      "old_id": "84e4a3514e7362ae3388df8699fbf35e52d2596b",
      "old_mode": 33188,
      "old_path": "src/dawn/native/BindingInfo.h",
      "new_id": "4d9a42517a555249128b4c1f034cd13bd33701da",
      "new_mode": 33188,
      "new_path": "src/dawn/native/BindingInfo.h"
    },
    {
      "type": "modify",
      "old_id": "a466f315054be2407ee153c59f51207c30236c64",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.cpp",
      "new_id": "51e6ec78eeda1626c5bd309dc66edcd7fff4efb2",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.cpp"
    },
    {
      "type": "modify",
      "old_id": "a03ffda400b963e384cf1947ad8929a1c727ed2e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Device.h",
      "new_id": "1c72ea3447166f18d41856ce88a701733be6fca1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Device.h"
    },
    {
      "type": "modify",
      "old_id": "53a26ea6d5624104ea35e77610cbefcbb1d1d7bd",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.cpp",
      "new_id": "45803f5e06868a19f9a59d6a9bac7741c9d2347c",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.cpp"
    },
    {
      "type": "modify",
      "old_id": "7554c73f22785c0b2a46f263bbd7915f35257548",
      "old_mode": 33188,
      "old_path": "src/dawn/native/Toggles.h",
      "new_id": "a4a2d28519a3d6cff2987c4f8e92a9bb8b87474d",
      "new_mode": 33188,
      "new_path": "src/dawn/native/Toggles.h"
    },
    {
      "type": "modify",
      "old_id": "7c67b4efd0104e857853880a6c5e6ee6c975c946",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "6899404cab294b65ac7a0d80c2bc01f2cbbc1bf0",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "16200a8e5c93f587368293830dd7e36f6fe753b0",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.h",
      "new_id": "4a3c55556d4f775951fdbfe04c3200df613903f2",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.h"
    },
    {
      "type": "modify",
      "old_id": "65f413e105c32f97e91f825262178c80ba4403a8",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/unittests/native/DestroyObjectTests.cpp",
      "new_id": "1b32585e268509686c7580d3442f911500e91038",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/unittests/native/DestroyObjectTests.cpp"
    }
  ]
}
