Vulkan: EXT_YUV_target: add vk feature

This Vulkan feature will be set to true once we detect support
from underlying Vk driver (method TBD).

Bug: b/223456677
Change-Id: I5003068c3119f43befb92579d4b656e3a9346363
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/3788564
Reviewed-by: Shahbaz Youssefi <syoussefi@chromium.org>
Reviewed-by: Chris Forbes <chrisforbes@google.com>
Reviewed-by: Charlie Lao <cclao@google.com>
Commit-Queue: Lingfeng Yang <lfy@google.com>
diff --git a/include/platform/FeaturesVk_autogen.h b/include/platform/FeaturesVk_autogen.h
index f467af3..0b0aa90 100644
--- a/include/platform/FeaturesVk_autogen.h
+++ b/include/platform/FeaturesVk_autogen.h
@@ -671,6 +671,13 @@
         "Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion",
         &members,
     };
+
+    FeatureInfo supportsYuvTarget = {
+        "supportsYuvTarget",
+        FeatureCategory::VulkanFeatures,
+        "VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment",
+        &members,
+    };
 };
 
 inline FeaturesVk::FeaturesVk()  = default;
diff --git a/include/platform/vk_features.json b/include/platform/vk_features.json
index 682cf40..6da7b05 100644
--- a/include/platform/vk_features.json
+++ b/include/platform/vk_features.json
@@ -901,6 +901,13 @@
             "description": [
                 "Prefer to use VK_FILTER_LINEAR for VkSamplerYcbcrConversion"
             ]
+        },
+        {
+            "name": "supports_yuv_target",
+            "category": "Features",
+            "description": [
+                "VkDevice supports VK_ANDROID_render_to_external_format and VK_EXT_ycbcr_attachment"
+            ]
         }
     ]
 }
diff --git a/scripts/code_generation_hashes/ANGLE_features.json b/scripts/code_generation_hashes/ANGLE_features.json
index 3e433206..c64065f 100644
--- a/scripts/code_generation_hashes/ANGLE_features.json
+++ b/scripts/code_generation_hashes/ANGLE_features.json
@@ -6,7 +6,7 @@
   "include/platform/FeaturesMtl_autogen.h":
     "6b6d49c35bc9246361f8dac0a5445a02",
   "include/platform/FeaturesVk_autogen.h":
-    "816ce4ef901605dbe0d03edf3eb4f3b5",
+    "ae534158f23be1a675a733bcce7a8c01",
   "include/platform/FrontendFeatures_autogen.h":
     "1781e4fa6efb552bca2ce5a5164eb374",
   "include/platform/d3d_features.json":
@@ -20,9 +20,9 @@
   "include/platform/mtl_features.json":
     "1fabfe4d5c2eb3683a5b567ab60ad83c",
   "include/platform/vk_features.json":
-    "3574d1618307a49d242a424c0d79a8a3",
+    "e13d14c9acb284da1a938f9513a2b5d1",
   "util/angle_features_autogen.cpp":
-    "4c8feb678e0aff9c853d4aec094c2528",
+    "aa68addb1417dd8559123009ac13afcb",
   "util/angle_features_autogen.h":
-    "7d9d5092bb61cc298733a6c9a2dfd598"
+    "31a767db31309b7f3bbe7b8d0b294f56"
 }
\ No newline at end of file
diff --git a/util/angle_features_autogen.cpp b/util/angle_features_autogen.cpp
index 06696e2..354bd06 100644
--- a/util/angle_features_autogen.cpp
+++ b/util/angle_features_autogen.cpp
@@ -269,6 +269,7 @@
     {Feature::SupportsSurfaceProtectedSwapchains, "supportsSurfaceProtectedSwapchains"},
     {Feature::SupportsTransformFeedbackExtension, "supportsTransformFeedbackExtension"},
     {Feature::SupportsYUVSamplerConversion, "supportsYUVSamplerConversion"},
+    {Feature::SupportsYuvTarget, "supportsYuvTarget"},
     {Feature::SwapbuffersOnFlushOrFinishWithSingleBuffer,
      "swapbuffersOnFlushOrFinishWithSingleBuffer"},
     {Feature::SyncVertexArraysToDefault, "syncVertexArraysToDefault"},
diff --git a/util/angle_features_autogen.h b/util/angle_features_autogen.h
index 36e3322..3511c8f 100644
--- a/util/angle_features_autogen.h
+++ b/util/angle_features_autogen.h
@@ -253,6 +253,7 @@
     SupportsSurfaceProtectedSwapchains,
     SupportsTransformFeedbackExtension,
     SupportsYUVSamplerConversion,
+    SupportsYuvTarget,
     SwapbuffersOnFlushOrFinishWithSingleBuffer,
     SyncVertexArraysToDefault,
     UnbindFBOBeforeSwitchingContext,