Vulkan: Add missing layout for VK_IMAGE_LAYOUT_UNDEFINED

This this was missed because it doesn't add its own enum value and
instead reuses GL_NONE.

Bug: chromium:976374
Test: chrome --enable-features=UseSkiaRenderer,UiGpuRasterization \
  --enable-gpu-rasterization \
  --enable-oop-rasterization \
  --use-vulkan=native \
  --use-gl=angle \
  --use-angle=vulkan

Change-Id: I73437211fef3253801e899cb6e50a8e18865cc65
Reviewed-on: https://chromium-review.googlesource.com/c/angle/angle/+/1665329
Commit-Queue: Michael Spang <spang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/common/PackedGLEnums_autogen.cpp b/src/common/PackedGLEnums_autogen.cpp
index b9a7c8e..52c1100 100644
--- a/src/common/PackedGLEnums_autogen.cpp
+++ b/src/common/PackedGLEnums_autogen.cpp
@@ -432,6 +432,8 @@
 {
     switch (from)
     {
+        case GL_NONE:
+            return ImageLayout::Undefined;
         case GL_LAYOUT_GENERAL_EXT:
             return ImageLayout::General;
         case GL_LAYOUT_COLOR_ATTACHMENT_EXT:
@@ -459,6 +461,8 @@
 {
     switch (from)
     {
+        case ImageLayout::Undefined:
+            return GL_NONE;
         case ImageLayout::General:
             return GL_LAYOUT_GENERAL_EXT;
         case ImageLayout::ColorAttachment:
diff --git a/src/common/PackedGLEnums_autogen.h b/src/common/PackedGLEnums_autogen.h
index 3e5e600..64dd496 100644
--- a/src/common/PackedGLEnums_autogen.h
+++ b/src/common/PackedGLEnums_autogen.h
@@ -189,18 +189,19 @@
 
 enum class ImageLayout : uint8_t
 {
-    General                        = 0,
-    ColorAttachment                = 1,
-    DepthStencilAttachment         = 2,
-    DepthStencilReadOnlyAttachment = 3,
-    ShaderReadOnly                 = 4,
-    TransferSrc                    = 5,
-    TransferDst                    = 6,
-    DepthReadOnlyStencilAttachment = 7,
-    DepthAttachmentStencilReadOnly = 8,
+    Undefined                      = 0,
+    General                        = 1,
+    ColorAttachment                = 2,
+    DepthStencilAttachment         = 3,
+    DepthStencilReadOnlyAttachment = 4,
+    ShaderReadOnly                 = 5,
+    TransferSrc                    = 6,
+    TransferDst                    = 7,
+    DepthReadOnlyStencilAttachment = 8,
+    DepthAttachmentStencilReadOnly = 9,
 
-    InvalidEnum = 9,
-    EnumCount   = 9,
+    InvalidEnum = 10,
+    EnumCount   = 10,
 };
 
 template <>
diff --git a/src/common/packed_gl_enums.json b/src/common/packed_gl_enums.json
index f022adc..aa997f7 100644
--- a/src/common/packed_gl_enums.json
+++ b/src/common/packed_gl_enums.json
@@ -269,6 +269,7 @@
     },
     "ImageLayout":
     {
+        "Undefined": "GL_NONE",
         "General": "GL_LAYOUT_GENERAL_EXT",
         "ColorAttachment": "GL_LAYOUT_COLOR_ATTACHMENT_EXT",
         "DepthStencilAttachment": "GL_LAYOUT_DEPTH_STENCIL_ATTACHMENT_EXT",
diff --git a/src/libANGLE/validationES2.cpp b/src/libANGLE/validationES2.cpp
index 0a2f9c7..fc3a040 100644
--- a/src/libANGLE/validationES2.cpp
+++ b/src/libANGLE/validationES2.cpp
@@ -1129,6 +1129,7 @@
 {
     switch (layout)
     {
+        case ImageLayout::Undefined:
         case ImageLayout::General:
         case ImageLayout::ColorAttachment:
         case ImageLayout::DepthStencilAttachment: