Rename angle::Format::ID to angle::FormatID.

This allow for predeclaring the enum. It solves some include dependency
issues.

Bug: angleproject:2729
Change-Id: Ibbbab0796e466c62848404ba277c5f454fd9ac62
Reviewed-on: https://chromium-review.googlesource.com/1142299
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Frank Henigman <fjhenigman@chromium.org>
Reviewed-by: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/Caps.cpp b/src/libANGLE/Caps.cpp
index 35316f9..4eb8aed 100644
--- a/src/libANGLE/Caps.cpp
+++ b/src/libANGLE/Caps.cpp
@@ -102,8 +102,8 @@
 
 void TextureCapsMap::insert(GLenum internalFormat, const TextureCaps &caps)
 {
-    angle::Format::ID formatID = angle::Format::InternalFormatToID(internalFormat);
-    get(formatID)              = caps;
+    angle::FormatID formatID = angle::Format::InternalFormatToID(internalFormat);
+    get(formatID)            = caps;
 }
 
 void TextureCapsMap::clear()
@@ -113,21 +113,21 @@
 
 const TextureCaps &TextureCapsMap::get(GLenum internalFormat) const
 {
-    angle::Format::ID formatID = angle::Format::InternalFormatToID(internalFormat);
+    angle::FormatID formatID = angle::Format::InternalFormatToID(internalFormat);
     return get(formatID);
 }
 
-const TextureCaps &TextureCapsMap::get(angle::Format::ID formatID) const
+const TextureCaps &TextureCapsMap::get(angle::FormatID formatID) const
 {
     return mFormatData[static_cast<size_t>(formatID)];
 }
 
-TextureCaps &TextureCapsMap::get(angle::Format::ID formatID)
+TextureCaps &TextureCapsMap::get(angle::FormatID formatID)
 {
     return mFormatData[static_cast<size_t>(formatID)];
 }
 
-void TextureCapsMap::set(angle::Format::ID formatID, const TextureCaps &caps)
+void TextureCapsMap::set(angle::FormatID formatID, const TextureCaps &caps)
 {
     get(formatID) = caps;
 }
diff --git a/src/libANGLE/Caps.h b/src/libANGLE/Caps.h
index 270af51..6163f8c 100644
--- a/src/libANGLE/Caps.h
+++ b/src/libANGLE/Caps.h
@@ -71,13 +71,13 @@
     void clear();
 
     // Prefer using angle::Format methods.
-    const TextureCaps &get(angle::Format::ID formatID) const;
-    void set(angle::Format::ID formatID, const TextureCaps &caps);
+    const TextureCaps &get(angle::FormatID formatID) const;
+    void set(angle::FormatID formatID, const TextureCaps &caps);
 
   private:
-    TextureCaps &get(angle::Format::ID formatID);
+    TextureCaps &get(angle::FormatID formatID);
 
-    // Indexed by angle::Format::ID
+    // Indexed by angle::FormatID
     std::array<TextureCaps, angle::kNumANGLEFormats> mFormatData;
 };
 
diff --git a/src/libANGLE/formatutils.cpp b/src/libANGLE/formatutils.cpp
index 3fef699..7b55e85 100644
--- a/src/libANGLE/formatutils.cpp
+++ b/src/libANGLE/formatutils.cpp
@@ -1306,10 +1306,10 @@
     }
 }
 
-angle::Format::ID GetVertexFormatID(GLenum type,
-                                    GLboolean normalized,
-                                    GLuint components,
-                                    bool pureInteger)
+angle::FormatID GetVertexFormatID(GLenum type,
+                                  GLboolean normalized,
+                                  GLuint components,
+                                  bool pureInteger)
 {
     switch (type)
     {
@@ -1318,32 +1318,32 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R8_SINT;
+                        return angle::FormatID::R8_SINT;
                     if (normalized)
-                        return angle::Format::ID::R8_SNORM;
-                    return angle::Format::ID::R8_SSCALED;
+                        return angle::FormatID::R8_SNORM;
+                    return angle::FormatID::R8_SSCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8_SINT;
+                        return angle::FormatID::R8G8_SINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8_SNORM;
-                    return angle::Format::ID::R8G8_SSCALED;
+                        return angle::FormatID::R8G8_SNORM;
+                    return angle::FormatID::R8G8_SSCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8B8_SINT;
+                        return angle::FormatID::R8G8B8_SINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8B8_SNORM;
-                    return angle::Format::ID::R8G8B8_SSCALED;
+                        return angle::FormatID::R8G8B8_SNORM;
+                    return angle::FormatID::R8G8B8_SSCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8B8A8_SINT;
+                        return angle::FormatID::R8G8B8A8_SINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8B8A8_SNORM;
-                    return angle::Format::ID::R8G8B8A8_SSCALED;
+                        return angle::FormatID::R8G8B8A8_SNORM;
+                    return angle::FormatID::R8G8B8A8_SSCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_UNSIGNED_BYTE:
@@ -1351,32 +1351,32 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R8_UINT;
+                        return angle::FormatID::R8_UINT;
                     if (normalized)
-                        return angle::Format::ID::R8_UNORM;
-                    return angle::Format::ID::R8_USCALED;
+                        return angle::FormatID::R8_UNORM;
+                    return angle::FormatID::R8_USCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8_UINT;
+                        return angle::FormatID::R8G8_UINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8_UNORM;
-                    return angle::Format::ID::R8G8_USCALED;
+                        return angle::FormatID::R8G8_UNORM;
+                    return angle::FormatID::R8G8_USCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8B8_UINT;
+                        return angle::FormatID::R8G8B8_UINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8B8_UNORM;
-                    return angle::Format::ID::R8G8B8_USCALED;
+                        return angle::FormatID::R8G8B8_UNORM;
+                    return angle::FormatID::R8G8B8_USCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R8G8B8A8_UINT;
+                        return angle::FormatID::R8G8B8A8_UINT;
                     if (normalized)
-                        return angle::Format::ID::R8G8B8A8_UNORM;
-                    return angle::Format::ID::R8G8B8A8_USCALED;
+                        return angle::FormatID::R8G8B8A8_UNORM;
+                    return angle::FormatID::R8G8B8A8_USCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_SHORT:
@@ -1384,32 +1384,32 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R16_SINT;
+                        return angle::FormatID::R16_SINT;
                     if (normalized)
-                        return angle::Format::ID::R16_SNORM;
-                    return angle::Format::ID::R16_SSCALED;
+                        return angle::FormatID::R16_SNORM;
+                    return angle::FormatID::R16_SSCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16_SINT;
+                        return angle::FormatID::R16G16_SINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16_SNORM;
-                    return angle::Format::ID::R16G16_SSCALED;
+                        return angle::FormatID::R16G16_SNORM;
+                    return angle::FormatID::R16G16_SSCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16B16_SINT;
+                        return angle::FormatID::R16G16B16_SINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16B16_SNORM;
-                    return angle::Format::ID::R16G16B16_SSCALED;
+                        return angle::FormatID::R16G16B16_SNORM;
+                    return angle::FormatID::R16G16B16_SSCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16B16A16_SINT;
+                        return angle::FormatID::R16G16B16A16_SINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16B16A16_SNORM;
-                    return angle::Format::ID::R16G16B16A16_SSCALED;
+                        return angle::FormatID::R16G16B16A16_SNORM;
+                    return angle::FormatID::R16G16B16A16_SSCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_UNSIGNED_SHORT:
@@ -1417,32 +1417,32 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R16_UINT;
+                        return angle::FormatID::R16_UINT;
                     if (normalized)
-                        return angle::Format::ID::R16_UNORM;
-                    return angle::Format::ID::R16_USCALED;
+                        return angle::FormatID::R16_UNORM;
+                    return angle::FormatID::R16_USCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16_UINT;
+                        return angle::FormatID::R16G16_UINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16_UNORM;
-                    return angle::Format::ID::R16G16_USCALED;
+                        return angle::FormatID::R16G16_UNORM;
+                    return angle::FormatID::R16G16_USCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16B16_UINT;
+                        return angle::FormatID::R16G16B16_UINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16B16_UNORM;
-                    return angle::Format::ID::R16G16B16_USCALED;
+                        return angle::FormatID::R16G16B16_UNORM;
+                    return angle::FormatID::R16G16B16_USCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R16G16B16A16_UINT;
+                        return angle::FormatID::R16G16B16A16_UINT;
                     if (normalized)
-                        return angle::Format::ID::R16G16B16A16_UNORM;
-                    return angle::Format::ID::R16G16B16A16_USCALED;
+                        return angle::FormatID::R16G16B16A16_UNORM;
+                    return angle::FormatID::R16G16B16A16_USCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_INT:
@@ -1450,32 +1450,32 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R32_SINT;
+                        return angle::FormatID::R32_SINT;
                     if (normalized)
-                        return angle::Format::ID::R32_SNORM;
-                    return angle::Format::ID::R32_SSCALED;
+                        return angle::FormatID::R32_SNORM;
+                    return angle::FormatID::R32_SSCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32_SINT;
+                        return angle::FormatID::R32G32_SINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32_SNORM;
-                    return angle::Format::ID::R32G32_SSCALED;
+                        return angle::FormatID::R32G32_SNORM;
+                    return angle::FormatID::R32G32_SSCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32B32_SINT;
+                        return angle::FormatID::R32G32B32_SINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32B32_SNORM;
-                    return angle::Format::ID::R32G32B32_SSCALED;
+                        return angle::FormatID::R32G32B32_SNORM;
+                    return angle::FormatID::R32G32B32_SSCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32B32A32_SINT;
+                        return angle::FormatID::R32G32B32A32_SINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32B32A32_SNORM;
-                    return angle::Format::ID::R32G32B32A32_SSCALED;
+                        return angle::FormatID::R32G32B32A32_SNORM;
+                    return angle::FormatID::R32G32B32A32_SSCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_UNSIGNED_INT:
@@ -1483,111 +1483,111 @@
             {
                 case 1:
                     if (pureInteger)
-                        return angle::Format::ID::R32_UINT;
+                        return angle::FormatID::R32_UINT;
                     if (normalized)
-                        return angle::Format::ID::R32_UNORM;
-                    return angle::Format::ID::R32_USCALED;
+                        return angle::FormatID::R32_UNORM;
+                    return angle::FormatID::R32_USCALED;
                 case 2:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32_UINT;
+                        return angle::FormatID::R32G32_UINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32_UNORM;
-                    return angle::Format::ID::R32G32_USCALED;
+                        return angle::FormatID::R32G32_UNORM;
+                    return angle::FormatID::R32G32_USCALED;
                 case 3:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32B32_UINT;
+                        return angle::FormatID::R32G32B32_UINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32B32_UNORM;
-                    return angle::Format::ID::R32G32B32_USCALED;
+                        return angle::FormatID::R32G32B32_UNORM;
+                    return angle::FormatID::R32G32B32_USCALED;
                 case 4:
                     if (pureInteger)
-                        return angle::Format::ID::R32G32B32A32_UINT;
+                        return angle::FormatID::R32G32B32A32_UINT;
                     if (normalized)
-                        return angle::Format::ID::R32G32B32A32_UNORM;
-                    return angle::Format::ID::R32G32B32A32_USCALED;
+                        return angle::FormatID::R32G32B32A32_UNORM;
+                    return angle::FormatID::R32G32B32A32_USCALED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_FLOAT:
             switch (components)
             {
                 case 1:
-                    return angle::Format::ID::R32_FLOAT;
+                    return angle::FormatID::R32_FLOAT;
                 case 2:
-                    return angle::Format::ID::R32G32_FLOAT;
+                    return angle::FormatID::R32G32_FLOAT;
                 case 3:
-                    return angle::Format::ID::R32G32B32_FLOAT;
+                    return angle::FormatID::R32G32B32_FLOAT;
                 case 4:
-                    return angle::Format::ID::R32G32B32A32_FLOAT;
+                    return angle::FormatID::R32G32B32A32_FLOAT;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_HALF_FLOAT:
             switch (components)
             {
                 case 1:
-                    return angle::Format::ID::R16_FLOAT;
+                    return angle::FormatID::R16_FLOAT;
                 case 2:
-                    return angle::Format::ID::R16G16_FLOAT;
+                    return angle::FormatID::R16G16_FLOAT;
                 case 3:
-                    return angle::Format::ID::R16G16B16_FLOAT;
+                    return angle::FormatID::R16G16B16_FLOAT;
                 case 4:
-                    return angle::Format::ID::R16G16B16A16_FLOAT;
+                    return angle::FormatID::R16G16B16A16_FLOAT;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_FIXED:
             switch (components)
             {
                 case 1:
-                    return angle::Format::ID::R32_FIXED;
+                    return angle::FormatID::R32_FIXED;
                 case 2:
-                    return angle::Format::ID::R32G32_FIXED;
+                    return angle::FormatID::R32G32_FIXED;
                 case 3:
-                    return angle::Format::ID::R32G32B32_FIXED;
+                    return angle::FormatID::R32G32B32_FIXED;
                 case 4:
-                    return angle::Format::ID::R32G32B32A32_FIXED;
+                    return angle::FormatID::R32G32B32A32_FIXED;
                 default:
                     UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-                    return angle::Format::ID::NONE;
+                    return angle::FormatID::NONE;
 #endif
             }
         case GL_INT_2_10_10_10_REV:
             if (pureInteger)
-                return angle::Format::ID::R10G10B10A2_SINT;
+                return angle::FormatID::R10G10B10A2_SINT;
             if (normalized)
-                return angle::Format::ID::R10G10B10A2_SNORM;
-            return angle::Format::ID::R10G10B10A2_SSCALED;
+                return angle::FormatID::R10G10B10A2_SNORM;
+            return angle::FormatID::R10G10B10A2_SSCALED;
         case GL_UNSIGNED_INT_2_10_10_10_REV:
             if (pureInteger)
-                return angle::Format::ID::R10G10B10A2_UINT;
+                return angle::FormatID::R10G10B10A2_UINT;
             if (normalized)
-                return angle::Format::ID::R10G10B10A2_UNORM;
-            return angle::Format::ID::R10G10B10A2_USCALED;
+                return angle::FormatID::R10G10B10A2_UNORM;
+            return angle::FormatID::R10G10B10A2_USCALED;
         default:
             UNREACHABLE();
 #if !UNREACHABLE_IS_NORETURN
-            return angle::Format::ID::NONE;
+            return angle::FormatID::NONE;
 #endif
     }
 }
 
-angle::Format::ID GetVertexFormatID(const VertexAttribute &attrib)
+angle::FormatID GetVertexFormatID(const VertexAttribute &attrib)
 {
     return GetVertexFormatID(attrib.type, attrib.normalized, attrib.size, attrib.pureInteger);
 }
 
-// TODO(fjhenigman): Do away with VertexFormatType; use angle::Format::ID instead. anglebug.com/2531
+// TODO(fjhenigman): Do away with VertexFormatType; use angle::FormatID instead. anglebug.com/2531
 VertexFormatType GetVertexFormatType(GLenum type,
                                      GLboolean normalized,
                                      GLuint components,
@@ -1595,185 +1595,185 @@
 {
     switch (GetVertexFormatID(type, normalized, components, pureInteger))
     {
-        case angle::Format::ID::R8_SINT:
+        case angle::FormatID::R8_SINT:
             return VERTEX_FORMAT_SBYTE1_INT;
-        case angle::Format::ID::R8_SNORM:
+        case angle::FormatID::R8_SNORM:
             return VERTEX_FORMAT_SBYTE1_NORM;
-        case angle::Format::ID::R8_SSCALED:
+        case angle::FormatID::R8_SSCALED:
             return VERTEX_FORMAT_SBYTE1;
-        case angle::Format::ID::R8G8_SINT:
+        case angle::FormatID::R8G8_SINT:
             return VERTEX_FORMAT_SBYTE2_INT;
-        case angle::Format::ID::R8G8_SNORM:
+        case angle::FormatID::R8G8_SNORM:
             return VERTEX_FORMAT_SBYTE2_NORM;
-        case angle::Format::ID::R8G8_SSCALED:
+        case angle::FormatID::R8G8_SSCALED:
             return VERTEX_FORMAT_SBYTE2;
-        case angle::Format::ID::R8G8B8_SINT:
+        case angle::FormatID::R8G8B8_SINT:
             return VERTEX_FORMAT_SBYTE3_INT;
-        case angle::Format::ID::R8G8B8_SNORM:
+        case angle::FormatID::R8G8B8_SNORM:
             return VERTEX_FORMAT_SBYTE3_NORM;
-        case angle::Format::ID::R8G8B8_SSCALED:
+        case angle::FormatID::R8G8B8_SSCALED:
             return VERTEX_FORMAT_SBYTE3;
-        case angle::Format::ID::R8G8B8A8_SINT:
+        case angle::FormatID::R8G8B8A8_SINT:
             return VERTEX_FORMAT_SBYTE4_INT;
-        case angle::Format::ID::R8G8B8A8_SNORM:
+        case angle::FormatID::R8G8B8A8_SNORM:
             return VERTEX_FORMAT_SBYTE4_NORM;
-        case angle::Format::ID::R8G8B8A8_SSCALED:
+        case angle::FormatID::R8G8B8A8_SSCALED:
             return VERTEX_FORMAT_SBYTE4;
-        case angle::Format::ID::R8_UINT:
+        case angle::FormatID::R8_UINT:
             return VERTEX_FORMAT_UBYTE1_INT;
-        case angle::Format::ID::R8_UNORM:
+        case angle::FormatID::R8_UNORM:
             return VERTEX_FORMAT_UBYTE1_NORM;
-        case angle::Format::ID::R8_USCALED:
+        case angle::FormatID::R8_USCALED:
             return VERTEX_FORMAT_UBYTE1;
-        case angle::Format::ID::R8G8_UINT:
+        case angle::FormatID::R8G8_UINT:
             return VERTEX_FORMAT_UBYTE2_INT;
-        case angle::Format::ID::R8G8_UNORM:
+        case angle::FormatID::R8G8_UNORM:
             return VERTEX_FORMAT_UBYTE2_NORM;
-        case angle::Format::ID::R8G8_USCALED:
+        case angle::FormatID::R8G8_USCALED:
             return VERTEX_FORMAT_UBYTE2;
-        case angle::Format::ID::R8G8B8_UINT:
+        case angle::FormatID::R8G8B8_UINT:
             return VERTEX_FORMAT_UBYTE3_INT;
-        case angle::Format::ID::R8G8B8_UNORM:
+        case angle::FormatID::R8G8B8_UNORM:
             return VERTEX_FORMAT_UBYTE3_NORM;
-        case angle::Format::ID::R8G8B8_USCALED:
+        case angle::FormatID::R8G8B8_USCALED:
             return VERTEX_FORMAT_UBYTE3;
-        case angle::Format::ID::R8G8B8A8_UINT:
+        case angle::FormatID::R8G8B8A8_UINT:
             return VERTEX_FORMAT_UBYTE4_INT;
-        case angle::Format::ID::R8G8B8A8_UNORM:
+        case angle::FormatID::R8G8B8A8_UNORM:
             return VERTEX_FORMAT_UBYTE4_NORM;
-        case angle::Format::ID::R8G8B8A8_USCALED:
+        case angle::FormatID::R8G8B8A8_USCALED:
             return VERTEX_FORMAT_UBYTE4;
-        case angle::Format::ID::R16_SINT:
+        case angle::FormatID::R16_SINT:
             return VERTEX_FORMAT_SSHORT1_INT;
-        case angle::Format::ID::R16_SNORM:
+        case angle::FormatID::R16_SNORM:
             return VERTEX_FORMAT_SSHORT1_NORM;
-        case angle::Format::ID::R16_SSCALED:
+        case angle::FormatID::R16_SSCALED:
             return VERTEX_FORMAT_SSHORT1;
-        case angle::Format::ID::R16G16_SINT:
+        case angle::FormatID::R16G16_SINT:
             return VERTEX_FORMAT_SSHORT2_INT;
-        case angle::Format::ID::R16G16_SNORM:
+        case angle::FormatID::R16G16_SNORM:
             return VERTEX_FORMAT_SSHORT2_NORM;
-        case angle::Format::ID::R16G16_SSCALED:
+        case angle::FormatID::R16G16_SSCALED:
             return VERTEX_FORMAT_SSHORT2;
-        case angle::Format::ID::R16G16B16_SINT:
+        case angle::FormatID::R16G16B16_SINT:
             return VERTEX_FORMAT_SSHORT3_INT;
-        case angle::Format::ID::R16G16B16_SNORM:
+        case angle::FormatID::R16G16B16_SNORM:
             return VERTEX_FORMAT_SSHORT3_NORM;
-        case angle::Format::ID::R16G16B16_SSCALED:
+        case angle::FormatID::R16G16B16_SSCALED:
             return VERTEX_FORMAT_SSHORT3;
-        case angle::Format::ID::R16G16B16A16_SINT:
+        case angle::FormatID::R16G16B16A16_SINT:
             return VERTEX_FORMAT_SSHORT4_INT;
-        case angle::Format::ID::R16G16B16A16_SNORM:
+        case angle::FormatID::R16G16B16A16_SNORM:
             return VERTEX_FORMAT_SSHORT4_NORM;
-        case angle::Format::ID::R16G16B16A16_SSCALED:
+        case angle::FormatID::R16G16B16A16_SSCALED:
             return VERTEX_FORMAT_SSHORT4;
-        case angle::Format::ID::R16_UINT:
+        case angle::FormatID::R16_UINT:
             return VERTEX_FORMAT_USHORT1_INT;
-        case angle::Format::ID::R16_UNORM:
+        case angle::FormatID::R16_UNORM:
             return VERTEX_FORMAT_USHORT1_NORM;
-        case angle::Format::ID::R16_USCALED:
+        case angle::FormatID::R16_USCALED:
             return VERTEX_FORMAT_USHORT1;
-        case angle::Format::ID::R16G16_UINT:
+        case angle::FormatID::R16G16_UINT:
             return VERTEX_FORMAT_USHORT2_INT;
-        case angle::Format::ID::R16G16_UNORM:
+        case angle::FormatID::R16G16_UNORM:
             return VERTEX_FORMAT_USHORT2_NORM;
-        case angle::Format::ID::R16G16_USCALED:
+        case angle::FormatID::R16G16_USCALED:
             return VERTEX_FORMAT_USHORT2;
-        case angle::Format::ID::R16G16B16_UINT:
+        case angle::FormatID::R16G16B16_UINT:
             return VERTEX_FORMAT_USHORT3_INT;
-        case angle::Format::ID::R16G16B16_UNORM:
+        case angle::FormatID::R16G16B16_UNORM:
             return VERTEX_FORMAT_USHORT3_NORM;
-        case angle::Format::ID::R16G16B16_USCALED:
+        case angle::FormatID::R16G16B16_USCALED:
             return VERTEX_FORMAT_USHORT3;
-        case angle::Format::ID::R16G16B16A16_UINT:
+        case angle::FormatID::R16G16B16A16_UINT:
             return VERTEX_FORMAT_USHORT4_INT;
-        case angle::Format::ID::R16G16B16A16_UNORM:
+        case angle::FormatID::R16G16B16A16_UNORM:
             return VERTEX_FORMAT_USHORT4_NORM;
-        case angle::Format::ID::R16G16B16A16_USCALED:
+        case angle::FormatID::R16G16B16A16_USCALED:
             return VERTEX_FORMAT_USHORT4;
-        case angle::Format::ID::R32_SINT:
+        case angle::FormatID::R32_SINT:
             return VERTEX_FORMAT_SINT1_INT;
-        case angle::Format::ID::R32_SNORM:
+        case angle::FormatID::R32_SNORM:
             return VERTEX_FORMAT_SINT1_NORM;
-        case angle::Format::ID::R32_SSCALED:
+        case angle::FormatID::R32_SSCALED:
             return VERTEX_FORMAT_SINT1;
-        case angle::Format::ID::R32G32_SINT:
+        case angle::FormatID::R32G32_SINT:
             return VERTEX_FORMAT_SINT2_INT;
-        case angle::Format::ID::R32G32_SNORM:
+        case angle::FormatID::R32G32_SNORM:
             return VERTEX_FORMAT_SINT2_NORM;
-        case angle::Format::ID::R32G32_SSCALED:
+        case angle::FormatID::R32G32_SSCALED:
             return VERTEX_FORMAT_SINT2;
-        case angle::Format::ID::R32G32B32_SINT:
+        case angle::FormatID::R32G32B32_SINT:
             return VERTEX_FORMAT_SINT3_INT;
-        case angle::Format::ID::R32G32B32_SNORM:
+        case angle::FormatID::R32G32B32_SNORM:
             return VERTEX_FORMAT_SINT3_NORM;
-        case angle::Format::ID::R32G32B32_SSCALED:
+        case angle::FormatID::R32G32B32_SSCALED:
             return VERTEX_FORMAT_SINT3;
-        case angle::Format::ID::R32G32B32A32_SINT:
+        case angle::FormatID::R32G32B32A32_SINT:
             return VERTEX_FORMAT_SINT4_INT;
-        case angle::Format::ID::R32G32B32A32_SNORM:
+        case angle::FormatID::R32G32B32A32_SNORM:
             return VERTEX_FORMAT_SINT4_NORM;
-        case angle::Format::ID::R32G32B32A32_SSCALED:
+        case angle::FormatID::R32G32B32A32_SSCALED:
             return VERTEX_FORMAT_SINT4;
-        case angle::Format::ID::R32_UINT:
+        case angle::FormatID::R32_UINT:
             return VERTEX_FORMAT_UINT1_INT;
-        case angle::Format::ID::R32_UNORM:
+        case angle::FormatID::R32_UNORM:
             return VERTEX_FORMAT_UINT1_NORM;
-        case angle::Format::ID::R32_USCALED:
+        case angle::FormatID::R32_USCALED:
             return VERTEX_FORMAT_UINT1;
-        case angle::Format::ID::R32G32_UINT:
+        case angle::FormatID::R32G32_UINT:
             return VERTEX_FORMAT_UINT2_INT;
-        case angle::Format::ID::R32G32_UNORM:
+        case angle::FormatID::R32G32_UNORM:
             return VERTEX_FORMAT_UINT2_NORM;
-        case angle::Format::ID::R32G32_USCALED:
+        case angle::FormatID::R32G32_USCALED:
             return VERTEX_FORMAT_UINT2;
-        case angle::Format::ID::R32G32B32_UINT:
+        case angle::FormatID::R32G32B32_UINT:
             return VERTEX_FORMAT_UINT3_INT;
-        case angle::Format::ID::R32G32B32_UNORM:
+        case angle::FormatID::R32G32B32_UNORM:
             return VERTEX_FORMAT_UINT3_NORM;
-        case angle::Format::ID::R32G32B32_USCALED:
+        case angle::FormatID::R32G32B32_USCALED:
             return VERTEX_FORMAT_UINT3;
-        case angle::Format::ID::R32G32B32A32_UINT:
+        case angle::FormatID::R32G32B32A32_UINT:
             return VERTEX_FORMAT_UINT4_INT;
-        case angle::Format::ID::R32G32B32A32_UNORM:
+        case angle::FormatID::R32G32B32A32_UNORM:
             return VERTEX_FORMAT_UINT4_NORM;
-        case angle::Format::ID::R32G32B32A32_USCALED:
+        case angle::FormatID::R32G32B32A32_USCALED:
             return VERTEX_FORMAT_UINT4;
-        case angle::Format::ID::R32_FLOAT:
+        case angle::FormatID::R32_FLOAT:
             return VERTEX_FORMAT_FLOAT1;
-        case angle::Format::ID::R32G32_FLOAT:
+        case angle::FormatID::R32G32_FLOAT:
             return VERTEX_FORMAT_FLOAT2;
-        case angle::Format::ID::R32G32B32_FLOAT:
+        case angle::FormatID::R32G32B32_FLOAT:
             return VERTEX_FORMAT_FLOAT3;
-        case angle::Format::ID::R32G32B32A32_FLOAT:
+        case angle::FormatID::R32G32B32A32_FLOAT:
             return VERTEX_FORMAT_FLOAT4;
-        case angle::Format::ID::R16_FLOAT:
+        case angle::FormatID::R16_FLOAT:
             return VERTEX_FORMAT_HALF1;
-        case angle::Format::ID::R16G16_FLOAT:
+        case angle::FormatID::R16G16_FLOAT:
             return VERTEX_FORMAT_HALF2;
-        case angle::Format::ID::R16G16B16_FLOAT:
+        case angle::FormatID::R16G16B16_FLOAT:
             return VERTEX_FORMAT_HALF3;
-        case angle::Format::ID::R16G16B16A16_FLOAT:
+        case angle::FormatID::R16G16B16A16_FLOAT:
             return VERTEX_FORMAT_HALF4;
-        case angle::Format::ID::R32_FIXED:
+        case angle::FormatID::R32_FIXED:
             return VERTEX_FORMAT_FIXED1;
-        case angle::Format::ID::R32G32_FIXED:
+        case angle::FormatID::R32G32_FIXED:
             return VERTEX_FORMAT_FIXED2;
-        case angle::Format::ID::R32G32B32_FIXED:
+        case angle::FormatID::R32G32B32_FIXED:
             return VERTEX_FORMAT_FIXED3;
-        case angle::Format::ID::R32G32B32A32_FIXED:
+        case angle::FormatID::R32G32B32A32_FIXED:
             return VERTEX_FORMAT_FIXED4;
-        case angle::Format::ID::R10G10B10A2_SINT:
+        case angle::FormatID::R10G10B10A2_SINT:
             return VERTEX_FORMAT_SINT210_INT;
-        case angle::Format::ID::R10G10B10A2_SNORM:
+        case angle::FormatID::R10G10B10A2_SNORM:
             return VERTEX_FORMAT_SINT210_NORM;
-        case angle::Format::ID::R10G10B10A2_SSCALED:
+        case angle::FormatID::R10G10B10A2_SSCALED:
             return VERTEX_FORMAT_SINT210;
-        case angle::Format::ID::R10G10B10A2_UINT:
+        case angle::FormatID::R10G10B10A2_UINT:
             return VERTEX_FORMAT_UINT210_INT;
-        case angle::Format::ID::R10G10B10A2_UNORM:
+        case angle::FormatID::R10G10B10A2_UNORM:
             return VERTEX_FORMAT_UINT210_NORM;
-        case angle::Format::ID::R10G10B10A2_USCALED:
+        case angle::FormatID::R10G10B10A2_USCALED:
             return VERTEX_FORMAT_UINT210;
         default:
             return VERTEX_FORMAT_INVALID;
diff --git a/src/libANGLE/formatutils.h b/src/libANGLE/formatutils.h
index 6cfd6ed..16534a8 100644
--- a/src/libANGLE/formatutils.h
+++ b/src/libANGLE/formatutils.h
@@ -314,11 +314,11 @@
     bool pureInteger;
 };
 
-angle::Format::ID GetVertexFormatID(GLenum type,
-                                    GLboolean normalized,
-                                    GLuint components,
-                                    bool pureInteger);
-angle::Format::ID GetVertexFormatID(const VertexAttribute &attrib);
+angle::FormatID GetVertexFormatID(GLenum type,
+                                  GLboolean normalized,
+                                  GLuint components,
+                                  bool pureInteger);
+angle::FormatID GetVertexFormatID(const VertexAttribute &attrib);
 VertexFormatType GetVertexFormatType(GLenum type,
                                      GLboolean normalized,
                                      GLuint components,
diff --git a/src/libANGLE/renderer/Format.h b/src/libANGLE/renderer/Format.h
index c62ef40..90f0f84 100644
--- a/src/libANGLE/renderer/Format.h
+++ b/src/libANGLE/renderer/Format.h
@@ -16,12 +16,11 @@
 
 namespace angle
 {
+enum class FormatID;
 
 struct Format final : private angle::NonCopyable
 {
-    enum class ID;
-
-    constexpr Format(ID id,
+    constexpr Format(FormatID id,
                      GLenum glFormat,
                      GLenum fboFormat,
                      rx::MipGenerationFunction mipGen,
@@ -38,12 +37,12 @@
                      GLuint pixelBytes,
                      bool isBlock);
 
-    static const Format &Get(ID id);
-    static ID InternalFormatToID(GLenum internalFormat);
+    static const Format &Get(FormatID id);
+    static FormatID InternalFormatToID(GLenum internalFormat);
 
     constexpr bool hasDepthOrStencilBits() const;
 
-    ID id;
+    FormatID id;
 
     // The closest matching GL internal format for the storage this format uses. Note that this
     // may be a different internal format than the one this ANGLE format is used for.
@@ -75,7 +74,7 @@
     bool isBlock;
 };
 
-constexpr Format::Format(ID id,
+constexpr Format::Format(FormatID id,
                          GLenum glFormat,
                          GLenum fboFormat,
                          rx::MipGenerationFunction mipGen,
@@ -116,6 +115,6 @@
 }
 }  // namespace angle
 
-#include "libANGLE/renderer/Format_ID_autogen.inl"
+#include "libANGLE/renderer/FormatID_autogen.inc"
 
 #endif  // LIBANGLE_RENDERER_FORMAT_H_
diff --git a/src/libANGLE/renderer/Format_ID_autogen.inl b/src/libANGLE/renderer/FormatID_autogen.inc
similarity index 98%
rename from src/libANGLE/renderer/Format_ID_autogen.inl
rename to src/libANGLE/renderer/FormatID_autogen.inc
index 18a5b54..56c08e7 100644
--- a/src/libANGLE/renderer/Format_ID_autogen.inl
+++ b/src/libANGLE/renderer/FormatID_autogen.inc
@@ -10,7 +10,7 @@
 namespace angle
 {
 
-enum class Format::ID
+enum class FormatID
 {
     NONE,
     A16_FLOAT,
diff --git a/src/libANGLE/renderer/Format_table_autogen.cpp b/src/libANGLE/renderer/Format_table_autogen.cpp
index 8cb4dc2..1f327e8 100644
--- a/src/libANGLE/renderer/Format_table_autogen.cpp
+++ b/src/libANGLE/renderer/Format_table_autogen.cpp
@@ -24,544 +24,544 @@
 
 constexpr Format g_formatInfoTable[] = {
     // clang-format off
-    { Format::ID::NONE, GL_NONE, GL_NONE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_NONE, 0, 0, 0, 0, 0, 0, 0, false },
-    { Format::ID::A16_FLOAT, GL_ALPHA16F_EXT, GL_ALPHA16F_EXT, GenerateMip<A16F>, NoCopyFunctions, ReadColor<A16F, GLfloat>, WriteColor<A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 0, 0, 2, false },
-    { Format::ID::A1R5G5B5_UNORM, GL_A1RGB5_ANGLEX, GL_A1RGB5_ANGLEX, GenerateMip<A1R5G5B5>, NoCopyFunctions, ReadColor<A1R5G5B5, GLfloat>, WriteColor<A1R5G5B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
-    { Format::ID::A32_FLOAT, GL_ALPHA32F_EXT, GL_ALPHA32F_EXT, GenerateMip<A32F>, NoCopyFunctions, ReadColor<A32F, GLfloat>, WriteColor<A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 0, 0, 4, false },
-    { Format::ID::A8_UNORM, GL_ALPHA8_EXT, GL_ALPHA8_EXT, GenerateMip<A8>, NoCopyFunctions, ReadColor<A8, GLfloat>, WriteColor<A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 0, 0, 1, false },
-    { Format::ID::ASTC_10x10_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x10_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_10x8_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_12x10_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_12x10_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_12x12_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_12x12_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_4x4_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_4x4_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_5x4_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_5x4_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_5x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_5x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_6x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_6x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_6x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_6x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::ASTC_8x8_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::B4G4R4A4_UNORM, GL_BGRA4_ANGLEX, GL_RGBA4, GenerateMip<A4R4G4B4>, NoCopyFunctions, ReadColor<A4R4G4B4, GLfloat>, WriteColor<A4R4G4B4, GLfloat>, GL_UNSIGNED_NORMALIZED, 4, 4, 4, 4, 0, 0, 2, false },
-    { Format::ID::B5G5R5A1_UNORM, GL_BGR5_A1_ANGLEX, GL_RGB5_A1, GenerateMip<A1R5G5B5>, NoCopyFunctions, ReadColor<A1R5G5B5, GLfloat>, WriteColor<A1R5G5B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
-    { Format::ID::B5G6R5_UNORM, GL_BGR565_ANGLEX, GL_RGB565, GenerateMip<B5G6R5>, NoCopyFunctions, ReadColor<B5G6R5, GLfloat>, WriteColor<B5G6R5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 6, 5, 0, 0, 0, 2, false },
-    { Format::ID::B8G8R8A8_TYPELESS, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::B8G8R8A8_TYPELESS_SRGB, GL_BGRA8_SRGB_ANGLEX, GL_BGRA8_SRGB_ANGLEX, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::B8G8R8A8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8A8>, BGRACopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::B8G8R8A8_UNORM_SRGB, GL_BGRA8_SRGB_ANGLEX, GL_BGRA8_SRGB_ANGLEX, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::B8G8R8X8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8X8>, NoCopyFunctions, ReadColor<B8G8R8X8, GLfloat>, WriteColor<B8G8R8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 4, false },
-    { Format::ID::BC1_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC1_RGB_UNORM_BLOCK, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC1_RGB_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC2_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC2_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC3_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::BC3_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
-    { Format::ID::D16_UNORM, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT16, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 16, 0, 2, false },
-    { Format::ID::D24_UNORM_S8_UINT, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 24, 8, 4, false },
-    { Format::ID::D24_UNORM_X8_UINT, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT24, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 24, 0, 4, false },
-    { Format::ID::D32_FLOAT, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F, nullptr, NoCopyFunctions, nullptr, nullptr, GL_FLOAT, 0, 0, 0, 0, 32, 0, 4, false },
-    { Format::ID::D32_FLOAT_S8X24_UINT, GL_DEPTH32F_STENCIL8, GL_DEPTH32F_STENCIL8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_FLOAT, 0, 0, 0, 0, 32, 8, 8, false },
-    { Format::ID::D32_UNORM, GL_DEPTH_COMPONENT32_OES, GL_DEPTH_COMPONENT32_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 32, 0, 4, false },
-    { Format::ID::EAC_R11G11_SNORM_BLOCK, GL_COMPRESSED_SIGNED_RG11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 11, 11, 0, 0, 0, 0, 2, true },
-    { Format::ID::EAC_R11G11_UNORM_BLOCK, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RG11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 11, 11, 0, 0, 0, 0, 2, true },
-    { Format::ID::EAC_R11_SNORM_BLOCK, GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_R11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 11, 0, 0, 0, 0, 0, 1, true },
-    { Format::ID::EAC_R11_UNORM_BLOCK, GL_COMPRESSED_R11_EAC, GL_COMPRESSED_R11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 11, 0, 0, 0, 0, 0, 1, true },
-    { Format::ID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
-    { Format::ID::ETC1_R8G8B8_UNORM_BLOCK, GL_ETC1_RGB8_OES, GL_ETC1_RGB8_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
-    { Format::ID::ETC2_R8G8B8A1_SRGB_BLOCK, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 1, 0, 0, 3, true },
-    { Format::ID::ETC2_R8G8B8A1_UNORM_BLOCK, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 1, 0, 0, 3, true },
-    { Format::ID::ETC2_R8G8B8A8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, true },
-    { Format::ID::ETC2_R8G8B8A8_UNORM_BLOCK, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, true },
-    { Format::ID::ETC2_R8G8B8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ETC2, GL_COMPRESSED_SRGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
-    { Format::ID::ETC2_R8G8B8_UNORM_BLOCK, GL_COMPRESSED_RGB8_ETC2, GL_COMPRESSED_RGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
-    { Format::ID::L16A16_FLOAT, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA16F_EXT, GenerateMip<L16A16F>, NoCopyFunctions, ReadColor<L16A16F, GLfloat>, WriteColor<L16A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 0, 0, 4, false },
-    { Format::ID::L16_FLOAT, GL_LUMINANCE16F_EXT, GL_LUMINANCE16F_EXT, GenerateMip<L16F>, NoCopyFunctions, ReadColor<L16F, GLfloat>, WriteColor<L16F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::L32A32_FLOAT, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA32F_EXT, GenerateMip<L32A32F>, NoCopyFunctions, ReadColor<L32A32F, GLfloat>, WriteColor<L32A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 0, 0, 8, false },
-    { Format::ID::L32_FLOAT, GL_LUMINANCE32F_EXT, GL_LUMINANCE32F_EXT, GenerateMip<L32F>, NoCopyFunctions, ReadColor<L32F, GLfloat>, WriteColor<L32F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::L8A8_UNORM, GL_LUMINANCE8_ALPHA8_EXT, GL_LUMINANCE8_ALPHA8_EXT, GenerateMip<L8A8>, NoCopyFunctions, ReadColor<L8A8, GLfloat>, WriteColor<L8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 0, 0, 2, false },
-    { Format::ID::L8_UNORM, GL_LUMINANCE8_EXT, GL_LUMINANCE8_EXT, GenerateMip<L8>, NoCopyFunctions, ReadColor<L8, GLfloat>, WriteColor<L8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R10G10B10A2_SINT, GL_RGB10_A2_SINT_ANGLEX, GL_RGB10_A2_SINT_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLint>, WriteColor<R10G10B10A2S, GLint>, GL_INT, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R10G10B10A2_SNORM, GL_RGB10_A2_SNORM_ANGLEX, GL_RGB10_A2_SNORM_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLfloat>, WriteColor<R10G10B10A2S, GLfloat>, GL_SIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R10G10B10A2_SSCALED, GL_RGB10_A2_SSCALED_ANGLEX, GL_RGB10_A2_SSCALED_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLint>, WriteColor<R10G10B10A2S, GLint>, GL_INT, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R10G10B10A2_UINT, GL_RGB10_A2UI, GL_RGB10_A2UI, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLuint>, WriteColor<R10G10B10A2, GLuint>, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R10G10B10A2_UNORM, GL_RGB10_A2, GL_RGB10_A2, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLfloat>, WriteColor<R10G10B10A2, GLfloat>, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R10G10B10A2_USCALED, GL_RGB10_A2_USCALED_ANGLEX, GL_RGB10_A2_USCALED_ANGLEX, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLuint>, WriteColor<R10G10B10A2, GLuint>, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 4, false },
-    { Format::ID::R11G11B10_FLOAT, GL_R11F_G11F_B10F, GL_R11F_G11F_B10F, GenerateMip<R11G11B10F>, NoCopyFunctions, ReadColor<R11G11B10F, GLfloat>, WriteColor<R11G11B10F, GLfloat>, GL_FLOAT, 11, 11, 10, 0, 0, 0, 4, false },
-    { Format::ID::R16G16B16A16_FLOAT, GL_RGBA16F, GL_RGBA16F, GenerateMip<R16G16B16A16F>, NoCopyFunctions, ReadColor<R16G16B16A16F, GLfloat>, WriteColor<R16G16B16A16F, GLfloat>, GL_FLOAT, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_SINT, GL_RGBA16I, GL_RGBA16I, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLint>, WriteColor<R16G16B16A16S, GLint>, GL_INT, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_SNORM, GL_RGBA16_SNORM_EXT, GL_RGBA16_SNORM_EXT, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLfloat>, WriteColor<R16G16B16A16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_SSCALED, GL_RGBA16_SSCALED_ANGLEX, GL_RGBA16_SSCALED_ANGLEX, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLint>, WriteColor<R16G16B16A16S, GLint>, GL_INT, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_UINT, GL_RGBA16UI, GL_RGBA16UI, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLuint>, WriteColor<R16G16B16A16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_UNORM, GL_RGBA16_EXT, GL_RGBA16_EXT, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLfloat>, WriteColor<R16G16B16A16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16A16_USCALED, GL_RGBA16_USCALED_ANGLEX, GL_RGBA16_USCALED_ANGLEX, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLuint>, WriteColor<R16G16B16A16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 16, 0, 0, 8, false },
-    { Format::ID::R16G16B16_FLOAT, GL_RGB16F, GL_RGB16F, GenerateMip<R16G16B16F>, NoCopyFunctions, ReadColor<R16G16B16F, GLfloat>, WriteColor<R16G16B16F, GLfloat>, GL_FLOAT, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_SINT, GL_RGB16I, GL_RGB16I, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLint>, WriteColor<R16G16B16S, GLint>, GL_INT, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_SNORM, GL_RGB16_SNORM_EXT, GL_RGB16_SNORM_EXT, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLfloat>, WriteColor<R16G16B16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_SSCALED, GL_RGB16_SSCALED_ANGLEX, GL_RGB16_SSCALED_ANGLEX, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLint>, WriteColor<R16G16B16S, GLint>, GL_INT, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_UINT, GL_RGB16UI, GL_RGB16UI, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLuint>, WriteColor<R16G16B16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_UNORM, GL_RGB16_EXT, GL_RGB16_EXT, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLfloat>, WriteColor<R16G16B16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16B16_USCALED, GL_RGB16_USCALED_ANGLEX, GL_RGB16_USCALED_ANGLEX, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLuint>, WriteColor<R16G16B16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 0, 0, 0, 6, false },
-    { Format::ID::R16G16_FLOAT, GL_RG16F, GL_RG16F, GenerateMip<R16G16F>, NoCopyFunctions, ReadColor<R16G16F, GLfloat>, WriteColor<R16G16F, GLfloat>, GL_FLOAT, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_SINT, GL_RG16I, GL_RG16I, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLint>, WriteColor<R16G16S, GLint>, GL_INT, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_SNORM, GL_RG16_SNORM_EXT, GL_RG16_SNORM_EXT, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLfloat>, WriteColor<R16G16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_SSCALED, GL_RG16_SSCALED_ANGLEX, GL_RG16_SSCALED_ANGLEX, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLint>, WriteColor<R16G16S, GLint>, GL_INT, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_UINT, GL_RG16UI, GL_RG16UI, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLuint>, WriteColor<R16G16, GLuint>, GL_UNSIGNED_INT, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_UNORM, GL_RG16_EXT, GL_RG16_EXT, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLfloat>, WriteColor<R16G16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16G16_USCALED, GL_RG16_USCALED_ANGLEX, GL_RG16_USCALED_ANGLEX, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLuint>, WriteColor<R16G16, GLuint>, GL_UNSIGNED_INT, 16, 16, 0, 0, 0, 0, 4, false },
-    { Format::ID::R16_FLOAT, GL_R16F, GL_R16F, GenerateMip<R16F>, NoCopyFunctions, ReadColor<R16F, GLfloat>, WriteColor<R16F, GLfloat>, GL_FLOAT, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_SINT, GL_R16I, GL_R16I, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLint>, WriteColor<R16S, GLint>, GL_INT, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_SNORM, GL_R16_SNORM_EXT, GL_R16_SNORM_EXT, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLfloat>, WriteColor<R16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_SSCALED, GL_R16_SSCALED_ANGLEX, GL_R16_SSCALED_ANGLEX, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLint>, WriteColor<R16S, GLint>, GL_INT, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_UINT, GL_R16UI, GL_R16UI, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLuint>, WriteColor<R16, GLuint>, GL_UNSIGNED_INT, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_UNORM, GL_R16_EXT, GL_R16_EXT, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLfloat>, WriteColor<R16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R16_USCALED, GL_R16_USCALED_ANGLEX, GL_R16_USCALED_ANGLEX, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLuint>, WriteColor<R16, GLuint>, GL_UNSIGNED_INT, 16, 0, 0, 0, 0, 0, 2, false },
-    { Format::ID::R32G32B32A32_FIXED, GL_RGBA32_FIXED_ANGLEX, GL_RGBA32_FIXED_ANGLEX, GenerateMip<R32G32B32A32F>, NoCopyFunctions, ReadColor<R32G32B32A32F, GLfloat>, WriteColor<R32G32B32A32F, GLfloat>, GL_FLOAT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_FLOAT, GL_RGBA32F, GL_RGBA32F, GenerateMip<R32G32B32A32F>, NoCopyFunctions, ReadColor<R32G32B32A32F, GLfloat>, WriteColor<R32G32B32A32F, GLfloat>, GL_FLOAT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_SINT, GL_RGBA32I, GL_RGBA32I, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLint>, WriteColor<R32G32B32A32S, GLint>, GL_INT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_SNORM, GL_RGBA32_SNORM_ANGLEX, GL_RGBA32_SNORM_ANGLEX, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLfloat>, WriteColor<R32G32B32A32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_SSCALED, GL_RGBA32_SSCALED_ANGLEX, GL_RGBA32_SSCALED_ANGLEX, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLint>, WriteColor<R32G32B32A32S, GLint>, GL_INT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_UINT, GL_RGBA32UI, GL_RGBA32UI, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLuint>, WriteColor<R32G32B32A32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_UNORM, GL_RGBA32_UNORM_ANGLEX, GL_RGBA32_UNORM_ANGLEX, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLfloat>, WriteColor<R32G32B32A32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32A32_USCALED, GL_RGBA32_USCALED_ANGLEX, GL_RGBA32_USCALED_ANGLEX, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLuint>, WriteColor<R32G32B32A32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 32, 0, 0, 16, false },
-    { Format::ID::R32G32B32_FIXED, GL_RGB32_FIXED_ANGLEX, GL_RGB32_FIXED_ANGLEX, GenerateMip<R32G32B32F>, NoCopyFunctions, ReadColor<R32G32B32F, GLfloat>, WriteColor<R32G32B32F, GLfloat>, GL_FLOAT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_FLOAT, GL_RGB32F, GL_RGB32F, GenerateMip<R32G32B32F>, NoCopyFunctions, ReadColor<R32G32B32F, GLfloat>, WriteColor<R32G32B32F, GLfloat>, GL_FLOAT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_SINT, GL_RGB32I, GL_RGB32I, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLint>, WriteColor<R32G32B32S, GLint>, GL_INT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_SNORM, GL_RGB32_SNORM_ANGLEX, GL_RGB32_SNORM_ANGLEX, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLfloat>, WriteColor<R32G32B32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_SSCALED, GL_RGB32_SSCALED_ANGLEX, GL_RGB32_SSCALED_ANGLEX, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLint>, WriteColor<R32G32B32S, GLint>, GL_INT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_UINT, GL_RGB32UI, GL_RGB32UI, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLuint>, WriteColor<R32G32B32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_UNORM, GL_RGB32_UNORM_ANGLEX, GL_RGB32_UNORM_ANGLEX, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLfloat>, WriteColor<R32G32B32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32B32_USCALED, GL_RGB32_USCALED_ANGLEX, GL_RGB32_USCALED_ANGLEX, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLuint>, WriteColor<R32G32B32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 0, 0, 0, 12, false },
-    { Format::ID::R32G32_FIXED, GL_RG32_FIXED_ANGLEX, GL_RG32_FIXED_ANGLEX, GenerateMip<R32G32F>, NoCopyFunctions, ReadColor<R32G32F, GLfloat>, WriteColor<R32G32F, GLfloat>, GL_FLOAT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_FLOAT, GL_RG32F, GL_RG32F, GenerateMip<R32G32F>, NoCopyFunctions, ReadColor<R32G32F, GLfloat>, WriteColor<R32G32F, GLfloat>, GL_FLOAT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_SINT, GL_RG32I, GL_RG32I, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLint>, WriteColor<R32G32S, GLint>, GL_INT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_SNORM, GL_RG32_SNORM_ANGLEX, GL_RG32_SNORM_ANGLEX, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLfloat>, WriteColor<R32G32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_SSCALED, GL_RG32_SSCALED_ANGLEX, GL_RG32_SSCALED_ANGLEX, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLint>, WriteColor<R32G32S, GLint>, GL_INT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_UINT, GL_RG32UI, GL_RG32UI, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLuint>, WriteColor<R32G32, GLuint>, GL_UNSIGNED_INT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_UNORM, GL_RG32_UNORM_ANGLEX, GL_RG32_UNORM_ANGLEX, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLfloat>, WriteColor<R32G32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32G32_USCALED, GL_RG32_USCALED_ANGLEX, GL_RG32_USCALED_ANGLEX, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLuint>, WriteColor<R32G32, GLuint>, GL_UNSIGNED_INT, 32, 32, 0, 0, 0, 0, 8, false },
-    { Format::ID::R32_FIXED, GL_R32_FIXED_ANGLEX, GL_R32_FIXED_ANGLEX, GenerateMip<R32F>, NoCopyFunctions, ReadColor<R32F, GLfloat>, WriteColor<R32F, GLfloat>, GL_FLOAT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_FLOAT, GL_R32F, GL_R32F, GenerateMip<R32F>, NoCopyFunctions, ReadColor<R32F, GLfloat>, WriteColor<R32F, GLfloat>, GL_FLOAT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_SINT, GL_R32I, GL_R32I, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLint>, WriteColor<R32S, GLint>, GL_INT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_SNORM, GL_R32_SNORM_ANGLEX, GL_R32_SNORM_ANGLEX, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLfloat>, WriteColor<R32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_SSCALED, GL_R32_SSCALED_ANGLEX, GL_R32_SSCALED_ANGLEX, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLint>, WriteColor<R32S, GLint>, GL_INT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_UINT, GL_R32UI, GL_R32UI, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLuint>, WriteColor<R32, GLuint>, GL_UNSIGNED_INT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_UNORM, GL_R32_UNORM_ANGLEX, GL_R32_UNORM_ANGLEX, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLfloat>, WriteColor<R32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R32_USCALED, GL_R32_USCALED_ANGLEX, GL_R32_USCALED_ANGLEX, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLuint>, WriteColor<R32, GLuint>, GL_UNSIGNED_INT, 32, 0, 0, 0, 0, 0, 4, false },
-    { Format::ID::R4G4B4A4_UNORM, GL_RGBA4, GL_RGBA4, GenerateMip<R4G4B4A4>, NoCopyFunctions, ReadColor<R4G4B4A4, GLfloat>, WriteColor<R4G4B4A4, GLfloat>, GL_UNSIGNED_NORMALIZED, 4, 4, 4, 4, 0, 0, 2, false },
-    { Format::ID::R5G5B5A1_UNORM, GL_RGB5_A1, GL_RGB5_A1, GenerateMip<R5G5B5A1>, NoCopyFunctions, ReadColor<R5G5B5A1, GLfloat>, WriteColor<R5G5B5A1, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
-    { Format::ID::R5G6B5_UNORM, GL_RGB565, GL_RGB565, GenerateMip<R5G6B5>, NoCopyFunctions, ReadColor<R5G6B5, GLfloat>, WriteColor<R5G6B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 6, 5, 0, 0, 0, 2, false },
-    { Format::ID::R8G8B8A8_SINT, GL_RGBA8I, GL_RGBA8I, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLint>, WriteColor<R8G8B8A8S, GLint>, GL_INT, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_SNORM, GL_RGBA8_SNORM, GL_RGBA8_SNORM, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLfloat>, WriteColor<R8G8B8A8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_SSCALED, GL_RGBA8_SSCALED_ANGLEX, GL_RGBA8_SSCALED_ANGLEX, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLint>, WriteColor<R8G8B8A8S, GLint>, GL_INT, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_TYPELESS, GL_RGBA8, GL_RGBA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_TYPELESS_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_UINT, GL_RGBA8UI, GL_RGBA8UI, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLuint>, WriteColor<R8G8B8A8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_UNORM, GL_RGBA8, GL_RGBA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip<R8G8B8A8SRGB>, NoCopyFunctions, ReadColor<R8G8B8A8SRGB, GLfloat>, WriteColor<R8G8B8A8SRGB, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8A8_USCALED, GL_RGBA8_USCALED_ANGLEX, GL_RGBA8_USCALED_ANGLEX, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLuint>, WriteColor<R8G8B8A8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 4, false },
-    { Format::ID::R8G8B8_SINT, GL_RGB8I, GL_RGB8I, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_SNORM, GL_RGB8_SNORM, GL_RGB8_SNORM, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLfloat>, WriteColor<R8G8B8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_SSCALED, GL_RGB8_SSCALED_ANGLEX, GL_RGB8_SSCALED_ANGLEX, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_UINT, GL_RGB8UI, GL_RGB8UI, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLuint>, WriteColor<R8G8B8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_UNORM, GL_RGB8, GL_RGB8, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLfloat>, WriteColor<R8G8B8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_UNORM_SRGB, GL_SRGB8, GL_SRGB8, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLfloat>, WriteColor<R8G8B8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8B8_USCALED, GL_RGB8_USCALED_ANGLEX, GL_RGB8_USCALED_ANGLEX, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLuint>, WriteColor<R8G8B8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 0, 0, 0, 3, false },
-    { Format::ID::R8G8_SINT, GL_RG8I, GL_RG8I, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLint>, WriteColor<R8G8S, GLint>, GL_INT, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8G8_SNORM, GL_RG8_SNORM, GL_RG8_SNORM, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLfloat>, WriteColor<R8G8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8G8_SSCALED, GL_RG8_SSCALED_ANGLEX, GL_RG8_SSCALED_ANGLEX, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLint>, WriteColor<R8G8S, GLint>, GL_INT, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8G8_UINT, GL_RG8UI, GL_RG8UI, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLuint>, WriteColor<R8G8, GLuint>, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8G8_UNORM, GL_RG8, GL_RG8, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLfloat>, WriteColor<R8G8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8G8_USCALED, GL_RG8_USCALED_ANGLEX, GL_RG8_USCALED_ANGLEX, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLuint>, WriteColor<R8G8, GLuint>, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 2, false },
-    { Format::ID::R8_SINT, GL_R8I, GL_R8I, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLint>, WriteColor<R8S, GLint>, GL_INT, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R8_SNORM, GL_R8_SNORM, GL_R8_SNORM, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLfloat>, WriteColor<R8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R8_SSCALED, GL_R8_SSCALED_ANGLEX, GL_R8_SSCALED_ANGLEX, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLint>, WriteColor<R8S, GLint>, GL_INT, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R8_UINT, GL_R8UI, GL_R8UI, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLuint>, WriteColor<R8, GLuint>, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R8_UNORM, GL_R8, GL_R8, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLfloat>, WriteColor<R8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R8_USCALED, GL_R8_USCALED_ANGLEX, GL_R8_USCALED_ANGLEX, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLuint>, WriteColor<R8, GLuint>, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 1, false },
-    { Format::ID::R9G9B9E5_SHAREDEXP, GL_RGB9_E5, GL_RGB9_E5, GenerateMip<R9G9B9E5>, NoCopyFunctions, ReadColor<R9G9B9E5, GLfloat>, WriteColor<R9G9B9E5, GLfloat>, GL_FLOAT, 9, 9, 9, 0, 0, 0, 3, false },
-    { Format::ID::S8_UINT, GL_STENCIL_INDEX8, GL_STENCIL_INDEX8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 0, 0, 0, 0, 0, 8, 1, false },
+    { FormatID::NONE, GL_NONE, GL_NONE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_NONE, 0, 0, 0, 0, 0, 0, 0, false },
+    { FormatID::A16_FLOAT, GL_ALPHA16F_EXT, GL_ALPHA16F_EXT, GenerateMip<A16F>, NoCopyFunctions, ReadColor<A16F, GLfloat>, WriteColor<A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 0, 0, 2, false },
+    { FormatID::A1R5G5B5_UNORM, GL_A1RGB5_ANGLEX, GL_A1RGB5_ANGLEX, GenerateMip<A1R5G5B5>, NoCopyFunctions, ReadColor<A1R5G5B5, GLfloat>, WriteColor<A1R5G5B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
+    { FormatID::A32_FLOAT, GL_ALPHA32F_EXT, GL_ALPHA32F_EXT, GenerateMip<A32F>, NoCopyFunctions, ReadColor<A32F, GLfloat>, WriteColor<A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 0, 0, 4, false },
+    { FormatID::A8_UNORM, GL_ALPHA8_EXT, GL_ALPHA8_EXT, GenerateMip<A8>, NoCopyFunctions, ReadColor<A8, GLfloat>, WriteColor<A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 0, 0, 1, false },
+    { FormatID::ASTC_10x10_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x10_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, GL_COMPRESSED_RGBA_ASTC_10x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, GL_COMPRESSED_RGBA_ASTC_10x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, GL_COMPRESSED_RGBA_ASTC_10x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_10x8_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, GL_COMPRESSED_RGBA_ASTC_10x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_12x10_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_12x10_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, GL_COMPRESSED_RGBA_ASTC_12x10_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_12x12_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_12x12_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, GL_COMPRESSED_RGBA_ASTC_12x12_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_4x4_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_4x4_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, GL_COMPRESSED_RGBA_ASTC_4x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_5x4_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_5x4_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, GL_COMPRESSED_RGBA_ASTC_5x4_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_5x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_5x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, GL_COMPRESSED_RGBA_ASTC_5x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_6x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_6x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, GL_COMPRESSED_RGBA_ASTC_6x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_6x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_6x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, GL_COMPRESSED_RGBA_ASTC_6x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x5_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x5_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, GL_COMPRESSED_RGBA_ASTC_8x5_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x6_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x6_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, GL_COMPRESSED_RGBA_ASTC_8x6_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::ASTC_8x8_UNORM_BLOCK, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, GL_COMPRESSED_RGBA_ASTC_8x8_KHR, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::B4G4R4A4_UNORM, GL_BGRA4_ANGLEX, GL_RGBA4, GenerateMip<A4R4G4B4>, NoCopyFunctions, ReadColor<A4R4G4B4, GLfloat>, WriteColor<A4R4G4B4, GLfloat>, GL_UNSIGNED_NORMALIZED, 4, 4, 4, 4, 0, 0, 2, false },
+    { FormatID::B5G5R5A1_UNORM, GL_BGR5_A1_ANGLEX, GL_RGB5_A1, GenerateMip<A1R5G5B5>, NoCopyFunctions, ReadColor<A1R5G5B5, GLfloat>, WriteColor<A1R5G5B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
+    { FormatID::B5G6R5_UNORM, GL_BGR565_ANGLEX, GL_RGB565, GenerateMip<B5G6R5>, NoCopyFunctions, ReadColor<B5G6R5, GLfloat>, WriteColor<B5G6R5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 6, 5, 0, 0, 0, 2, false },
+    { FormatID::B8G8R8A8_TYPELESS, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::B8G8R8A8_TYPELESS_SRGB, GL_BGRA8_SRGB_ANGLEX, GL_BGRA8_SRGB_ANGLEX, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::B8G8R8A8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8A8>, BGRACopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::B8G8R8A8_UNORM_SRGB, GL_BGRA8_SRGB_ANGLEX, GL_BGRA8_SRGB_ANGLEX, GenerateMip<B8G8R8A8>, NoCopyFunctions, ReadColor<B8G8R8A8, GLfloat>, WriteColor<B8G8R8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::B8G8R8X8_UNORM, GL_BGRA8_EXT, GL_BGRA8_EXT, GenerateMip<B8G8R8X8>, NoCopyFunctions, ReadColor<B8G8R8X8, GLfloat>, WriteColor<B8G8R8X8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 4, false },
+    { FormatID::BC1_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, GL_COMPRESSED_RGBA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC1_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC1_RGB_UNORM_BLOCK, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, GL_COMPRESSED_RGB_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC1_RGB_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, GL_COMPRESSED_SRGB_S3TC_DXT1_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC2_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC2_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC3_RGBA_UNORM_BLOCK, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::BC3_RGBA_UNORM_SRGB_BLOCK, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 0, true },
+    { FormatID::D16_UNORM, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT16, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 16, 0, 2, false },
+    { FormatID::D24_UNORM_S8_UINT, GL_DEPTH24_STENCIL8, GL_DEPTH24_STENCIL8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 24, 8, 4, false },
+    { FormatID::D24_UNORM_X8_UINT, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT24, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 24, 0, 4, false },
+    { FormatID::D32_FLOAT, GL_DEPTH_COMPONENT32F, GL_DEPTH_COMPONENT32F, nullptr, NoCopyFunctions, nullptr, nullptr, GL_FLOAT, 0, 0, 0, 0, 32, 0, 4, false },
+    { FormatID::D32_FLOAT_S8X24_UINT, GL_DEPTH32F_STENCIL8, GL_DEPTH32F_STENCIL8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_FLOAT, 0, 0, 0, 0, 32, 8, 8, false },
+    { FormatID::D32_UNORM, GL_DEPTH_COMPONENT32_OES, GL_DEPTH_COMPONENT32_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 32, 0, 4, false },
+    { FormatID::EAC_R11G11_SNORM_BLOCK, GL_COMPRESSED_SIGNED_RG11_EAC, GL_COMPRESSED_SIGNED_RG11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 11, 11, 0, 0, 0, 0, 2, true },
+    { FormatID::EAC_R11G11_UNORM_BLOCK, GL_COMPRESSED_RG11_EAC, GL_COMPRESSED_RG11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 11, 11, 0, 0, 0, 0, 2, true },
+    { FormatID::EAC_R11_SNORM_BLOCK, GL_COMPRESSED_SIGNED_R11_EAC, GL_COMPRESSED_SIGNED_R11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_SIGNED_NORMALIZED, 11, 0, 0, 0, 0, 0, 1, true },
+    { FormatID::EAC_R11_UNORM_BLOCK, GL_COMPRESSED_R11_EAC, GL_COMPRESSED_R11_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 11, 0, 0, 0, 0, 0, 1, true },
+    { FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, GL_ETC1_RGB8_LOSSY_DECODE_ANGLE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
+    { FormatID::ETC1_R8G8B8_UNORM_BLOCK, GL_ETC1_RGB8_OES, GL_ETC1_RGB8_OES, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
+    { FormatID::ETC2_R8G8B8A1_SRGB_BLOCK, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 1, 0, 0, 3, true },
+    { FormatID::ETC2_R8G8B8A1_UNORM_BLOCK, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 1, 0, 0, 3, true },
+    { FormatID::ETC2_R8G8B8A8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, true },
+    { FormatID::ETC2_R8G8B8A8_UNORM_BLOCK, GL_COMPRESSED_RGBA8_ETC2_EAC, GL_COMPRESSED_RGBA8_ETC2_EAC, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, true },
+    { FormatID::ETC2_R8G8B8_SRGB_BLOCK, GL_COMPRESSED_SRGB8_ETC2, GL_COMPRESSED_SRGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
+    { FormatID::ETC2_R8G8B8_UNORM_BLOCK, GL_COMPRESSED_RGB8_ETC2, GL_COMPRESSED_RGB8_ETC2, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, true },
+    { FormatID::L16A16_FLOAT, GL_LUMINANCE_ALPHA16F_EXT, GL_LUMINANCE_ALPHA16F_EXT, GenerateMip<L16A16F>, NoCopyFunctions, ReadColor<L16A16F, GLfloat>, WriteColor<L16A16F, GLfloat>, GL_FLOAT, 0, 0, 0, 16, 0, 0, 4, false },
+    { FormatID::L16_FLOAT, GL_LUMINANCE16F_EXT, GL_LUMINANCE16F_EXT, GenerateMip<L16F>, NoCopyFunctions, ReadColor<L16F, GLfloat>, WriteColor<L16F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::L32A32_FLOAT, GL_LUMINANCE_ALPHA32F_EXT, GL_LUMINANCE_ALPHA32F_EXT, GenerateMip<L32A32F>, NoCopyFunctions, ReadColor<L32A32F, GLfloat>, WriteColor<L32A32F, GLfloat>, GL_FLOAT, 0, 0, 0, 32, 0, 0, 8, false },
+    { FormatID::L32_FLOAT, GL_LUMINANCE32F_EXT, GL_LUMINANCE32F_EXT, GenerateMip<L32F>, NoCopyFunctions, ReadColor<L32F, GLfloat>, WriteColor<L32F, GLfloat>, GL_FLOAT, 0, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::L8A8_UNORM, GL_LUMINANCE8_ALPHA8_EXT, GL_LUMINANCE8_ALPHA8_EXT, GenerateMip<L8A8>, NoCopyFunctions, ReadColor<L8A8, GLfloat>, WriteColor<L8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 8, 0, 0, 2, false },
+    { FormatID::L8_UNORM, GL_LUMINANCE8_EXT, GL_LUMINANCE8_EXT, GenerateMip<L8>, NoCopyFunctions, ReadColor<L8, GLfloat>, WriteColor<L8, GLfloat>, GL_UNSIGNED_NORMALIZED, 0, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R10G10B10A2_SINT, GL_RGB10_A2_SINT_ANGLEX, GL_RGB10_A2_SINT_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLint>, WriteColor<R10G10B10A2S, GLint>, GL_INT, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R10G10B10A2_SNORM, GL_RGB10_A2_SNORM_ANGLEX, GL_RGB10_A2_SNORM_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLfloat>, WriteColor<R10G10B10A2S, GLfloat>, GL_SIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R10G10B10A2_SSCALED, GL_RGB10_A2_SSCALED_ANGLEX, GL_RGB10_A2_SSCALED_ANGLEX, GenerateMip<R10G10B10A2S>, NoCopyFunctions, ReadColor<R10G10B10A2S, GLint>, WriteColor<R10G10B10A2S, GLint>, GL_INT, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R10G10B10A2_UINT, GL_RGB10_A2UI, GL_RGB10_A2UI, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLuint>, WriteColor<R10G10B10A2, GLuint>, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R10G10B10A2_UNORM, GL_RGB10_A2, GL_RGB10_A2, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLfloat>, WriteColor<R10G10B10A2, GLfloat>, GL_UNSIGNED_NORMALIZED, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R10G10B10A2_USCALED, GL_RGB10_A2_USCALED_ANGLEX, GL_RGB10_A2_USCALED_ANGLEX, GenerateMip<R10G10B10A2>, NoCopyFunctions, ReadColor<R10G10B10A2, GLuint>, WriteColor<R10G10B10A2, GLuint>, GL_UNSIGNED_INT, 10, 10, 10, 2, 0, 0, 4, false },
+    { FormatID::R11G11B10_FLOAT, GL_R11F_G11F_B10F, GL_R11F_G11F_B10F, GenerateMip<R11G11B10F>, NoCopyFunctions, ReadColor<R11G11B10F, GLfloat>, WriteColor<R11G11B10F, GLfloat>, GL_FLOAT, 11, 11, 10, 0, 0, 0, 4, false },
+    { FormatID::R16G16B16A16_FLOAT, GL_RGBA16F, GL_RGBA16F, GenerateMip<R16G16B16A16F>, NoCopyFunctions, ReadColor<R16G16B16A16F, GLfloat>, WriteColor<R16G16B16A16F, GLfloat>, GL_FLOAT, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_SINT, GL_RGBA16I, GL_RGBA16I, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLint>, WriteColor<R16G16B16A16S, GLint>, GL_INT, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_SNORM, GL_RGBA16_SNORM_EXT, GL_RGBA16_SNORM_EXT, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLfloat>, WriteColor<R16G16B16A16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_SSCALED, GL_RGBA16_SSCALED_ANGLEX, GL_RGBA16_SSCALED_ANGLEX, GenerateMip<R16G16B16A16S>, NoCopyFunctions, ReadColor<R16G16B16A16S, GLint>, WriteColor<R16G16B16A16S, GLint>, GL_INT, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_UINT, GL_RGBA16UI, GL_RGBA16UI, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLuint>, WriteColor<R16G16B16A16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_UNORM, GL_RGBA16_EXT, GL_RGBA16_EXT, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLfloat>, WriteColor<R16G16B16A16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16A16_USCALED, GL_RGBA16_USCALED_ANGLEX, GL_RGBA16_USCALED_ANGLEX, GenerateMip<R16G16B16A16>, NoCopyFunctions, ReadColor<R16G16B16A16, GLuint>, WriteColor<R16G16B16A16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 16, 0, 0, 8, false },
+    { FormatID::R16G16B16_FLOAT, GL_RGB16F, GL_RGB16F, GenerateMip<R16G16B16F>, NoCopyFunctions, ReadColor<R16G16B16F, GLfloat>, WriteColor<R16G16B16F, GLfloat>, GL_FLOAT, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_SINT, GL_RGB16I, GL_RGB16I, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLint>, WriteColor<R16G16B16S, GLint>, GL_INT, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_SNORM, GL_RGB16_SNORM_EXT, GL_RGB16_SNORM_EXT, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLfloat>, WriteColor<R16G16B16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_SSCALED, GL_RGB16_SSCALED_ANGLEX, GL_RGB16_SSCALED_ANGLEX, GenerateMip<R16G16B16S>, NoCopyFunctions, ReadColor<R16G16B16S, GLint>, WriteColor<R16G16B16S, GLint>, GL_INT, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_UINT, GL_RGB16UI, GL_RGB16UI, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLuint>, WriteColor<R16G16B16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_UNORM, GL_RGB16_EXT, GL_RGB16_EXT, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLfloat>, WriteColor<R16G16B16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16B16_USCALED, GL_RGB16_USCALED_ANGLEX, GL_RGB16_USCALED_ANGLEX, GenerateMip<R16G16B16>, NoCopyFunctions, ReadColor<R16G16B16, GLuint>, WriteColor<R16G16B16, GLuint>, GL_UNSIGNED_INT, 16, 16, 16, 0, 0, 0, 6, false },
+    { FormatID::R16G16_FLOAT, GL_RG16F, GL_RG16F, GenerateMip<R16G16F>, NoCopyFunctions, ReadColor<R16G16F, GLfloat>, WriteColor<R16G16F, GLfloat>, GL_FLOAT, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_SINT, GL_RG16I, GL_RG16I, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLint>, WriteColor<R16G16S, GLint>, GL_INT, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_SNORM, GL_RG16_SNORM_EXT, GL_RG16_SNORM_EXT, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLfloat>, WriteColor<R16G16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_SSCALED, GL_RG16_SSCALED_ANGLEX, GL_RG16_SSCALED_ANGLEX, GenerateMip<R16G16S>, NoCopyFunctions, ReadColor<R16G16S, GLint>, WriteColor<R16G16S, GLint>, GL_INT, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_UINT, GL_RG16UI, GL_RG16UI, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLuint>, WriteColor<R16G16, GLuint>, GL_UNSIGNED_INT, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_UNORM, GL_RG16_EXT, GL_RG16_EXT, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLfloat>, WriteColor<R16G16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16G16_USCALED, GL_RG16_USCALED_ANGLEX, GL_RG16_USCALED_ANGLEX, GenerateMip<R16G16>, NoCopyFunctions, ReadColor<R16G16, GLuint>, WriteColor<R16G16, GLuint>, GL_UNSIGNED_INT, 16, 16, 0, 0, 0, 0, 4, false },
+    { FormatID::R16_FLOAT, GL_R16F, GL_R16F, GenerateMip<R16F>, NoCopyFunctions, ReadColor<R16F, GLfloat>, WriteColor<R16F, GLfloat>, GL_FLOAT, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_SINT, GL_R16I, GL_R16I, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLint>, WriteColor<R16S, GLint>, GL_INT, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_SNORM, GL_R16_SNORM_EXT, GL_R16_SNORM_EXT, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLfloat>, WriteColor<R16S, GLfloat>, GL_SIGNED_NORMALIZED, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_SSCALED, GL_R16_SSCALED_ANGLEX, GL_R16_SSCALED_ANGLEX, GenerateMip<R16S>, NoCopyFunctions, ReadColor<R16S, GLint>, WriteColor<R16S, GLint>, GL_INT, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_UINT, GL_R16UI, GL_R16UI, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLuint>, WriteColor<R16, GLuint>, GL_UNSIGNED_INT, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_UNORM, GL_R16_EXT, GL_R16_EXT, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLfloat>, WriteColor<R16, GLfloat>, GL_UNSIGNED_NORMALIZED, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R16_USCALED, GL_R16_USCALED_ANGLEX, GL_R16_USCALED_ANGLEX, GenerateMip<R16>, NoCopyFunctions, ReadColor<R16, GLuint>, WriteColor<R16, GLuint>, GL_UNSIGNED_INT, 16, 0, 0, 0, 0, 0, 2, false },
+    { FormatID::R32G32B32A32_FIXED, GL_RGBA32_FIXED_ANGLEX, GL_RGBA32_FIXED_ANGLEX, GenerateMip<R32G32B32A32F>, NoCopyFunctions, ReadColor<R32G32B32A32F, GLfloat>, WriteColor<R32G32B32A32F, GLfloat>, GL_FLOAT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_FLOAT, GL_RGBA32F, GL_RGBA32F, GenerateMip<R32G32B32A32F>, NoCopyFunctions, ReadColor<R32G32B32A32F, GLfloat>, WriteColor<R32G32B32A32F, GLfloat>, GL_FLOAT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_SINT, GL_RGBA32I, GL_RGBA32I, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLint>, WriteColor<R32G32B32A32S, GLint>, GL_INT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_SNORM, GL_RGBA32_SNORM_ANGLEX, GL_RGBA32_SNORM_ANGLEX, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLfloat>, WriteColor<R32G32B32A32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_SSCALED, GL_RGBA32_SSCALED_ANGLEX, GL_RGBA32_SSCALED_ANGLEX, GenerateMip<R32G32B32A32S>, NoCopyFunctions, ReadColor<R32G32B32A32S, GLint>, WriteColor<R32G32B32A32S, GLint>, GL_INT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_UINT, GL_RGBA32UI, GL_RGBA32UI, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLuint>, WriteColor<R32G32B32A32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_UNORM, GL_RGBA32_UNORM_ANGLEX, GL_RGBA32_UNORM_ANGLEX, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLfloat>, WriteColor<R32G32B32A32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32A32_USCALED, GL_RGBA32_USCALED_ANGLEX, GL_RGBA32_USCALED_ANGLEX, GenerateMip<R32G32B32A32>, NoCopyFunctions, ReadColor<R32G32B32A32, GLuint>, WriteColor<R32G32B32A32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 32, 0, 0, 16, false },
+    { FormatID::R32G32B32_FIXED, GL_RGB32_FIXED_ANGLEX, GL_RGB32_FIXED_ANGLEX, GenerateMip<R32G32B32F>, NoCopyFunctions, ReadColor<R32G32B32F, GLfloat>, WriteColor<R32G32B32F, GLfloat>, GL_FLOAT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_FLOAT, GL_RGB32F, GL_RGB32F, GenerateMip<R32G32B32F>, NoCopyFunctions, ReadColor<R32G32B32F, GLfloat>, WriteColor<R32G32B32F, GLfloat>, GL_FLOAT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_SINT, GL_RGB32I, GL_RGB32I, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLint>, WriteColor<R32G32B32S, GLint>, GL_INT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_SNORM, GL_RGB32_SNORM_ANGLEX, GL_RGB32_SNORM_ANGLEX, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLfloat>, WriteColor<R32G32B32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_SSCALED, GL_RGB32_SSCALED_ANGLEX, GL_RGB32_SSCALED_ANGLEX, GenerateMip<R32G32B32S>, NoCopyFunctions, ReadColor<R32G32B32S, GLint>, WriteColor<R32G32B32S, GLint>, GL_INT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_UINT, GL_RGB32UI, GL_RGB32UI, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLuint>, WriteColor<R32G32B32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_UNORM, GL_RGB32_UNORM_ANGLEX, GL_RGB32_UNORM_ANGLEX, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLfloat>, WriteColor<R32G32B32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32B32_USCALED, GL_RGB32_USCALED_ANGLEX, GL_RGB32_USCALED_ANGLEX, GenerateMip<R32G32B32>, NoCopyFunctions, ReadColor<R32G32B32, GLuint>, WriteColor<R32G32B32, GLuint>, GL_UNSIGNED_INT, 32, 32, 32, 0, 0, 0, 12, false },
+    { FormatID::R32G32_FIXED, GL_RG32_FIXED_ANGLEX, GL_RG32_FIXED_ANGLEX, GenerateMip<R32G32F>, NoCopyFunctions, ReadColor<R32G32F, GLfloat>, WriteColor<R32G32F, GLfloat>, GL_FLOAT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_FLOAT, GL_RG32F, GL_RG32F, GenerateMip<R32G32F>, NoCopyFunctions, ReadColor<R32G32F, GLfloat>, WriteColor<R32G32F, GLfloat>, GL_FLOAT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_SINT, GL_RG32I, GL_RG32I, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLint>, WriteColor<R32G32S, GLint>, GL_INT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_SNORM, GL_RG32_SNORM_ANGLEX, GL_RG32_SNORM_ANGLEX, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLfloat>, WriteColor<R32G32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_SSCALED, GL_RG32_SSCALED_ANGLEX, GL_RG32_SSCALED_ANGLEX, GenerateMip<R32G32S>, NoCopyFunctions, ReadColor<R32G32S, GLint>, WriteColor<R32G32S, GLint>, GL_INT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_UINT, GL_RG32UI, GL_RG32UI, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLuint>, WriteColor<R32G32, GLuint>, GL_UNSIGNED_INT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_UNORM, GL_RG32_UNORM_ANGLEX, GL_RG32_UNORM_ANGLEX, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLfloat>, WriteColor<R32G32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32G32_USCALED, GL_RG32_USCALED_ANGLEX, GL_RG32_USCALED_ANGLEX, GenerateMip<R32G32>, NoCopyFunctions, ReadColor<R32G32, GLuint>, WriteColor<R32G32, GLuint>, GL_UNSIGNED_INT, 32, 32, 0, 0, 0, 0, 8, false },
+    { FormatID::R32_FIXED, GL_R32_FIXED_ANGLEX, GL_R32_FIXED_ANGLEX, GenerateMip<R32F>, NoCopyFunctions, ReadColor<R32F, GLfloat>, WriteColor<R32F, GLfloat>, GL_FLOAT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_FLOAT, GL_R32F, GL_R32F, GenerateMip<R32F>, NoCopyFunctions, ReadColor<R32F, GLfloat>, WriteColor<R32F, GLfloat>, GL_FLOAT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_SINT, GL_R32I, GL_R32I, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLint>, WriteColor<R32S, GLint>, GL_INT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_SNORM, GL_R32_SNORM_ANGLEX, GL_R32_SNORM_ANGLEX, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLfloat>, WriteColor<R32S, GLfloat>, GL_SIGNED_NORMALIZED, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_SSCALED, GL_R32_SSCALED_ANGLEX, GL_R32_SSCALED_ANGLEX, GenerateMip<R32S>, NoCopyFunctions, ReadColor<R32S, GLint>, WriteColor<R32S, GLint>, GL_INT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_UINT, GL_R32UI, GL_R32UI, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLuint>, WriteColor<R32, GLuint>, GL_UNSIGNED_INT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_UNORM, GL_R32_UNORM_ANGLEX, GL_R32_UNORM_ANGLEX, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLfloat>, WriteColor<R32, GLfloat>, GL_UNSIGNED_NORMALIZED, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R32_USCALED, GL_R32_USCALED_ANGLEX, GL_R32_USCALED_ANGLEX, GenerateMip<R32>, NoCopyFunctions, ReadColor<R32, GLuint>, WriteColor<R32, GLuint>, GL_UNSIGNED_INT, 32, 0, 0, 0, 0, 0, 4, false },
+    { FormatID::R4G4B4A4_UNORM, GL_RGBA4, GL_RGBA4, GenerateMip<R4G4B4A4>, NoCopyFunctions, ReadColor<R4G4B4A4, GLfloat>, WriteColor<R4G4B4A4, GLfloat>, GL_UNSIGNED_NORMALIZED, 4, 4, 4, 4, 0, 0, 2, false },
+    { FormatID::R5G5B5A1_UNORM, GL_RGB5_A1, GL_RGB5_A1, GenerateMip<R5G5B5A1>, NoCopyFunctions, ReadColor<R5G5B5A1, GLfloat>, WriteColor<R5G5B5A1, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 5, 5, 1, 0, 0, 2, false },
+    { FormatID::R5G6B5_UNORM, GL_RGB565, GL_RGB565, GenerateMip<R5G6B5>, NoCopyFunctions, ReadColor<R5G6B5, GLfloat>, WriteColor<R5G6B5, GLfloat>, GL_UNSIGNED_NORMALIZED, 5, 6, 5, 0, 0, 0, 2, false },
+    { FormatID::R8G8B8A8_SINT, GL_RGBA8I, GL_RGBA8I, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLint>, WriteColor<R8G8B8A8S, GLint>, GL_INT, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_SNORM, GL_RGBA8_SNORM, GL_RGBA8_SNORM, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLfloat>, WriteColor<R8G8B8A8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_SSCALED, GL_RGBA8_SSCALED_ANGLEX, GL_RGBA8_SSCALED_ANGLEX, GenerateMip<R8G8B8A8S>, NoCopyFunctions, ReadColor<R8G8B8A8S, GLint>, WriteColor<R8G8B8A8S, GLint>, GL_INT, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_TYPELESS, GL_RGBA8, GL_RGBA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_TYPELESS_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_UINT, GL_RGBA8UI, GL_RGBA8UI, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLuint>, WriteColor<R8G8B8A8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_UNORM, GL_RGBA8, GL_RGBA8, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLfloat>, WriteColor<R8G8B8A8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_UNORM_SRGB, GL_SRGB8_ALPHA8, GL_SRGB8_ALPHA8, GenerateMip<R8G8B8A8SRGB>, NoCopyFunctions, ReadColor<R8G8B8A8SRGB, GLfloat>, WriteColor<R8G8B8A8SRGB, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8A8_USCALED, GL_RGBA8_USCALED_ANGLEX, GL_RGBA8_USCALED_ANGLEX, GenerateMip<R8G8B8A8>, NoCopyFunctions, ReadColor<R8G8B8A8, GLuint>, WriteColor<R8G8B8A8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 8, 0, 0, 4, false },
+    { FormatID::R8G8B8_SINT, GL_RGB8I, GL_RGB8I, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_SNORM, GL_RGB8_SNORM, GL_RGB8_SNORM, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLfloat>, WriteColor<R8G8B8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_SSCALED, GL_RGB8_SSCALED_ANGLEX, GL_RGB8_SSCALED_ANGLEX, GenerateMip<R8G8B8S>, NoCopyFunctions, ReadColor<R8G8B8S, GLint>, WriteColor<R8G8B8S, GLint>, GL_INT, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_UINT, GL_RGB8UI, GL_RGB8UI, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLuint>, WriteColor<R8G8B8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_UNORM, GL_RGB8, GL_RGB8, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLfloat>, WriteColor<R8G8B8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_UNORM_SRGB, GL_SRGB8, GL_SRGB8, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLfloat>, WriteColor<R8G8B8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8B8_USCALED, GL_RGB8_USCALED_ANGLEX, GL_RGB8_USCALED_ANGLEX, GenerateMip<R8G8B8>, NoCopyFunctions, ReadColor<R8G8B8, GLuint>, WriteColor<R8G8B8, GLuint>, GL_UNSIGNED_INT, 8, 8, 8, 0, 0, 0, 3, false },
+    { FormatID::R8G8_SINT, GL_RG8I, GL_RG8I, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLint>, WriteColor<R8G8S, GLint>, GL_INT, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8G8_SNORM, GL_RG8_SNORM, GL_RG8_SNORM, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLfloat>, WriteColor<R8G8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8G8_SSCALED, GL_RG8_SSCALED_ANGLEX, GL_RG8_SSCALED_ANGLEX, GenerateMip<R8G8S>, NoCopyFunctions, ReadColor<R8G8S, GLint>, WriteColor<R8G8S, GLint>, GL_INT, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8G8_UINT, GL_RG8UI, GL_RG8UI, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLuint>, WriteColor<R8G8, GLuint>, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8G8_UNORM, GL_RG8, GL_RG8, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLfloat>, WriteColor<R8G8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8G8_USCALED, GL_RG8_USCALED_ANGLEX, GL_RG8_USCALED_ANGLEX, GenerateMip<R8G8>, NoCopyFunctions, ReadColor<R8G8, GLuint>, WriteColor<R8G8, GLuint>, GL_UNSIGNED_INT, 8, 8, 0, 0, 0, 0, 2, false },
+    { FormatID::R8_SINT, GL_R8I, GL_R8I, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLint>, WriteColor<R8S, GLint>, GL_INT, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R8_SNORM, GL_R8_SNORM, GL_R8_SNORM, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLfloat>, WriteColor<R8S, GLfloat>, GL_SIGNED_NORMALIZED, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R8_SSCALED, GL_R8_SSCALED_ANGLEX, GL_R8_SSCALED_ANGLEX, GenerateMip<R8S>, NoCopyFunctions, ReadColor<R8S, GLint>, WriteColor<R8S, GLint>, GL_INT, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R8_UINT, GL_R8UI, GL_R8UI, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLuint>, WriteColor<R8, GLuint>, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R8_UNORM, GL_R8, GL_R8, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLfloat>, WriteColor<R8, GLfloat>, GL_UNSIGNED_NORMALIZED, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R8_USCALED, GL_R8_USCALED_ANGLEX, GL_R8_USCALED_ANGLEX, GenerateMip<R8>, NoCopyFunctions, ReadColor<R8, GLuint>, WriteColor<R8, GLuint>, GL_UNSIGNED_INT, 8, 0, 0, 0, 0, 0, 1, false },
+    { FormatID::R9G9B9E5_SHAREDEXP, GL_RGB9_E5, GL_RGB9_E5, GenerateMip<R9G9B9E5>, NoCopyFunctions, ReadColor<R9G9B9E5, GLfloat>, WriteColor<R9G9B9E5, GLfloat>, GL_FLOAT, 9, 9, 9, 0, 0, 0, 3, false },
+    { FormatID::S8_UINT, GL_STENCIL_INDEX8, GL_STENCIL_INDEX8, nullptr, NoCopyFunctions, nullptr, nullptr, GL_UNSIGNED_INT, 0, 0, 0, 0, 0, 8, 1, false },
     // clang-format on
 };
 
 // static
-Format::ID Format::InternalFormatToID(GLenum internalFormat)
+FormatID Format::InternalFormatToID(GLenum internalFormat)
 {
     switch (internalFormat)
     {
         case GL_A1RGB5_ANGLEX:
-            return Format::ID::A1R5G5B5_UNORM;
+            return FormatID::A1R5G5B5_UNORM;
         case GL_ALPHA16F_EXT:
-            return Format::ID::A16_FLOAT;
+            return FormatID::A16_FLOAT;
         case GL_ALPHA32F_EXT:
-            return Format::ID::A32_FLOAT;
+            return FormatID::A32_FLOAT;
         case GL_ALPHA8_EXT:
-            return Format::ID::A8_UNORM;
+            return FormatID::A8_UNORM;
         case GL_BGR565_ANGLEX:
-            return Format::ID::B5G6R5_UNORM;
+            return FormatID::B5G6R5_UNORM;
         case GL_BGR5_A1_ANGLEX:
-            return Format::ID::B5G5R5A1_UNORM;
+            return FormatID::B5G5R5A1_UNORM;
         case GL_BGRA4_ANGLEX:
-            return Format::ID::B4G4R4A4_UNORM;
+            return FormatID::B4G4R4A4_UNORM;
         case GL_BGRA8_EXT:
-            return Format::ID::B8G8R8A8_UNORM;
+            return FormatID::B8G8R8A8_UNORM;
         case GL_BGRA8_SRGB_ANGLEX:
-            return Format::ID::B8G8R8A8_UNORM_SRGB;
+            return FormatID::B8G8R8A8_UNORM_SRGB;
         case GL_BGRA8_TYPELESS_ANGLEX:
-            return Format::ID::B8G8R8A8_TYPELESS;
+            return FormatID::B8G8R8A8_TYPELESS;
         case GL_BGRA8_TYPELESS_SRGB_ANGLEX:
-            return Format::ID::B8G8R8A8_TYPELESS_SRGB;
+            return FormatID::B8G8R8A8_TYPELESS_SRGB;
         case GL_BGRX8_ANGLEX:
-            return Format::ID::B8G8R8X8_UNORM;
+            return FormatID::B8G8R8X8_UNORM;
         case GL_COMPRESSED_R11_EAC:
-            return Format::ID::EAC_R11_UNORM_BLOCK;
+            return FormatID::EAC_R11_UNORM_BLOCK;
         case GL_COMPRESSED_RG11_EAC:
-            return Format::ID::EAC_R11G11_UNORM_BLOCK;
+            return FormatID::EAC_R11G11_UNORM_BLOCK;
         case GL_COMPRESSED_RGB8_ETC2:
-            return Format::ID::ETC2_R8G8B8_UNORM_BLOCK;
+            return FormatID::ETC2_R8G8B8_UNORM_BLOCK;
         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-            return Format::ID::ETC2_R8G8B8A1_UNORM_BLOCK;
+            return FormatID::ETC2_R8G8B8A1_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA8_ETC2_EAC:
-            return Format::ID::ETC2_R8G8B8A8_UNORM_BLOCK;
+            return FormatID::ETC2_R8G8B8A8_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
-            return Format::ID::ASTC_10x10_UNORM_BLOCK;
+            return FormatID::ASTC_10x10_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
-            return Format::ID::ASTC_10x5_UNORM_BLOCK;
+            return FormatID::ASTC_10x5_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
-            return Format::ID::ASTC_10x6_UNORM_BLOCK;
+            return FormatID::ASTC_10x6_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:
-            return Format::ID::ASTC_10x8_UNORM_BLOCK;
+            return FormatID::ASTC_10x8_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
-            return Format::ID::ASTC_12x10_UNORM_BLOCK;
+            return FormatID::ASTC_12x10_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
-            return Format::ID::ASTC_12x12_UNORM_BLOCK;
+            return FormatID::ASTC_12x12_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
-            return Format::ID::ASTC_4x4_UNORM_BLOCK;
+            return FormatID::ASTC_4x4_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
-            return Format::ID::ASTC_5x4_UNORM_BLOCK;
+            return FormatID::ASTC_5x4_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
-            return Format::ID::ASTC_5x5_UNORM_BLOCK;
+            return FormatID::ASTC_5x5_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
-            return Format::ID::ASTC_6x5_UNORM_BLOCK;
+            return FormatID::ASTC_6x5_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
-            return Format::ID::ASTC_6x6_UNORM_BLOCK;
+            return FormatID::ASTC_6x6_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
-            return Format::ID::ASTC_8x5_UNORM_BLOCK;
+            return FormatID::ASTC_8x5_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
-            return Format::ID::ASTC_8x6_UNORM_BLOCK;
+            return FormatID::ASTC_8x6_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
-            return Format::ID::ASTC_8x8_UNORM_BLOCK;
+            return FormatID::ASTC_8x8_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
-            return Format::ID::BC1_RGBA_UNORM_BLOCK;
+            return FormatID::BC1_RGBA_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
-            return Format::ID::BC2_RGBA_UNORM_BLOCK;
+            return FormatID::BC2_RGBA_UNORM_BLOCK;
         case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
-            return Format::ID::BC3_RGBA_UNORM_BLOCK;
+            return FormatID::BC3_RGBA_UNORM_BLOCK;
         case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
-            return Format::ID::BC1_RGB_UNORM_BLOCK;
+            return FormatID::BC1_RGB_UNORM_BLOCK;
         case GL_COMPRESSED_SIGNED_R11_EAC:
-            return Format::ID::EAC_R11_SNORM_BLOCK;
+            return FormatID::EAC_R11_SNORM_BLOCK;
         case GL_COMPRESSED_SIGNED_RG11_EAC:
-            return Format::ID::EAC_R11G11_SNORM_BLOCK;
+            return FormatID::EAC_R11G11_SNORM_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
-            return Format::ID::ASTC_10x10_SRGB_BLOCK;
+            return FormatID::ASTC_10x10_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
-            return Format::ID::ASTC_10x5_SRGB_BLOCK;
+            return FormatID::ASTC_10x5_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
-            return Format::ID::ASTC_10x6_SRGB_BLOCK;
+            return FormatID::ASTC_10x6_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
-            return Format::ID::ASTC_10x8_SRGB_BLOCK;
+            return FormatID::ASTC_10x8_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
-            return Format::ID::ASTC_12x10_SRGB_BLOCK;
+            return FormatID::ASTC_12x10_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
-            return Format::ID::ASTC_12x12_SRGB_BLOCK;
+            return FormatID::ASTC_12x12_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
-            return Format::ID::ASTC_4x4_SRGB_BLOCK;
+            return FormatID::ASTC_4x4_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
-            return Format::ID::ASTC_5x4_SRGB_BLOCK;
+            return FormatID::ASTC_5x4_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
-            return Format::ID::ASTC_5x5_SRGB_BLOCK;
+            return FormatID::ASTC_5x5_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
-            return Format::ID::ASTC_6x5_SRGB_BLOCK;
+            return FormatID::ASTC_6x5_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
-            return Format::ID::ASTC_6x6_SRGB_BLOCK;
+            return FormatID::ASTC_6x6_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
-            return Format::ID::ASTC_8x5_SRGB_BLOCK;
+            return FormatID::ASTC_8x5_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
-            return Format::ID::ASTC_8x6_SRGB_BLOCK;
+            return FormatID::ASTC_8x6_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
-            return Format::ID::ASTC_8x8_SRGB_BLOCK;
+            return FormatID::ASTC_8x8_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
-            return Format::ID::ETC2_R8G8B8A8_SRGB_BLOCK;
+            return FormatID::ETC2_R8G8B8A8_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_ETC2:
-            return Format::ID::ETC2_R8G8B8_SRGB_BLOCK;
+            return FormatID::ETC2_R8G8B8_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
-            return Format::ID::ETC2_R8G8B8A1_SRGB_BLOCK;
+            return FormatID::ETC2_R8G8B8A1_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
-            return Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK;
+            return FormatID::BC1_RGBA_UNORM_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
-            return Format::ID::BC2_RGBA_UNORM_SRGB_BLOCK;
+            return FormatID::BC2_RGBA_UNORM_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
-            return Format::ID::BC3_RGBA_UNORM_SRGB_BLOCK;
+            return FormatID::BC3_RGBA_UNORM_SRGB_BLOCK;
         case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
-            return Format::ID::BC1_RGB_UNORM_SRGB_BLOCK;
+            return FormatID::BC1_RGB_UNORM_SRGB_BLOCK;
         case GL_DEPTH24_STENCIL8:
-            return Format::ID::D24_UNORM_S8_UINT;
+            return FormatID::D24_UNORM_S8_UINT;
         case GL_DEPTH32F_STENCIL8:
-            return Format::ID::D32_FLOAT_S8X24_UINT;
+            return FormatID::D32_FLOAT_S8X24_UINT;
         case GL_DEPTH_COMPONENT16:
-            return Format::ID::D16_UNORM;
+            return FormatID::D16_UNORM;
         case GL_DEPTH_COMPONENT24:
-            return Format::ID::D24_UNORM_X8_UINT;
+            return FormatID::D24_UNORM_X8_UINT;
         case GL_DEPTH_COMPONENT32F:
-            return Format::ID::D32_FLOAT;
+            return FormatID::D32_FLOAT;
         case GL_DEPTH_COMPONENT32_OES:
-            return Format::ID::D32_UNORM;
+            return FormatID::D32_UNORM;
         case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
-            return Format::ID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK;
+            return FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK;
         case GL_ETC1_RGB8_OES:
-            return Format::ID::ETC1_R8G8B8_UNORM_BLOCK;
+            return FormatID::ETC1_R8G8B8_UNORM_BLOCK;
         case GL_LUMINANCE16F_EXT:
-            return Format::ID::L16_FLOAT;
+            return FormatID::L16_FLOAT;
         case GL_LUMINANCE32F_EXT:
-            return Format::ID::L32_FLOAT;
+            return FormatID::L32_FLOAT;
         case GL_LUMINANCE8_ALPHA8_EXT:
-            return Format::ID::L8A8_UNORM;
+            return FormatID::L8A8_UNORM;
         case GL_LUMINANCE8_EXT:
-            return Format::ID::L8_UNORM;
+            return FormatID::L8_UNORM;
         case GL_LUMINANCE_ALPHA16F_EXT:
-            return Format::ID::L16A16_FLOAT;
+            return FormatID::L16A16_FLOAT;
         case GL_LUMINANCE_ALPHA32F_EXT:
-            return Format::ID::L32A32_FLOAT;
+            return FormatID::L32A32_FLOAT;
         case GL_NONE:
-            return Format::ID::NONE;
+            return FormatID::NONE;
         case GL_R11F_G11F_B10F:
-            return Format::ID::R11G11B10_FLOAT;
+            return FormatID::R11G11B10_FLOAT;
         case GL_R16F:
-            return Format::ID::R16_FLOAT;
+            return FormatID::R16_FLOAT;
         case GL_R16I:
-            return Format::ID::R16_SINT;
+            return FormatID::R16_SINT;
         case GL_R16UI:
-            return Format::ID::R16_UINT;
+            return FormatID::R16_UINT;
         case GL_R16_EXT:
-            return Format::ID::R16_UNORM;
+            return FormatID::R16_UNORM;
         case GL_R16_SNORM_EXT:
-            return Format::ID::R16_SNORM;
+            return FormatID::R16_SNORM;
         case GL_R16_SSCALED_ANGLEX:
-            return Format::ID::R16_SSCALED;
+            return FormatID::R16_SSCALED;
         case GL_R16_USCALED_ANGLEX:
-            return Format::ID::R16_USCALED;
+            return FormatID::R16_USCALED;
         case GL_R32F:
-            return Format::ID::R32_FLOAT;
+            return FormatID::R32_FLOAT;
         case GL_R32I:
-            return Format::ID::R32_SINT;
+            return FormatID::R32_SINT;
         case GL_R32UI:
-            return Format::ID::R32_UINT;
+            return FormatID::R32_UINT;
         case GL_R32_FIXED_ANGLEX:
-            return Format::ID::R32_FIXED;
+            return FormatID::R32_FIXED;
         case GL_R32_SNORM_ANGLEX:
-            return Format::ID::R32_SNORM;
+            return FormatID::R32_SNORM;
         case GL_R32_SSCALED_ANGLEX:
-            return Format::ID::R32_SSCALED;
+            return FormatID::R32_SSCALED;
         case GL_R32_UNORM_ANGLEX:
-            return Format::ID::R32_UNORM;
+            return FormatID::R32_UNORM;
         case GL_R32_USCALED_ANGLEX:
-            return Format::ID::R32_USCALED;
+            return FormatID::R32_USCALED;
         case GL_R8:
-            return Format::ID::R8_UNORM;
+            return FormatID::R8_UNORM;
         case GL_R8I:
-            return Format::ID::R8_SINT;
+            return FormatID::R8_SINT;
         case GL_R8UI:
-            return Format::ID::R8_UINT;
+            return FormatID::R8_UINT;
         case GL_R8_SNORM:
-            return Format::ID::R8_SNORM;
+            return FormatID::R8_SNORM;
         case GL_R8_SSCALED_ANGLEX:
-            return Format::ID::R8_SSCALED;
+            return FormatID::R8_SSCALED;
         case GL_R8_USCALED_ANGLEX:
-            return Format::ID::R8_USCALED;
+            return FormatID::R8_USCALED;
         case GL_RG16F:
-            return Format::ID::R16G16_FLOAT;
+            return FormatID::R16G16_FLOAT;
         case GL_RG16I:
-            return Format::ID::R16G16_SINT;
+            return FormatID::R16G16_SINT;
         case GL_RG16UI:
-            return Format::ID::R16G16_UINT;
+            return FormatID::R16G16_UINT;
         case GL_RG16_EXT:
-            return Format::ID::R16G16_UNORM;
+            return FormatID::R16G16_UNORM;
         case GL_RG16_SNORM_EXT:
-            return Format::ID::R16G16_SNORM;
+            return FormatID::R16G16_SNORM;
         case GL_RG16_SSCALED_ANGLEX:
-            return Format::ID::R16G16_SSCALED;
+            return FormatID::R16G16_SSCALED;
         case GL_RG16_USCALED_ANGLEX:
-            return Format::ID::R16G16_USCALED;
+            return FormatID::R16G16_USCALED;
         case GL_RG32F:
-            return Format::ID::R32G32_FLOAT;
+            return FormatID::R32G32_FLOAT;
         case GL_RG32I:
-            return Format::ID::R32G32_SINT;
+            return FormatID::R32G32_SINT;
         case GL_RG32UI:
-            return Format::ID::R32G32_UINT;
+            return FormatID::R32G32_UINT;
         case GL_RG32_FIXED_ANGLEX:
-            return Format::ID::R32G32_FIXED;
+            return FormatID::R32G32_FIXED;
         case GL_RG32_SNORM_ANGLEX:
-            return Format::ID::R32G32_SNORM;
+            return FormatID::R32G32_SNORM;
         case GL_RG32_SSCALED_ANGLEX:
-            return Format::ID::R32G32_SSCALED;
+            return FormatID::R32G32_SSCALED;
         case GL_RG32_UNORM_ANGLEX:
-            return Format::ID::R32G32_UNORM;
+            return FormatID::R32G32_UNORM;
         case GL_RG32_USCALED_ANGLEX:
-            return Format::ID::R32G32_USCALED;
+            return FormatID::R32G32_USCALED;
         case GL_RG8:
-            return Format::ID::R8G8_UNORM;
+            return FormatID::R8G8_UNORM;
         case GL_RG8I:
-            return Format::ID::R8G8_SINT;
+            return FormatID::R8G8_SINT;
         case GL_RG8UI:
-            return Format::ID::R8G8_UINT;
+            return FormatID::R8G8_UINT;
         case GL_RG8_SNORM:
-            return Format::ID::R8G8_SNORM;
+            return FormatID::R8G8_SNORM;
         case GL_RG8_SSCALED_ANGLEX:
-            return Format::ID::R8G8_SSCALED;
+            return FormatID::R8G8_SSCALED;
         case GL_RG8_USCALED_ANGLEX:
-            return Format::ID::R8G8_USCALED;
+            return FormatID::R8G8_USCALED;
         case GL_RGB:
-            return Format::ID::R8G8B8_UNORM;
+            return FormatID::R8G8B8_UNORM;
         case GL_RGB10_A2:
-            return Format::ID::R10G10B10A2_UNORM;
+            return FormatID::R10G10B10A2_UNORM;
         case GL_RGB10_A2UI:
-            return Format::ID::R10G10B10A2_UINT;
+            return FormatID::R10G10B10A2_UINT;
         case GL_RGB10_A2_SINT_ANGLEX:
-            return Format::ID::R10G10B10A2_SINT;
+            return FormatID::R10G10B10A2_SINT;
         case GL_RGB10_A2_SNORM_ANGLEX:
-            return Format::ID::R10G10B10A2_SNORM;
+            return FormatID::R10G10B10A2_SNORM;
         case GL_RGB10_A2_SSCALED_ANGLEX:
-            return Format::ID::R10G10B10A2_SSCALED;
+            return FormatID::R10G10B10A2_SSCALED;
         case GL_RGB10_A2_USCALED_ANGLEX:
-            return Format::ID::R10G10B10A2_USCALED;
+            return FormatID::R10G10B10A2_USCALED;
         case GL_RGB16F:
-            return Format::ID::R16G16B16_FLOAT;
+            return FormatID::R16G16B16_FLOAT;
         case GL_RGB16I:
-            return Format::ID::R16G16B16_SINT;
+            return FormatID::R16G16B16_SINT;
         case GL_RGB16UI:
-            return Format::ID::R16G16B16_UINT;
+            return FormatID::R16G16B16_UINT;
         case GL_RGB16_EXT:
-            return Format::ID::R16G16B16_UNORM;
+            return FormatID::R16G16B16_UNORM;
         case GL_RGB16_SNORM_EXT:
-            return Format::ID::R16G16B16_SNORM;
+            return FormatID::R16G16B16_SNORM;
         case GL_RGB16_SSCALED_ANGLEX:
-            return Format::ID::R16G16B16_SSCALED;
+            return FormatID::R16G16B16_SSCALED;
         case GL_RGB16_USCALED_ANGLEX:
-            return Format::ID::R16G16B16_USCALED;
+            return FormatID::R16G16B16_USCALED;
         case GL_RGB32F:
-            return Format::ID::R32G32B32_FLOAT;
+            return FormatID::R32G32B32_FLOAT;
         case GL_RGB32I:
-            return Format::ID::R32G32B32_SINT;
+            return FormatID::R32G32B32_SINT;
         case GL_RGB32UI:
-            return Format::ID::R32G32B32_UINT;
+            return FormatID::R32G32B32_UINT;
         case GL_RGB32_FIXED_ANGLEX:
-            return Format::ID::R32G32B32_FIXED;
+            return FormatID::R32G32B32_FIXED;
         case GL_RGB32_SNORM_ANGLEX:
-            return Format::ID::R32G32B32_SNORM;
+            return FormatID::R32G32B32_SNORM;
         case GL_RGB32_SSCALED_ANGLEX:
-            return Format::ID::R32G32B32_SSCALED;
+            return FormatID::R32G32B32_SSCALED;
         case GL_RGB32_UNORM_ANGLEX:
-            return Format::ID::R32G32B32_UNORM;
+            return FormatID::R32G32B32_UNORM;
         case GL_RGB32_USCALED_ANGLEX:
-            return Format::ID::R32G32B32_USCALED;
+            return FormatID::R32G32B32_USCALED;
         case GL_RGB565:
-            return Format::ID::R5G6B5_UNORM;
+            return FormatID::R5G6B5_UNORM;
         case GL_RGB5_A1:
-            return Format::ID::R5G5B5A1_UNORM;
+            return FormatID::R5G5B5A1_UNORM;
         case GL_RGB8:
-            return Format::ID::R8G8B8_UNORM;
+            return FormatID::R8G8B8_UNORM;
         case GL_RGB8I:
-            return Format::ID::R8G8B8_SINT;
+            return FormatID::R8G8B8_SINT;
         case GL_RGB8UI:
-            return Format::ID::R8G8B8_UINT;
+            return FormatID::R8G8B8_UINT;
         case GL_RGB8_SNORM:
-            return Format::ID::R8G8B8_SNORM;
+            return FormatID::R8G8B8_SNORM;
         case GL_RGB8_SSCALED_ANGLEX:
-            return Format::ID::R8G8B8_SSCALED;
+            return FormatID::R8G8B8_SSCALED;
         case GL_RGB8_USCALED_ANGLEX:
-            return Format::ID::R8G8B8_USCALED;
+            return FormatID::R8G8B8_USCALED;
         case GL_RGB9_E5:
-            return Format::ID::R9G9B9E5_SHAREDEXP;
+            return FormatID::R9G9B9E5_SHAREDEXP;
         case GL_RGBA:
-            return Format::ID::R8G8B8A8_UNORM;
+            return FormatID::R8G8B8A8_UNORM;
         case GL_RGBA16F:
-            return Format::ID::R16G16B16A16_FLOAT;
+            return FormatID::R16G16B16A16_FLOAT;
         case GL_RGBA16I:
-            return Format::ID::R16G16B16A16_SINT;
+            return FormatID::R16G16B16A16_SINT;
         case GL_RGBA16UI:
-            return Format::ID::R16G16B16A16_UINT;
+            return FormatID::R16G16B16A16_UINT;
         case GL_RGBA16_EXT:
-            return Format::ID::R16G16B16A16_UNORM;
+            return FormatID::R16G16B16A16_UNORM;
         case GL_RGBA16_SNORM_EXT:
-            return Format::ID::R16G16B16A16_SNORM;
+            return FormatID::R16G16B16A16_SNORM;
         case GL_RGBA16_SSCALED_ANGLEX:
-            return Format::ID::R16G16B16A16_SSCALED;
+            return FormatID::R16G16B16A16_SSCALED;
         case GL_RGBA16_USCALED_ANGLEX:
-            return Format::ID::R16G16B16A16_USCALED;
+            return FormatID::R16G16B16A16_USCALED;
         case GL_RGBA32F:
-            return Format::ID::R32G32B32A32_FLOAT;
+            return FormatID::R32G32B32A32_FLOAT;
         case GL_RGBA32I:
-            return Format::ID::R32G32B32A32_SINT;
+            return FormatID::R32G32B32A32_SINT;
         case GL_RGBA32UI:
-            return Format::ID::R32G32B32A32_UINT;
+            return FormatID::R32G32B32A32_UINT;
         case GL_RGBA32_FIXED_ANGLEX:
-            return Format::ID::R32G32B32A32_FIXED;
+            return FormatID::R32G32B32A32_FIXED;
         case GL_RGBA32_SNORM_ANGLEX:
-            return Format::ID::R32G32B32A32_SNORM;
+            return FormatID::R32G32B32A32_SNORM;
         case GL_RGBA32_SSCALED_ANGLEX:
-            return Format::ID::R32G32B32A32_SSCALED;
+            return FormatID::R32G32B32A32_SSCALED;
         case GL_RGBA32_UNORM_ANGLEX:
-            return Format::ID::R32G32B32A32_UNORM;
+            return FormatID::R32G32B32A32_UNORM;
         case GL_RGBA32_USCALED_ANGLEX:
-            return Format::ID::R32G32B32A32_USCALED;
+            return FormatID::R32G32B32A32_USCALED;
         case GL_RGBA4:
-            return Format::ID::R4G4B4A4_UNORM;
+            return FormatID::R4G4B4A4_UNORM;
         case GL_RGBA8:
-            return Format::ID::R8G8B8A8_UNORM;
+            return FormatID::R8G8B8A8_UNORM;
         case GL_RGBA8I:
-            return Format::ID::R8G8B8A8_SINT;
+            return FormatID::R8G8B8A8_SINT;
         case GL_RGBA8UI:
-            return Format::ID::R8G8B8A8_UINT;
+            return FormatID::R8G8B8A8_UINT;
         case GL_RGBA8_SNORM:
-            return Format::ID::R8G8B8A8_SNORM;
+            return FormatID::R8G8B8A8_SNORM;
         case GL_RGBA8_SSCALED_ANGLEX:
-            return Format::ID::R8G8B8A8_SSCALED;
+            return FormatID::R8G8B8A8_SSCALED;
         case GL_RGBA8_TYPELESS_ANGLEX:
-            return Format::ID::R8G8B8A8_TYPELESS;
+            return FormatID::R8G8B8A8_TYPELESS;
         case GL_RGBA8_TYPELESS_SRGB_ANGLEX:
-            return Format::ID::R8G8B8A8_TYPELESS_SRGB;
+            return FormatID::R8G8B8A8_TYPELESS_SRGB;
         case GL_RGBA8_USCALED_ANGLEX:
-            return Format::ID::R8G8B8A8_USCALED;
+            return FormatID::R8G8B8A8_USCALED;
         case GL_SRGB8:
-            return Format::ID::R8G8B8_UNORM_SRGB;
+            return FormatID::R8G8B8_UNORM_SRGB;
         case GL_SRGB8_ALPHA8:
-            return Format::ID::R8G8B8A8_UNORM_SRGB;
+            return FormatID::R8G8B8A8_UNORM_SRGB;
         case GL_STENCIL_INDEX8:
-            return Format::ID::S8_UINT;
+            return FormatID::S8_UINT;
         default:
-            return Format::ID::NONE;
+            return FormatID::NONE;
     }
 }
 
 // static
-const Format &Format::Get(ID id)
+const Format &Format::Get(FormatID id)
 {
     return g_formatInfoTable[static_cast<size_t>(id)];
 }
diff --git a/src/libANGLE/renderer/d3d/SurfaceD3D.cpp b/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
index 1e35249..c418e4a 100644
--- a/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
+++ b/src/libANGLE/renderer/d3d/SurfaceD3D.cpp
@@ -18,8 +18,8 @@
 #include "libANGLE/renderer/d3d/SwapChainD3D.h"
 #include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
 
-#include <tchar.h>
 #include <EGL/eglext.h>
+#include <tchar.h>
 #include <algorithm>
 
 namespace rx
@@ -101,29 +101,29 @@
                                                &mColorFormat));
         if (mState.attributes.contains(EGL_GL_COLORSPACE))
         {
-            if (mColorFormat->id != angle::Format::ID::R8G8B8A8_TYPELESS &&
-                mColorFormat->id != angle::Format::ID::B8G8R8A8_TYPELESS)
+            if (mColorFormat->id != angle::FormatID::R8G8B8A8_TYPELESS &&
+                mColorFormat->id != angle::FormatID::B8G8R8A8_TYPELESS)
             {
                 return egl::EglBadMatch()
                        << "EGL_GL_COLORSPACE may only be specified for TYPELESS textures";
             }
         }
-        if (mColorFormat->id == angle::Format::ID::R8G8B8A8_TYPELESS)
+        if (mColorFormat->id == angle::FormatID::R8G8B8A8_TYPELESS)
         {
             EGLAttrib colorspace =
                 mState.attributes.get(EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_LINEAR);
             if (colorspace == EGL_GL_COLORSPACE_SRGB)
             {
-                mColorFormat = &angle::Format::Get(angle::Format::ID::R8G8B8A8_TYPELESS_SRGB);
+                mColorFormat = &angle::Format::Get(angle::FormatID::R8G8B8A8_TYPELESS_SRGB);
             }
         }
-        if (mColorFormat->id == angle::Format::ID::B8G8R8A8_TYPELESS)
+        if (mColorFormat->id == angle::FormatID::B8G8R8A8_TYPELESS)
         {
             EGLAttrib colorspace =
                 mState.attributes.get(EGL_GL_COLORSPACE, EGL_GL_COLORSPACE_LINEAR);
             if (colorspace == EGL_GL_COLORSPACE_SRGB)
             {
-                mColorFormat = &angle::Format::Get(angle::Format::ID::B8G8R8A8_TYPELESS_SRGB);
+                mColorFormat = &angle::Format::Get(angle::FormatID::B8G8R8A8_TYPELESS_SRGB);
             }
         }
         mRenderTargetFormat = mColorFormat->fboImplementationInternalFormat;
@@ -171,13 +171,13 @@
             return egl::EglBadSurface() << "Could not retrieve the window dimensions";
         }
 
-        width = windowRect.right - windowRect.left;
+        width  = windowRect.right - windowRect.left;
         height = windowRect.bottom - windowRect.top;
     }
     else
     {
         // non-window surface - size is determined at creation
-        width = mWidth;
+        width  = mWidth;
         height = mHeight;
     }
 
@@ -221,7 +221,7 @@
         return egl::Error(status);
     }
 
-    mWidth = backbufferWidth;
+    mWidth  = backbufferWidth;
     mHeight = backbufferHeight;
 
     return egl::NoError();
@@ -247,8 +247,8 @@
         return egl::Error(status);
     }
 
-    mWidth = backbufferWidth;
-    mHeight = backbufferHeight;
+    mWidth             = backbufferWidth;
+    mHeight            = backbufferHeight;
     mSwapIntervalDirty = false;
 
     return egl::NoError();
@@ -298,23 +298,24 @@
 egl::Error SurfaceD3D::checkForOutOfDateSwapChain(DisplayD3D *displayD3D)
 {
     RECT client;
-    int clientWidth = getWidth();
+    int clientWidth  = getWidth();
     int clientHeight = getHeight();
-    bool sizeDirty = false;
+    bool sizeDirty   = false;
     if (!mFixedSize && !mNativeWindow->isIconic())
     {
-        // The window is automatically resized to 150x22 when it's minimized, but the swapchain shouldn't be resized
-        // because that's not a useful size to render to.
+        // The window is automatically resized to 150x22 when it's minimized, but the swapchain
+        // shouldn't be resized because that's not a useful size to render to.
         if (!mNativeWindow->getClientRect(&client))
         {
             UNREACHABLE();
             return egl::NoError();
         }
 
-        // Grow the buffer now, if the window has grown. We need to grow now to avoid losing information.
-        clientWidth = client.right - client.left;
+        // Grow the buffer now, if the window has grown. We need to grow now to avoid losing
+        // information.
+        clientWidth  = client.right - client.left;
         clientHeight = client.bottom - client.top;
-        sizeDirty = clientWidth != getWidth() || clientHeight != getHeight();
+        sizeDirty    = clientWidth != getWidth() || clientHeight != getHeight();
     }
 
     if (mSwapIntervalDirty)
@@ -357,7 +358,7 @@
         return;
     }
 
-    mSwapInterval = interval;
+    mSwapInterval      = interval;
     mSwapIntervalDirty = true;
 }
 
@@ -392,7 +393,8 @@
     {
         *value = mSwapChain->getKeyedMutex();
     }
-    else UNREACHABLE();
+    else
+        UNREACHABLE();
 
     return egl::NoError();
 }
@@ -437,13 +439,7 @@
                                    egl::Display *display,
                                    EGLNativeWindowType window,
                                    const egl::AttributeMap &attribs)
-    : SurfaceD3D(state,
-                 renderer,
-                 display,
-                 window,
-                 0,
-                 static_cast<EGLClientBuffer>(0),
-                 attribs)
+    : SurfaceD3D(state, renderer, display, window, 0, static_cast<EGLClientBuffer>(0), attribs)
 {
 }
 
diff --git a/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp b/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp
index 8db47e0..b3217a1 100644
--- a/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/RenderTarget11.cpp
@@ -9,10 +9,10 @@
 
 #include "libANGLE/renderer/d3d/d3d11/RenderTarget11.h"
 
-#include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
 #include "libANGLE/renderer/d3d/d3d11/Renderer11.h"
-#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
 #include "libANGLE/renderer/d3d/d3d11/SwapChain11.h"
+#include "libANGLE/renderer/d3d/d3d11/formatutils11.h"
+#include "libANGLE/renderer/d3d/d3d11/renderer11_utils.h"
 #include "libANGLE/renderer/d3d/d3d11/texture_format_table.h"
 
 namespace rx
@@ -30,7 +30,7 @@
         SafeRelease(texture1D);
 
         *mipLevels = texDesc.MipLevels;
-        *samples = 0;
+        *samples   = 0;
 
         return true;
     }
@@ -43,7 +43,7 @@
         SafeRelease(texture2D);
 
         *mipLevels = texDesc.MipLevels;
-        *samples = texDesc.SampleDesc.Count > 1 ? texDesc.SampleDesc.Count : 0;
+        *samples   = texDesc.SampleDesc.Count > 1 ? texDesc.SampleDesc.Count : 0;
 
         return true;
     }
@@ -56,7 +56,7 @@
         SafeRelease(texture3D);
 
         *mipLevels = texDesc.MipLevels;
-        *samples = 0;
+        *samples   = 0;
 
         return true;
     }
@@ -69,7 +69,7 @@
     D3D11_RENDER_TARGET_VIEW_DESC rtvDesc;
     view->GetDesc(&rtvDesc);
 
-    unsigned int mipSlice = 0;
+    unsigned int mipSlice   = 0;
     unsigned int arraySlice = 0;
 
     switch (rtvDesc.ViewDimension)
@@ -130,7 +130,7 @@
     D3D11_DEPTH_STENCIL_VIEW_DESC dsvDesc;
     view->GetDesc(&dsvDesc);
 
-    unsigned int mipSlice = 0;
+    unsigned int mipSlice   = 0;
     unsigned int arraySlice = 0;
 
     switch (dsvDesc.ViewDimension)
@@ -229,7 +229,7 @@
     {
         mSubresourceIndex = GetRTVSubresourceIndex(mTexture.get(), mRenderTarget.get());
     }
-    ASSERT(mFormatSet.formatID != angle::Format::ID::NONE || mWidth == 0 || mHeight == 0);
+    ASSERT(mFormatSet.formatID != angle::FormatID::NONE || mWidth == 0 || mHeight == 0);
 }
 
 TextureRenderTarget11::TextureRenderTarget11(d3d11::DepthStencilView &&dsv,
@@ -258,7 +258,7 @@
     {
         mSubresourceIndex = GetDSVSubresourceIndex(mTexture.get(), mDepthStencil.get());
     }
-    ASSERT(mFormatSet.formatID != angle::Format::ID::NONE || mWidth == 0 || mHeight == 0);
+    ASSERT(mFormatSet.formatID != angle::FormatID::NONE || mWidth == 0 || mHeight == 0);
 }
 
 TextureRenderTarget11::~TextureRenderTarget11()
diff --git a/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp b/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp
index 3147f06..6b8e48c 100644
--- a/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/dxgi_format_map_autogen.cpp
@@ -276,47 +276,47 @@
         case DXGI_FORMAT_A8P8:
             break;
         case DXGI_FORMAT_A8_UNORM:
-            return Format::Get(Format::ID::A8_UNORM);
+            return Format::Get(FormatID::A8_UNORM);
         case DXGI_FORMAT_AI44:
             break;
         case DXGI_FORMAT_AYUV:
             break;
         case DXGI_FORMAT_B4G4R4A4_UNORM:
-            return Format::Get(Format::ID::B4G4R4A4_UNORM);
+            return Format::Get(FormatID::B4G4R4A4_UNORM);
         case DXGI_FORMAT_B5G5R5A1_UNORM:
-            return Format::Get(Format::ID::B5G5R5A1_UNORM);
+            return Format::Get(FormatID::B5G5R5A1_UNORM);
         case DXGI_FORMAT_B5G6R5_UNORM:
-            return Format::Get(Format::ID::B5G6R5_UNORM);
+            return Format::Get(FormatID::B5G6R5_UNORM);
         case DXGI_FORMAT_B8G8R8A8_TYPELESS:
-            return Format::Get(Format::ID::B8G8R8A8_TYPELESS);
+            return Format::Get(FormatID::B8G8R8A8_TYPELESS);
         case DXGI_FORMAT_B8G8R8A8_UNORM:
-            return Format::Get(Format::ID::B8G8R8A8_UNORM);
+            return Format::Get(FormatID::B8G8R8A8_UNORM);
         case DXGI_FORMAT_B8G8R8A8_UNORM_SRGB:
-            return Format::Get(Format::ID::B8G8R8A8_UNORM_SRGB);
+            return Format::Get(FormatID::B8G8R8A8_UNORM_SRGB);
         case DXGI_FORMAT_B8G8R8X8_TYPELESS:
             break;
         case DXGI_FORMAT_B8G8R8X8_UNORM:
-            return Format::Get(Format::ID::B8G8R8X8_UNORM);
+            return Format::Get(FormatID::B8G8R8X8_UNORM);
         case DXGI_FORMAT_B8G8R8X8_UNORM_SRGB:
             break;
         case DXGI_FORMAT_BC1_TYPELESS:
             break;
         case DXGI_FORMAT_BC1_UNORM:
-            return Format::Get(Format::ID::BC1_RGBA_UNORM_BLOCK);
+            return Format::Get(FormatID::BC1_RGBA_UNORM_BLOCK);
         case DXGI_FORMAT_BC1_UNORM_SRGB:
-            return Format::Get(Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK);
+            return Format::Get(FormatID::BC1_RGBA_UNORM_SRGB_BLOCK);
         case DXGI_FORMAT_BC2_TYPELESS:
             break;
         case DXGI_FORMAT_BC2_UNORM:
-            return Format::Get(Format::ID::BC2_RGBA_UNORM_BLOCK);
+            return Format::Get(FormatID::BC2_RGBA_UNORM_BLOCK);
         case DXGI_FORMAT_BC2_UNORM_SRGB:
-            return Format::Get(Format::ID::BC2_RGBA_UNORM_SRGB_BLOCK);
+            return Format::Get(FormatID::BC2_RGBA_UNORM_SRGB_BLOCK);
         case DXGI_FORMAT_BC3_TYPELESS:
             break;
         case DXGI_FORMAT_BC3_UNORM:
-            return Format::Get(Format::ID::BC3_RGBA_UNORM_BLOCK);
+            return Format::Get(FormatID::BC3_RGBA_UNORM_BLOCK);
         case DXGI_FORMAT_BC3_UNORM_SRGB:
-            return Format::Get(Format::ID::BC3_RGBA_UNORM_SRGB_BLOCK);
+            return Format::Get(FormatID::BC3_RGBA_UNORM_SRGB_BLOCK);
         case DXGI_FORMAT_BC4_SNORM:
             break;
         case DXGI_FORMAT_BC4_TYPELESS:
@@ -342,13 +342,13 @@
         case DXGI_FORMAT_BC7_UNORM_SRGB:
             break;
         case DXGI_FORMAT_D16_UNORM:
-            return Format::Get(Format::ID::D16_UNORM);
+            return Format::Get(FormatID::D16_UNORM);
         case DXGI_FORMAT_D24_UNORM_S8_UINT:
-            return Format::Get(Format::ID::D24_UNORM_S8_UINT);
+            return Format::Get(FormatID::D24_UNORM_S8_UINT);
         case DXGI_FORMAT_D32_FLOAT:
-            return Format::Get(Format::ID::D32_FLOAT);
+            return Format::Get(FormatID::D32_FLOAT);
         case DXGI_FORMAT_D32_FLOAT_S8X24_UINT:
-            return Format::Get(Format::ID::D32_FLOAT_S8X24_UINT);
+            return Format::Get(FormatID::D32_FLOAT_S8X24_UINT);
         case DXGI_FORMAT_G8R8_G8B8_UNORM:
             break;
         case DXGI_FORMAT_IA44:
@@ -366,49 +366,49 @@
         case DXGI_FORMAT_R10G10B10A2_TYPELESS:
             break;
         case DXGI_FORMAT_R10G10B10A2_UINT:
-            return Format::Get(Format::ID::R10G10B10A2_UINT);
+            return Format::Get(FormatID::R10G10B10A2_UINT);
         case DXGI_FORMAT_R10G10B10A2_UNORM:
-            return Format::Get(Format::ID::R10G10B10A2_UNORM);
+            return Format::Get(FormatID::R10G10B10A2_UNORM);
         case DXGI_FORMAT_R10G10B10_XR_BIAS_A2_UNORM:
             break;
         case DXGI_FORMAT_R11G11B10_FLOAT:
-            return Format::Get(Format::ID::R11G11B10_FLOAT);
+            return Format::Get(FormatID::R11G11B10_FLOAT);
         case DXGI_FORMAT_R16G16B16A16_FLOAT:
-            return Format::Get(Format::ID::R16G16B16A16_FLOAT);
+            return Format::Get(FormatID::R16G16B16A16_FLOAT);
         case DXGI_FORMAT_R16G16B16A16_SINT:
-            return Format::Get(Format::ID::R16G16B16A16_SINT);
+            return Format::Get(FormatID::R16G16B16A16_SINT);
         case DXGI_FORMAT_R16G16B16A16_SNORM:
-            return Format::Get(Format::ID::R16G16B16A16_SNORM);
+            return Format::Get(FormatID::R16G16B16A16_SNORM);
         case DXGI_FORMAT_R16G16B16A16_TYPELESS:
             break;
         case DXGI_FORMAT_R16G16B16A16_UINT:
-            return Format::Get(Format::ID::R16G16B16A16_UINT);
+            return Format::Get(FormatID::R16G16B16A16_UINT);
         case DXGI_FORMAT_R16G16B16A16_UNORM:
-            return Format::Get(Format::ID::R16G16B16A16_UNORM);
+            return Format::Get(FormatID::R16G16B16A16_UNORM);
         case DXGI_FORMAT_R16G16_FLOAT:
-            return Format::Get(Format::ID::R16G16_FLOAT);
+            return Format::Get(FormatID::R16G16_FLOAT);
         case DXGI_FORMAT_R16G16_SINT:
-            return Format::Get(Format::ID::R16G16_SINT);
+            return Format::Get(FormatID::R16G16_SINT);
         case DXGI_FORMAT_R16G16_SNORM:
-            return Format::Get(Format::ID::R16G16_SNORM);
+            return Format::Get(FormatID::R16G16_SNORM);
         case DXGI_FORMAT_R16G16_TYPELESS:
             break;
         case DXGI_FORMAT_R16G16_UINT:
-            return Format::Get(Format::ID::R16G16_UINT);
+            return Format::Get(FormatID::R16G16_UINT);
         case DXGI_FORMAT_R16G16_UNORM:
-            return Format::Get(Format::ID::R16G16_UNORM);
+            return Format::Get(FormatID::R16G16_UNORM);
         case DXGI_FORMAT_R16_FLOAT:
-            return Format::Get(Format::ID::R16_FLOAT);
+            return Format::Get(FormatID::R16_FLOAT);
         case DXGI_FORMAT_R16_SINT:
-            return Format::Get(Format::ID::R16_SINT);
+            return Format::Get(FormatID::R16_SINT);
         case DXGI_FORMAT_R16_SNORM:
-            return Format::Get(Format::ID::R16_SNORM);
+            return Format::Get(FormatID::R16_SNORM);
         case DXGI_FORMAT_R16_TYPELESS:
             break;
         case DXGI_FORMAT_R16_UINT:
-            return Format::Get(Format::ID::R16_UINT);
+            return Format::Get(FormatID::R16_UINT);
         case DXGI_FORMAT_R16_UNORM:
-            return Format::Get(Format::ID::R16_UNORM);
+            return Format::Get(FormatID::R16_UNORM);
         case DXGI_FORMAT_R1_UNORM:
             break;
         case DXGI_FORMAT_R24G8_TYPELESS:
@@ -416,79 +416,79 @@
         case DXGI_FORMAT_R24_UNORM_X8_TYPELESS:
             break;
         case DXGI_FORMAT_R32G32B32A32_FLOAT:
-            return Format::Get(Format::ID::R32G32B32A32_FLOAT);
+            return Format::Get(FormatID::R32G32B32A32_FLOAT);
         case DXGI_FORMAT_R32G32B32A32_SINT:
-            return Format::Get(Format::ID::R32G32B32A32_SINT);
+            return Format::Get(FormatID::R32G32B32A32_SINT);
         case DXGI_FORMAT_R32G32B32A32_TYPELESS:
             break;
         case DXGI_FORMAT_R32G32B32A32_UINT:
-            return Format::Get(Format::ID::R32G32B32A32_UINT);
+            return Format::Get(FormatID::R32G32B32A32_UINT);
         case DXGI_FORMAT_R32G32B32_FLOAT:
-            return Format::Get(Format::ID::R32G32B32_FLOAT);
+            return Format::Get(FormatID::R32G32B32_FLOAT);
         case DXGI_FORMAT_R32G32B32_SINT:
-            return Format::Get(Format::ID::R32G32B32_SINT);
+            return Format::Get(FormatID::R32G32B32_SINT);
         case DXGI_FORMAT_R32G32B32_TYPELESS:
             break;
         case DXGI_FORMAT_R32G32B32_UINT:
-            return Format::Get(Format::ID::R32G32B32_UINT);
+            return Format::Get(FormatID::R32G32B32_UINT);
         case DXGI_FORMAT_R32G32_FLOAT:
-            return Format::Get(Format::ID::R32G32_FLOAT);
+            return Format::Get(FormatID::R32G32_FLOAT);
         case DXGI_FORMAT_R32G32_SINT:
-            return Format::Get(Format::ID::R32G32_SINT);
+            return Format::Get(FormatID::R32G32_SINT);
         case DXGI_FORMAT_R32G32_TYPELESS:
             break;
         case DXGI_FORMAT_R32G32_UINT:
-            return Format::Get(Format::ID::R32G32_UINT);
+            return Format::Get(FormatID::R32G32_UINT);
         case DXGI_FORMAT_R32G8X24_TYPELESS:
             break;
         case DXGI_FORMAT_R32_FLOAT:
-            return Format::Get(Format::ID::R32_FLOAT);
+            return Format::Get(FormatID::R32_FLOAT);
         case DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS:
             break;
         case DXGI_FORMAT_R32_SINT:
-            return Format::Get(Format::ID::R32_SINT);
+            return Format::Get(FormatID::R32_SINT);
         case DXGI_FORMAT_R32_TYPELESS:
             break;
         case DXGI_FORMAT_R32_UINT:
-            return Format::Get(Format::ID::R32_UINT);
+            return Format::Get(FormatID::R32_UINT);
         case DXGI_FORMAT_R8G8B8A8_SINT:
-            return Format::Get(Format::ID::R8G8B8A8_SINT);
+            return Format::Get(FormatID::R8G8B8A8_SINT);
         case DXGI_FORMAT_R8G8B8A8_SNORM:
-            return Format::Get(Format::ID::R8G8B8A8_SNORM);
+            return Format::Get(FormatID::R8G8B8A8_SNORM);
         case DXGI_FORMAT_R8G8B8A8_TYPELESS:
-            return Format::Get(Format::ID::R8G8B8A8_TYPELESS);
+            return Format::Get(FormatID::R8G8B8A8_TYPELESS);
         case DXGI_FORMAT_R8G8B8A8_UINT:
-            return Format::Get(Format::ID::R8G8B8A8_UINT);
+            return Format::Get(FormatID::R8G8B8A8_UINT);
         case DXGI_FORMAT_R8G8B8A8_UNORM:
-            return Format::Get(Format::ID::R8G8B8A8_UNORM);
+            return Format::Get(FormatID::R8G8B8A8_UNORM);
         case DXGI_FORMAT_R8G8B8A8_UNORM_SRGB:
-            return Format::Get(Format::ID::R8G8B8A8_UNORM_SRGB);
+            return Format::Get(FormatID::R8G8B8A8_UNORM_SRGB);
         case DXGI_FORMAT_R8G8_B8G8_UNORM:
             break;
         case DXGI_FORMAT_R8G8_SINT:
-            return Format::Get(Format::ID::R8G8_SINT);
+            return Format::Get(FormatID::R8G8_SINT);
         case DXGI_FORMAT_R8G8_SNORM:
-            return Format::Get(Format::ID::R8G8_SNORM);
+            return Format::Get(FormatID::R8G8_SNORM);
         case DXGI_FORMAT_R8G8_TYPELESS:
             break;
         case DXGI_FORMAT_R8G8_UINT:
-            return Format::Get(Format::ID::R8G8_UINT);
+            return Format::Get(FormatID::R8G8_UINT);
         case DXGI_FORMAT_R8G8_UNORM:
-            return Format::Get(Format::ID::R8G8_UNORM);
+            return Format::Get(FormatID::R8G8_UNORM);
         case DXGI_FORMAT_R8_SINT:
-            return Format::Get(Format::ID::R8_SINT);
+            return Format::Get(FormatID::R8_SINT);
         case DXGI_FORMAT_R8_SNORM:
-            return Format::Get(Format::ID::R8_SNORM);
+            return Format::Get(FormatID::R8_SNORM);
         case DXGI_FORMAT_R8_TYPELESS:
             break;
         case DXGI_FORMAT_R8_UINT:
-            return Format::Get(Format::ID::R8_UINT);
+            return Format::Get(FormatID::R8_UINT);
         case DXGI_FORMAT_R8_UNORM:
-            return Format::Get(Format::ID::R8_UNORM);
+            return Format::Get(FormatID::R8_UNORM);
         case DXGI_FORMAT_R9G9B9E5_SHAREDEXP:
-            return Format::Get(Format::ID::R9G9B9E5_SHAREDEXP);
+            return Format::Get(FormatID::R9G9B9E5_SHAREDEXP);
         case DXGI_FORMAT_UNKNOWN:
-            return Format::Get(Format::ID::NONE);
+            return Format::Get(FormatID::NONE);
         case DXGI_FORMAT_X24_TYPELESS_G8_UINT:
             break;
         case DXGI_FORMAT_X32_TYPELESS_G8X24_UINT:
@@ -508,7 +508,7 @@
     }
 
     UNREACHABLE();
-    return Format::Get(Format::ID::NONE);
+    return Format::Get(FormatID::NONE);
 }
 
 }  // namespace d3d11_angle
diff --git a/src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py b/src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py
index 3d20aa7..d19d99e 100644
--- a/src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py
+++ b/src/libANGLE/renderer/d3d/d3d11/gen_texture_format_table.py
@@ -141,7 +141,7 @@
 
 format_entry_template = """{space}{{
 {space}    static constexpr Format info({internalFormat},
-{space}                                 angle::Format::ID::{formatName},
+{space}                                 angle::FormatID::{formatName},
 {space}                                 {texFormat},
 {space}                                 {srvFormat},
 {space}                                 {uavFormat},
@@ -157,7 +157,7 @@
 split_format_entry_template = """{space}    {condition}
 {space}    {{
 {space}        static constexpr Format info({internalFormat},
-{space}                                     angle::Format::ID::{formatName},
+{space}                                     angle::FormatID::{formatName},
 {space}                                     {texFormat},
 {space}                                     {srvFormat},
 {space}                                     {uavFormat},
diff --git a/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h b/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h
index e83315d..2375b78 100644
--- a/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h
+++ b/src/libANGLE/renderer/d3d/d3d11/texture_format_table.h
@@ -15,8 +15,8 @@
 #include "common/angleutils.h"
 #include "common/platform.h"
 #include "libANGLE/renderer/Format.h"
-#include "libANGLE/renderer/renderer_utils.h"
 #include "libANGLE/renderer/d3d/formatutilsD3D.h"
+#include "libANGLE/renderer/renderer_utils.h"
 
 namespace rx
 {
@@ -34,7 +34,7 @@
 {
     constexpr Format();
     constexpr Format(GLenum internalFormat,
-                     angle::Format::ID formatID,
+                     angle::FormatID formatID,
                      DXGI_FORMAT texFormat,
                      DXGI_FORMAT srvFormat,
                      DXGI_FORMAT uavFormat,
@@ -51,7 +51,7 @@
     const angle::Format &format() const;
 
     GLenum internalFormat;
-    angle::Format::ID formatID;
+    angle::FormatID formatID;
 
     DXGI_FORMAT texFormat;
     DXGI_FORMAT srvFormat;
@@ -68,7 +68,7 @@
 
 constexpr Format::Format()
     : internalFormat(GL_NONE),
-      formatID(angle::Format::ID::NONE),
+      formatID(angle::FormatID::NONE),
       texFormat(DXGI_FORMAT_UNKNOWN),
       srvFormat(DXGI_FORMAT_UNKNOWN),
       uavFormat(DXGI_FORMAT_UNKNOWN),
@@ -81,7 +81,7 @@
 }
 
 constexpr Format::Format(GLenum internalFormat,
-                         angle::Format::ID formatID,
+                         angle::FormatID formatID,
                          DXGI_FORMAT texFormat,
                          DXGI_FORMAT srvFormat,
                          DXGI_FORMAT uavFormat,
diff --git a/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp b/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp
index 54a985b..7ff2ba9 100644
--- a/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp
+++ b/src/libANGLE/renderer/d3d/d3d11/texture_format_table_autogen.cpp
@@ -36,7 +36,7 @@
         case GL_ALPHA16F_EXT:
         {
             static constexpr Format info(GL_ALPHA16F_EXT,
-                                         angle::Format::ID::R16G16B16A16_FLOAT,
+                                         angle::FormatID::R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
@@ -50,7 +50,7 @@
         case GL_ALPHA32F_EXT:
         {
             static constexpr Format info(GL_ALPHA32F_EXT,
-                                         angle::Format::ID::R32G32B32A32_FLOAT,
+                                         angle::FormatID::R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
@@ -66,7 +66,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_ALPHA8_EXT,
-                                             angle::Format::ID::A8_UNORM,
+                                             angle::FormatID::A8_UNORM,
                                              DXGI_FORMAT_A8_UNORM,
                                              DXGI_FORMAT_A8_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -80,7 +80,7 @@
             else
             {
                 static constexpr Format info(GL_ALPHA8_EXT,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -97,7 +97,7 @@
             if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
             {
                 static constexpr Format info(GL_BGR565_ANGLEX,
-                                             angle::Format::ID::B5G6R5_UNORM,
+                                             angle::FormatID::B5G6R5_UNORM,
                                              DXGI_FORMAT_B5G6R5_UNORM,
                                              DXGI_FORMAT_B5G6R5_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -111,7 +111,7 @@
             else
             {
                 static constexpr Format info(GL_BGR565_ANGLEX,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -126,7 +126,7 @@
         case GL_BGR5_A1_ANGLEX:
         {
             static constexpr Format info(GL_BGR5_A1_ANGLEX,
-                                         angle::Format::ID::B8G8R8A8_UNORM,
+                                         angle::FormatID::B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -140,7 +140,7 @@
         case GL_BGRA4_ANGLEX:
         {
             static constexpr Format info(GL_BGRA4_ANGLEX,
-                                         angle::Format::ID::B8G8R8A8_UNORM,
+                                         angle::FormatID::B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -154,7 +154,7 @@
         case GL_BGRA8_EXT:
         {
             static constexpr Format info(GL_BGRA8_EXT,
-                                         angle::Format::ID::B8G8R8A8_UNORM,
+                                         angle::FormatID::B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_B8G8R8A8_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -168,7 +168,7 @@
         case GL_BGRA8_SRGB_ANGLEX:
         {
             static constexpr Format info(GL_BGRA8_SRGB_ANGLEX,
-                                         angle::Format::ID::B8G8R8A8_UNORM_SRGB,
+                                         angle::FormatID::B8G8R8A8_UNORM_SRGB,
                                          DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
                                          DXGI_FORMAT_B8G8R8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -184,7 +184,7 @@
             if (OnlyFL11_1Plus(deviceCaps))
             {
                 static constexpr Format info(GL_BGRX8_ANGLEX,
-                                             angle::Format::ID::B8G8R8X8_UNORM,
+                                             angle::FormatID::B8G8R8X8_UNORM,
                                              DXGI_FORMAT_B8G8R8X8_UNORM,
                                              DXGI_FORMAT_B8G8R8X8_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -198,7 +198,7 @@
             else
             {
                 static constexpr Format info(GL_BGRX8_ANGLEX,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -213,7 +213,7 @@
         case GL_COMPRESSED_R11_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_R11_EAC,
-                                         angle::Format::ID::R16_UNORM,
+                                         angle::FormatID::R16_UNORM,
                                          DXGI_FORMAT_R16_UNORM,
                                          DXGI_FORMAT_R16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -227,7 +227,7 @@
         case GL_COMPRESSED_RG11_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_RG11_EAC,
-                                         angle::Format::ID::R16G16_UNORM,
+                                         angle::FormatID::R16G16_UNORM,
                                          DXGI_FORMAT_R16G16_UNORM,
                                          DXGI_FORMAT_R16G16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -241,7 +241,7 @@
         case GL_COMPRESSED_RGB8_ETC2:
         {
             static constexpr Format info(GL_COMPRESSED_RGB8_ETC2,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -255,7 +255,7 @@
         case GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE,
-                                         angle::Format::ID::BC1_RGB_UNORM_BLOCK,
+                                         angle::FormatID::BC1_RGB_UNORM_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -269,7 +269,7 @@
         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:
         {
             static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -283,7 +283,7 @@
         case GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
-                                         angle::Format::ID::BC1_RGBA_UNORM_BLOCK,
+                                         angle::FormatID::BC1_RGBA_UNORM_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -297,7 +297,7 @@
         case GL_COMPRESSED_RGBA8_ETC2_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA8_ETC2_EAC,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -311,7 +311,7 @@
         case GL_COMPRESSED_RGBA_ASTC_10x10_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x10_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -325,7 +325,7 @@
         case GL_COMPRESSED_RGBA_ASTC_10x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -339,7 +339,7 @@
         case GL_COMPRESSED_RGBA_ASTC_10x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -353,7 +353,7 @@
         case GL_COMPRESSED_RGBA_ASTC_10x8_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_10x8_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -367,7 +367,7 @@
         case GL_COMPRESSED_RGBA_ASTC_12x10_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x10_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -381,7 +381,7 @@
         case GL_COMPRESSED_RGBA_ASTC_12x12_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_12x12_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -395,7 +395,7 @@
         case GL_COMPRESSED_RGBA_ASTC_4x4_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_4x4_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -409,7 +409,7 @@
         case GL_COMPRESSED_RGBA_ASTC_5x4_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x4_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -423,7 +423,7 @@
         case GL_COMPRESSED_RGBA_ASTC_5x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_5x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -437,7 +437,7 @@
         case GL_COMPRESSED_RGBA_ASTC_6x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -451,7 +451,7 @@
         case GL_COMPRESSED_RGBA_ASTC_6x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_6x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -465,7 +465,7 @@
         case GL_COMPRESSED_RGBA_ASTC_8x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -479,7 +479,7 @@
         case GL_COMPRESSED_RGBA_ASTC_8x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -493,7 +493,7 @@
         case GL_COMPRESSED_RGBA_ASTC_8x8_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_ASTC_8x8_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -507,7 +507,7 @@
         case GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT1_EXT,
-                                         angle::Format::ID::BC1_RGBA_UNORM_BLOCK,
+                                         angle::FormatID::BC1_RGBA_UNORM_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -521,7 +521,7 @@
         case GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT3_ANGLE,
-                                         angle::Format::ID::BC2_RGBA_UNORM_BLOCK,
+                                         angle::FormatID::BC2_RGBA_UNORM_BLOCK,
                                          DXGI_FORMAT_BC2_UNORM,
                                          DXGI_FORMAT_BC2_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -535,7 +535,7 @@
         case GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_RGBA_S3TC_DXT5_ANGLE,
-                                         angle::Format::ID::BC3_RGBA_UNORM_BLOCK,
+                                         angle::FormatID::BC3_RGBA_UNORM_BLOCK,
                                          DXGI_FORMAT_BC3_UNORM,
                                          DXGI_FORMAT_BC3_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -549,7 +549,7 @@
         case GL_COMPRESSED_RGB_S3TC_DXT1_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_RGB_S3TC_DXT1_EXT,
-                                         angle::Format::ID::BC1_RGB_UNORM_BLOCK,
+                                         angle::FormatID::BC1_RGB_UNORM_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -563,7 +563,7 @@
         case GL_COMPRESSED_SIGNED_R11_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_SIGNED_R11_EAC,
-                                         angle::Format::ID::R16_SNORM,
+                                         angle::FormatID::R16_SNORM,
                                          DXGI_FORMAT_R16_SNORM,
                                          DXGI_FORMAT_R16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -577,7 +577,7 @@
         case GL_COMPRESSED_SIGNED_RG11_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_SIGNED_RG11_EAC,
-                                         angle::Format::ID::R16G16_SNORM,
+                                         angle::FormatID::R16G16_SNORM,
                                          DXGI_FORMAT_R16G16_SNORM,
                                          DXGI_FORMAT_R16G16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -591,7 +591,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -605,7 +605,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -619,7 +619,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -633,7 +633,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -647,7 +647,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -661,7 +661,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -675,7 +675,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -689,7 +689,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -703,7 +703,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -717,7 +717,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -731,7 +731,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -745,7 +745,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -759,7 +759,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -773,7 +773,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -787,7 +787,7 @@
         case GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,
-                                         angle::Format::ID::R8G8B8A8_UNORM_SRGB,
+                                         angle::FormatID::R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -801,7 +801,7 @@
         case GL_COMPRESSED_SRGB8_ETC2:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_ETC2,
-                                         angle::Format::ID::R8G8B8A8_UNORM_SRGB,
+                                         angle::FormatID::R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -815,7 +815,7 @@
         case GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE,
-                                         angle::Format::ID::BC1_RGB_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -829,7 +829,7 @@
         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,
-                                         angle::Format::ID::R8G8B8A8_UNORM_SRGB,
+                                         angle::FormatID::R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -843,7 +843,7 @@
         case GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE,
-                                         angle::Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -857,7 +857,7 @@
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,
-                                         angle::Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -871,7 +871,7 @@
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,
-                                         angle::Format::ID::BC2_RGBA_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC2_RGBA_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC2_UNORM_SRGB,
                                          DXGI_FORMAT_BC2_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -885,7 +885,7 @@
         case GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,
-                                         angle::Format::ID::BC3_RGBA_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC3_RGBA_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC3_UNORM_SRGB,
                                          DXGI_FORMAT_BC3_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -899,7 +899,7 @@
         case GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
         {
             static constexpr Format info(GL_COMPRESSED_SRGB_S3TC_DXT1_EXT,
-                                         angle::Format::ID::BC1_RGB_UNORM_SRGB_BLOCK,
+                                         angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_BC1_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -915,7 +915,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_DEPTH24_STENCIL8,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_R24G8_TYPELESS,
                                              DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
                                              DXGI_FORMAT_UNKNOWN,
@@ -929,7 +929,7 @@
             else
             {
                 static constexpr Format info(GL_DEPTH24_STENCIL8,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_UNKNOWN,
                                              DXGI_FORMAT_UNKNOWN,
@@ -944,7 +944,7 @@
         case GL_DEPTH32F_STENCIL8:
         {
             static constexpr Format info(GL_DEPTH32F_STENCIL8,
-                                         angle::Format::ID::D32_FLOAT_S8X24_UINT,
+                                         angle::FormatID::D32_FLOAT_S8X24_UINT,
                                          DXGI_FORMAT_R32G8X24_TYPELESS,
                                          DXGI_FORMAT_R32_FLOAT_X8X24_TYPELESS,
                                          DXGI_FORMAT_UNKNOWN,
@@ -960,7 +960,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT16,
-                                             angle::Format::ID::D16_UNORM,
+                                             angle::FormatID::D16_UNORM,
                                              DXGI_FORMAT_R16_TYPELESS,
                                              DXGI_FORMAT_R16_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -974,7 +974,7 @@
             else
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT16,
-                                             angle::Format::ID::D16_UNORM,
+                                             angle::FormatID::D16_UNORM,
                                              DXGI_FORMAT_D16_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
                                              DXGI_FORMAT_UNKNOWN,
@@ -991,7 +991,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT24,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_R24G8_TYPELESS,
                                              DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1005,7 +1005,7 @@
             else
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT24,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_UNKNOWN,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1020,7 +1020,7 @@
         case GL_DEPTH_COMPONENT32F:
         {
             static constexpr Format info(GL_DEPTH_COMPONENT32F,
-                                         angle::Format::ID::D32_FLOAT,
+                                         angle::FormatID::D32_FLOAT,
                                          DXGI_FORMAT_R32_TYPELESS,
                                          DXGI_FORMAT_R32_FLOAT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1036,7 +1036,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_R24G8_TYPELESS,
                                              DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1050,7 +1050,7 @@
             else
             {
                 static constexpr Format info(GL_DEPTH_COMPONENT32_OES,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_UNKNOWN,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1065,7 +1065,7 @@
         case GL_ETC1_RGB8_LOSSY_DECODE_ANGLE:
         {
             static constexpr Format info(GL_ETC1_RGB8_LOSSY_DECODE_ANGLE,
-                                         angle::Format::ID::BC1_RGB_UNORM_BLOCK,
+                                         angle::FormatID::BC1_RGB_UNORM_BLOCK,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_BC1_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1079,7 +1079,7 @@
         case GL_ETC1_RGB8_OES:
         {
             static constexpr Format info(GL_ETC1_RGB8_OES,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1093,7 +1093,7 @@
         case GL_LUMINANCE16F_EXT:
         {
             static constexpr Format info(GL_LUMINANCE16F_EXT,
-                                         angle::Format::ID::R16G16B16A16_FLOAT,
+                                         angle::FormatID::R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
@@ -1107,7 +1107,7 @@
         case GL_LUMINANCE32F_EXT:
         {
             static constexpr Format info(GL_LUMINANCE32F_EXT,
-                                         angle::Format::ID::R32G32B32A32_FLOAT,
+                                         angle::FormatID::R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
@@ -1121,7 +1121,7 @@
         case GL_LUMINANCE8_ALPHA8_EXT:
         {
             static constexpr Format info(GL_LUMINANCE8_ALPHA8_EXT,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1135,7 +1135,7 @@
         case GL_LUMINANCE8_EXT:
         {
             static constexpr Format info(GL_LUMINANCE8_EXT,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1149,7 +1149,7 @@
         case GL_LUMINANCE_ALPHA16F_EXT:
         {
             static constexpr Format info(GL_LUMINANCE_ALPHA16F_EXT,
-                                         angle::Format::ID::R16G16B16A16_FLOAT,
+                                         angle::FormatID::R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
@@ -1163,7 +1163,7 @@
         case GL_LUMINANCE_ALPHA32F_EXT:
         {
             static constexpr Format info(GL_LUMINANCE_ALPHA32F_EXT,
-                                         angle::Format::ID::R32G32B32A32_FLOAT,
+                                         angle::FormatID::R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
@@ -1177,7 +1177,7 @@
         case GL_NONE:
         {
             static constexpr Format info(GL_NONE,
-                                         angle::Format::ID::NONE,
+                                         angle::FormatID::NONE,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1191,7 +1191,7 @@
         case GL_R11F_G11F_B10F:
         {
             static constexpr Format info(GL_R11F_G11F_B10F,
-                                         angle::Format::ID::R11G11B10_FLOAT,
+                                         angle::FormatID::R11G11B10_FLOAT,
                                          DXGI_FORMAT_R11G11B10_FLOAT,
                                          DXGI_FORMAT_R11G11B10_FLOAT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1205,7 +1205,7 @@
         case GL_R16F:
         {
             static constexpr Format info(GL_R16F,
-                                         angle::Format::ID::R16_FLOAT,
+                                         angle::FormatID::R16_FLOAT,
                                          DXGI_FORMAT_R16_FLOAT,
                                          DXGI_FORMAT_R16_FLOAT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1219,7 +1219,7 @@
         case GL_R16I:
         {
             static constexpr Format info(GL_R16I,
-                                         angle::Format::ID::R16_SINT,
+                                         angle::FormatID::R16_SINT,
                                          DXGI_FORMAT_R16_SINT,
                                          DXGI_FORMAT_R16_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1233,7 +1233,7 @@
         case GL_R16UI:
         {
             static constexpr Format info(GL_R16UI,
-                                         angle::Format::ID::R16_UINT,
+                                         angle::FormatID::R16_UINT,
                                          DXGI_FORMAT_R16_UINT,
                                          DXGI_FORMAT_R16_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1247,7 +1247,7 @@
         case GL_R16_EXT:
         {
             static constexpr Format info(GL_R16_EXT,
-                                         angle::Format::ID::R16_UNORM,
+                                         angle::FormatID::R16_UNORM,
                                          DXGI_FORMAT_R16_UNORM,
                                          DXGI_FORMAT_R16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1261,7 +1261,7 @@
         case GL_R16_SNORM_EXT:
         {
             static constexpr Format info(GL_R16_SNORM_EXT,
-                                         angle::Format::ID::R16_SNORM,
+                                         angle::FormatID::R16_SNORM,
                                          DXGI_FORMAT_R16_SNORM,
                                          DXGI_FORMAT_R16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1275,7 +1275,7 @@
         case GL_R32F:
         {
             static constexpr Format info(GL_R32F,
-                                         angle::Format::ID::R32_FLOAT,
+                                         angle::FormatID::R32_FLOAT,
                                          DXGI_FORMAT_R32_FLOAT,
                                          DXGI_FORMAT_R32_FLOAT,
                                          DXGI_FORMAT_R32_FLOAT,
@@ -1289,7 +1289,7 @@
         case GL_R32I:
         {
             static constexpr Format info(GL_R32I,
-                                         angle::Format::ID::R32_SINT,
+                                         angle::FormatID::R32_SINT,
                                          DXGI_FORMAT_R32_SINT,
                                          DXGI_FORMAT_R32_SINT,
                                          DXGI_FORMAT_R32_SINT,
@@ -1303,7 +1303,7 @@
         case GL_R32UI:
         {
             static constexpr Format info(GL_R32UI,
-                                         angle::Format::ID::R32_UINT,
+                                         angle::FormatID::R32_UINT,
                                          DXGI_FORMAT_R32_UINT,
                                          DXGI_FORMAT_R32_UINT,
                                          DXGI_FORMAT_R32_UINT,
@@ -1317,7 +1317,7 @@
         case GL_R8:
         {
             static constexpr Format info(GL_R8,
-                                         angle::Format::ID::R8_UNORM,
+                                         angle::FormatID::R8_UNORM,
                                          DXGI_FORMAT_R8_UNORM,
                                          DXGI_FORMAT_R8_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1331,7 +1331,7 @@
         case GL_R8I:
         {
             static constexpr Format info(GL_R8I,
-                                         angle::Format::ID::R8_SINT,
+                                         angle::FormatID::R8_SINT,
                                          DXGI_FORMAT_R8_SINT,
                                          DXGI_FORMAT_R8_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1345,7 +1345,7 @@
         case GL_R8UI:
         {
             static constexpr Format info(GL_R8UI,
-                                         angle::Format::ID::R8_UINT,
+                                         angle::FormatID::R8_UINT,
                                          DXGI_FORMAT_R8_UINT,
                                          DXGI_FORMAT_R8_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1359,7 +1359,7 @@
         case GL_R8_SNORM:
         {
             static constexpr Format info(GL_R8_SNORM,
-                                         angle::Format::ID::R8_SNORM,
+                                         angle::FormatID::R8_SNORM,
                                          DXGI_FORMAT_R8_SNORM,
                                          DXGI_FORMAT_R8_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1373,7 +1373,7 @@
         case GL_RG16F:
         {
             static constexpr Format info(GL_RG16F,
-                                         angle::Format::ID::R16G16_FLOAT,
+                                         angle::FormatID::R16G16_FLOAT,
                                          DXGI_FORMAT_R16G16_FLOAT,
                                          DXGI_FORMAT_R16G16_FLOAT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1387,7 +1387,7 @@
         case GL_RG16I:
         {
             static constexpr Format info(GL_RG16I,
-                                         angle::Format::ID::R16G16_SINT,
+                                         angle::FormatID::R16G16_SINT,
                                          DXGI_FORMAT_R16G16_SINT,
                                          DXGI_FORMAT_R16G16_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1401,7 +1401,7 @@
         case GL_RG16UI:
         {
             static constexpr Format info(GL_RG16UI,
-                                         angle::Format::ID::R16G16_UINT,
+                                         angle::FormatID::R16G16_UINT,
                                          DXGI_FORMAT_R16G16_UINT,
                                          DXGI_FORMAT_R16G16_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1415,7 +1415,7 @@
         case GL_RG16_EXT:
         {
             static constexpr Format info(GL_RG16_EXT,
-                                         angle::Format::ID::R16G16_UNORM,
+                                         angle::FormatID::R16G16_UNORM,
                                          DXGI_FORMAT_R16G16_UNORM,
                                          DXGI_FORMAT_R16G16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1429,7 +1429,7 @@
         case GL_RG16_SNORM_EXT:
         {
             static constexpr Format info(GL_RG16_SNORM_EXT,
-                                         angle::Format::ID::R16G16_SNORM,
+                                         angle::FormatID::R16G16_SNORM,
                                          DXGI_FORMAT_R16G16_SNORM,
                                          DXGI_FORMAT_R16G16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1443,7 +1443,7 @@
         case GL_RG32F:
         {
             static constexpr Format info(GL_RG32F,
-                                         angle::Format::ID::R32G32_FLOAT,
+                                         angle::FormatID::R32G32_FLOAT,
                                          DXGI_FORMAT_R32G32_FLOAT,
                                          DXGI_FORMAT_R32G32_FLOAT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1457,7 +1457,7 @@
         case GL_RG32I:
         {
             static constexpr Format info(GL_RG32I,
-                                         angle::Format::ID::R32G32_SINT,
+                                         angle::FormatID::R32G32_SINT,
                                          DXGI_FORMAT_R32G32_SINT,
                                          DXGI_FORMAT_R32G32_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1471,7 +1471,7 @@
         case GL_RG32UI:
         {
             static constexpr Format info(GL_RG32UI,
-                                         angle::Format::ID::R32G32_UINT,
+                                         angle::FormatID::R32G32_UINT,
                                          DXGI_FORMAT_R32G32_UINT,
                                          DXGI_FORMAT_R32G32_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1485,7 +1485,7 @@
         case GL_RG8:
         {
             static constexpr Format info(GL_RG8,
-                                         angle::Format::ID::R8G8_UNORM,
+                                         angle::FormatID::R8G8_UNORM,
                                          DXGI_FORMAT_R8G8_UNORM,
                                          DXGI_FORMAT_R8G8_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1499,7 +1499,7 @@
         case GL_RG8I:
         {
             static constexpr Format info(GL_RG8I,
-                                         angle::Format::ID::R8G8_SINT,
+                                         angle::FormatID::R8G8_SINT,
                                          DXGI_FORMAT_R8G8_SINT,
                                          DXGI_FORMAT_R8G8_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1513,7 +1513,7 @@
         case GL_RG8UI:
         {
             static constexpr Format info(GL_RG8UI,
-                                         angle::Format::ID::R8G8_UINT,
+                                         angle::FormatID::R8G8_UINT,
                                          DXGI_FORMAT_R8G8_UINT,
                                          DXGI_FORMAT_R8G8_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1527,7 +1527,7 @@
         case GL_RG8_SNORM:
         {
             static constexpr Format info(GL_RG8_SNORM,
-                                         angle::Format::ID::R8G8_SNORM,
+                                         angle::FormatID::R8G8_SNORM,
                                          DXGI_FORMAT_R8G8_SNORM,
                                          DXGI_FORMAT_R8G8_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1541,7 +1541,7 @@
         case GL_RGB:
         {
             static constexpr Format info(GL_RGB,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1555,7 +1555,7 @@
         case GL_RGB10_A2:
         {
             static constexpr Format info(GL_RGB10_A2,
-                                         angle::Format::ID::R10G10B10A2_UNORM,
+                                         angle::FormatID::R10G10B10A2_UNORM,
                                          DXGI_FORMAT_R10G10B10A2_UNORM,
                                          DXGI_FORMAT_R10G10B10A2_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1569,7 +1569,7 @@
         case GL_RGB10_A2UI:
         {
             static constexpr Format info(GL_RGB10_A2UI,
-                                         angle::Format::ID::R10G10B10A2_UINT,
+                                         angle::FormatID::R10G10B10A2_UINT,
                                          DXGI_FORMAT_R10G10B10A2_UINT,
                                          DXGI_FORMAT_R10G10B10A2_UINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1583,7 +1583,7 @@
         case GL_RGB16F:
         {
             static constexpr Format info(GL_RGB16F,
-                                         angle::Format::ID::R16G16B16A16_FLOAT,
+                                         angle::FormatID::R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
@@ -1597,7 +1597,7 @@
         case GL_RGB16I:
         {
             static constexpr Format info(GL_RGB16I,
-                                         angle::Format::ID::R16G16B16A16_SINT,
+                                         angle::FormatID::R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
@@ -1611,7 +1611,7 @@
         case GL_RGB16UI:
         {
             static constexpr Format info(GL_RGB16UI,
-                                         angle::Format::ID::R16G16B16A16_UINT,
+                                         angle::FormatID::R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
@@ -1625,7 +1625,7 @@
         case GL_RGB16_EXT:
         {
             static constexpr Format info(GL_RGB16_EXT,
-                                         angle::Format::ID::R16G16B16A16_UNORM,
+                                         angle::FormatID::R16G16B16A16_UNORM,
                                          DXGI_FORMAT_R16G16B16A16_UNORM,
                                          DXGI_FORMAT_R16G16B16A16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1639,7 +1639,7 @@
         case GL_RGB16_SNORM_EXT:
         {
             static constexpr Format info(GL_RGB16_SNORM_EXT,
-                                         angle::Format::ID::R16G16B16A16_SNORM,
+                                         angle::FormatID::R16G16B16A16_SNORM,
                                          DXGI_FORMAT_R16G16B16A16_SNORM,
                                          DXGI_FORMAT_R16G16B16A16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1653,7 +1653,7 @@
         case GL_RGB32F:
         {
             static constexpr Format info(GL_RGB32F,
-                                         angle::Format::ID::R32G32B32A32_FLOAT,
+                                         angle::FormatID::R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
@@ -1667,7 +1667,7 @@
         case GL_RGB32I:
         {
             static constexpr Format info(GL_RGB32I,
-                                         angle::Format::ID::R32G32B32A32_SINT,
+                                         angle::FormatID::R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
@@ -1681,7 +1681,7 @@
         case GL_RGB32UI:
         {
             static constexpr Format info(GL_RGB32UI,
-                                         angle::Format::ID::R32G32B32A32_UINT,
+                                         angle::FormatID::R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
@@ -1697,7 +1697,7 @@
             if (SupportsFormat(DXGI_FORMAT_B5G6R5_UNORM, deviceCaps))
             {
                 static constexpr Format info(GL_RGB565,
-                                             angle::Format::ID::B5G6R5_UNORM,
+                                             angle::FormatID::B5G6R5_UNORM,
                                              DXGI_FORMAT_B5G6R5_UNORM,
                                              DXGI_FORMAT_B5G6R5_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1711,7 +1711,7 @@
             else
             {
                 static constexpr Format info(GL_RGB565,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1728,7 +1728,7 @@
             if (SupportsFormat(DXGI_FORMAT_B5G5R5A1_UNORM, deviceCaps))
             {
                 static constexpr Format info(GL_RGB5_A1,
-                                             angle::Format::ID::B5G5R5A1_UNORM,
+                                             angle::FormatID::B5G5R5A1_UNORM,
                                              DXGI_FORMAT_B5G5R5A1_UNORM,
                                              DXGI_FORMAT_B5G5R5A1_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1742,7 +1742,7 @@
             else
             {
                 static constexpr Format info(GL_RGB5_A1,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1757,7 +1757,7 @@
         case GL_RGB8:
         {
             static constexpr Format info(GL_RGB8,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1771,7 +1771,7 @@
         case GL_RGB8I:
         {
             static constexpr Format info(GL_RGB8I,
-                                         angle::Format::ID::R8G8B8A8_SINT,
+                                         angle::FormatID::R8G8B8A8_SINT,
                                          DXGI_FORMAT_R8G8B8A8_SINT,
                                          DXGI_FORMAT_R8G8B8A8_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1785,7 +1785,7 @@
         case GL_RGB8UI:
         {
             static constexpr Format info(GL_RGB8UI,
-                                         angle::Format::ID::R8G8B8A8_UINT,
+                                         angle::FormatID::R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
@@ -1799,7 +1799,7 @@
         case GL_RGB8_SNORM:
         {
             static constexpr Format info(GL_RGB8_SNORM,
-                                         angle::Format::ID::R8G8B8A8_SNORM,
+                                         angle::FormatID::R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
@@ -1813,7 +1813,7 @@
         case GL_RGB9_E5:
         {
             static constexpr Format info(GL_RGB9_E5,
-                                         angle::Format::ID::R9G9B9E5_SHAREDEXP,
+                                         angle::FormatID::R9G9B9E5_SHAREDEXP,
                                          DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
                                          DXGI_FORMAT_R9G9B9E5_SHAREDEXP,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1827,7 +1827,7 @@
         case GL_RGBA:
         {
             static constexpr Format info(GL_RGBA,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1841,7 +1841,7 @@
         case GL_RGBA16F:
         {
             static constexpr Format info(GL_RGBA16F,
-                                         angle::Format::ID::R16G16B16A16_FLOAT,
+                                         angle::FormatID::R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
                                          DXGI_FORMAT_R16G16B16A16_FLOAT,
@@ -1855,7 +1855,7 @@
         case GL_RGBA16I:
         {
             static constexpr Format info(GL_RGBA16I,
-                                         angle::Format::ID::R16G16B16A16_SINT,
+                                         angle::FormatID::R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
                                          DXGI_FORMAT_R16G16B16A16_SINT,
@@ -1869,7 +1869,7 @@
         case GL_RGBA16UI:
         {
             static constexpr Format info(GL_RGBA16UI,
-                                         angle::Format::ID::R16G16B16A16_UINT,
+                                         angle::FormatID::R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
                                          DXGI_FORMAT_R16G16B16A16_UINT,
@@ -1883,7 +1883,7 @@
         case GL_RGBA16_EXT:
         {
             static constexpr Format info(GL_RGBA16_EXT,
-                                         angle::Format::ID::R16G16B16A16_UNORM,
+                                         angle::FormatID::R16G16B16A16_UNORM,
                                          DXGI_FORMAT_R16G16B16A16_UNORM,
                                          DXGI_FORMAT_R16G16B16A16_UNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1897,7 +1897,7 @@
         case GL_RGBA16_SNORM_EXT:
         {
             static constexpr Format info(GL_RGBA16_SNORM_EXT,
-                                         angle::Format::ID::R16G16B16A16_SNORM,
+                                         angle::FormatID::R16G16B16A16_SNORM,
                                          DXGI_FORMAT_R16G16B16A16_SNORM,
                                          DXGI_FORMAT_R16G16B16A16_SNORM,
                                          DXGI_FORMAT_UNKNOWN,
@@ -1911,7 +1911,7 @@
         case GL_RGBA32F:
         {
             static constexpr Format info(GL_RGBA32F,
-                                         angle::Format::ID::R32G32B32A32_FLOAT,
+                                         angle::FormatID::R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
                                          DXGI_FORMAT_R32G32B32A32_FLOAT,
@@ -1925,7 +1925,7 @@
         case GL_RGBA32I:
         {
             static constexpr Format info(GL_RGBA32I,
-                                         angle::Format::ID::R32G32B32A32_SINT,
+                                         angle::FormatID::R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
                                          DXGI_FORMAT_R32G32B32A32_SINT,
@@ -1939,7 +1939,7 @@
         case GL_RGBA32UI:
         {
             static constexpr Format info(GL_RGBA32UI,
-                                         angle::Format::ID::R32G32B32A32_UINT,
+                                         angle::FormatID::R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
                                          DXGI_FORMAT_R32G32B32A32_UINT,
@@ -1955,7 +1955,7 @@
             if (SupportsFormat(DXGI_FORMAT_B4G4R4A4_UNORM, deviceCaps))
             {
                 static constexpr Format info(GL_RGBA4,
-                                             angle::Format::ID::B4G4R4A4_UNORM,
+                                             angle::FormatID::B4G4R4A4_UNORM,
                                              DXGI_FORMAT_B4G4R4A4_UNORM,
                                              DXGI_FORMAT_B4G4R4A4_UNORM,
                                              DXGI_FORMAT_UNKNOWN,
@@ -1969,7 +1969,7 @@
             else
             {
                 static constexpr Format info(GL_RGBA4,
-                                             angle::Format::ID::R8G8B8A8_UNORM,
+                                             angle::FormatID::R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
                                              DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1984,7 +1984,7 @@
         case GL_RGBA8:
         {
             static constexpr Format info(GL_RGBA8,
-                                         angle::Format::ID::R8G8B8A8_UNORM,
+                                         angle::FormatID::R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
                                          DXGI_FORMAT_R8G8B8A8_UNORM,
@@ -1998,7 +1998,7 @@
         case GL_RGBA8I:
         {
             static constexpr Format info(GL_RGBA8I,
-                                         angle::Format::ID::R8G8B8A8_SINT,
+                                         angle::FormatID::R8G8B8A8_SINT,
                                          DXGI_FORMAT_R8G8B8A8_SINT,
                                          DXGI_FORMAT_R8G8B8A8_SINT,
                                          DXGI_FORMAT_UNKNOWN,
@@ -2012,7 +2012,7 @@
         case GL_RGBA8UI:
         {
             static constexpr Format info(GL_RGBA8UI,
-                                         angle::Format::ID::R8G8B8A8_UINT,
+                                         angle::FormatID::R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
                                          DXGI_FORMAT_R8G8B8A8_UINT,
@@ -2026,7 +2026,7 @@
         case GL_RGBA8_SNORM:
         {
             static constexpr Format info(GL_RGBA8_SNORM,
-                                         angle::Format::ID::R8G8B8A8_SNORM,
+                                         angle::FormatID::R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
                                          DXGI_FORMAT_R8G8B8A8_SNORM,
@@ -2040,7 +2040,7 @@
         case GL_SRGB8:
         {
             static constexpr Format info(GL_SRGB8,
-                                         angle::Format::ID::R8G8B8A8_UNORM_SRGB,
+                                         angle::FormatID::R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -2054,7 +2054,7 @@
         case GL_SRGB8_ALPHA8:
         {
             static constexpr Format info(GL_SRGB8_ALPHA8,
-                                         angle::Format::ID::R8G8B8A8_UNORM_SRGB,
+                                         angle::FormatID::R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_R8G8B8A8_UNORM_SRGB,
                                          DXGI_FORMAT_UNKNOWN,
@@ -2070,7 +2070,7 @@
             if (OnlyFL10Plus(deviceCaps))
             {
                 static constexpr Format info(GL_STENCIL_INDEX8,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_R24G8_TYPELESS,
                                              DXGI_FORMAT_R24_UNORM_X8_TYPELESS,
                                              DXGI_FORMAT_UNKNOWN,
@@ -2084,7 +2084,7 @@
             else
             {
                 static constexpr Format info(GL_STENCIL_INDEX8,
-                                             angle::Format::ID::D24_UNORM_S8_UINT,
+                                             angle::FormatID::D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_D24_UNORM_S8_UINT,
                                              DXGI_FORMAT_UNKNOWN,
                                              DXGI_FORMAT_UNKNOWN,
diff --git a/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp b/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
index 150e789..0fa123c 100644
--- a/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/Renderer9.cpp
@@ -780,7 +780,7 @@
     if (angleFormat)
     {
         const auto &d3dFormatInfo = d3d9::GetD3DFormatInfo(desc.Format);
-        ASSERT(d3dFormatInfo.info().id != angle::Format::ID::NONE);
+        ASSERT(d3dFormatInfo.info().id != angle::FormatID::NONE);
         *angleFormat = &d3dFormatInfo.info();
     }
 
@@ -1004,7 +1004,7 @@
                                 gl::Texture *texture)
 {
     int d3dSamplerOffset = (type == gl::ShaderType::Fragment) ? 0 : D3DVERTEXTEXTURESAMPLER0;
-    int d3dSampler                    = index + d3dSamplerOffset;
+    int d3dSampler       = index + d3dSamplerOffset;
     IDirect3DBaseTexture9 *d3dTexture = nullptr;
     bool forceSetTexture              = false;
 
diff --git a/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp b/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp
index d10fa1e..0236b0b 100644
--- a/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp
+++ b/src/libANGLE/renderer/d3d/d3d9/formatutils9.cpp
@@ -41,7 +41,7 @@
       luminanceBits(0),
       depthBits(0),
       stencilBits(0),
-      formatID(angle::Format::ID::NONE)
+      formatID(angle::FormatID::NONE)
 {
 }
 
@@ -55,7 +55,7 @@
                      GLuint lumBits,
                      GLuint depthBits,
                      GLuint stencilBits,
-                     Format::ID formatID)
+                     FormatID formatID)
     : pixelBytes(bits / 8),
       blockWidth(blockWidth),
       blockHeight(blockHeight),
@@ -74,13 +74,13 @@
 {
     if (format == D3DFMT_NULL)
     {
-        static const D3DFormat info(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Format::ID::NONE);
+        static const D3DFormat info(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FormatID::NONE);
         return info;
     }
 
     if (format == D3DFMT_INTZ)
     {
-        static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 24, 8, Format::ID::D24_UNORM_S8_UINT);
+        static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 24, 8, FormatID::D24_UNORM_S8_UINT);
         return info;
     }
 
@@ -88,123 +88,123 @@
     {
         case D3DFMT_UNKNOWN:
         {
-            static const D3DFormat info(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, Format::ID::NONE);
+            static const D3DFormat info(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, FormatID::NONE);
             return info;
         }
 
         case D3DFMT_L8:
         {
-            static const D3DFormat info(8, 1, 1, 0, 0, 0, 0, 8, 0, 0, Format::ID::L8_UNORM);
+            static const D3DFormat info(8, 1, 1, 0, 0, 0, 0, 8, 0, 0, FormatID::L8_UNORM);
             return info;
         }
         case D3DFMT_A8:
         {
-            static const D3DFormat info(8, 1, 1, 0, 0, 0, 8, 0, 0, 0, Format::ID::A8_UNORM);
+            static const D3DFormat info(8, 1, 1, 0, 0, 0, 8, 0, 0, 0, FormatID::A8_UNORM);
             return info;
         }
         case D3DFMT_A8L8:
         {
-            static const D3DFormat info(16, 1, 1, 0, 0, 0, 8, 8, 0, 0, Format::ID::L8A8_UNORM);
+            static const D3DFormat info(16, 1, 1, 0, 0, 0, 8, 8, 0, 0, FormatID::L8A8_UNORM);
             return info;
         }
 
         case D3DFMT_A4R4G4B4:
         {
-            static const D3DFormat info(16, 1, 1, 4, 4, 4, 4, 0, 0, 0, Format::ID::B4G4R4A4_UNORM);
+            static const D3DFormat info(16, 1, 1, 4, 4, 4, 4, 0, 0, 0, FormatID::B4G4R4A4_UNORM);
             return info;
         }
         case D3DFMT_A1R5G5B5:
         {
-            static const D3DFormat info(16, 1, 1, 5, 5, 5, 1, 0, 0, 0, Format::ID::B5G5R5A1_UNORM);
+            static const D3DFormat info(16, 1, 1, 5, 5, 5, 1, 0, 0, 0, FormatID::B5G5R5A1_UNORM);
             return info;
         }
         case D3DFMT_R5G6B5:
         {
-            static const D3DFormat info(16, 1, 1, 5, 6, 5, 0, 0, 0, 0, Format::ID::R5G6B5_UNORM);
+            static const D3DFormat info(16, 1, 1, 5, 6, 5, 0, 0, 0, 0, FormatID::R5G6B5_UNORM);
             return info;
         }
         case D3DFMT_X8R8G8B8:
         {
-            static const D3DFormat info(32, 1, 1, 8, 8, 8, 0, 0, 0, 0, Format::ID::B8G8R8X8_UNORM);
+            static const D3DFormat info(32, 1, 1, 8, 8, 8, 0, 0, 0, 0, FormatID::B8G8R8X8_UNORM);
             return info;
         }
         case D3DFMT_A8R8G8B8:
         {
-            static const D3DFormat info(32, 1, 1, 8, 8, 8, 8, 0, 0, 0, Format::ID::B8G8R8A8_UNORM);
+            static const D3DFormat info(32, 1, 1, 8, 8, 8, 8, 0, 0, 0, FormatID::B8G8R8A8_UNORM);
             return info;
         }
 
         case D3DFMT_R16F:
         {
-            static const D3DFormat info(16, 1, 1, 16, 0, 0, 0, 0, 0, 0, Format::ID::R16_FLOAT);
+            static const D3DFormat info(16, 1, 1, 16, 0, 0, 0, 0, 0, 0, FormatID::R16_FLOAT);
             return info;
         }
         case D3DFMT_G16R16F:
         {
-            static const D3DFormat info(32, 1, 1, 16, 16, 0, 0, 0, 0, 0, Format::ID::R16G16_FLOAT);
+            static const D3DFormat info(32, 1, 1, 16, 16, 0, 0, 0, 0, 0, FormatID::R16G16_FLOAT);
             return info;
         }
         case D3DFMT_A16B16G16R16F:
         {
             static const D3DFormat info(64, 1, 1, 16, 16, 16, 16, 0, 0, 0,
-                                        Format::ID::R16G16B16A16_FLOAT);
+                                        FormatID::R16G16B16A16_FLOAT);
             return info;
         }
         case D3DFMT_R32F:
         {
-            static const D3DFormat info(32, 1, 1, 32, 0, 0, 0, 0, 0, 0, Format::ID::R32_FLOAT);
+            static const D3DFormat info(32, 1, 1, 32, 0, 0, 0, 0, 0, 0, FormatID::R32_FLOAT);
             return info;
         }
         case D3DFMT_G32R32F:
         {
-            static const D3DFormat info(64, 1, 1, 32, 32, 0, 0, 0, 0, 0, Format::ID::R32G32_FLOAT);
+            static const D3DFormat info(64, 1, 1, 32, 32, 0, 0, 0, 0, 0, FormatID::R32G32_FLOAT);
             return info;
         }
         case D3DFMT_A32B32G32R32F:
         {
             static const D3DFormat info(128, 1, 1, 32, 32, 32, 32, 0, 0, 0,
-                                        Format::ID::R32G32B32A32_FLOAT);
+                                        FormatID::R32G32B32A32_FLOAT);
             return info;
         }
 
         case D3DFMT_D16:
         {
-            static const D3DFormat info(16, 1, 1, 0, 0, 0, 0, 0, 16, 0, Format::ID::D16_UNORM);
+            static const D3DFormat info(16, 1, 1, 0, 0, 0, 0, 0, 16, 0, FormatID::D16_UNORM);
             return info;
         }
         case D3DFMT_D24S8:
         {
             static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 24, 8,
-                                        Format::ID::D24_UNORM_S8_UINT);
+                                        FormatID::D24_UNORM_S8_UINT);
             return info;
         }
         case D3DFMT_D24X8:
         {
-            static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 24, 0, Format::ID::D16_UNORM);
+            static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 24, 0, FormatID::D16_UNORM);
             return info;
         }
         case D3DFMT_D32:
         {
-            static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 32, 0, Format::ID::D32_UNORM);
+            static const D3DFormat info(32, 1, 1, 0, 0, 0, 0, 0, 32, 0, FormatID::D32_UNORM);
             return info;
         }
 
         case D3DFMT_DXT1:
         {
             static const D3DFormat info(64, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-                                        Format::ID::BC1_RGBA_UNORM_BLOCK);
+                                        FormatID::BC1_RGBA_UNORM_BLOCK);
             return info;
         }
         case D3DFMT_DXT3:
         {
             static const D3DFormat info(128, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-                                        Format::ID::BC2_RGBA_UNORM_BLOCK);
+                                        FormatID::BC2_RGBA_UNORM_BLOCK);
             return info;
         }
         case D3DFMT_DXT5:
         {
             static const D3DFormat info(128, 4, 4, 0, 0, 0, 0, 0, 0, 0,
-                                        Format::ID::BC3_RGBA_UNORM_BLOCK);
+                                        FormatID::BC3_RGBA_UNORM_BLOCK);
             return info;
         }
 
@@ -225,15 +225,24 @@
 
     InternalFormatInitialzerMap map;
 
-    map.insert(InternalFormatInitialzerPair(GL_RGB16F, Initialize4ComponentData<GLhalf,   0x0000,     0x0000,     0x0000,     gl::Float16One>));
-    map.insert(InternalFormatInitialzerPair(GL_RGB32F, Initialize4ComponentData<GLfloat,  0x00000000, 0x00000000, 0x00000000, gl::Float32One>));
+    map.insert(InternalFormatInitialzerPair(
+        GL_RGB16F, Initialize4ComponentData<GLhalf, 0x0000, 0x0000, 0x0000, gl::Float16One>));
+    map.insert(InternalFormatInitialzerPair(
+        GL_RGB32F,
+        Initialize4ComponentData<GLfloat, 0x00000000, 0x00000000, 0x00000000, gl::Float32One>));
 
     return map;
 }
 
-static void UnreachableLoad(size_t width, size_t height, size_t depth,
-                            const uint8_t *input, size_t inputRowPitch, size_t inputDepthPitch,
-                            uint8_t *output, size_t outputRowPitch, size_t outputDepthPitch)
+static void UnreachableLoad(size_t width,
+                            size_t height,
+                            size_t depth,
+                            const uint8_t *input,
+                            size_t inputRowPitch,
+                            size_t inputDepthPitch,
+                            uint8_t *output,
+                            size_t outputRowPitch,
+                            size_t outputDepthPitch)
 {
     UNREACHABLE();
 }
@@ -249,15 +258,20 @@
 {
 }
 
-static inline void InsertD3D9FormatInfo(D3D9FormatMap *map, GLenum internalFormat, D3DFORMAT texFormat,
-                                        D3DFORMAT renderFormat, LoadImageFunction loadFunction)
+static inline void InsertD3D9FormatInfo(D3D9FormatMap *map,
+                                        GLenum internalFormat,
+                                        D3DFORMAT texFormat,
+                                        D3DFORMAT renderFormat,
+                                        LoadImageFunction loadFunction)
 {
     TextureFormat info;
-    info.texFormat = texFormat;
+    info.texFormat    = texFormat;
     info.renderFormat = renderFormat;
 
-    static const InternalFormatInitialzerMap dataInitializationMap = BuildInternalFormatInitialzerMap();
-    InternalFormatInitialzerMap::const_iterator dataInitIter = dataInitializationMap.find(internalFormat);
+    static const InternalFormatInitialzerMap dataInitializationMap =
+        BuildInternalFormatInitialzerMap();
+    InternalFormatInitialzerMap::const_iterator dataInitIter =
+        dataInitializationMap.find(internalFormat);
     info.dataInitializerFunction =
         (dataInitIter != dataInitializationMap.end()) ? dataInitIter->second : nullptr;
 
@@ -337,7 +351,7 @@
 const TextureFormat &GetTextureFormatInfo(GLenum internalFormat)
 {
     static const D3D9FormatMap formatMap = BuildD3D9FormatMap();
-    D3D9FormatMap::const_iterator iter = formatMap.find(internalFormat);
+    D3D9FormatMap::const_iterator iter   = formatMap.find(internalFormat);
     if (iter != formatMap.end())
     {
         return iter->second;
@@ -353,24 +367,41 @@
 {
     switch (declType)
     {
-      case D3DDECLTYPE_FLOAT1:   return GL_FLOAT;
-      case D3DDECLTYPE_FLOAT2:   return GL_FLOAT;
-      case D3DDECLTYPE_FLOAT3:   return GL_FLOAT;
-      case D3DDECLTYPE_FLOAT4:   return GL_FLOAT;
-      case D3DDECLTYPE_UBYTE4:   return GL_UNSIGNED_INT;
-      case D3DDECLTYPE_SHORT2:   return GL_INT;
-      case D3DDECLTYPE_SHORT4:   return GL_INT;
-      case D3DDECLTYPE_UBYTE4N:  return GL_UNSIGNED_NORMALIZED;
-      case D3DDECLTYPE_SHORT4N:  return GL_SIGNED_NORMALIZED;
-      case D3DDECLTYPE_USHORT4N: return GL_UNSIGNED_NORMALIZED;
-      case D3DDECLTYPE_SHORT2N:  return GL_SIGNED_NORMALIZED;
-      case D3DDECLTYPE_USHORT2N: return GL_UNSIGNED_NORMALIZED;
-      default: UNREACHABLE();    return GL_NONE;
+        case D3DDECLTYPE_FLOAT1:
+            return GL_FLOAT;
+        case D3DDECLTYPE_FLOAT2:
+            return GL_FLOAT;
+        case D3DDECLTYPE_FLOAT3:
+            return GL_FLOAT;
+        case D3DDECLTYPE_FLOAT4:
+            return GL_FLOAT;
+        case D3DDECLTYPE_UBYTE4:
+            return GL_UNSIGNED_INT;
+        case D3DDECLTYPE_SHORT2:
+            return GL_INT;
+        case D3DDECLTYPE_SHORT4:
+            return GL_INT;
+        case D3DDECLTYPE_UBYTE4N:
+            return GL_UNSIGNED_NORMALIZED;
+        case D3DDECLTYPE_SHORT4N:
+            return GL_SIGNED_NORMALIZED;
+        case D3DDECLTYPE_USHORT4N:
+            return GL_UNSIGNED_NORMALIZED;
+        case D3DDECLTYPE_SHORT2N:
+            return GL_SIGNED_NORMALIZED;
+        case D3DDECLTYPE_USHORT2N:
+            return GL_UNSIGNED_NORMALIZED;
+        default:
+            UNREACHABLE();
+            return GL_NONE;
     }
 }
 
 // Attribute format conversion
-enum { NUM_GL_VERTEX_ATTRIB_TYPES = 6 };
+enum
+{
+    NUM_GL_VERTEX_ATTRIB_TYPES = 6
+};
 
 struct TranslationDescription
 {
@@ -393,14 +424,41 @@
 // FLOAT                FLOAT (Identity)
 
 // GLToCType maps from GL type (as GLenum) to the C typedef.
-template <GLenum GLType> struct GLToCType { };
+template <GLenum GLType>
+struct GLToCType
+{
+};
 
-template <> struct GLToCType<GL_BYTE>           { typedef GLbyte type;      };
-template <> struct GLToCType<GL_UNSIGNED_BYTE>  { typedef GLubyte type;     };
-template <> struct GLToCType<GL_SHORT>          { typedef GLshort type;     };
-template <> struct GLToCType<GL_UNSIGNED_SHORT> { typedef GLushort type;    };
-template <> struct GLToCType<GL_FIXED>          { typedef GLuint type;      };
-template <> struct GLToCType<GL_FLOAT>          { typedef GLfloat type;     };
+template <>
+struct GLToCType<GL_BYTE>
+{
+    typedef GLbyte type;
+};
+template <>
+struct GLToCType<GL_UNSIGNED_BYTE>
+{
+    typedef GLubyte type;
+};
+template <>
+struct GLToCType<GL_SHORT>
+{
+    typedef GLshort type;
+};
+template <>
+struct GLToCType<GL_UNSIGNED_SHORT>
+{
+    typedef GLushort type;
+};
+template <>
+struct GLToCType<GL_FIXED>
+{
+    typedef GLuint type;
+};
+template <>
+struct GLToCType<GL_FLOAT>
+{
+    typedef GLfloat type;
+};
 
 // This differs from D3DDECLTYPE in that it is unsized. (Size expansion is applied last.)
 enum D3DVertexType
@@ -414,104 +472,288 @@
 };
 
 // D3DToCType maps from D3D vertex type (as enum D3DVertexType) to the corresponding C type.
-template <unsigned int D3DType> struct D3DToCType { };
+template <unsigned int D3DType>
+struct D3DToCType
+{
+};
 
-template <> struct D3DToCType<D3DVT_FLOAT> { typedef float type; };
-template <> struct D3DToCType<D3DVT_SHORT> { typedef short type; };
-template <> struct D3DToCType<D3DVT_SHORT_NORM> { typedef short type; };
-template <> struct D3DToCType<D3DVT_UBYTE> { typedef unsigned char type; };
-template <> struct D3DToCType<D3DVT_UBYTE_NORM> { typedef unsigned char type; };
-template <> struct D3DToCType<D3DVT_USHORT_NORM> { typedef unsigned short type; };
+template <>
+struct D3DToCType<D3DVT_FLOAT>
+{
+    typedef float type;
+};
+template <>
+struct D3DToCType<D3DVT_SHORT>
+{
+    typedef short type;
+};
+template <>
+struct D3DToCType<D3DVT_SHORT_NORM>
+{
+    typedef short type;
+};
+template <>
+struct D3DToCType<D3DVT_UBYTE>
+{
+    typedef unsigned char type;
+};
+template <>
+struct D3DToCType<D3DVT_UBYTE_NORM>
+{
+    typedef unsigned char type;
+};
+template <>
+struct D3DToCType<D3DVT_USHORT_NORM>
+{
+    typedef unsigned short type;
+};
 
-// Encode the type/size combinations that D3D permits. For each type/size it expands to a widener that will provide the appropriate final size.
-template <unsigned int type, int size> struct WidenRule { };
+// Encode the type/size combinations that D3D permits. For each type/size it expands to a widener
+// that will provide the appropriate final size.
+template <unsigned int type, int size>
+struct WidenRule
+{
+};
 
-template <int size> struct WidenRule<D3DVT_FLOAT, size>          : NoWiden<size> { };
-template <int size> struct WidenRule<D3DVT_SHORT, size>          : WidenToEven<size> { };
-template <int size> struct WidenRule<D3DVT_SHORT_NORM, size>     : WidenToEven<size> { };
-template <int size> struct WidenRule<D3DVT_UBYTE, size>          : WidenToFour<size> { };
-template <int size> struct WidenRule<D3DVT_UBYTE_NORM, size>     : WidenToFour<size> { };
-template <int size> struct WidenRule<D3DVT_USHORT_NORM, size>    : WidenToEven<size> { };
+template <int size>
+struct WidenRule<D3DVT_FLOAT, size> : NoWiden<size>
+{
+};
+template <int size>
+struct WidenRule<D3DVT_SHORT, size> : WidenToEven<size>
+{
+};
+template <int size>
+struct WidenRule<D3DVT_SHORT_NORM, size> : WidenToEven<size>
+{
+};
+template <int size>
+struct WidenRule<D3DVT_UBYTE, size> : WidenToFour<size>
+{
+};
+template <int size>
+struct WidenRule<D3DVT_UBYTE_NORM, size> : WidenToFour<size>
+{
+};
+template <int size>
+struct WidenRule<D3DVT_USHORT_NORM, size> : WidenToEven<size>
+{
+};
 
-// VertexTypeFlags encodes the D3DCAPS9::DeclType flag and vertex declaration flag for each D3D vertex type & size combination.
-template <unsigned int d3dtype, int size> struct VertexTypeFlags { };
+// VertexTypeFlags encodes the D3DCAPS9::DeclType flag and vertex declaration flag for each D3D
+// vertex type & size combination.
+template <unsigned int d3dtype, int size>
+struct VertexTypeFlags
+{
+};
 
 template <unsigned int _capflag, unsigned int _declflag>
 struct VertexTypeFlagsHelper
 {
-    enum { capflag = _capflag };
-    enum { declflag = _declflag };
+    enum
+    {
+        capflag = _capflag
+    };
+    enum
+    {
+        declflag = _declflag
+    };
 };
 
-template <> struct VertexTypeFlags<D3DVT_FLOAT, 1> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT1> { };
-template <> struct VertexTypeFlags<D3DVT_FLOAT, 2> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT2> { };
-template <> struct VertexTypeFlags<D3DVT_FLOAT, 3> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT3> { };
-template <> struct VertexTypeFlags<D3DVT_FLOAT, 4> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT4> { };
-template <> struct VertexTypeFlags<D3DVT_SHORT, 2> : VertexTypeFlagsHelper<0, D3DDECLTYPE_SHORT2> { };
-template <> struct VertexTypeFlags<D3DVT_SHORT, 4> : VertexTypeFlagsHelper<0, D3DDECLTYPE_SHORT4> { };
-template <> struct VertexTypeFlags<D3DVT_SHORT_NORM, 2> : VertexTypeFlagsHelper<D3DDTCAPS_SHORT2N, D3DDECLTYPE_SHORT2N> { };
-template <> struct VertexTypeFlags<D3DVT_SHORT_NORM, 4> : VertexTypeFlagsHelper<D3DDTCAPS_SHORT4N, D3DDECLTYPE_SHORT4N> { };
-template <> struct VertexTypeFlags<D3DVT_UBYTE, 4> : VertexTypeFlagsHelper<D3DDTCAPS_UBYTE4, D3DDECLTYPE_UBYTE4> { };
-template <> struct VertexTypeFlags<D3DVT_UBYTE_NORM, 4> : VertexTypeFlagsHelper<D3DDTCAPS_UBYTE4N, D3DDECLTYPE_UBYTE4N> { };
-template <> struct VertexTypeFlags<D3DVT_USHORT_NORM, 2> : VertexTypeFlagsHelper<D3DDTCAPS_USHORT2N, D3DDECLTYPE_USHORT2N> { };
-template <> struct VertexTypeFlags<D3DVT_USHORT_NORM, 4> : VertexTypeFlagsHelper<D3DDTCAPS_USHORT4N, D3DDECLTYPE_USHORT4N> { };
+template <>
+struct VertexTypeFlags<D3DVT_FLOAT, 1> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT1>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_FLOAT, 2> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT2>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_FLOAT, 3> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT3>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_FLOAT, 4> : VertexTypeFlagsHelper<0, D3DDECLTYPE_FLOAT4>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_SHORT, 2> : VertexTypeFlagsHelper<0, D3DDECLTYPE_SHORT2>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_SHORT, 4> : VertexTypeFlagsHelper<0, D3DDECLTYPE_SHORT4>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_SHORT_NORM, 2>
+    : VertexTypeFlagsHelper<D3DDTCAPS_SHORT2N, D3DDECLTYPE_SHORT2N>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_SHORT_NORM, 4>
+    : VertexTypeFlagsHelper<D3DDTCAPS_SHORT4N, D3DDECLTYPE_SHORT4N>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_UBYTE, 4> : VertexTypeFlagsHelper<D3DDTCAPS_UBYTE4, D3DDECLTYPE_UBYTE4>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_UBYTE_NORM, 4>
+    : VertexTypeFlagsHelper<D3DDTCAPS_UBYTE4N, D3DDECLTYPE_UBYTE4N>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_USHORT_NORM, 2>
+    : VertexTypeFlagsHelper<D3DDTCAPS_USHORT2N, D3DDECLTYPE_USHORT2N>
+{
+};
+template <>
+struct VertexTypeFlags<D3DVT_USHORT_NORM, 4>
+    : VertexTypeFlagsHelper<D3DDTCAPS_USHORT4N, D3DDECLTYPE_USHORT4N>
+{
+};
 
-
-// VertexTypeMapping maps GL type & normalized flag to preferred and fallback D3D vertex types (as D3DVertexType enums).
-template <GLenum GLtype, bool normalized> struct VertexTypeMapping { };
+// VertexTypeMapping maps GL type & normalized flag to preferred and fallback D3D vertex types (as
+// D3DVertexType enums).
+template <GLenum GLtype, bool normalized>
+struct VertexTypeMapping
+{
+};
 
 template <D3DVertexType Preferred, D3DVertexType Fallback = Preferred>
 struct VertexTypeMappingBase
 {
-    enum { preferred = Preferred };
-    enum { fallback = Fallback };
+    enum
+    {
+        preferred = Preferred
+    };
+    enum
+    {
+        fallback = Fallback
+    };
 };
 
-template <> struct VertexTypeMapping<GL_BYTE, false>                        : VertexTypeMappingBase<D3DVT_SHORT> { };                       // Cast
-template <> struct VertexTypeMapping<GL_BYTE, true>                         : VertexTypeMappingBase<D3DVT_FLOAT> { };                       // Normalize
-template <> struct VertexTypeMapping<GL_UNSIGNED_BYTE, false>               : VertexTypeMappingBase<D3DVT_UBYTE, D3DVT_FLOAT> { };          // Identity, Cast
-template <> struct VertexTypeMapping<GL_UNSIGNED_BYTE, true>                : VertexTypeMappingBase<D3DVT_UBYTE_NORM, D3DVT_FLOAT> { };     // Identity, Normalize
-template <> struct VertexTypeMapping<GL_SHORT, false>                       : VertexTypeMappingBase<D3DVT_SHORT> { };                       // Identity
-template <> struct VertexTypeMapping<GL_SHORT, true>                        : VertexTypeMappingBase<D3DVT_SHORT_NORM, D3DVT_FLOAT> { };     // Cast, Normalize
-template <> struct VertexTypeMapping<GL_UNSIGNED_SHORT, false>              : VertexTypeMappingBase<D3DVT_FLOAT> { };                       // Cast
-template <> struct VertexTypeMapping<GL_UNSIGNED_SHORT, true>               : VertexTypeMappingBase<D3DVT_USHORT_NORM, D3DVT_FLOAT> { };    // Cast, Normalize
-template <bool normalized> struct VertexTypeMapping<GL_FIXED, normalized>   : VertexTypeMappingBase<D3DVT_FLOAT> { };                       // FixedToFloat
-template <bool normalized> struct VertexTypeMapping<GL_FLOAT, normalized>   : VertexTypeMappingBase<D3DVT_FLOAT> { };                       // Identity
+template <>
+struct VertexTypeMapping<GL_BYTE, false> : VertexTypeMappingBase<D3DVT_SHORT>
+{
+};  // Cast
+template <>
+struct VertexTypeMapping<GL_BYTE, true> : VertexTypeMappingBase<D3DVT_FLOAT>
+{
+};  // Normalize
+template <>
+struct VertexTypeMapping<GL_UNSIGNED_BYTE, false> : VertexTypeMappingBase<D3DVT_UBYTE, D3DVT_FLOAT>
+{
+};  // Identity, Cast
+template <>
+struct VertexTypeMapping<GL_UNSIGNED_BYTE, true>
+    : VertexTypeMappingBase<D3DVT_UBYTE_NORM, D3DVT_FLOAT>
+{
+};  // Identity, Normalize
+template <>
+struct VertexTypeMapping<GL_SHORT, false> : VertexTypeMappingBase<D3DVT_SHORT>
+{
+};  // Identity
+template <>
+struct VertexTypeMapping<GL_SHORT, true> : VertexTypeMappingBase<D3DVT_SHORT_NORM, D3DVT_FLOAT>
+{
+};  // Cast, Normalize
+template <>
+struct VertexTypeMapping<GL_UNSIGNED_SHORT, false> : VertexTypeMappingBase<D3DVT_FLOAT>
+{
+};  // Cast
+template <>
+struct VertexTypeMapping<GL_UNSIGNED_SHORT, true>
+    : VertexTypeMappingBase<D3DVT_USHORT_NORM, D3DVT_FLOAT>
+{
+};  // Cast, Normalize
+template <bool normalized>
+struct VertexTypeMapping<GL_FIXED, normalized> : VertexTypeMappingBase<D3DVT_FLOAT>
+{
+};  // FixedToFloat
+template <bool normalized>
+struct VertexTypeMapping<GL_FLOAT, normalized> : VertexTypeMappingBase<D3DVT_FLOAT>
+{
+};  // Identity
 
+// Given a GL type & norm flag and a D3D type, ConversionRule provides the type conversion rule
+// (Cast, Normalize, Identity, FixedToFloat). The conversion rules themselves are defined in
+// vertexconversion.h.
 
-// Given a GL type & norm flag and a D3D type, ConversionRule provides the type conversion rule (Cast, Normalize, Identity, FixedToFloat).
-// The conversion rules themselves are defined in vertexconversion.h.
-
-// Almost all cases are covered by Cast (including those that are actually Identity since Cast<T,T> knows it's an identity mapping).
+// Almost all cases are covered by Cast (including those that are actually Identity since Cast<T,T>
+// knows it's an identity mapping).
 template <GLenum fromType, bool normalized, unsigned int toType>
-struct ConversionRule : Cast<typename GLToCType<fromType>::type, typename D3DToCType<toType>::type> { };
+struct ConversionRule : Cast<typename GLToCType<fromType>::type, typename D3DToCType<toType>::type>
+{
+};
 
 // All conversions from normalized types to float use the Normalize operator.
-template <GLenum fromType> struct ConversionRule<fromType, true, D3DVT_FLOAT> : Normalize<typename GLToCType<fromType>::type> { };
+template <GLenum fromType>
+struct ConversionRule<fromType, true, D3DVT_FLOAT> : Normalize<typename GLToCType<fromType>::type>
+{
+};
 
-// Use a full specialization for this so that it preferentially matches ahead of the generic normalize-to-float rules.
-template <> struct ConversionRule<GL_FIXED, true, D3DVT_FLOAT>  : FixedToFloat<GLint, 16> { };
-template <> struct ConversionRule<GL_FIXED, false, D3DVT_FLOAT> : FixedToFloat<GLint, 16> { };
+// Use a full specialization for this so that it preferentially matches ahead of the generic
+// normalize-to-float rules.
+template <>
+struct ConversionRule<GL_FIXED, true, D3DVT_FLOAT> : FixedToFloat<GLint, 16>
+{
+};
+template <>
+struct ConversionRule<GL_FIXED, false, D3DVT_FLOAT> : FixedToFloat<GLint, 16>
+{
+};
 
-// A 2-stage construction is used for DefaultVertexValues because float must use SimpleDefaultValues (i.e. 0/1)
-// whether it is normalized or not.
-template <class T, bool normalized> struct DefaultVertexValuesStage2 { };
+// A 2-stage construction is used for DefaultVertexValues because float must use SimpleDefaultValues
+// (i.e. 0/1) whether it is normalized or not.
+template <class T, bool normalized>
+struct DefaultVertexValuesStage2
+{
+};
 
-template <class T> struct DefaultVertexValuesStage2<T, true>  : NormalizedDefaultValues<T> { };
-template <class T> struct DefaultVertexValuesStage2<T, false> : SimpleDefaultValues<T> { };
+template <class T>
+struct DefaultVertexValuesStage2<T, true> : NormalizedDefaultValues<T>
+{
+};
+template <class T>
+struct DefaultVertexValuesStage2<T, false> : SimpleDefaultValues<T>
+{
+};
 
 // Work out the default value rule for a D3D type (expressed as the C type) and
-template <class T, bool normalized> struct DefaultVertexValues : DefaultVertexValuesStage2<T, normalized> { };
-template <bool normalized> struct DefaultVertexValues<float, normalized> : SimpleDefaultValues<float> { };
+template <class T, bool normalized>
+struct DefaultVertexValues : DefaultVertexValuesStage2<T, normalized>
+{
+};
+template <bool normalized>
+struct DefaultVertexValues<float, normalized> : SimpleDefaultValues<float>
+{
+};
 
-// Policy rules for use with Converter, to choose whether to use the preferred or fallback conversion.
-// The fallback conversion produces an output that all D3D9 devices must support.
-template <class T> struct UsePreferred { enum { type = T::preferred }; };
-template <class T> struct UseFallback { enum { type = T::fallback }; };
+// Policy rules for use with Converter, to choose whether to use the preferred or fallback
+// conversion. The fallback conversion produces an output that all D3D9 devices must support.
+template <class T>
+struct UsePreferred
+{
+    enum
+    {
+        type = T::preferred
+    };
+};
+template <class T>
+struct UseFallback
+{
+    enum
+    {
+        type = T::fallback
+    };
+};
 
-// Converter ties it all together. Given an OpenGL type/norm/size and choice of preferred/fallback conversion,
-// it provides all the members of the appropriate VertexDataConverter, the D3DCAPS9::DeclTypes flag in cap flag
-// and the D3DDECLTYPE member needed for the vertex declaration in declflag.
+// Converter ties it all together. Given an OpenGL type/norm/size and choice of preferred/fallback
+// conversion, it provides all the members of the appropriate VertexDataConverter, the
+// D3DCAPS9::DeclTypes flag in cap flag and the D3DDECLTYPE member needed for the vertex declaration
+// in declflag.
 template <GLenum fromType, bool normalized, int size, template <class T> class PreferenceRule>
 struct Converter
     : VertexDataConverter<
@@ -524,19 +766,25 @@
                                   VertexTypeMapping<fromType, normalized>>::type>::type,
                               normalized>>
 {
-private:
-  enum
-  {
-      d3dtype = PreferenceRule<VertexTypeMapping<fromType, normalized>>::type
-  };
-  enum
-  {
-      d3dsize = WidenRule<d3dtype, size>::finalWidth
-  };
+  private:
+    enum
+    {
+        d3dtype = PreferenceRule<VertexTypeMapping<fromType, normalized>>::type
+    };
+    enum
+    {
+        d3dsize = WidenRule<d3dtype, size>::finalWidth
+    };
 
-public:
-    enum { capflag = VertexTypeFlags<d3dtype, d3dsize>::capflag };
-    enum { declflag = VertexTypeFlags<d3dtype, d3dsize>::declflag };
+  public:
+    enum
+    {
+        capflag = VertexTypeFlags<d3dtype, d3dsize>::capflag
+    };
+    enum
+    {
+        declflag = VertexTypeFlags<d3dtype, d3dsize>::declflag
+    };
 };
 
 VertexFormat::VertexFormat()
@@ -549,83 +797,103 @@
 }
 
 // Initialize a TranslationInfo
-VertexFormat CreateVertexFormatInfo(bool identity, size_t elementSize, VertexCopyFunction copyFunc, D3DDECLTYPE nativeFormat)
+VertexFormat CreateVertexFormatInfo(bool identity,
+                                    size_t elementSize,
+                                    VertexCopyFunction copyFunc,
+                                    D3DDECLTYPE nativeFormat)
 {
     VertexFormat formatInfo;
-    formatInfo.conversionType = identity ? VERTEX_CONVERT_NONE : VERTEX_CONVERT_CPU;
+    formatInfo.conversionType    = identity ? VERTEX_CONVERT_NONE : VERTEX_CONVERT_CPU;
     formatInfo.outputElementSize = elementSize;
-    formatInfo.copyFunction = copyFunc;
-    formatInfo.nativeFormat = nativeFormat;
-    formatInfo.componentType = GetDeclTypeComponentType(nativeFormat);
+    formatInfo.copyFunction      = copyFunc;
+    formatInfo.nativeFormat      = nativeFormat;
+    formatInfo.componentType     = GetDeclTypeComponentType(nativeFormat);
     return formatInfo;
 }
 
-#define TRANSLATION(type, norm, size, preferred)                                    \
-    CreateVertexFormatInfo                                                          \
-    (                                                                               \
-        Converter<type, norm, size, preferred>::identity,                           \
-        Converter<type, norm, size, preferred>::finalSize,                          \
-        Converter<type, norm, size, preferred>::convertArray,                       \
-        static_cast<D3DDECLTYPE>(Converter<type, norm, size, preferred>::declflag)  \
-    )
+#define TRANSLATION(type, norm, size, preferred)              \
+    CreateVertexFormatInfo(                                   \
+        Converter<type, norm, size, preferred>::identity,     \
+        Converter<type, norm, size, preferred>::finalSize,    \
+        Converter<type, norm, size, preferred>::convertArray, \
+        static_cast<D3DDECLTYPE>(Converter<type, norm, size, preferred>::declflag))
 
 #define TRANSLATION_FOR_TYPE_NORM_SIZE(type, norm, size)    \
     {                                                       \
         Converter<type, norm, size, UsePreferred>::capflag, \
-        TRANSLATION(type, norm, size, UsePreferred),        \
-        TRANSLATION(type, norm, size, UseFallback)          \
+            TRANSLATION(type, norm, size, UsePreferred),    \
+            TRANSLATION(type, norm, size, UseFallback)      \
     }
 
-#define TRANSLATIONS_FOR_TYPE(type)                                                                                                                                                                         \
-    {                                                                                                                                                                                                       \
-        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
-        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 4) },     \
+#define TRANSLATIONS_FOR_TYPE(type)                          \
+    {                                                        \
+        {TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1),     \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2),     \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3),     \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4)},    \
+            {TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 1),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 2),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 3),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, true, 4)}, \
     }
 
-#define TRANSLATIONS_FOR_TYPE_NO_NORM(type)                                                                                                                                                                 \
-    {                                                                                                                                                                                                       \
-        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
-        { TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3), TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4) }, \
+#define TRANSLATIONS_FOR_TYPE_NO_NORM(type)                   \
+    {                                                         \
+        {TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1),      \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2),      \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3),      \
+         TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4)},     \
+            {TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 1),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 2),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 3),  \
+             TRANSLATION_FOR_TYPE_NORM_SIZE(type, false, 4)}, \
     }
 
 static inline unsigned int ComputeTypeIndex(GLenum type)
 {
     switch (type)
     {
-      case GL_BYTE:           return 0;
-      case GL_UNSIGNED_BYTE:  return 1;
-      case GL_SHORT:          return 2;
-      case GL_UNSIGNED_SHORT: return 3;
-      case GL_FIXED:          return 4;
-      case GL_FLOAT:          return 5;
+        case GL_BYTE:
+            return 0;
+        case GL_UNSIGNED_BYTE:
+            return 1;
+        case GL_SHORT:
+            return 2;
+        case GL_UNSIGNED_SHORT:
+            return 3;
+        case GL_FIXED:
+            return 4;
+        case GL_FLOAT:
+            return 5;
 
-      default: UNREACHABLE(); return 5;
+        default:
+            UNREACHABLE();
+            return 5;
     }
 }
 
-const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, gl::VertexFormatType vertexFormatType)
+const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes,
+                                        gl::VertexFormatType vertexFormatType)
 {
-    static bool initialized = false;
+    static bool initialized           = false;
     static DWORD initializedDeclTypes = 0;
     static VertexFormat formatConverters[NUM_GL_VERTEX_ATTRIB_TYPES][2][4];
     if (initializedDeclTypes != supportedDeclTypes)
     {
-        const TranslationDescription translations[NUM_GL_VERTEX_ATTRIB_TYPES][2][4] = // [GL types as enumerated by typeIndex()][normalized][size-1]
-        {
-            TRANSLATIONS_FOR_TYPE(GL_BYTE),
-            TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_BYTE),
-            TRANSLATIONS_FOR_TYPE(GL_SHORT),
-            TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_SHORT),
-            TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FIXED),
-            TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FLOAT)
-        };
+        const TranslationDescription
+            translations[NUM_GL_VERTEX_ATTRIB_TYPES][2]
+                        [4] =  // [GL types as enumerated by typeIndex()][normalized][size-1]
+            {TRANSLATIONS_FOR_TYPE(GL_BYTE),          TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_BYTE),
+             TRANSLATIONS_FOR_TYPE(GL_SHORT),         TRANSLATIONS_FOR_TYPE(GL_UNSIGNED_SHORT),
+             TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FIXED), TRANSLATIONS_FOR_TYPE_NO_NORM(GL_FLOAT)};
         for (unsigned int i = 0; i < NUM_GL_VERTEX_ATTRIB_TYPES; i++)
         {
             for (unsigned int j = 0; j < 2; j++)
             {
                 for (unsigned int k = 0; k < 4; k++)
                 {
-                    if (translations[i][j][k].capsFlag == 0 || (supportedDeclTypes & translations[i][j][k].capsFlag) != 0)
+                    if (translations[i][j][k].capsFlag == 0 ||
+                        (supportedDeclTypes & translations[i][j][k].capsFlag) != 0)
                     {
                         formatConverters[i][j][k] = translations[i][j][k].preferredConversion;
                     }
@@ -636,7 +904,7 @@
                 }
             }
         }
-        initialized = true;
+        initialized          = true;
         initializedDeclTypes = supportedDeclTypes;
     }
 
@@ -644,9 +912,8 @@
 
     // Pure integer attributes only supported in ES3.0
     ASSERT(!vertexFormat.pureInteger);
-    return formatConverters[ComputeTypeIndex(vertexFormat.type)][vertexFormat.normalized][vertexFormat.components - 1];
+    return formatConverters[ComputeTypeIndex(vertexFormat.type)][vertexFormat.normalized]
+                           [vertexFormat.components - 1];
 }
-
 }
-
 }
diff --git a/src/libANGLE/renderer/d3d/d3d9/formatutils9.h b/src/libANGLE/renderer/d3d/d3d9/formatutils9.h
index 448213c..c632d0d 100644
--- a/src/libANGLE/renderer/d3d/d3d9/formatutils9.h
+++ b/src/libANGLE/renderer/d3d/d3d9/formatutils9.h
@@ -41,7 +41,7 @@
               GLuint luminanceBits,
               GLuint depthBits,
               GLuint stencilBits,
-              angle::Format::ID formatID);
+              angle::FormatID formatID);
 
     const angle::Format &info() const { return angle::Format::Get(formatID); }
 
@@ -58,7 +58,7 @@
     GLuint depthBits;
     GLuint stencilBits;
 
-    angle::Format::ID formatID;
+    angle::FormatID formatID;
 };
 
 const D3DFormat &GetD3DFormatInfo(D3DFORMAT format);
@@ -73,7 +73,8 @@
     D3DDECLTYPE nativeFormat;
     GLenum componentType;
 };
-const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes, gl::VertexFormatType vertexFormatType);
+const VertexFormat &GetVertexFormatInfo(DWORD supportedDeclTypes,
+                                        gl::VertexFormatType vertexFormatType);
 
 struct TextureFormat
 {
@@ -87,9 +88,7 @@
     LoadImageFunction loadFunction;
 };
 const TextureFormat &GetTextureFormatInfo(GLenum internalFormat);
-
+}
 }
 
-}
-
-#endif // LIBANGLE_RENDERER_D3D_D3D9_FORMATUTILS9_H_
+#endif  // LIBANGLE_RENDERER_D3D_D3D9_FORMATUTILS9_H_
diff --git a/src/libANGLE/renderer/gen_angle_format_table.py b/src/libANGLE/renderer/gen_angle_format_table.py
index 3d412f0..840bc11 100644
--- a/src/libANGLE/renderer/gen_angle_format_table.py
+++ b/src/libANGLE/renderer/gen_angle_format_table.py
@@ -27,7 +27,7 @@
 namespace angle
 {{
 
-enum class Format::ID
+enum class FormatID
 {{
 {angle_format_enum}
 }};
@@ -63,12 +63,12 @@
 
 constexpr Format g_formatInfoTable[] = {{
     // clang-format off
-    {{ Format::ID::NONE, GL_NONE, GL_NONE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_NONE, 0, 0, 0, 0, 0, 0, 0, false }},
+    {{ FormatID::NONE, GL_NONE, GL_NONE, nullptr, NoCopyFunctions, nullptr, nullptr, GL_NONE, 0, 0, 0, 0, 0, 0, 0, false }},
 {angle_format_info_cases}    // clang-format on
 }};
 
 // static
-Format::ID Format::InternalFormatToID(GLenum internalFormat)
+FormatID Format::InternalFormatToID(GLenum internalFormat)
 {{
     switch (internalFormat)
     {{
@@ -77,7 +77,7 @@
 }}
 
 // static
-const Format &Format::Get(ID id)
+const Format &Format::Get(FormatID id)
 {{
     return g_formatInfoTable[static_cast<size_t>(id)];
 }}
@@ -146,7 +146,7 @@
     return 'WriteColor<' + channel_struct + ', '+ write_component_type + '>'
 
 
-format_entry_template = """    {{ Format::ID::{id}, {glInternalFormat}, {fboImplementationInternalFormat}, {mipGenerationFunction}, {fastCopyFunctions}, {colorReadFunction}, {colorWriteFunction}, {namedComponentType}, {R}, {G}, {B}, {A}, {D}, {S}, {pixelBytes}, {isBlock} }},
+format_entry_template = """    {{ FormatID::{id}, {glInternalFormat}, {fboImplementationInternalFormat}, {mipGenerationFunction}, {fastCopyFunctions}, {colorReadFunction}, {colorWriteFunction}, {namedComponentType}, {R}, {G}, {B}, {A}, {D}, {S}, {pixelBytes}, {isBlock} }},
 """
 
 def get_named_component_type(component_type):
@@ -234,7 +234,7 @@
     return enum_data
 
 case_template = """        case {gl_format}:
-            return Format::ID::{angle_format};
+            return FormatID::{angle_format};
 """
 
 def gen_map_switch_string(gl_to_angle):
@@ -245,7 +245,7 @@
             gl_format=gl_format,
             angle_format=angle_format)
     switch_data += "        default:\n"
-    switch_data += "            return Format::ID::NONE;"
+    switch_data += "            return FormatID::NONE;"
     return switch_data;
 
 gl_to_angle = angle_format.load_forward_table('angle_format_map.json')
@@ -275,6 +275,6 @@
     angle_format_enum = enum_data,
     data_source_name = data_source_name,
     num_angle_formats = num_angle_formats)
-with open('Format_ID_autogen.inl', 'wt') as out_file:
+with open('FormatID_autogen.inc', 'wt') as out_file:
     out_file.write(output_h)
     out_file.close()
diff --git a/src/libANGLE/renderer/gen_load_functions_table.py b/src/libANGLE/renderer/gen_load_functions_table.py
index c91b201..75c6c00 100755
--- a/src/libANGLE/renderer/gen_load_functions_table.py
+++ b/src/libANGLE/renderer/gen_load_functions_table.py
@@ -75,7 +75,7 @@
 
 {load_functions_data}}}  // namespace
 
-LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, Format::ID {angle_format})
+LoadFunctionMap GetLoadFunctionsMap(GLenum {internal_format}, FormatID {angle_format})
 {{
     // clang-format off
     switch ({internal_format})
@@ -151,7 +151,7 @@
             func_name = load_functions_name(internal_format, angle_format)
 
             # Main case statements
-            table_data += s + 'case Format::ID::' + angle_format + ':\n'
+            table_data += s + 'case FormatID::' + angle_format + ':\n'
             table_data += s + '    return ' + func_name + ';\n'
 
             if angle_format_unknown in angle_to_type_map:
diff --git a/src/libANGLE/renderer/gl/BlitGL.cpp b/src/libANGLE/renderer/gl/BlitGL.cpp
index cc09945..5a0f4a7 100644
--- a/src/libANGLE/renderer/gl/BlitGL.cpp
+++ b/src/libANGLE/renderer/gl/BlitGL.cpp
@@ -606,7 +606,6 @@
     uint8_t *sourceMemory = buffer->data();
     uint8_t *destMemory   = buffer->data() + sourceBufferSize;
 
-
     GLenum readPixelsFormat        = GL_NONE;
     ColorReadFunction readFunction = nullptr;
     if (sourceComponentType == GL_UNSIGNED_INT)
@@ -628,7 +627,7 @@
     mFunctions->readPixels(sourceArea.x, sourceArea.y, sourceArea.width, sourceArea.height,
                            readPixelsFormat, GL_UNSIGNED_BYTE, sourceMemory);
 
-    angle::Format::ID destFormatID =
+    angle::FormatID destFormatID =
         angle::Format::InternalFormatToID(destInternalFormatInfo.sizedInternalFormat);
     const auto &destFormatInfo = angle::Format::Get(destFormatID);
     CopyImageCHROMIUM(
diff --git a/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp b/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
index bf80bc8..878d5c8 100644
--- a/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
+++ b/src/libANGLE/renderer/gl/wgl/D3DTextureSurfaceWGL.cpp
@@ -134,7 +134,7 @@
     if (angleFormat)
     {
         const auto &d3dFormatInfo = d3d9::GetD3DFormatInfo(surfaceDesc.Format);
-        ASSERT(d3dFormatInfo.info().id != angle::Format::ID::NONE);
+        ASSERT(d3dFormatInfo.info().id != angle::FormatID::NONE);
         *angleFormat = &d3dFormatInfo.info();
     }
 
@@ -306,8 +306,8 @@
     {
         if (mState.attributes.contains(EGL_GL_COLORSPACE))
         {
-            if (mColorFormat->id != angle::Format::ID::R8G8B8A8_TYPELESS &&
-                mColorFormat->id != angle::Format::ID::B8G8R8A8_TYPELESS)
+            if (mColorFormat->id != angle::FormatID::R8G8B8A8_TYPELESS &&
+                mColorFormat->id != angle::FormatID::B8G8R8A8_TYPELESS)
             {
                 return egl::EglBadMatch()
                        << "EGL_GL_COLORSPACE may only be specified for TYPELESS textures";
diff --git a/src/libANGLE/renderer/load_functions_table.h b/src/libANGLE/renderer/load_functions_table.h
index f3da31c..27eaebc 100644
--- a/src/libANGLE/renderer/load_functions_table.h
+++ b/src/libANGLE/renderer/load_functions_table.h
@@ -14,9 +14,7 @@
 
 namespace angle
 {
-
-rx::LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, Format::ID angleFormat);
-
+rx::LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat);
 }  // namespace angle
 
 #endif  // LIBANGLE_RENDERER_LOADFUNCTIONSTABLE_H_
diff --git a/src/libANGLE/renderer/load_functions_table_autogen.cpp b/src/libANGLE/renderer/load_functions_table_autogen.cpp
index 997c906..676c7a5 100644
--- a/src/libANGLE/renderer/load_functions_table_autogen.cpp
+++ b/src/libANGLE/renderer/load_functions_table_autogen.cpp
@@ -1608,7 +1608,7 @@
 
 }  // namespace
 
-LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, Format::ID angleFormat)
+LoadFunctionMap GetLoadFunctionsMap(GLenum internalFormat, FormatID angleFormat)
 {
     // clang-format off
     switch (internalFormat)
@@ -1617,9 +1617,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_FLOAT:
+                case FormatID::R16G16B16A16_FLOAT:
                     return ALPHA_to_R16G16B16A16_FLOAT;
-                case Format::ID::R32G32B32A32_FLOAT:
+                case FormatID::R32G32B32A32_FLOAT:
                     return ALPHA_to_R32G32B32A32_FLOAT;
                 default:
                     return ALPHA_to_default;
@@ -1633,11 +1633,11 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::A8_UNORM:
+                case FormatID::A8_UNORM:
                     return ALPHA8_EXT_to_A8_UNORM;
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return ALPHA8_EXT_to_R8G8B8A8_UNORM;
-                case Format::ID::R8_UNORM:
+                case FormatID::R8_UNORM:
                     return ALPHA8_EXT_to_R8_UNORM;
                 default:
                     break;
@@ -1648,7 +1648,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::B5G6R5_UNORM:
+                case FormatID::B5G6R5_UNORM:
                     return BGR565_ANGLEX_to_B5G6R5_UNORM;
                 default:
                     break;
@@ -1667,7 +1667,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_UNORM:
+                case FormatID::R16_UNORM:
                     return COMPRESSED_R11_EAC_to_R16_UNORM;
                 default:
                     break;
@@ -1678,7 +1678,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_UNORM:
+                case FormatID::R16G16_UNORM:
                     return COMPRESSED_RG11_EAC_to_R16G16_UNORM;
                 default:
                     break;
@@ -1689,7 +1689,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return COMPRESSED_RGB8_ETC2_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -1700,7 +1700,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::BC1_RGB_UNORM_BLOCK:
+                case FormatID::BC1_RGB_UNORM_BLOCK:
                     return COMPRESSED_RGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_BLOCK;
                 default:
                     break;
@@ -1711,7 +1711,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -1722,7 +1722,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::BC1_RGBA_UNORM_BLOCK:
+                case FormatID::BC1_RGBA_UNORM_BLOCK:
                     return COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_BLOCK;
                 default:
                     break;
@@ -1733,7 +1733,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return COMPRESSED_RGBA8_ETC2_EAC_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -1752,7 +1752,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_SNORM:
+                case FormatID::R16_SNORM:
                     return COMPRESSED_SIGNED_R11_EAC_to_R16_SNORM;
                 default:
                     break;
@@ -1763,7 +1763,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_SNORM:
+                case FormatID::R16G16_SNORM:
                     return COMPRESSED_SIGNED_RG11_EAC_to_R16G16_SNORM;
                 default:
                     break;
@@ -1774,7 +1774,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM_SRGB:
+                case FormatID::R8G8B8A8_UNORM_SRGB:
                     return COMPRESSED_SRGB8_ALPHA8_ETC2_EAC_to_R8G8B8A8_UNORM_SRGB;
                 default:
                     break;
@@ -1785,7 +1785,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM_SRGB:
+                case FormatID::R8G8B8A8_UNORM_SRGB:
                     return COMPRESSED_SRGB8_ETC2_to_R8G8B8A8_UNORM_SRGB;
                 default:
                     break;
@@ -1796,7 +1796,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::BC1_RGB_UNORM_SRGB_BLOCK:
+                case FormatID::BC1_RGB_UNORM_SRGB_BLOCK:
                     return COMPRESSED_SRGB8_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGB_UNORM_SRGB_BLOCK;
                 default:
                     break;
@@ -1807,7 +1807,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM_SRGB:
+                case FormatID::R8G8B8A8_UNORM_SRGB:
                     return COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2_to_R8G8B8A8_UNORM_SRGB;
                 default:
                     break;
@@ -1818,7 +1818,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK:
+                case FormatID::BC1_RGBA_UNORM_SRGB_BLOCK:
                     return COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_LOSSY_DECODE_ETC2_ANGLE_to_BC1_RGBA_UNORM_SRGB_BLOCK;
                 default:
                     break;
@@ -1837,7 +1837,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::D24_UNORM_S8_UINT:
+                case FormatID::D24_UNORM_S8_UINT:
                     return DEPTH24_STENCIL8_to_D24_UNORM_S8_UINT;
                 default:
                     break;
@@ -1848,7 +1848,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::D32_FLOAT_S8X24_UINT:
+                case FormatID::D32_FLOAT_S8X24_UINT:
                     return DEPTH32F_STENCIL8_to_D32_FLOAT_S8X24_UINT;
                 default:
                     break;
@@ -1859,7 +1859,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::D16_UNORM:
+                case FormatID::D16_UNORM:
                     return DEPTH_COMPONENT16_to_D16_UNORM;
                 default:
                     break;
@@ -1870,7 +1870,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::D24_UNORM_S8_UINT:
+                case FormatID::D24_UNORM_S8_UINT:
                     return DEPTH_COMPONENT24_to_D24_UNORM_S8_UINT;
                 default:
                     break;
@@ -1881,7 +1881,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::D32_FLOAT:
+                case FormatID::D32_FLOAT:
                     return DEPTH_COMPONENT32F_to_D32_FLOAT;
                 default:
                     break;
@@ -1894,7 +1894,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::BC1_RGB_UNORM_BLOCK:
+                case FormatID::BC1_RGB_UNORM_BLOCK:
                     return ETC1_RGB8_LOSSY_DECODE_ANGLE_to_BC1_RGB_UNORM_BLOCK;
                 default:
                     break;
@@ -1905,7 +1905,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return ETC1_RGB8_OES_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -1916,9 +1916,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_FLOAT:
+                case FormatID::R16G16B16A16_FLOAT:
                     return LUMINANCE_to_R16G16B16A16_FLOAT;
-                case Format::ID::R32G32B32A32_FLOAT:
+                case FormatID::R32G32B32A32_FLOAT:
                     return LUMINANCE_to_R32G32B32A32_FLOAT;
                 default:
                     return LUMINANCE_to_default;
@@ -1932,9 +1932,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return LUMINANCE8_ALPHA8_EXT_to_R8G8B8A8_UNORM;
-                case Format::ID::R8G8_UNORM:
+                case FormatID::R8G8_UNORM:
                     return LUMINANCE8_ALPHA8_EXT_to_R8G8_UNORM;
                 default:
                     break;
@@ -1945,9 +1945,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return LUMINANCE8_EXT_to_R8G8B8A8_UNORM;
-                case Format::ID::R8_UNORM:
+                case FormatID::R8_UNORM:
                     return LUMINANCE8_EXT_to_R8_UNORM;
                 default:
                     break;
@@ -1958,9 +1958,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_FLOAT:
+                case FormatID::R16G16B16A16_FLOAT:
                     return LUMINANCE_ALPHA_to_R16G16B16A16_FLOAT;
-                case Format::ID::R32G32B32A32_FLOAT:
+                case FormatID::R32G32B32A32_FLOAT:
                     return LUMINANCE_ALPHA_to_R32G32B32A32_FLOAT;
                 default:
                     return LUMINANCE_ALPHA_to_default;
@@ -1974,7 +1974,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R11G11B10_FLOAT:
+                case FormatID::R11G11B10_FLOAT:
                     return R11F_G11F_B10F_to_R11G11B10_FLOAT;
                 default:
                     break;
@@ -1985,7 +1985,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_FLOAT:
+                case FormatID::R16_FLOAT:
                     return R16F_to_R16_FLOAT;
                 default:
                     break;
@@ -1996,7 +1996,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_SINT:
+                case FormatID::R16_SINT:
                     return R16I_to_R16_SINT;
                 default:
                     break;
@@ -2007,7 +2007,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_UINT:
+                case FormatID::R16_UINT:
                     return R16UI_to_R16_UINT;
                 default:
                     break;
@@ -2018,7 +2018,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_UNORM:
+                case FormatID::R16_UNORM:
                     return R16_EXT_to_R16_UNORM;
                 default:
                     break;
@@ -2029,7 +2029,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16_SNORM:
+                case FormatID::R16_SNORM:
                     return R16_SNORM_EXT_to_R16_SNORM;
                 default:
                     break;
@@ -2040,7 +2040,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32_FLOAT:
+                case FormatID::R32_FLOAT:
                     return R32F_to_R32_FLOAT;
                 default:
                     break;
@@ -2051,7 +2051,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32_SINT:
+                case FormatID::R32_SINT:
                     return R32I_to_R32_SINT;
                 default:
                     break;
@@ -2062,7 +2062,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32_UINT:
+                case FormatID::R32_UINT:
                     return R32UI_to_R32_UINT;
                 default:
                     break;
@@ -2073,7 +2073,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8_UNORM:
+                case FormatID::R8_UNORM:
                     return R8_to_R8_UNORM;
                 default:
                     break;
@@ -2084,7 +2084,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8_SINT:
+                case FormatID::R8_SINT:
                     return R8I_to_R8_SINT;
                 default:
                     break;
@@ -2095,7 +2095,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8_UINT:
+                case FormatID::R8_UINT:
                     return R8UI_to_R8_UINT;
                 default:
                     break;
@@ -2106,7 +2106,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8_SNORM:
+                case FormatID::R8_SNORM:
                     return R8_SNORM_to_R8_SNORM;
                 default:
                     break;
@@ -2117,7 +2117,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_FLOAT:
+                case FormatID::R16G16_FLOAT:
                     return RG16F_to_R16G16_FLOAT;
                 default:
                     break;
@@ -2128,7 +2128,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_SINT:
+                case FormatID::R16G16_SINT:
                     return RG16I_to_R16G16_SINT;
                 default:
                     break;
@@ -2139,7 +2139,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_UINT:
+                case FormatID::R16G16_UINT:
                     return RG16UI_to_R16G16_UINT;
                 default:
                     break;
@@ -2150,7 +2150,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_UNORM:
+                case FormatID::R16G16_UNORM:
                     return RG16_EXT_to_R16G16_UNORM;
                 default:
                     break;
@@ -2161,7 +2161,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16_SNORM:
+                case FormatID::R16G16_SNORM:
                     return RG16_SNORM_EXT_to_R16G16_SNORM;
                 default:
                     break;
@@ -2172,7 +2172,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32_FLOAT:
+                case FormatID::R32G32_FLOAT:
                     return RG32F_to_R32G32_FLOAT;
                 default:
                     break;
@@ -2183,7 +2183,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32_SINT:
+                case FormatID::R32G32_SINT:
                     return RG32I_to_R32G32_SINT;
                 default:
                     break;
@@ -2194,7 +2194,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32_UINT:
+                case FormatID::R32G32_UINT:
                     return RG32UI_to_R32G32_UINT;
                 default:
                     break;
@@ -2205,7 +2205,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8_UNORM:
+                case FormatID::R8G8_UNORM:
                     return RG8_to_R8G8_UNORM;
                 default:
                     break;
@@ -2216,7 +2216,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8_SINT:
+                case FormatID::R8G8_SINT:
                     return RG8I_to_R8G8_SINT;
                 default:
                     break;
@@ -2227,7 +2227,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8_UINT:
+                case FormatID::R8G8_UINT:
                     return RG8UI_to_R8G8_UINT;
                 default:
                     break;
@@ -2238,7 +2238,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8_SNORM:
+                case FormatID::R8G8_SNORM:
                     return RG8_SNORM_to_R8G8_SNORM;
                 default:
                     break;
@@ -2251,7 +2251,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R10G10B10A2_UNORM:
+                case FormatID::R10G10B10A2_UNORM:
                     return RGB10_A2_to_R10G10B10A2_UNORM;
                 default:
                     break;
@@ -2262,7 +2262,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R10G10B10A2_UINT:
+                case FormatID::R10G10B10A2_UINT:
                     return RGB10_A2UI_to_R10G10B10A2_UINT;
                 default:
                     break;
@@ -2273,7 +2273,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_FLOAT:
+                case FormatID::R16G16B16A16_FLOAT:
                     return RGB16F_to_R16G16B16A16_FLOAT;
                 default:
                     break;
@@ -2284,7 +2284,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_SINT:
+                case FormatID::R16G16B16A16_SINT:
                     return RGB16I_to_R16G16B16A16_SINT;
                 default:
                     break;
@@ -2295,7 +2295,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_UINT:
+                case FormatID::R16G16B16A16_UINT:
                     return RGB16UI_to_R16G16B16A16_UINT;
                 default:
                     break;
@@ -2306,7 +2306,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_UNORM:
+                case FormatID::R16G16B16A16_UNORM:
                     return RGB16_EXT_to_R16G16B16A16_UNORM;
                 default:
                     break;
@@ -2317,7 +2317,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_SNORM:
+                case FormatID::R16G16B16A16_SNORM:
                     return RGB16_SNORM_EXT_to_R16G16B16A16_SNORM;
                 default:
                     break;
@@ -2328,7 +2328,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_FLOAT:
+                case FormatID::R32G32B32A32_FLOAT:
                     return RGB32F_to_R32G32B32A32_FLOAT;
                 default:
                     break;
@@ -2339,7 +2339,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_SINT:
+                case FormatID::R32G32B32A32_SINT:
                     return RGB32I_to_R32G32B32A32_SINT;
                 default:
                     break;
@@ -2350,7 +2350,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_UINT:
+                case FormatID::R32G32B32A32_UINT:
                     return RGB32UI_to_R32G32B32A32_UINT;
                 default:
                     break;
@@ -2361,11 +2361,11 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::B5G6R5_UNORM:
+                case FormatID::B5G6R5_UNORM:
                     return RGB565_to_B5G6R5_UNORM;
-                case Format::ID::R5G6B5_UNORM:
+                case FormatID::R5G6B5_UNORM:
                     return RGB565_to_R5G6B5_UNORM;
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return RGB565_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -2376,11 +2376,11 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::A1R5G5B5_UNORM:
+                case FormatID::A1R5G5B5_UNORM:
                     return RGB5_A1_to_A1R5G5B5_UNORM;
-                case Format::ID::B5G5R5A1_UNORM:
+                case FormatID::B5G5R5A1_UNORM:
                     return RGB5_A1_to_B5G5R5A1_UNORM;
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return RGB5_A1_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -2391,7 +2391,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return RGB8_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -2402,7 +2402,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_SINT:
+                case FormatID::R8G8B8A8_SINT:
                     return RGB8I_to_R8G8B8A8_SINT;
                 default:
                     break;
@@ -2413,7 +2413,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UINT:
+                case FormatID::R8G8B8A8_UINT:
                     return RGB8UI_to_R8G8B8A8_UINT;
                 default:
                     break;
@@ -2424,7 +2424,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_SNORM:
+                case FormatID::R8G8B8A8_SNORM:
                     return RGB8_SNORM_to_R8G8B8A8_SNORM;
                 default:
                     break;
@@ -2435,7 +2435,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R9G9B9E5_SHAREDEXP:
+                case FormatID::R9G9B9E5_SHAREDEXP:
                     return RGB9_E5_to_R9G9B9E5_SHAREDEXP;
                 default:
                     break;
@@ -2448,7 +2448,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_FLOAT:
+                case FormatID::R16G16B16A16_FLOAT:
                     return RGBA16F_to_R16G16B16A16_FLOAT;
                 default:
                     break;
@@ -2459,7 +2459,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_SINT:
+                case FormatID::R16G16B16A16_SINT:
                     return RGBA16I_to_R16G16B16A16_SINT;
                 default:
                     break;
@@ -2470,7 +2470,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_UINT:
+                case FormatID::R16G16B16A16_UINT:
                     return RGBA16UI_to_R16G16B16A16_UINT;
                 default:
                     break;
@@ -2481,7 +2481,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_UNORM:
+                case FormatID::R16G16B16A16_UNORM:
                     return RGBA16_EXT_to_R16G16B16A16_UNORM;
                 default:
                     break;
@@ -2492,7 +2492,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R16G16B16A16_SNORM:
+                case FormatID::R16G16B16A16_SNORM:
                     return RGBA16_SNORM_EXT_to_R16G16B16A16_SNORM;
                 default:
                     break;
@@ -2503,7 +2503,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_FLOAT:
+                case FormatID::R32G32B32A32_FLOAT:
                     return RGBA32F_to_R32G32B32A32_FLOAT;
                 default:
                     break;
@@ -2514,7 +2514,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_SINT:
+                case FormatID::R32G32B32A32_SINT:
                     return RGBA32I_to_R32G32B32A32_SINT;
                 default:
                     break;
@@ -2525,7 +2525,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R32G32B32A32_UINT:
+                case FormatID::R32G32B32A32_UINT:
                     return RGBA32UI_to_R32G32B32A32_UINT;
                 default:
                     break;
@@ -2536,9 +2536,9 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::B4G4R4A4_UNORM:
+                case FormatID::B4G4R4A4_UNORM:
                     return RGBA4_to_B4G4R4A4_UNORM;
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return RGBA4_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -2549,7 +2549,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM:
+                case FormatID::R8G8B8A8_UNORM:
                     return RGBA8_to_R8G8B8A8_UNORM;
                 default:
                     break;
@@ -2560,7 +2560,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_SINT:
+                case FormatID::R8G8B8A8_SINT:
                     return RGBA8I_to_R8G8B8A8_SINT;
                 default:
                     break;
@@ -2571,7 +2571,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UINT:
+                case FormatID::R8G8B8A8_UINT:
                     return RGBA8UI_to_R8G8B8A8_UINT;
                 default:
                     break;
@@ -2582,7 +2582,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_SNORM:
+                case FormatID::R8G8B8A8_SNORM:
                     return RGBA8_SNORM_to_R8G8B8A8_SNORM;
                 default:
                     break;
@@ -2593,7 +2593,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM_SRGB:
+                case FormatID::R8G8B8A8_UNORM_SRGB:
                     return SRGB8_to_R8G8B8A8_UNORM_SRGB;
                 default:
                     break;
@@ -2604,7 +2604,7 @@
         {
             switch (angleFormat)
             {
-                case Format::ID::R8G8B8A8_UNORM_SRGB:
+                case FormatID::R8G8B8A8_UNORM_SRGB:
                     return SRGB8_ALPHA8_to_R8G8B8A8_UNORM_SRGB;
                 default:
                     break;
diff --git a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
index 9854458..f94d96a 100644
--- a/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
+++ b/src/libANGLE/renderer/vulkan/FramebufferVk.cpp
@@ -498,9 +498,9 @@
 
     const gl::State &glState                 = context->getGLState();
     const gl::Framebuffer *sourceFramebuffer = glState.getReadFramebuffer();
-    bool blitColorBuffer         = (mask & GL_COLOR_BUFFER_BIT) != 0;
-    bool blitDepthBuffer         = (mask & GL_DEPTH_BUFFER_BIT) != 0;
-    bool blitStencilBuffer       = (mask & GL_STENCIL_BUFFER_BIT) != 0;
+    bool blitColorBuffer                     = (mask & GL_COLOR_BUFFER_BIT) != 0;
+    bool blitDepthBuffer                     = (mask & GL_DEPTH_BUFFER_BIT) != 0;
+    bool blitStencilBuffer                   = (mask & GL_STENCIL_BUFFER_BIT) != 0;
 
     vk::CommandBuffer *commandBuffer = nullptr;
     ANGLE_TRY(beginWriteResource(contextVk, &commandBuffer));
@@ -637,11 +637,11 @@
         readRect.y = sourceFrameBufferExtents.height - readRect.y - readRect.height;
     }
 
-    VkImageBlit blit                   = {};
-    blit.srcOffsets[0] = {readRect.x0(), flipSource ? readRect.y1() : readRect.y0(), 0};
-    blit.srcOffsets[1] = {readRect.x1(), flipSource ? readRect.y0() : readRect.y1(), 1};
-    blit.srcSubresource.aspectMask     = aspectMask;
-    blit.srcSubresource.mipLevel       = 0;
+    VkImageBlit blit               = {};
+    blit.srcOffsets[0]             = {readRect.x0(), flipSource ? readRect.y1() : readRect.y0(), 0};
+    blit.srcOffsets[1]             = {readRect.x1(), flipSource ? readRect.y0() : readRect.y1(), 1};
+    blit.srcSubresource.aspectMask = aspectMask;
+    blit.srcSubresource.mipLevel   = 0;
     blit.srcSubresource.baseArrayLayer = 0;
     blit.srcSubresource.layerCount     = 1;
     blit.dstSubresource.aspectMask     = aspectMask;
@@ -1148,11 +1148,11 @@
         pixelBytes = angleFormat.stencilBits / 8;
     }
 
-    VkBuffer bufferHandle            = VK_NULL_HANDLE;
-    uint8_t *readPixelBuffer         = nullptr;
-    bool newBufferAllocated          = false;
-    uint32_t stagingOffset           = 0;
-    size_t allocationSize            = area.width * pixelBytes * area.height;
+    VkBuffer bufferHandle    = VK_NULL_HANDLE;
+    uint8_t *readPixelBuffer = nullptr;
+    bool newBufferAllocated  = false;
+    uint32_t stagingOffset   = 0;
+    size_t allocationSize    = area.width * pixelBytes * area.height;
 
     ANGLE_TRY(mReadPixelBuffer.allocate(contextVk, allocationSize, &readPixelBuffer, &bufferHandle,
                                         &stagingOffset, &newBufferAllocated));
diff --git a/src/libANGLE/renderer/vulkan/RendererVk.h b/src/libANGLE/renderer/vulkan/RendererVk.h
index 9455239..bddea83 100644
--- a/src/libANGLE/renderer/vulkan/RendererVk.h
+++ b/src/libANGLE/renderer/vulkan/RendererVk.h
@@ -95,13 +95,13 @@
 
     const vk::MemoryProperties &getMemoryProperties() const { return mMemoryProperties; }
 
-    // TODO(jmadill): We could pass angle::Format::ID here.
+    // TODO(jmadill): We could pass angle::FormatID here.
     const vk::Format &getFormat(GLenum internalFormat) const
     {
         return mFormatTable[internalFormat];
     }
 
-    const vk::Format &getFormat(angle::Format::ID formatID) const { return mFormatTable[formatID]; }
+    const vk::Format &getFormat(angle::FormatID formatID) const { return mFormatTable[formatID]; }
 
     angle::Result getCompatibleRenderPass(vk::Context *context,
                                           const vk::RenderPassDesc &desc,
diff --git a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
index cd9433c..596e869 100644
--- a/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
+++ b/src/libANGLE/renderer/vulkan/VertexArrayVk.cpp
@@ -282,7 +282,7 @@
         mCurrentArrayBufferOffsets[attribIndex]   = 0;
         mCurrentArrayBufferStrides[attribIndex]   = 0;
         mCurrentArrayBufferFormats[attribIndex] =
-            &renderer->getFormat(angle::Format::ID::R32G32B32A32_FLOAT);
+            &renderer->getFormat(angle::FormatID::R32G32B32A32_FLOAT);
     }
 }
 
@@ -610,7 +610,7 @@
         mCurrentArrayBufferResources[attribIndex] = nullptr;
         mCurrentArrayBufferStrides[attribIndex]   = 0;
         mCurrentArrayBufferFormats[attribIndex] =
-            &renderer->getFormat(angle::Format::ID::R32G32B32A32_FIXED);
+            &renderer->getFormat(angle::FormatID::R32G32B32A32_FIXED);
         mDirtyPackedInputs.set(attribIndex);
     }
 }
diff --git a/src/libANGLE/renderer/vulkan/gen_vk_format_table.py b/src/libANGLE/renderer/vulkan/gen_vk_format_table.py
index 1e769f6..a716c08 100644
--- a/src/libANGLE/renderer/vulkan/gen_vk_format_table.py
+++ b/src/libANGLE/renderer/vulkan/gen_vk_format_table.py
@@ -57,41 +57,41 @@
 }}  // namespace rx
 """
 
-empty_format_entry_template = """case angle::Format::ID::{format_id}:
+empty_format_entry_template = """case angle::FormatID::{format_id}:
 // This format is not implemented in Vulkan.
 break;
 """
 
-format_entry_template = """case angle::Format::ID::{format_id}:
+format_entry_template = """case angle::FormatID::{format_id}:
 internalFormat = {internal_format};
 {texture_template}
 {buffer_template}
 break;
 """
 
-texture_basic_template = """textureFormatID = angle::Format::ID::{texture};
+texture_basic_template = """textureFormatID = angle::FormatID::{texture};
 vkTextureFormat = {vk_texture_format};
 textureInitializerFunction = {texture_initializer};"""
 
 texture_fallback_template = """initTextureFallback(physicalDevice,
-angle::Format::ID::{texture},
+angle::FormatID::{texture},
 {vk_texture_format},
 {texture_initializer},
-angle::Format::ID::{texture_fallback},
+angle::FormatID::{texture_fallback},
 {vk_texture_format_fallback},
 {texture_initializer_fallback});"""
 
-buffer_basic_template = """bufferFormatID = angle::Format::ID::{buffer};
+buffer_basic_template = """bufferFormatID = angle::FormatID::{buffer};
 vkBufferFormat = {vk_buffer_format};
 vertexLoadFunction = {vertex_load_function};
 vertexLoadRequiresConversion = {vertex_load_converts};"""
 
 buffer_fallback_template = """initBufferFallback(physicalDevice,
-angle::Format::ID::{buffer},
+angle::FormatID::{buffer},
 {vk_buffer_format},
 {vertex_load_function},
 {vertex_load_converts},
-angle::Format::ID::{buffer_fallback},
+angle::FormatID::{buffer_fallback},
 {vk_buffer_format_fallback},
 {vertex_load_function_fallback});"""
 
diff --git a/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp b/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
index 6f64558..918c25b 100644
--- a/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_format_table_autogen.cpp
@@ -26,1540 +26,1535 @@
 {
     switch (angleFormat.id)
     {
-        case angle::Format::ID::A16_FLOAT:
+        case angle::FormatID::A16_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::A1R5G5B5_UNORM:
+        case angle::FormatID::A1R5G5B5_UNORM:
             internalFormat               = GL_A1RGB5_ANGLEX;
-            textureFormatID              = angle::Format::ID::A1R5G5B5_UNORM;
+            textureFormatID              = angle::FormatID::A1R5G5B5_UNORM;
             vkTextureFormat              = VK_FORMAT_A1R5G5B5_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::A1R5G5B5_UNORM;
+            bufferFormatID               = angle::FormatID::A1R5G5B5_UNORM;
             vkBufferFormat               = VK_FORMAT_A1R5G5B5_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::A32_FLOAT:
+        case angle::FormatID::A32_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::A8_UNORM:
+        case angle::FormatID::A8_UNORM:
             internalFormat             = GL_ALPHA8_EXT;
-            textureFormatID            = angle::Format::ID::R8_UNORM;
+            textureFormatID            = angle::FormatID::R8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8_UNORM;
             textureInitializerFunction = nullptr;
 
             break;
 
-        case angle::Format::ID::ASTC_10x10_SRGB_BLOCK:
+        case angle::FormatID::ASTC_10x10_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x10_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x10_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x10_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x10_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x10_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x10_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x10_UNORM_BLOCK:
+        case angle::FormatID::ASTC_10x10_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_10x10_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x10_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x10_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x10_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x10_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x10_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x5_SRGB_BLOCK:
+        case angle::FormatID::ASTC_10x5_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x5_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x5_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x5_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x5_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x5_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x5_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x5_UNORM_BLOCK:
+        case angle::FormatID::ASTC_10x5_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_10x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x5_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x5_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x5_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x5_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x5_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x6_SRGB_BLOCK:
+        case angle::FormatID::ASTC_10x6_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x6_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x6_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x6_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x6_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x6_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x6_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x6_UNORM_BLOCK:
+        case angle::FormatID::ASTC_10x6_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_10x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x6_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x6_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x6_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x6_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x6_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x8_SRGB_BLOCK:
+        case angle::FormatID::ASTC_10x8_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x8_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x8_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x8_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x8_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x8_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x8_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_10x8_UNORM_BLOCK:
+        case angle::FormatID::ASTC_10x8_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_10x8_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_10x8_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_10x8_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_10x8_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_10x8_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_10x8_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_12x10_SRGB_BLOCK:
+        case angle::FormatID::ASTC_12x10_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_12x10_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_12x10_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_12x10_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_12x10_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_12x10_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_12x10_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_12x10_UNORM_BLOCK:
+        case angle::FormatID::ASTC_12x10_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_12x10_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_12x10_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_12x10_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_12x10_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_12x10_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_12x10_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_12x12_SRGB_BLOCK:
+        case angle::FormatID::ASTC_12x12_SRGB_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::ASTC_12x12_UNORM_BLOCK:
+        case angle::FormatID::ASTC_12x12_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_12x12_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_12x12_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_12x12_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_12x12_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_12x12_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_12x12_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_4x4_SRGB_BLOCK:
+        case angle::FormatID::ASTC_4x4_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_4x4_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_4x4_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_4x4_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_4x4_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_4x4_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_4x4_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_4x4_UNORM_BLOCK:
+        case angle::FormatID::ASTC_4x4_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_4x4_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_4x4_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_4x4_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_4x4_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_4x4_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_4x4_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_5x4_SRGB_BLOCK:
+        case angle::FormatID::ASTC_5x4_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_5x4_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_5x4_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_5x4_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_5x4_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_5x4_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_5x4_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_5x4_UNORM_BLOCK:
+        case angle::FormatID::ASTC_5x4_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_5x4_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_5x4_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_5x4_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_5x4_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_5x4_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_5x4_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_5x5_SRGB_BLOCK:
+        case angle::FormatID::ASTC_5x5_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_5x5_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_5x5_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_5x5_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_5x5_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_5x5_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_5x5_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_5x5_UNORM_BLOCK:
+        case angle::FormatID::ASTC_5x5_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_5x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_5x5_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_5x5_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_5x5_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_5x5_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_5x5_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_6x5_SRGB_BLOCK:
+        case angle::FormatID::ASTC_6x5_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_6x5_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_6x5_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_6x5_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_6x5_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_6x5_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_6x5_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_6x5_UNORM_BLOCK:
+        case angle::FormatID::ASTC_6x5_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_6x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_6x5_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_6x5_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_6x5_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_6x5_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_6x5_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_6x6_SRGB_BLOCK:
+        case angle::FormatID::ASTC_6x6_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_6x6_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_6x6_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_6x6_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_6x6_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_6x6_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_6x6_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_6x6_UNORM_BLOCK:
+        case angle::FormatID::ASTC_6x6_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_6x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_6x6_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_6x6_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_6x6_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_6x6_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_6x6_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x5_SRGB_BLOCK:
+        case angle::FormatID::ASTC_8x5_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x5_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x5_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x5_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x5_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x5_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x5_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x5_UNORM_BLOCK:
+        case angle::FormatID::ASTC_8x5_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_8x5_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x5_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x5_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x5_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x5_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x5_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x6_SRGB_BLOCK:
+        case angle::FormatID::ASTC_8x6_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x6_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x6_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x6_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x6_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x6_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x6_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x6_UNORM_BLOCK:
+        case angle::FormatID::ASTC_8x6_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_8x6_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x6_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x6_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x6_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x6_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x6_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x8_SRGB_BLOCK:
+        case angle::FormatID::ASTC_8x8_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x8_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x8_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x8_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x8_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x8_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x8_SRGB_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ASTC_8x8_UNORM_BLOCK:
+        case angle::FormatID::ASTC_8x8_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_ASTC_8x8_KHR;
-            textureFormatID              = angle::Format::ID::ASTC_8x8_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ASTC_8x8_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ASTC_8x8_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ASTC_8x8_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ASTC_8x8_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::B4G4R4A4_UNORM:
+        case angle::FormatID::B4G4R4A4_UNORM:
             internalFormat               = GL_BGRA4_ANGLEX;
-            textureFormatID              = angle::Format::ID::B4G4R4A4_UNORM;
+            textureFormatID              = angle::FormatID::B4G4R4A4_UNORM;
             vkTextureFormat              = VK_FORMAT_B4G4R4A4_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::B4G4R4A4_UNORM;
+            bufferFormatID               = angle::FormatID::B4G4R4A4_UNORM;
             vkBufferFormat               = VK_FORMAT_B4G4R4A4_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::B5G5R5A1_UNORM:
+        case angle::FormatID::B5G5R5A1_UNORM:
             internalFormat               = GL_BGR5_A1_ANGLEX;
-            textureFormatID              = angle::Format::ID::B5G5R5A1_UNORM;
+            textureFormatID              = angle::FormatID::B5G5R5A1_UNORM;
             vkTextureFormat              = VK_FORMAT_B5G5R5A1_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::B5G5R5A1_UNORM;
+            bufferFormatID               = angle::FormatID::B5G5R5A1_UNORM;
             vkBufferFormat               = VK_FORMAT_B5G5R5A1_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::B5G6R5_UNORM:
+        case angle::FormatID::B5G6R5_UNORM:
             internalFormat               = GL_BGR565_ANGLEX;
-            textureFormatID              = angle::Format::ID::B5G6R5_UNORM;
+            textureFormatID              = angle::FormatID::B5G6R5_UNORM;
             vkTextureFormat              = VK_FORMAT_B5G6R5_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::B5G6R5_UNORM;
+            bufferFormatID               = angle::FormatID::B5G6R5_UNORM;
             vkBufferFormat               = VK_FORMAT_B5G6R5_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::B8G8R8A8_TYPELESS:
+        case angle::FormatID::B8G8R8A8_TYPELESS:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::B8G8R8A8_TYPELESS_SRGB:
+        case angle::FormatID::B8G8R8A8_TYPELESS_SRGB:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::B8G8R8A8_UNORM:
+        case angle::FormatID::B8G8R8A8_UNORM:
             internalFormat               = GL_BGRA8_EXT;
-            textureFormatID              = angle::Format::ID::B8G8R8A8_UNORM;
+            textureFormatID              = angle::FormatID::B8G8R8A8_UNORM;
             vkTextureFormat              = VK_FORMAT_B8G8R8A8_UNORM;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::B8G8R8A8_UNORM;
+            bufferFormatID               = angle::FormatID::B8G8R8A8_UNORM;
             vkBufferFormat               = VK_FORMAT_B8G8R8A8_UNORM;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::B8G8R8A8_UNORM_SRGB:
+        case angle::FormatID::B8G8R8A8_UNORM_SRGB:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::B8G8R8X8_UNORM:
+        case angle::FormatID::B8G8R8X8_UNORM:
             internalFormat               = GL_BGRX8_ANGLEX;
-            textureFormatID              = angle::Format::ID::B8G8R8A8_UNORM;
+            textureFormatID              = angle::FormatID::B8G8R8A8_UNORM;
             vkTextureFormat              = VK_FORMAT_B8G8R8A8_UNORM;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::NONE;
+            bufferFormatID               = angle::FormatID::NONE;
             vkBufferFormat               = VK_FORMAT_UNDEFINED;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = true;
             break;
 
-        case angle::Format::ID::BC1_RGBA_UNORM_BLOCK:
+        case angle::FormatID::BC1_RGBA_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA_S3TC_DXT1_EXT;
-            textureFormatID              = angle::Format::ID::BC1_RGBA_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::BC1_RGBA_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::BC1_RGBA_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::BC1_RGBA_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_BC1_RGBA_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::BC1_RGBA_UNORM_SRGB_BLOCK:
+        case angle::FormatID::BC1_RGBA_UNORM_SRGB_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::BC1_RGB_UNORM_BLOCK:
+        case angle::FormatID::BC1_RGB_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGB_S3TC_DXT1_EXT;
-            textureFormatID              = angle::Format::ID::BC1_RGB_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::BC1_RGB_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_BC1_RGB_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::BC1_RGB_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::BC1_RGB_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_BC1_RGB_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::BC1_RGB_UNORM_SRGB_BLOCK:
+        case angle::FormatID::BC1_RGB_UNORM_SRGB_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::BC2_RGBA_UNORM_BLOCK:
+        case angle::FormatID::BC2_RGBA_UNORM_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::BC2_RGBA_UNORM_SRGB_BLOCK:
+        case angle::FormatID::BC2_RGBA_UNORM_SRGB_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::BC3_RGBA_UNORM_BLOCK:
+        case angle::FormatID::BC3_RGBA_UNORM_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::BC3_RGBA_UNORM_SRGB_BLOCK:
+        case angle::FormatID::BC3_RGBA_UNORM_SRGB_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::D16_UNORM:
+        case angle::FormatID::D16_UNORM:
             internalFormat               = GL_DEPTH_COMPONENT16;
-            textureFormatID              = angle::Format::ID::D16_UNORM;
+            textureFormatID              = angle::FormatID::D16_UNORM;
             vkTextureFormat              = VK_FORMAT_D16_UNORM;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::D16_UNORM;
+            bufferFormatID               = angle::FormatID::D16_UNORM;
             vkBufferFormat               = VK_FORMAT_D16_UNORM;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::D24_UNORM_S8_UINT:
+        case angle::FormatID::D24_UNORM_S8_UINT:
             internalFormat = GL_DEPTH24_STENCIL8;
-            initTextureFallback(physicalDevice, angle::Format::ID::D24_UNORM_S8_UINT,
+            initTextureFallback(physicalDevice, angle::FormatID::D24_UNORM_S8_UINT,
                                 VK_FORMAT_D24_UNORM_S8_UINT, nullptr,
-                                angle::Format::ID::D32_FLOAT_S8X24_UINT,
-                                VK_FORMAT_D32_SFLOAT_S8_UINT, nullptr);
-            bufferFormatID               = angle::Format::ID::D24_UNORM_S8_UINT;
+                                angle::FormatID::D32_FLOAT_S8X24_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
+                                nullptr);
+            bufferFormatID               = angle::FormatID::D24_UNORM_S8_UINT;
             vkBufferFormat               = VK_FORMAT_D24_UNORM_S8_UINT;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::D24_UNORM_X8_UINT:
+        case angle::FormatID::D24_UNORM_X8_UINT:
             internalFormat = GL_DEPTH_COMPONENT24;
-            initTextureFallback(physicalDevice, angle::Format::ID::D24_UNORM_S8_UINT,
+            initTextureFallback(physicalDevice, angle::FormatID::D24_UNORM_S8_UINT,
                                 VK_FORMAT_D24_UNORM_S8_UINT, nullptr,
-                                angle::Format::ID::D32_FLOAT_S8X24_UINT,
-                                VK_FORMAT_D32_SFLOAT_S8_UINT, nullptr);
-            bufferFormatID               = angle::Format::ID::NONE;
+                                angle::FormatID::D32_FLOAT_S8X24_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
+                                nullptr);
+            bufferFormatID               = angle::FormatID::NONE;
             vkBufferFormat               = VK_FORMAT_UNDEFINED;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = true;
             break;
 
-        case angle::Format::ID::D32_FLOAT:
+        case angle::FormatID::D32_FLOAT:
             internalFormat               = GL_DEPTH_COMPONENT32F;
-            textureFormatID              = angle::Format::ID::D32_FLOAT;
+            textureFormatID              = angle::FormatID::D32_FLOAT;
             vkTextureFormat              = VK_FORMAT_D32_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::D32_FLOAT;
+            bufferFormatID               = angle::FormatID::D32_FLOAT;
             vkBufferFormat               = VK_FORMAT_D32_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::D32_FLOAT_S8X24_UINT:
+        case angle::FormatID::D32_FLOAT_S8X24_UINT:
             internalFormat = GL_DEPTH32F_STENCIL8;
-            initTextureFallback(physicalDevice, angle::Format::ID::D32_FLOAT_S8X24_UINT,
-                                VK_FORMAT_D32_SFLOAT_S8_UINT, nullptr,
-                                angle::Format::ID::D24_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT,
-                                nullptr);
-            bufferFormatID               = angle::Format::ID::D32_FLOAT_S8X24_UINT;
+            initTextureFallback(
+                physicalDevice, angle::FormatID::D32_FLOAT_S8X24_UINT, VK_FORMAT_D32_SFLOAT_S8_UINT,
+                nullptr, angle::FormatID::D24_UNORM_S8_UINT, VK_FORMAT_D24_UNORM_S8_UINT, nullptr);
+            bufferFormatID               = angle::FormatID::D32_FLOAT_S8X24_UINT;
             vkBufferFormat               = VK_FORMAT_D32_SFLOAT_S8_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::D32_UNORM:
+        case angle::FormatID::D32_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::EAC_R11G11_SNORM_BLOCK:
+        case angle::FormatID::EAC_R11G11_SNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_SIGNED_RG11_EAC;
-            textureFormatID              = angle::Format::ID::EAC_R11G11_SNORM_BLOCK;
+            textureFormatID              = angle::FormatID::EAC_R11G11_SNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_EAC_R11G11_SNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::EAC_R11G11_SNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::EAC_R11G11_SNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_EAC_R11G11_SNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::EAC_R11G11_UNORM_BLOCK:
+        case angle::FormatID::EAC_R11G11_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RG11_EAC;
-            textureFormatID              = angle::Format::ID::EAC_R11G11_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::EAC_R11G11_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_EAC_R11G11_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::EAC_R11G11_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::EAC_R11G11_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_EAC_R11G11_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::EAC_R11_SNORM_BLOCK:
+        case angle::FormatID::EAC_R11_SNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_SIGNED_R11_EAC;
-            textureFormatID              = angle::Format::ID::EAC_R11_SNORM_BLOCK;
+            textureFormatID              = angle::FormatID::EAC_R11_SNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_EAC_R11_SNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::EAC_R11_SNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::EAC_R11_SNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_EAC_R11_SNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::EAC_R11_UNORM_BLOCK:
+        case angle::FormatID::EAC_R11_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_R11_EAC;
-            textureFormatID              = angle::Format::ID::EAC_R11_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::EAC_R11_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_EAC_R11_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::EAC_R11_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::EAC_R11_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_EAC_R11_UNORM_BLOCK;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK:
+        case angle::FormatID::ETC1_LOSSY_DECODE_R8G8B8_UNORM_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::ETC1_R8G8B8_UNORM_BLOCK:
+        case angle::FormatID::ETC1_R8G8B8_UNORM_BLOCK:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8A1_SRGB_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8A1_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2;
-            textureFormatID              = angle::Format::ID::ETC2_R8G8B8A1_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ETC2_R8G8B8A1_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ETC2_R8G8B8A1_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ETC2_R8G8B8A1_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8A1_UNORM_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK:
             internalFormat             = GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2;
-            textureFormatID            = angle::Format::ID::ETC2_R8G8B8A1_UNORM_BLOCK;
+            textureFormatID            = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK;
             vkTextureFormat            = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
             textureInitializerFunction = Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>;
-            bufferFormatID             = angle::Format::ID::ETC2_R8G8B8A1_UNORM_BLOCK;
+            bufferFormatID             = angle::FormatID::ETC2_R8G8B8A1_UNORM_BLOCK;
             vkBufferFormat             = VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK;
             vertexLoadFunction         = CopyNativeVertexData<GLubyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8A8_SRGB_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8A8_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC;
-            textureFormatID              = angle::Format::ID::ETC2_R8G8B8A8_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ETC2_R8G8B8A8_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ETC2_R8G8B8A8_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ETC2_R8G8B8A8_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8A8_UNORM_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8A8_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGBA8_ETC2_EAC;
-            textureFormatID              = angle::Format::ID::ETC2_R8G8B8A8_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ETC2_R8G8B8A8_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ETC2_R8G8B8A8_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ETC2_R8G8B8A8_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8_SRGB_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8_SRGB_BLOCK:
             internalFormat               = GL_COMPRESSED_SRGB8_ETC2;
-            textureFormatID              = angle::Format::ID::ETC2_R8G8B8_SRGB_BLOCK;
+            textureFormatID              = angle::FormatID::ETC2_R8G8B8_SRGB_BLOCK;
             vkTextureFormat              = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ETC2_R8G8B8_SRGB_BLOCK;
+            bufferFormatID               = angle::FormatID::ETC2_R8G8B8_SRGB_BLOCK;
             vkBufferFormat               = VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::ETC2_R8G8B8_UNORM_BLOCK:
+        case angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK:
             internalFormat               = GL_COMPRESSED_RGB8_ETC2;
-            textureFormatID              = angle::Format::ID::ETC2_R8G8B8_UNORM_BLOCK;
+            textureFormatID              = angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK;
             vkTextureFormat              = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::ETC2_R8G8B8_UNORM_BLOCK;
+            bufferFormatID               = angle::FormatID::ETC2_R8G8B8_UNORM_BLOCK;
             vkBufferFormat               = VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::L16A16_FLOAT:
+        case angle::FormatID::L16A16_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::L16_FLOAT:
+        case angle::FormatID::L16_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::L32A32_FLOAT:
+        case angle::FormatID::L32A32_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::L32_FLOAT:
+        case angle::FormatID::L32_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::L8A8_UNORM:
+        case angle::FormatID::L8A8_UNORM:
             internalFormat             = GL_LUMINANCE8_ALPHA8_EXT;
-            textureFormatID            = angle::Format::ID::R8G8_UNORM;
+            textureFormatID            = angle::FormatID::R8G8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8G8_UNORM;
             textureInitializerFunction = nullptr;
 
             break;
 
-        case angle::Format::ID::L8_UNORM:
+        case angle::FormatID::L8_UNORM:
             internalFormat             = GL_LUMINANCE8_EXT;
-            textureFormatID            = angle::Format::ID::R8_UNORM;
+            textureFormatID            = angle::FormatID::R8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8_UNORM;
             textureInitializerFunction = nullptr;
 
             break;
 
-        case angle::Format::ID::NONE:
+        case angle::FormatID::NONE:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_SINT:
+        case angle::FormatID::R10G10B10A2_SINT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_SNORM:
+        case angle::FormatID::R10G10B10A2_SNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_SSCALED:
+        case angle::FormatID::R10G10B10A2_SSCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_UINT:
+        case angle::FormatID::R10G10B10A2_UINT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_UNORM:
+        case angle::FormatID::R10G10B10A2_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R10G10B10A2_USCALED:
+        case angle::FormatID::R10G10B10A2_USCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R11G11B10_FLOAT:
+        case angle::FormatID::R11G11B10_FLOAT:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R16G16B16A16_FLOAT:
+        case angle::FormatID::R16G16B16A16_FLOAT:
             internalFormat               = GL_RGBA16F;
-            textureFormatID              = angle::Format::ID::R16G16B16A16_FLOAT;
+            textureFormatID              = angle::FormatID::R16G16B16A16_FLOAT;
             vkTextureFormat              = VK_FORMAT_R16G16B16A16_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16A16_FLOAT;
+            bufferFormatID               = angle::FormatID::R16G16B16A16_FLOAT;
             vkBufferFormat               = VK_FORMAT_R16G16B16A16_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16A16_SINT:
+        case angle::FormatID::R16G16B16A16_SINT:
             internalFormat               = GL_RGBA16I;
-            textureFormatID              = angle::Format::ID::R16G16B16A16_SINT;
+            textureFormatID              = angle::FormatID::R16G16B16A16_SINT;
             vkTextureFormat              = VK_FORMAT_R16G16B16A16_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16A16_SINT;
+            bufferFormatID               = angle::FormatID::R16G16B16A16_SINT;
             vkBufferFormat               = VK_FORMAT_R16G16B16A16_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLshort, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16A16_SNORM:
+        case angle::FormatID::R16G16B16A16_SNORM:
             internalFormat             = GL_RGBA16_SNORM_EXT;
-            textureFormatID            = angle::Format::ID::R16G16B16A16_SNORM;
+            textureFormatID            = angle::FormatID::R16G16B16A16_SNORM;
             vkTextureFormat            = VK_FORMAT_R16G16B16A16_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16B16A16_SNORM,
-                               VK_FORMAT_R16G16B16A16_SNORM, CopyNativeVertexData<GLshort, 4, 4, 0>,
-                               false, angle::Format::ID::R32G32B32A32_FLOAT,
-                               VK_FORMAT_R32G32B32A32_SFLOAT,
-                               CopyTo32FVertexData<GLshort, 4, 4, true>);
+            initBufferFallback(
+                physicalDevice, angle::FormatID::R16G16B16A16_SNORM, VK_FORMAT_R16G16B16A16_SNORM,
+                CopyNativeVertexData<GLshort, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
+                VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLshort, 4, 4, true>);
             break;
 
-        case angle::Format::ID::R16G16B16A16_SSCALED:
+        case angle::FormatID::R16G16B16A16_SSCALED:
             internalFormat             = GL_RGBA16_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16B16A16_SSCALED;
+            textureFormatID            = angle::FormatID::R16G16B16A16_SSCALED;
             vkTextureFormat            = VK_FORMAT_R16G16B16A16_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16B16A16_SSCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16A16_SSCALED,
                                VK_FORMAT_R16G16B16A16_SSCALED,
                                CopyNativeVertexData<GLshort, 4, 4, 0>, false,
-                               angle::Format::ID::R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
+                               angle::FormatID::R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
                                CopyTo32FVertexData<GLshort, 4, 4, false>);
             break;
 
-        case angle::Format::ID::R16G16B16A16_UINT:
+        case angle::FormatID::R16G16B16A16_UINT:
             internalFormat               = GL_RGBA16UI;
-            textureFormatID              = angle::Format::ID::R16G16B16A16_UINT;
+            textureFormatID              = angle::FormatID::R16G16B16A16_UINT;
             vkTextureFormat              = VK_FORMAT_R16G16B16A16_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16A16_UINT;
+            bufferFormatID               = angle::FormatID::R16G16B16A16_UINT;
             vkBufferFormat               = VK_FORMAT_R16G16B16A16_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLushort, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16A16_UNORM:
+        case angle::FormatID::R16G16B16A16_UNORM:
             internalFormat             = GL_RGBA16_EXT;
-            textureFormatID            = angle::Format::ID::R16G16B16A16_UNORM;
+            textureFormatID            = angle::FormatID::R16G16B16A16_UNORM;
             vkTextureFormat            = VK_FORMAT_R16G16B16A16_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16B16A16_UNORM,
-                               VK_FORMAT_R16G16B16A16_UNORM,
-                               CopyNativeVertexData<GLushort, 4, 4, 0>, false,
-                               angle::Format::ID::R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
-                               CopyTo32FVertexData<GLushort, 4, 4, true>);
+            initBufferFallback(
+                physicalDevice, angle::FormatID::R16G16B16A16_UNORM, VK_FORMAT_R16G16B16A16_UNORM,
+                CopyNativeVertexData<GLushort, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
+                VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLushort, 4, 4, true>);
             break;
 
-        case angle::Format::ID::R16G16B16A16_USCALED:
+        case angle::FormatID::R16G16B16A16_USCALED:
             internalFormat             = GL_RGBA16_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16B16A16_USCALED;
+            textureFormatID            = angle::FormatID::R16G16B16A16_USCALED;
             vkTextureFormat            = VK_FORMAT_R16G16B16A16_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16B16A16_USCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16A16_USCALED,
                                VK_FORMAT_R16G16B16A16_USCALED,
                                CopyNativeVertexData<GLushort, 4, 4, 0>, false,
-                               angle::Format::ID::R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
+                               angle::FormatID::R32G32B32A32_FLOAT, VK_FORMAT_R32G32B32A32_SFLOAT,
                                CopyTo32FVertexData<GLushort, 4, 4, false>);
             break;
 
-        case angle::Format::ID::R16G16B16_FLOAT:
+        case angle::FormatID::R16G16B16_FLOAT:
             internalFormat               = GL_RGB16F;
-            textureFormatID              = angle::Format::ID::R16G16B16_FLOAT;
+            textureFormatID              = angle::FormatID::R16G16B16_FLOAT;
             vkTextureFormat              = VK_FORMAT_R16G16B16_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16_FLOAT;
+            bufferFormatID               = angle::FormatID::R16G16B16_FLOAT;
             vkBufferFormat               = VK_FORMAT_R16G16B16_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16_SINT:
+        case angle::FormatID::R16G16B16_SINT:
             internalFormat               = GL_RGB16I;
-            textureFormatID              = angle::Format::ID::R16G16B16_SINT;
+            textureFormatID              = angle::FormatID::R16G16B16_SINT;
             vkTextureFormat              = VK_FORMAT_R16G16B16_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16_SINT;
+            bufferFormatID               = angle::FormatID::R16G16B16_SINT;
             vkBufferFormat               = VK_FORMAT_R16G16B16_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLshort, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16_SNORM:
+        case angle::FormatID::R16G16B16_SNORM:
             internalFormat             = GL_RGB16_SNORM_EXT;
-            textureFormatID            = angle::Format::ID::R16G16B16_SNORM;
+            textureFormatID            = angle::FormatID::R16G16B16_SNORM;
             vkTextureFormat            = VK_FORMAT_R16G16B16_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R16G16B16_SNORM, VK_FORMAT_R16G16B16_SNORM,
-                CopyNativeVertexData<GLshort, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLshort, 3, 3, true>);
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16_SNORM,
+                               VK_FORMAT_R16G16B16_SNORM, CopyNativeVertexData<GLshort, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLshort, 3, 3, true>);
             break;
 
-        case angle::Format::ID::R16G16B16_SSCALED:
+        case angle::FormatID::R16G16B16_SSCALED:
             internalFormat             = GL_RGB16_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16B16_SSCALED;
+            textureFormatID            = angle::FormatID::R16G16B16_SSCALED;
             vkTextureFormat            = VK_FORMAT_R16G16B16_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R16G16B16_SSCALED, VK_FORMAT_R16G16B16_SSCALED,
-                CopyNativeVertexData<GLshort, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLshort, 3, 3, false>);
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16_SSCALED,
+                               VK_FORMAT_R16G16B16_SSCALED, CopyNativeVertexData<GLshort, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLshort, 3, 3, false>);
             break;
 
-        case angle::Format::ID::R16G16B16_UINT:
+        case angle::FormatID::R16G16B16_UINT:
             internalFormat               = GL_RGB16UI;
-            textureFormatID              = angle::Format::ID::R16G16B16_UINT;
+            textureFormatID              = angle::FormatID::R16G16B16_UINT;
             vkTextureFormat              = VK_FORMAT_R16G16B16_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16B16_UINT;
+            bufferFormatID               = angle::FormatID::R16G16B16_UINT;
             vkBufferFormat               = VK_FORMAT_R16G16B16_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLushort, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16B16_UNORM:
+        case angle::FormatID::R16G16B16_UNORM:
             internalFormat             = GL_RGB16_EXT;
-            textureFormatID            = angle::Format::ID::R16G16B16_UNORM;
+            textureFormatID            = angle::FormatID::R16G16B16_UNORM;
             vkTextureFormat            = VK_FORMAT_R16G16B16_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R16G16B16_UNORM, VK_FORMAT_R16G16B16_UNORM,
-                CopyNativeVertexData<GLushort, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLushort, 3, 3, true>);
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16_UNORM,
+                               VK_FORMAT_R16G16B16_UNORM, CopyNativeVertexData<GLushort, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLushort, 3, 3, true>);
             break;
 
-        case angle::Format::ID::R16G16B16_USCALED:
+        case angle::FormatID::R16G16B16_USCALED:
             internalFormat             = GL_RGB16_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16B16_USCALED;
+            textureFormatID            = angle::FormatID::R16G16B16_USCALED;
             vkTextureFormat            = VK_FORMAT_R16G16B16_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R16G16B16_USCALED, VK_FORMAT_R16G16B16_USCALED,
-                CopyNativeVertexData<GLushort, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLushort, 3, 3, false>);
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16B16_USCALED,
+                               VK_FORMAT_R16G16B16_USCALED, CopyNativeVertexData<GLushort, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLushort, 3, 3, false>);
             break;
 
-        case angle::Format::ID::R16G16_FLOAT:
+        case angle::FormatID::R16G16_FLOAT:
             internalFormat               = GL_RG16F;
-            textureFormatID              = angle::Format::ID::R16G16_FLOAT;
+            textureFormatID              = angle::FormatID::R16G16_FLOAT;
             vkTextureFormat              = VK_FORMAT_R16G16_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16_FLOAT;
+            bufferFormatID               = angle::FormatID::R16G16_FLOAT;
             vkBufferFormat               = VK_FORMAT_R16G16_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16_SINT:
+        case angle::FormatID::R16G16_SINT:
             internalFormat               = GL_RG16I;
-            textureFormatID              = angle::Format::ID::R16G16_SINT;
+            textureFormatID              = angle::FormatID::R16G16_SINT;
             vkTextureFormat              = VK_FORMAT_R16G16_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16_SINT;
+            bufferFormatID               = angle::FormatID::R16G16_SINT;
             vkBufferFormat               = VK_FORMAT_R16G16_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLshort, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16_SNORM:
+        case angle::FormatID::R16G16_SNORM:
             internalFormat             = GL_RG16_SNORM_EXT;
-            textureFormatID            = angle::Format::ID::R16G16_SNORM;
+            textureFormatID            = angle::FormatID::R16G16_SNORM;
             vkTextureFormat            = VK_FORMAT_R16G16_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16_SNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16_SNORM,
                                VK_FORMAT_R16G16_SNORM, CopyNativeVertexData<GLshort, 2, 2, 0>,
-                               false, angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               false, angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLshort, 2, 2, true>);
             break;
 
-        case angle::Format::ID::R16G16_SSCALED:
+        case angle::FormatID::R16G16_SSCALED:
             internalFormat             = GL_RG16_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16_SSCALED;
+            textureFormatID            = angle::FormatID::R16G16_SSCALED;
             vkTextureFormat            = VK_FORMAT_R16G16_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16_SSCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16_SSCALED,
                                VK_FORMAT_R16G16_SSCALED, CopyNativeVertexData<GLshort, 2, 2, 0>,
-                               false, angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               false, angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLshort, 2, 2, false>);
             break;
 
-        case angle::Format::ID::R16G16_UINT:
+        case angle::FormatID::R16G16_UINT:
             internalFormat               = GL_RG16UI;
-            textureFormatID              = angle::Format::ID::R16G16_UINT;
+            textureFormatID              = angle::FormatID::R16G16_UINT;
             vkTextureFormat              = VK_FORMAT_R16G16_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16G16_UINT;
+            bufferFormatID               = angle::FormatID::R16G16_UINT;
             vkBufferFormat               = VK_FORMAT_R16G16_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLushort, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16G16_UNORM:
+        case angle::FormatID::R16G16_UNORM:
             internalFormat             = GL_RG16_EXT;
-            textureFormatID            = angle::Format::ID::R16G16_UNORM;
+            textureFormatID            = angle::FormatID::R16G16_UNORM;
             vkTextureFormat            = VK_FORMAT_R16G16_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16_UNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16_UNORM,
                                VK_FORMAT_R16G16_UNORM, CopyNativeVertexData<GLushort, 2, 2, 0>,
-                               false, angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               false, angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLushort, 2, 2, true>);
             break;
 
-        case angle::Format::ID::R16G16_USCALED:
+        case angle::FormatID::R16G16_USCALED:
             internalFormat             = GL_RG16_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16G16_USCALED;
+            textureFormatID            = angle::FormatID::R16G16_USCALED;
             vkTextureFormat            = VK_FORMAT_R16G16_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16G16_USCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R16G16_USCALED,
                                VK_FORMAT_R16G16_USCALED, CopyNativeVertexData<GLushort, 2, 2, 0>,
-                               false, angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               false, angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLushort, 2, 2, false>);
             break;
 
-        case angle::Format::ID::R16_FLOAT:
+        case angle::FormatID::R16_FLOAT:
             internalFormat               = GL_R16F;
-            textureFormatID              = angle::Format::ID::R16_FLOAT;
+            textureFormatID              = angle::FormatID::R16_FLOAT;
             vkTextureFormat              = VK_FORMAT_R16_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16_FLOAT;
+            bufferFormatID               = angle::FormatID::R16_FLOAT;
             vkBufferFormat               = VK_FORMAT_R16_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16_SINT:
+        case angle::FormatID::R16_SINT:
             internalFormat               = GL_R16I;
-            textureFormatID              = angle::Format::ID::R16_SINT;
+            textureFormatID              = angle::FormatID::R16_SINT;
             vkTextureFormat              = VK_FORMAT_R16_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16_SINT;
+            bufferFormatID               = angle::FormatID::R16_SINT;
             vkBufferFormat               = VK_FORMAT_R16_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLshort, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16_SNORM:
+        case angle::FormatID::R16_SNORM:
             internalFormat             = GL_R16_SNORM_EXT;
-            textureFormatID            = angle::Format::ID::R16_SNORM;
+            textureFormatID            = angle::FormatID::R16_SNORM;
             vkTextureFormat            = VK_FORMAT_R16_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16_SNORM, VK_FORMAT_R16_SNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R16_SNORM, VK_FORMAT_R16_SNORM,
                                CopyNativeVertexData<GLshort, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLshort, 1, 1, true>);
             break;
 
-        case angle::Format::ID::R16_SSCALED:
+        case angle::FormatID::R16_SSCALED:
             internalFormat             = GL_R16_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16_SSCALED;
+            textureFormatID            = angle::FormatID::R16_SSCALED;
             vkTextureFormat            = VK_FORMAT_R16_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16_SSCALED,
-                               VK_FORMAT_R16_SSCALED, CopyNativeVertexData<GLshort, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+            initBufferFallback(physicalDevice, angle::FormatID::R16_SSCALED, VK_FORMAT_R16_SSCALED,
+                               CopyNativeVertexData<GLshort, 1, 1, 0>, false,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLshort, 1, 1, false>);
             break;
 
-        case angle::Format::ID::R16_UINT:
+        case angle::FormatID::R16_UINT:
             internalFormat               = GL_R16UI;
-            textureFormatID              = angle::Format::ID::R16_UINT;
+            textureFormatID              = angle::FormatID::R16_UINT;
             vkTextureFormat              = VK_FORMAT_R16_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R16_UINT;
+            bufferFormatID               = angle::FormatID::R16_UINT;
             vkBufferFormat               = VK_FORMAT_R16_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLushort, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R16_UNORM:
+        case angle::FormatID::R16_UNORM:
             internalFormat             = GL_R16_EXT;
-            textureFormatID            = angle::Format::ID::R16_UNORM;
+            textureFormatID            = angle::FormatID::R16_UNORM;
             vkTextureFormat            = VK_FORMAT_R16_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16_UNORM, VK_FORMAT_R16_UNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R16_UNORM, VK_FORMAT_R16_UNORM,
                                CopyNativeVertexData<GLushort, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLushort, 1, 1, true>);
             break;
 
-        case angle::Format::ID::R16_USCALED:
+        case angle::FormatID::R16_USCALED:
             internalFormat             = GL_R16_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R16_USCALED;
+            textureFormatID            = angle::FormatID::R16_USCALED;
             vkTextureFormat            = VK_FORMAT_R16_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R16_USCALED,
-                               VK_FORMAT_R16_USCALED, CopyNativeVertexData<GLushort, 1, 1, 0>,
-                               false, angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+            initBufferFallback(physicalDevice, angle::FormatID::R16_USCALED, VK_FORMAT_R16_USCALED,
+                               CopyNativeVertexData<GLushort, 1, 1, 0>, false,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLushort, 1, 1, false>);
             break;
 
-        case angle::Format::ID::R32G32B32A32_FIXED:
+        case angle::FormatID::R32G32B32A32_FIXED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32A32_FLOAT:
+        case angle::FormatID::R32G32B32A32_FLOAT:
             internalFormat               = GL_RGBA32F;
-            textureFormatID              = angle::Format::ID::R32G32B32A32_FLOAT;
+            textureFormatID              = angle::FormatID::R32G32B32A32_FLOAT;
             vkTextureFormat              = VK_FORMAT_R32G32B32A32_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32A32_FLOAT;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_FLOAT;
             vkBufferFormat               = VK_FORMAT_R32G32B32A32_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32A32_SINT:
+        case angle::FormatID::R32G32B32A32_SINT:
             internalFormat               = GL_RGBA32I;
-            textureFormatID              = angle::Format::ID::R32G32B32A32_SINT;
+            textureFormatID              = angle::FormatID::R32G32B32A32_SINT;
             vkTextureFormat              = VK_FORMAT_R32G32B32A32_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32A32_SINT;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_SINT;
             vkBufferFormat               = VK_FORMAT_R32G32B32A32_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLint, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32A32_SNORM:
+        case angle::FormatID::R32G32B32A32_SNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32A32_SSCALED:
+        case angle::FormatID::R32G32B32A32_SSCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32A32_UINT:
+        case angle::FormatID::R32G32B32A32_UINT:
             internalFormat               = GL_RGBA32UI;
-            textureFormatID              = angle::Format::ID::R32G32B32A32_UINT;
+            textureFormatID              = angle::FormatID::R32G32B32A32_UINT;
             vkTextureFormat              = VK_FORMAT_R32G32B32A32_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32A32_UINT;
+            bufferFormatID               = angle::FormatID::R32G32B32A32_UINT;
             vkBufferFormat               = VK_FORMAT_R32G32B32A32_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLuint, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32A32_UNORM:
+        case angle::FormatID::R32G32B32A32_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32A32_USCALED:
+        case angle::FormatID::R32G32B32A32_USCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32_FIXED:
+        case angle::FormatID::R32G32B32_FIXED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32_FLOAT:
+        case angle::FormatID::R32G32B32_FLOAT:
             internalFormat               = GL_RGB32F;
-            textureFormatID              = angle::Format::ID::R32G32B32_FLOAT;
+            textureFormatID              = angle::FormatID::R32G32B32_FLOAT;
             vkTextureFormat              = VK_FORMAT_R32G32B32_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32_FLOAT;
+            bufferFormatID               = angle::FormatID::R32G32B32_FLOAT;
             vkBufferFormat               = VK_FORMAT_R32G32B32_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32_SINT:
+        case angle::FormatID::R32G32B32_SINT:
             internalFormat               = GL_RGB32I;
-            textureFormatID              = angle::Format::ID::R32G32B32_SINT;
+            textureFormatID              = angle::FormatID::R32G32B32_SINT;
             vkTextureFormat              = VK_FORMAT_R32G32B32_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32_SINT;
+            bufferFormatID               = angle::FormatID::R32G32B32_SINT;
             vkBufferFormat               = VK_FORMAT_R32G32B32_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLint, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32_SNORM:
+        case angle::FormatID::R32G32B32_SNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32_SSCALED:
+        case angle::FormatID::R32G32B32_SSCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32_UINT:
+        case angle::FormatID::R32G32B32_UINT:
             internalFormat               = GL_RGB32UI;
-            textureFormatID              = angle::Format::ID::R32G32B32_UINT;
+            textureFormatID              = angle::FormatID::R32G32B32_UINT;
             vkTextureFormat              = VK_FORMAT_R32G32B32_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32B32_UINT;
+            bufferFormatID               = angle::FormatID::R32G32B32_UINT;
             vkBufferFormat               = VK_FORMAT_R32G32B32_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLuint, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32B32_UNORM:
+        case angle::FormatID::R32G32B32_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32B32_USCALED:
+        case angle::FormatID::R32G32B32_USCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32_FIXED:
+        case angle::FormatID::R32G32_FIXED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32_FLOAT:
+        case angle::FormatID::R32G32_FLOAT:
             internalFormat               = GL_RG32F;
-            textureFormatID              = angle::Format::ID::R32G32_FLOAT;
+            textureFormatID              = angle::FormatID::R32G32_FLOAT;
             vkTextureFormat              = VK_FORMAT_R32G32_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32_FLOAT;
+            bufferFormatID               = angle::FormatID::R32G32_FLOAT;
             vkBufferFormat               = VK_FORMAT_R32G32_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32_SINT:
+        case angle::FormatID::R32G32_SINT:
             internalFormat               = GL_RG32I;
-            textureFormatID              = angle::Format::ID::R32G32_SINT;
+            textureFormatID              = angle::FormatID::R32G32_SINT;
             vkTextureFormat              = VK_FORMAT_R32G32_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32_SINT;
+            bufferFormatID               = angle::FormatID::R32G32_SINT;
             vkBufferFormat               = VK_FORMAT_R32G32_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLint, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32_SNORM:
+        case angle::FormatID::R32G32_SNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32_SSCALED:
+        case angle::FormatID::R32G32_SSCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32_UINT:
+        case angle::FormatID::R32G32_UINT:
             internalFormat               = GL_RG32UI;
-            textureFormatID              = angle::Format::ID::R32G32_UINT;
+            textureFormatID              = angle::FormatID::R32G32_UINT;
             vkTextureFormat              = VK_FORMAT_R32G32_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32G32_UINT;
+            bufferFormatID               = angle::FormatID::R32G32_UINT;
             vkBufferFormat               = VK_FORMAT_R32G32_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLuint, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32G32_UNORM:
+        case angle::FormatID::R32G32_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32G32_USCALED:
+        case angle::FormatID::R32G32_USCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32_FIXED:
+        case angle::FormatID::R32_FIXED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32_FLOAT:
+        case angle::FormatID::R32_FLOAT:
             internalFormat               = GL_R32F;
-            textureFormatID              = angle::Format::ID::R32_FLOAT;
+            textureFormatID              = angle::FormatID::R32_FLOAT;
             vkTextureFormat              = VK_FORMAT_R32_SFLOAT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32_FLOAT;
+            bufferFormatID               = angle::FormatID::R32_FLOAT;
             vkBufferFormat               = VK_FORMAT_R32_SFLOAT;
             vertexLoadFunction           = CopyNativeVertexData<GLfloat, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32_SINT:
+        case angle::FormatID::R32_SINT:
             internalFormat               = GL_R32I;
-            textureFormatID              = angle::Format::ID::R32_SINT;
+            textureFormatID              = angle::FormatID::R32_SINT;
             vkTextureFormat              = VK_FORMAT_R32_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32_SINT;
+            bufferFormatID               = angle::FormatID::R32_SINT;
             vkBufferFormat               = VK_FORMAT_R32_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLint, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32_SNORM:
+        case angle::FormatID::R32_SNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32_SSCALED:
+        case angle::FormatID::R32_SSCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32_UINT:
+        case angle::FormatID::R32_UINT:
             internalFormat               = GL_R32UI;
-            textureFormatID              = angle::Format::ID::R32_UINT;
+            textureFormatID              = angle::FormatID::R32_UINT;
             vkTextureFormat              = VK_FORMAT_R32_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R32_UINT;
+            bufferFormatID               = angle::FormatID::R32_UINT;
             vkBufferFormat               = VK_FORMAT_R32_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLuint, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R32_UNORM:
+        case angle::FormatID::R32_UNORM:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R32_USCALED:
+        case angle::FormatID::R32_USCALED:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R4G4B4A4_UNORM:
+        case angle::FormatID::R4G4B4A4_UNORM:
             internalFormat               = GL_RGBA4;
-            textureFormatID              = angle::Format::ID::R8G8B8A8_UNORM;
+            textureFormatID              = angle::FormatID::R8G8B8A8_UNORM;
             vkTextureFormat              = VK_FORMAT_R8G8B8A8_UNORM;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R4G4B4A4_UNORM;
+            bufferFormatID               = angle::FormatID::R4G4B4A4_UNORM;
             vkBufferFormat               = VK_FORMAT_R4G4B4A4_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R5G5B5A1_UNORM:
+        case angle::FormatID::R5G5B5A1_UNORM:
             internalFormat               = GL_RGB5_A1;
-            textureFormatID              = angle::Format::ID::A1R5G5B5_UNORM;
+            textureFormatID              = angle::FormatID::A1R5G5B5_UNORM;
             vkTextureFormat              = VK_FORMAT_A1R5G5B5_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R5G5B5A1_UNORM;
+            bufferFormatID               = angle::FormatID::R5G5B5A1_UNORM;
             vkBufferFormat               = VK_FORMAT_R5G5B5A1_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R5G6B5_UNORM:
+        case angle::FormatID::R5G6B5_UNORM:
             internalFormat               = GL_RGB565;
-            textureFormatID              = angle::Format::ID::R5G6B5_UNORM;
+            textureFormatID              = angle::FormatID::R5G6B5_UNORM;
             vkTextureFormat              = VK_FORMAT_R5G6B5_UNORM_PACK16;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R5G6B5_UNORM;
+            bufferFormatID               = angle::FormatID::R5G6B5_UNORM;
             vkBufferFormat               = VK_FORMAT_R5G6B5_UNORM_PACK16;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8B8A8_SINT:
+        case angle::FormatID::R8G8B8A8_SINT:
             internalFormat               = GL_RGBA8I;
-            textureFormatID              = angle::Format::ID::R8G8B8A8_SINT;
+            textureFormatID              = angle::FormatID::R8G8B8A8_SINT;
             vkTextureFormat              = VK_FORMAT_R8G8B8A8_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8B8A8_SINT;
+            bufferFormatID               = angle::FormatID::R8G8B8A8_SINT;
             vkBufferFormat               = VK_FORMAT_R8G8B8A8_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8B8A8_SNORM:
+        case angle::FormatID::R8G8B8A8_SNORM:
             internalFormat             = GL_RGBA8_SNORM;
-            textureFormatID            = angle::Format::ID::R8G8B8A8_SNORM;
+            textureFormatID            = angle::FormatID::R8G8B8A8_SNORM;
             vkTextureFormat            = VK_FORMAT_R8G8B8A8_SNORM;
             textureInitializerFunction = nullptr;
             initBufferFallback(
-                physicalDevice, angle::Format::ID::R8G8B8A8_SNORM, VK_FORMAT_R8G8B8A8_SNORM,
-                CopyNativeVertexData<GLbyte, 4, 4, 0>, false, angle::Format::ID::R32G32B32A32_FLOAT,
+                physicalDevice, angle::FormatID::R8G8B8A8_SNORM, VK_FORMAT_R8G8B8A8_SNORM,
+                CopyNativeVertexData<GLbyte, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
                 VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLbyte, 4, 4, true>);
             break;
 
-        case angle::Format::ID::R8G8B8A8_SSCALED:
+        case angle::FormatID::R8G8B8A8_SSCALED:
             internalFormat             = GL_RGBA8_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8B8A8_SSCALED;
+            textureFormatID            = angle::FormatID::R8G8B8A8_SSCALED;
             vkTextureFormat            = VK_FORMAT_R8G8B8A8_SSCALED;
             textureInitializerFunction = nullptr;
             initBufferFallback(
-                physicalDevice, angle::Format::ID::R8G8B8A8_SSCALED, VK_FORMAT_R8G8B8A8_SSCALED,
-                CopyNativeVertexData<GLbyte, 4, 4, 0>, false, angle::Format::ID::R32G32B32A32_FLOAT,
+                physicalDevice, angle::FormatID::R8G8B8A8_SSCALED, VK_FORMAT_R8G8B8A8_SSCALED,
+                CopyNativeVertexData<GLbyte, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
                 VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLbyte, 4, 4, false>);
             break;
 
-        case angle::Format::ID::R8G8B8A8_TYPELESS:
+        case angle::FormatID::R8G8B8A8_TYPELESS:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R8G8B8A8_TYPELESS_SRGB:
+        case angle::FormatID::R8G8B8A8_TYPELESS_SRGB:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R8G8B8A8_UINT:
+        case angle::FormatID::R8G8B8A8_UINT:
             internalFormat               = GL_RGBA8UI;
-            textureFormatID              = angle::Format::ID::R8G8B8A8_UINT;
+            textureFormatID              = angle::FormatID::R8G8B8A8_UINT;
             vkTextureFormat              = VK_FORMAT_R8G8B8A8_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8B8A8_UINT;
+            bufferFormatID               = angle::FormatID::R8G8B8A8_UINT;
             vkBufferFormat               = VK_FORMAT_R8G8B8A8_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 4, 4, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8B8A8_UNORM:
+        case angle::FormatID::R8G8B8A8_UNORM:
             internalFormat             = GL_RGBA8;
-            textureFormatID            = angle::Format::ID::R8G8B8A8_UNORM;
+            textureFormatID            = angle::FormatID::R8G8B8A8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8G8B8A8_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8B8A8_UNORM,
-                               VK_FORMAT_R8G8B8A8_UNORM, CopyNativeVertexData<GLubyte, 4, 4, 0>,
-                               false, angle::Format::ID::R32G32B32A32_FLOAT,
-                               VK_FORMAT_R32G32B32A32_SFLOAT,
-                               CopyTo32FVertexData<GLubyte, 4, 4, true>);
+            initBufferFallback(
+                physicalDevice, angle::FormatID::R8G8B8A8_UNORM, VK_FORMAT_R8G8B8A8_UNORM,
+                CopyNativeVertexData<GLubyte, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
+                VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLubyte, 4, 4, true>);
             break;
 
-        case angle::Format::ID::R8G8B8A8_UNORM_SRGB:
+        case angle::FormatID::R8G8B8A8_UNORM_SRGB:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R8G8B8A8_USCALED:
+        case angle::FormatID::R8G8B8A8_USCALED:
             internalFormat             = GL_RGBA8_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8B8A8_USCALED;
+            textureFormatID            = angle::FormatID::R8G8B8A8_USCALED;
             vkTextureFormat            = VK_FORMAT_R8G8B8A8_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8B8A8_USCALED,
-                               VK_FORMAT_R8G8B8A8_USCALED, CopyNativeVertexData<GLubyte, 4, 4, 0>,
-                               false, angle::Format::ID::R32G32B32A32_FLOAT,
-                               VK_FORMAT_R32G32B32A32_SFLOAT,
-                               CopyTo32FVertexData<GLubyte, 4, 4, false>);
+            initBufferFallback(
+                physicalDevice, angle::FormatID::R8G8B8A8_USCALED, VK_FORMAT_R8G8B8A8_USCALED,
+                CopyNativeVertexData<GLubyte, 4, 4, 0>, false, angle::FormatID::R32G32B32A32_FLOAT,
+                VK_FORMAT_R32G32B32A32_SFLOAT, CopyTo32FVertexData<GLubyte, 4, 4, false>);
             break;
 
-        case angle::Format::ID::R8G8B8_SINT:
+        case angle::FormatID::R8G8B8_SINT:
             internalFormat               = GL_RGB8I;
-            textureFormatID              = angle::Format::ID::R8G8B8_SINT;
+            textureFormatID              = angle::FormatID::R8G8B8_SINT;
             vkTextureFormat              = VK_FORMAT_R8G8B8_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8B8_SINT;
+            bufferFormatID               = angle::FormatID::R8G8B8_SINT;
             vkBufferFormat               = VK_FORMAT_R8G8B8_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8B8_SNORM:
+        case angle::FormatID::R8G8B8_SNORM:
             internalFormat             = GL_RGB8_SNORM;
-            textureFormatID            = angle::Format::ID::R8G8B8_SNORM;
+            textureFormatID            = angle::FormatID::R8G8B8_SNORM;
             vkTextureFormat            = VK_FORMAT_R8G8B8_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8B8_SNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8B8_SNORM,
                                VK_FORMAT_R8G8B8_SNORM, CopyNativeVertexData<GLbyte, 3, 3, 0>, false,
-                               angle::Format::ID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
                                CopyTo32FVertexData<GLbyte, 3, 3, true>);
             break;
 
-        case angle::Format::ID::R8G8B8_SSCALED:
+        case angle::FormatID::R8G8B8_SSCALED:
             internalFormat             = GL_RGB8_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8B8_SSCALED;
+            textureFormatID            = angle::FormatID::R8G8B8_SSCALED;
             vkTextureFormat            = VK_FORMAT_R8G8B8_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R8G8B8_SSCALED, VK_FORMAT_R8G8B8_SSCALED,
-                CopyNativeVertexData<GLbyte, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLbyte, 3, 3, false>);
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8B8_SSCALED,
+                               VK_FORMAT_R8G8B8_SSCALED, CopyNativeVertexData<GLbyte, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLbyte, 3, 3, false>);
             break;
 
-        case angle::Format::ID::R8G8B8_UINT:
+        case angle::FormatID::R8G8B8_UINT:
             internalFormat               = GL_RGB8UI;
-            textureFormatID              = angle::Format::ID::R8G8B8_UINT;
+            textureFormatID              = angle::FormatID::R8G8B8_UINT;
             vkTextureFormat              = VK_FORMAT_R8G8B8_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8B8_UINT;
+            bufferFormatID               = angle::FormatID::R8G8B8_UINT;
             vkBufferFormat               = VK_FORMAT_R8G8B8_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 3, 3, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8B8_UNORM:
+        case angle::FormatID::R8G8B8_UNORM:
             internalFormat             = GL_RGB8;
-            textureFormatID            = angle::Format::ID::R8G8B8A8_UNORM;
+            textureFormatID            = angle::FormatID::R8G8B8A8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8G8B8A8_UNORM;
             textureInitializerFunction = Initialize4ComponentData<GLubyte, 0x00, 0x00, 0x00, 0xFF>;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R8G8B8_UNORM, VK_FORMAT_R8G8B8_UNORM,
-                CopyNativeVertexData<GLubyte, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLubyte, 3, 3, true>);
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8B8_UNORM,
+                               VK_FORMAT_R8G8B8_UNORM, CopyNativeVertexData<GLubyte, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLubyte, 3, 3, true>);
             break;
 
-        case angle::Format::ID::R8G8B8_UNORM_SRGB:
+        case angle::FormatID::R8G8B8_UNORM_SRGB:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::R8G8B8_USCALED:
+        case angle::FormatID::R8G8B8_USCALED:
             internalFormat             = GL_RGB8_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8B8_USCALED;
+            textureFormatID            = angle::FormatID::R8G8B8_USCALED;
             vkTextureFormat            = VK_FORMAT_R8G8B8_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(
-                physicalDevice, angle::Format::ID::R8G8B8_USCALED, VK_FORMAT_R8G8B8_USCALED,
-                CopyNativeVertexData<GLubyte, 3, 3, 0>, false, angle::Format::ID::R32G32B32_FLOAT,
-                VK_FORMAT_R32G32B32_SFLOAT, CopyTo32FVertexData<GLubyte, 3, 3, false>);
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8B8_USCALED,
+                               VK_FORMAT_R8G8B8_USCALED, CopyNativeVertexData<GLubyte, 3, 3, 0>,
+                               false, angle::FormatID::R32G32B32_FLOAT, VK_FORMAT_R32G32B32_SFLOAT,
+                               CopyTo32FVertexData<GLubyte, 3, 3, false>);
             break;
 
-        case angle::Format::ID::R8G8_SINT:
+        case angle::FormatID::R8G8_SINT:
             internalFormat               = GL_RG8I;
-            textureFormatID              = angle::Format::ID::R8G8_SINT;
+            textureFormatID              = angle::FormatID::R8G8_SINT;
             vkTextureFormat              = VK_FORMAT_R8G8_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8_SINT;
+            bufferFormatID               = angle::FormatID::R8G8_SINT;
             vkBufferFormat               = VK_FORMAT_R8G8_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8_SNORM:
+        case angle::FormatID::R8G8_SNORM:
             internalFormat             = GL_RG8_SNORM;
-            textureFormatID            = angle::Format::ID::R8G8_SNORM;
+            textureFormatID            = angle::FormatID::R8G8_SNORM;
             vkTextureFormat            = VK_FORMAT_R8G8_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8_SNORM, VK_FORMAT_R8G8_SNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8_SNORM, VK_FORMAT_R8G8_SNORM,
                                CopyNativeVertexData<GLbyte, 2, 2, 0>, false,
-                               angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLbyte, 2, 2, true>);
             break;
 
-        case angle::Format::ID::R8G8_SSCALED:
+        case angle::FormatID::R8G8_SSCALED:
             internalFormat             = GL_RG8_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8_SSCALED;
+            textureFormatID            = angle::FormatID::R8G8_SSCALED;
             vkTextureFormat            = VK_FORMAT_R8G8_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8_SSCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8_SSCALED,
                                VK_FORMAT_R8G8_SSCALED, CopyNativeVertexData<GLbyte, 2, 2, 0>, false,
-                               angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLbyte, 2, 2, false>);
             break;
 
-        case angle::Format::ID::R8G8_UINT:
+        case angle::FormatID::R8G8_UINT:
             internalFormat               = GL_RG8UI;
-            textureFormatID              = angle::Format::ID::R8G8_UINT;
+            textureFormatID              = angle::FormatID::R8G8_UINT;
             vkTextureFormat              = VK_FORMAT_R8G8_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8G8_UINT;
+            bufferFormatID               = angle::FormatID::R8G8_UINT;
             vkBufferFormat               = VK_FORMAT_R8G8_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 2, 2, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8G8_UNORM:
+        case angle::FormatID::R8G8_UNORM:
             internalFormat             = GL_RG8;
-            textureFormatID            = angle::Format::ID::R8G8_UNORM;
+            textureFormatID            = angle::FormatID::R8G8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8G8_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8_UNORM, VK_FORMAT_R8G8_UNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8_UNORM, VK_FORMAT_R8G8_UNORM,
                                CopyNativeVertexData<GLubyte, 2, 2, 0>, false,
-                               angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLubyte, 2, 2, true>);
             break;
 
-        case angle::Format::ID::R8G8_USCALED:
+        case angle::FormatID::R8G8_USCALED:
             internalFormat             = GL_RG8_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8G8_USCALED;
+            textureFormatID            = angle::FormatID::R8G8_USCALED;
             vkTextureFormat            = VK_FORMAT_R8G8_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8G8_USCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R8G8_USCALED,
                                VK_FORMAT_R8G8_USCALED, CopyNativeVertexData<GLubyte, 2, 2, 0>,
-                               false, angle::Format::ID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
+                               false, angle::FormatID::R32G32_FLOAT, VK_FORMAT_R32G32_SFLOAT,
                                CopyTo32FVertexData<GLubyte, 2, 2, false>);
             break;
 
-        case angle::Format::ID::R8_SINT:
+        case angle::FormatID::R8_SINT:
             internalFormat               = GL_R8I;
-            textureFormatID              = angle::Format::ID::R8_SINT;
+            textureFormatID              = angle::FormatID::R8_SINT;
             vkTextureFormat              = VK_FORMAT_R8_SINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8_SINT;
+            bufferFormatID               = angle::FormatID::R8_SINT;
             vkBufferFormat               = VK_FORMAT_R8_SINT;
             vertexLoadFunction           = CopyNativeVertexData<GLbyte, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8_SNORM:
+        case angle::FormatID::R8_SNORM:
             internalFormat             = GL_R8_SNORM;
-            textureFormatID            = angle::Format::ID::R8_SNORM;
+            textureFormatID            = angle::FormatID::R8_SNORM;
             vkTextureFormat            = VK_FORMAT_R8_SNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8_SNORM, VK_FORMAT_R8_SNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R8_SNORM, VK_FORMAT_R8_SNORM,
                                CopyNativeVertexData<GLbyte, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLbyte, 1, 1, true>);
             break;
 
-        case angle::Format::ID::R8_SSCALED:
+        case angle::FormatID::R8_SSCALED:
             internalFormat             = GL_R8_SSCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8_SSCALED;
+            textureFormatID            = angle::FormatID::R8_SSCALED;
             vkTextureFormat            = VK_FORMAT_R8_SSCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8_SSCALED, VK_FORMAT_R8_SSCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R8_SSCALED, VK_FORMAT_R8_SSCALED,
                                CopyNativeVertexData<GLbyte, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLbyte, 1, 1, false>);
             break;
 
-        case angle::Format::ID::R8_UINT:
+        case angle::FormatID::R8_UINT:
             internalFormat               = GL_R8UI;
-            textureFormatID              = angle::Format::ID::R8_UINT;
+            textureFormatID              = angle::FormatID::R8_UINT;
             vkTextureFormat              = VK_FORMAT_R8_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::R8_UINT;
+            bufferFormatID               = angle::FormatID::R8_UINT;
             vkBufferFormat               = VK_FORMAT_R8_UINT;
             vertexLoadFunction           = CopyNativeVertexData<GLubyte, 1, 1, 0>;
             vertexLoadRequiresConversion = false;
             break;
 
-        case angle::Format::ID::R8_UNORM:
+        case angle::FormatID::R8_UNORM:
             internalFormat             = GL_R8;
-            textureFormatID            = angle::Format::ID::R8_UNORM;
+            textureFormatID            = angle::FormatID::R8_UNORM;
             vkTextureFormat            = VK_FORMAT_R8_UNORM;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8_UNORM, VK_FORMAT_R8_UNORM,
+            initBufferFallback(physicalDevice, angle::FormatID::R8_UNORM, VK_FORMAT_R8_UNORM,
                                CopyNativeVertexData<GLubyte, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLubyte, 1, 1, true>);
             break;
 
-        case angle::Format::ID::R8_USCALED:
+        case angle::FormatID::R8_USCALED:
             internalFormat             = GL_R8_USCALED_ANGLEX;
-            textureFormatID            = angle::Format::ID::R8_USCALED;
+            textureFormatID            = angle::FormatID::R8_USCALED;
             vkTextureFormat            = VK_FORMAT_R8_USCALED;
             textureInitializerFunction = nullptr;
-            initBufferFallback(physicalDevice, angle::Format::ID::R8_USCALED, VK_FORMAT_R8_USCALED,
+            initBufferFallback(physicalDevice, angle::FormatID::R8_USCALED, VK_FORMAT_R8_USCALED,
                                CopyNativeVertexData<GLubyte, 1, 1, 0>, false,
-                               angle::Format::ID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
+                               angle::FormatID::R32_FLOAT, VK_FORMAT_R32_SFLOAT,
                                CopyTo32FVertexData<GLubyte, 1, 1, false>);
             break;
 
-        case angle::Format::ID::R9G9B9E5_SHAREDEXP:
+        case angle::FormatID::R9G9B9E5_SHAREDEXP:
             // This format is not implemented in Vulkan.
             break;
 
-        case angle::Format::ID::S8_UINT:
+        case angle::FormatID::S8_UINT:
             internalFormat               = GL_STENCIL_INDEX8;
-            textureFormatID              = angle::Format::ID::S8_UINT;
+            textureFormatID              = angle::FormatID::S8_UINT;
             vkTextureFormat              = VK_FORMAT_S8_UINT;
             textureInitializerFunction   = nullptr;
-            bufferFormatID               = angle::Format::ID::S8_UINT;
+            bufferFormatID               = angle::FormatID::S8_UINT;
             vkBufferFormat               = VK_FORMAT_S8_UINT;
             vertexLoadFunction           = nullptr;
             vertexLoadRequiresConversion = false;
diff --git a/src/libANGLE/renderer/vulkan/vk_format_utils.cpp b/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
index 120f392..9cf2469 100644
--- a/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
+++ b/src/libANGLE/renderer/vulkan/vk_format_utils.cpp
@@ -93,11 +93,11 @@
 
 // Format implementation.
 Format::Format()
-    : angleFormatID(angle::Format::ID::NONE),
+    : angleFormatID(angle::FormatID::NONE),
       internalFormat(GL_NONE),
-      textureFormatID(angle::Format::ID::NONE),
+      textureFormatID(angle::FormatID::NONE),
       vkTextureFormat(VK_FORMAT_UNDEFINED),
-      bufferFormatID(angle::Format::ID::NONE),
+      bufferFormatID(angle::FormatID::NONE),
       vkBufferFormat(VK_FORMAT_UNDEFINED),
       textureInitializerFunction(nullptr),
       textureLoadFunctions()
@@ -105,15 +105,15 @@
 }
 
 void Format::initTextureFallback(VkPhysicalDevice physicalDevice,
-                                 angle::Format::ID format,
+                                 angle::FormatID format,
                                  VkFormat vkFormat,
                                  InitializeTextureDataFunction initializer,
-                                 angle::Format::ID fallbackFormat,
+                                 angle::FormatID fallbackFormat,
                                  VkFormat fallbackVkFormat,
                                  InitializeTextureDataFunction fallbackInitializer)
 {
-    ASSERT(format != angle::Format::ID::NONE);
-    ASSERT(fallbackFormat != angle::Format::ID::NONE);
+    ASSERT(format != angle::FormatID::NONE);
+    ASSERT(fallbackFormat != angle::FormatID::NONE);
 
     if (HasFullTextureFormatSupport(physicalDevice, vkFormat))
     {
@@ -131,16 +131,16 @@
 }
 
 void Format::initBufferFallback(VkPhysicalDevice physicalDevice,
-                                angle::Format::ID format,
+                                angle::FormatID format,
                                 VkFormat vkFormat,
                                 VertexCopyFunction function,
                                 bool functionConverts,
-                                angle::Format::ID fallbackFormat,
+                                angle::FormatID fallbackFormat,
                                 VkFormat fallbackVkFormat,
                                 VertexCopyFunction fallbackFunction)
 {
-    ASSERT(format != angle::Format::ID::NONE);
-    ASSERT(fallbackFormat != angle::Format::ID::NONE);
+    ASSERT(format != angle::FormatID::NONE);
+    ASSERT(fallbackFormat != angle::FormatID::NONE);
 
     if (HasFullBufferFormatSupport(physicalDevice, vkFormat))
     {
@@ -199,7 +199,7 @@
 {
     for (size_t formatIndex = 0; formatIndex < angle::kNumANGLEFormats; ++formatIndex)
     {
-        const auto formatID              = static_cast<angle::Format::ID>(formatIndex);
+        const auto formatID              = static_cast<angle::FormatID>(formatIndex);
         const angle::Format &angleFormat = angle::Format::Get(formatID);
         mFormatData[formatIndex].initialize(physicalDevice, angleFormat);
         const GLenum internalFormat = mFormatData[formatIndex].internalFormat;
@@ -231,11 +231,11 @@
 
 const Format &FormatTable::operator[](GLenum internalFormat) const
 {
-    angle::Format::ID formatID = angle::Format::InternalFormatToID(internalFormat);
+    angle::FormatID formatID = angle::Format::InternalFormatToID(internalFormat);
     return mFormatData[static_cast<size_t>(formatID)];
 }
 
-const Format &FormatTable::operator[](angle::Format::ID formatID) const
+const Format &FormatTable::operator[](angle::FormatID formatID) const
 {
     return mFormatData[static_cast<size_t>(formatID)];
 }
diff --git a/src/libANGLE/renderer/vulkan/vk_format_utils.h b/src/libANGLE/renderer/vulkan/vk_format_utils.h
index 1aa24f5..4c41600 100644
--- a/src/libANGLE/renderer/vulkan/vk_format_utils.h
+++ b/src/libANGLE/renderer/vulkan/vk_format_utils.h
@@ -43,19 +43,19 @@
     void initialize(VkPhysicalDevice physicalDevice, const angle::Format &angleFormat);
 
     void initTextureFallback(VkPhysicalDevice physicalDevice,
-                             angle::Format::ID format,
+                             angle::FormatID format,
                              VkFormat vkFormat,
                              InitializeTextureDataFunction initializer,
-                             angle::Format::ID fallbackFormat,
+                             angle::FormatID fallbackFormat,
                              VkFormat fallbackVkFormat,
                              InitializeTextureDataFunction fallbackInitializer);
 
     void initBufferFallback(VkPhysicalDevice physicalDevice,
-                            angle::Format::ID format,
+                            angle::FormatID format,
                             VkFormat vkFormat,
                             VertexCopyFunction function,
                             bool functionConverts,
-                            angle::Format::ID fallbackFormat,
+                            angle::FormatID fallbackFormat,
                             VkFormat fallbackVkFormat,
                             VertexCopyFunction fallbackFunction);
 
@@ -63,11 +63,11 @@
     const angle::Format &bufferFormat() const;
     const angle::Format &angleFormat() const;
 
-    angle::Format::ID angleFormatID;
+    angle::FormatID angleFormatID;
     GLenum internalFormat;
-    angle::Format::ID textureFormatID;
+    angle::FormatID textureFormatID;
     VkFormat vkTextureFormat;
-    angle::Format::ID bufferFormatID;
+    angle::FormatID bufferFormatID;
     VkFormat vkBufferFormat;
     InitializeTextureDataFunction textureInitializerFunction;
     LoadFunctionMap textureLoadFunctions;
@@ -90,10 +90,10 @@
                     std::vector<GLenum> *outCompressedTextureFormats);
 
     const Format &operator[](GLenum internalFormat) const;
-    const Format &operator[](angle::Format::ID formatID) const;
+    const Format &operator[](angle::FormatID formatID) const;
 
   private:
-    // The table data is indexed by angle::Format::ID.
+    // The table data is indexed by angle::FormatID.
     std::array<Format, angle::kNumANGLEFormats> mFormatData;
 };
 
diff --git a/src/libGLESv2.gypi b/src/libGLESv2.gypi
index 31a32e0..8d820fa 100644
--- a/src/libGLESv2.gypi
+++ b/src/libGLESv2.gypi
@@ -275,7 +275,7 @@
             'libANGLE/renderer/DisplayImpl.h',
             'libANGLE/renderer/EGLImplFactory.h',
             'libANGLE/renderer/FenceNVImpl.h',
-            'libANGLE/renderer/Format_ID_autogen.inl',
+            'libANGLE/renderer/FormatID_autogen.inc',
             'libANGLE/renderer/Format_table_autogen.cpp',
             'libANGLE/renderer/Format.h',
             'libANGLE/renderer/FramebufferAttachmentObjectImpl.h',