)]}'
{
  "commit": "f1d8d2668cbab1c4c1f4ee887d7b376b79c39658",
  "tree": "de6c37cdd1b1800346581e0c092017861a9d5155",
  "parents": [
    "90b85f82bbfe96c0f26627f1b5dbe04953acaaae"
  ],
  "author": {
    "name": "Sanjeevi Suresh",
    "email": "sanjeevisuresh@google.com",
    "time": "Thu Sep 10 21:47:22 2026 -0700"
  },
  "committer": {
    "name": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "email": "dawn-scoped@luci-project-accounts.iam.gserviceaccount.com",
    "time": "Thu Sep 10 21:47:22 2026 -0700"
  },
  "message": "Vulkan: Fix VVL layout mismatch and YCbCr sampler filter errors\n\nFixes Vulkan validation layer errors during draw operations caused by\nimage layout and sampler creation mismatches (VUID-00344, VUID-01645):\n\n1. TextureView::VulkanImageLayout used the view\u0027s usage instead of the\n   underlying texture\u0027s usage, writing SHADER_READ_ONLY_OPTIMAL to\n   descriptor sets while command buffer barriers transitioned the image\n   to VK_IMAGE_LAYOUT_GENERAL (for textures with StorageBinding).\n2. Sampler creation and static sampler specialization for YCbCr external\n   formats allowed user-specified minFilter/magFilter, violating the\n   requirement that they must match chromaFilter.\n\nResolved by querying the underlying texture usage in TextureView\u0027s\nVulkanImageLayout and clamping minFilter and magFilter to chromaFilter\nwhen external formats or VK_FORMAT_UNDEFINED are used.\n\nAdds regression tests:\n- TextureViewTest.SampledTextureWithStorageBinding: verifies sampling a\n  TextureBinding view when the parent texture has StorageBinding usage.\n- SharedTextureMemoryYCbCrAndroidTests.SampleExternalTextureWithLinearSampler:\n  verifies sampling an external YCbCr AHB using a linear sampler.\n\nBug: b/546851865\nChange-Id: I9d1cf8a654800b112374cd27ce01e6a9d14d6f3b\nReviewed-on: https://dawn-review.googlesource.com/c/dawn/+/340235\nReviewed-by: Brandon Jones \u003cbajones@chromium.org\u003e\nReviewed-by: Corentin Wallez \u003ccwallez@chromium.org\u003e\nCommit-Queue: Sanjeevi Suresh \u003csanjeevisuresh@google.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "c7ffe3499f8392b7a2d000b78e6fd36354a9fd82",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/SamplerVk.cpp",
      "new_id": "1614051d2da01f721a180dad637d0f186bad7318",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/SamplerVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "cedba7c34cebc9586b0b29979158914b7775bd58",
      "old_mode": 33188,
      "old_path": "src/dawn/native/vulkan/TextureVk.cpp",
      "new_id": "e389acce01e0a00a6f4b3aa98ece417691088532",
      "new_mode": 33188,
      "new_path": "src/dawn/native/vulkan/TextureVk.cpp"
    },
    {
      "type": "modify",
      "old_id": "f9f04899a0ce3e2a5ff11059ab11fc53151702fa",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/end2end/TextureViewTests.cpp",
      "new_id": "6b2f00bee891da9d4925fa58a73c3706e6034daf",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/end2end/TextureViewTests.cpp"
    },
    {
      "type": "modify",
      "old_id": "056b7ae70ae313e00215a76217cceb266e72d290",
      "old_mode": 33188,
      "old_path": "src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp",
      "new_id": "f0024705e11569b4e710f6ef0c357ed4f884d3f3",
      "new_mode": 33188,
      "new_path": "src/dawn/tests/white_box/SharedTextureMemoryYCbCrAndroidTests.cpp"
    }
  ]
}
