)]}'
{
  "commit": "cde13c6d417485b7cf3edadf6edc2605faf13e22",
  "tree": "deca05846bbeebdd7f59747225992bbe1d1f525f",
  "parents": [
    "cacb2e67d9cd469074052e537a7e217ac9d6f0c0"
  ],
  "author": {
    "name": "Corentin Wallez",
    "email": "cwallez@chromium.org",
    "time": "Wed Apr 01 13:28:28 2026 -0700"
  },
  "committer": {
    "name": "Dawn LUCI CQ",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Wed Apr 01 13:28:28 2026 -0700"
  },
  "message": "[YUV AHB] Specialize state for operations using YUV AHB ExternalTextures\n\nThis CL builds on all the previous [YUV AHB] commits to detect in the\nVulkan command encoding that a specialization is needed to do 0-copy YUV\nAHB sampling. It computes the specialization, set the specialized state\nand run the command.\n\n - Adds end2end tests for OpaqueYCbCrAndroidForExternalTexture.\n - Adds an ExternalTexture end2end tests instantiation with the\n   \"vulkan_force_static_samplers_for_external_textures\" toggle which\n   mimics the specialization that needs to happen for YCbCr on devices\n   that don\u0027t have it (it made it easier to test WIP code).\n - Enable OpaqueYCbCrAndroidForExternalTexture in the Vulkan backend\n   when samplerYCbCrConversion is available.\n - Add a way to get specialized VkDescriptorSets for a specialization of\n   a BindGroup\u0027s layout.\n - Handle the special case of Vulkan swizzling YCbCr differently than\n   what the ExternalTexture yuvToRgb matrix expects.\n - Split ImmediateDataTracker and DescriptorSetTracker\u0027s Apply method to\n   let custom state be passed, and add method to dirty the state.\n - When a pipeline is detected to need specialization, specialize the\n   pipeline and apply the specialized state before doing the operation.\n\nBug: 468988322\nChange-Id: I28fe6d07f7f1d2bd7dad4d8353550a36e2ebd1dd\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/297196\nReviewed-by: Brandon Jones \u003cbajones@chromium.org\u003e\nCommit-Queue: Corentin Wallez \u003ccwallez@chromium.org\u003e\nReviewed-by: Kyle Charbonneau \u003ckylechar@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "abd124a98f870d719ac512da35b8dc947849dc2e",
      "old_mode": 33188,
      "old_path": "src/dawn/native/CMakeLists.txt",
      "new_id": "097aaef6bfcc5b8f29fbcb9782c2e126ee10921e",
      "new_mode": 33188,
      "new_path": "src/dawn/native/CMakeLists.txt"
    },
    {
      "type": "modify",
      "old_id": "387ca8e03c0b8533a28126fd42ce728aca6450ed",
      "old_mode": 33188,
      "old_path": "src/dawn/native/ExternalTexture.cpp",
      "new_id": "1975a204b1c5a9be73596d2d0cc68d94a0ca18d8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/ExternalTexture.cpp"
    },
    {
      "type": "modify",
      "old_id": "6e40d616d926bd6ed8521765caac2def5c0cfc59",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp",
      "new_id": "cccb3f090fe0de8ff73f571abe4fce67224fb562",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupLayoutVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "4493564a08d505000346df7f51eff1d176af26d4",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupLayoutVk.h",
      "new_id": "d61a8138bc2ec605da37e2f683bce1b7bf49ea73",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupLayoutVk.h"
    },
    {
      "type": "modify",
      "old_id": "515fc29efda245d1ef48acf8f7e653034fe9cbd5",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupVk.cpp",
      "new_id": "cfcebfd80127e5835174e49f5dc06f8c7d6520c8",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "14a2eacbcf082ed82911372c9404ad3909bedba7",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/BindGroupVk.h",
      "new_id": "a1ffdda6da8d2f943763ffad1e74ea2bb4e347d1",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/BindGroupVk.h"
    },
    {
      "type": "modify",
      "old_id": "cbf6bbe171c1749f7b7dde42b32cbf6b8b491e26",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/CommandBufferVk.cpp",
      "new_id": "6c035f2c6973800829556c5b8f6d461edd221f02",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/CommandBufferVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "23daeecdccde93b328eec11aa70278e836eb8da9",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/DeviceVk.cpp",
      "new_id": "29b60edf13058fe05f22ee3a6c21ef9b2a9adac4",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/DeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "e2db7cb23dce7b013d96368f8a36a3ec191116aa",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp",
      "new_id": "18e5b671d8d56b43a3ee3f20fd91281cce13ea40",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/PhysicalDeviceVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "03a701824571395eccc890702fcbfa5eaf599585",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp",
      "new_id": "0a2885a4e0f846a185a109418ebe5a71cc16130c",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "2a025ad97c2efef580a59c0bdc0a0369165391a1",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/ExternalTextureTests.cpp",
      "new_id": "28479db5a9e28f7a116a168e90f89750d2728e28",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/ExternalTextureTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "77f79d87b3db2384638af7ab5b850d4812f13e30",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp",
      "new_id": "154d3b748b504ad28e01bf654daf6f5fe25d8545",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp"
    }
  ]
}
