ast: Remove unsupported texel formats

Fixed: tint:1361
Change-Id: Idcf98713d9a380e56811bea6419913714d602103
Reviewed-on: https://dawn-review.googlesource.com/c/tint/+/75582
Reviewed-by: David Neto <dneto@google.com>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Ben Clayton <bclayton@google.com>
diff --git a/src/ast/storage_texture.cc b/src/ast/storage_texture.cc
index b074f5d..82105ce 100644
--- a/src/ast/storage_texture.cc
+++ b/src/ast/storage_texture.cc
@@ -31,39 +31,6 @@
     case TexelFormat::kNone:
       out << "none";
       break;
-    case TexelFormat::kR8Unorm:
-      out << "r8unorm";
-      break;
-    case TexelFormat::kR8Snorm:
-      out << "r8snorm";
-      break;
-    case TexelFormat::kR8Uint:
-      out << "r8uint";
-      break;
-    case TexelFormat::kR8Sint:
-      out << "r8sint";
-      break;
-    case TexelFormat::kR16Uint:
-      out << "r16uint";
-      break;
-    case TexelFormat::kR16Sint:
-      out << "r16sint";
-      break;
-    case TexelFormat::kR16Float:
-      out << "r16float";
-      break;
-    case TexelFormat::kRg8Unorm:
-      out << "rg8unorm";
-      break;
-    case TexelFormat::kRg8Snorm:
-      out << "rg8snorm";
-      break;
-    case TexelFormat::kRg8Uint:
-      out << "rg8uint";
-      break;
-    case TexelFormat::kRg8Sint:
-      out << "rg8sint";
-      break;
     case TexelFormat::kR32Uint:
       out << "r32uint";
       break;
@@ -73,21 +40,9 @@
     case TexelFormat::kR32Float:
       out << "r32float";
       break;
-    case TexelFormat::kRg16Uint:
-      out << "rg16uint";
-      break;
-    case TexelFormat::kRg16Sint:
-      out << "rg16sint";
-      break;
-    case TexelFormat::kRg16Float:
-      out << "rg16float";
-      break;
     case TexelFormat::kRgba8Unorm:
       out << "rgba8unorm";
       break;
-    case TexelFormat::kRgba8UnormSrgb:
-      out << "rgba8unorm_srgb";
-      break;
     case TexelFormat::kRgba8Snorm:
       out << "rgba8snorm";
       break;
@@ -97,18 +52,6 @@
     case TexelFormat::kRgba8Sint:
       out << "rgba8sint";
       break;
-    case TexelFormat::kBgra8Unorm:
-      out << "bgra8unorm";
-      break;
-    case TexelFormat::kBgra8UnormSrgb:
-      out << "bgra8unorm_srgb";
-      break;
-    case TexelFormat::kRgb10A2Unorm:
-      out << "rgb10a2unorm";
-      break;
-    case TexelFormat::kRg11B10Float:
-      out << "rg11b10float";
-      break;
     case TexelFormat::kRg32Uint:
       out << "rg32uint";
       break;
@@ -167,11 +110,7 @@
 
 Type* StorageTexture::SubtypeFor(TexelFormat format, ProgramBuilder& builder) {
   switch (format) {
-    case TexelFormat::kR8Uint:
-    case TexelFormat::kR16Uint:
-    case TexelFormat::kRg8Uint:
     case TexelFormat::kR32Uint:
-    case TexelFormat::kRg16Uint:
     case TexelFormat::kRgba8Uint:
     case TexelFormat::kRg32Uint:
     case TexelFormat::kRgba16Uint:
@@ -179,11 +118,7 @@
       return builder.create<U32>();
     }
 
-    case TexelFormat::kR8Sint:
-    case TexelFormat::kR16Sint:
-    case TexelFormat::kRg8Sint:
     case TexelFormat::kR32Sint:
-    case TexelFormat::kRg16Sint:
     case TexelFormat::kRgba8Sint:
     case TexelFormat::kRg32Sint:
     case TexelFormat::kRgba16Sint:
@@ -191,20 +126,9 @@
       return builder.create<I32>();
     }
 
-    case TexelFormat::kR8Unorm:
-    case TexelFormat::kRg8Unorm:
     case TexelFormat::kRgba8Unorm:
-    case TexelFormat::kRgba8UnormSrgb:
-    case TexelFormat::kBgra8Unorm:
-    case TexelFormat::kBgra8UnormSrgb:
-    case TexelFormat::kRgb10A2Unorm:
-    case TexelFormat::kR8Snorm:
-    case TexelFormat::kRg8Snorm:
     case TexelFormat::kRgba8Snorm:
-    case TexelFormat::kR16Float:
     case TexelFormat::kR32Float:
-    case TexelFormat::kRg16Float:
-    case TexelFormat::kRg11B10Float:
     case TexelFormat::kRg32Float:
     case TexelFormat::kRgba16Float:
     case TexelFormat::kRgba32Float: {
diff --git a/src/ast/storage_texture.h b/src/ast/storage_texture.h
index 46cd2c8..30078ca 100644
--- a/src/ast/storage_texture.h
+++ b/src/ast/storage_texture.h
@@ -26,38 +26,19 @@
 /// The texel format in the storage texture
 enum class TexelFormat {
   kNone = -1,
-  kR8Unorm,
-  kR8Snorm,
-  kR8Uint,
-  kR8Sint,
-  kR16Uint,
-  kR16Sint,
-  kR16Float,
-  kRg8Unorm,
-  kRg8Snorm,
-  kRg8Uint,
-  kRg8Sint,
-  kR32Uint,
-  kR32Sint,
-  kR32Float,
-  kRg16Uint,
-  kRg16Sint,
-  kRg16Float,
   kRgba8Unorm,
-  kRgba8UnormSrgb,
   kRgba8Snorm,
   kRgba8Uint,
   kRgba8Sint,
-  kBgra8Unorm,
-  kBgra8UnormSrgb,
-  kRgb10A2Unorm,
-  kRg11B10Float,
-  kRg32Uint,
-  kRg32Sint,
-  kRg32Float,
   kRgba16Uint,
   kRgba16Sint,
   kRgba16Float,
+  kR32Uint,
+  kR32Sint,
+  kR32Float,
+  kRg32Uint,
+  kRg32Sint,
+  kRg32Float,
   kRgba32Uint,
   kRgba32Sint,
   kRgba32Float,
diff --git a/src/inspector/resource_binding.cc b/src/inspector/resource_binding.cc
index e0862ba..4589ea0 100644
--- a/src/inspector/resource_binding.cc
+++ b/src/inspector/resource_binding.cc
@@ -74,58 +74,20 @@
 ResourceBinding::TexelFormat TypeTexelFormatToResourceBindingTexelFormat(
     const ast::TexelFormat& image_format) {
   switch (image_format) {
-    case ast::TexelFormat::kR8Unorm:
-      return ResourceBinding::TexelFormat::kR8Unorm;
-    case ast::TexelFormat::kR8Snorm:
-      return ResourceBinding::TexelFormat::kR8Snorm;
-    case ast::TexelFormat::kR8Uint:
-      return ResourceBinding::TexelFormat::kR8Uint;
-    case ast::TexelFormat::kR8Sint:
-      return ResourceBinding::TexelFormat::kR8Sint;
-    case ast::TexelFormat::kR16Uint:
-      return ResourceBinding::TexelFormat::kR16Uint;
-    case ast::TexelFormat::kR16Sint:
-      return ResourceBinding::TexelFormat::kR16Sint;
-    case ast::TexelFormat::kR16Float:
-      return ResourceBinding::TexelFormat::kR16Float;
-    case ast::TexelFormat::kRg8Unorm:
-      return ResourceBinding::TexelFormat::kRg8Unorm;
-    case ast::TexelFormat::kRg8Snorm:
-      return ResourceBinding::TexelFormat::kRg8Snorm;
-    case ast::TexelFormat::kRg8Uint:
-      return ResourceBinding::TexelFormat::kRg8Uint;
-    case ast::TexelFormat::kRg8Sint:
-      return ResourceBinding::TexelFormat::kRg8Sint;
     case ast::TexelFormat::kR32Uint:
       return ResourceBinding::TexelFormat::kR32Uint;
     case ast::TexelFormat::kR32Sint:
       return ResourceBinding::TexelFormat::kR32Sint;
     case ast::TexelFormat::kR32Float:
       return ResourceBinding::TexelFormat::kR32Float;
-    case ast::TexelFormat::kRg16Uint:
-      return ResourceBinding::TexelFormat::kRg16Uint;
-    case ast::TexelFormat::kRg16Sint:
-      return ResourceBinding::TexelFormat::kRg16Sint;
-    case ast::TexelFormat::kRg16Float:
-      return ResourceBinding::TexelFormat::kRg16Float;
     case ast::TexelFormat::kRgba8Unorm:
       return ResourceBinding::TexelFormat::kRgba8Unorm;
-    case ast::TexelFormat::kRgba8UnormSrgb:
-      return ResourceBinding::TexelFormat::kRgba8UnormSrgb;
     case ast::TexelFormat::kRgba8Snorm:
       return ResourceBinding::TexelFormat::kRgba8Snorm;
     case ast::TexelFormat::kRgba8Uint:
       return ResourceBinding::TexelFormat::kRgba8Uint;
     case ast::TexelFormat::kRgba8Sint:
       return ResourceBinding::TexelFormat::kRgba8Sint;
-    case ast::TexelFormat::kBgra8Unorm:
-      return ResourceBinding::TexelFormat::kBgra8Unorm;
-    case ast::TexelFormat::kBgra8UnormSrgb:
-      return ResourceBinding::TexelFormat::kBgra8UnormSrgb;
-    case ast::TexelFormat::kRgb10A2Unorm:
-      return ResourceBinding::TexelFormat::kRgb10A2Unorm;
-    case ast::TexelFormat::kRg11B10Float:
-      return ResourceBinding::TexelFormat::kRg11B10Float;
     case ast::TexelFormat::kRg32Uint:
       return ResourceBinding::TexelFormat::kRg32Uint;
     case ast::TexelFormat::kRg32Sint:
diff --git a/src/inspector/resource_binding.h b/src/inspector/resource_binding.h
index cb84917..8f62cac 100644
--- a/src/inspector/resource_binding.h
+++ b/src/inspector/resource_binding.h
@@ -50,6 +50,26 @@
   /// Enumerator of texel image formats
   enum class TexelFormat {
     kNone = -1,
+
+    kRgba8Unorm,
+    kRgba8Snorm,
+    kRgba8Uint,
+    kRgba8Sint,
+    kRgba16Uint,
+    kRgba16Sint,
+    kRgba16Float,
+    kR32Uint,
+    kR32Sint,
+    kR32Float,
+    kRg32Uint,
+    kRg32Sint,
+    kRg32Float,
+    kRgba32Uint,
+    kRgba32Sint,
+    kRgba32Float,
+
+    // [DEPRECATED]
+    // The below are all deprecated, and will be removed.
     kR8Unorm,
     kR8Snorm,
     kR8Uint,
@@ -61,30 +81,14 @@
     kRg8Snorm,
     kRg8Uint,
     kRg8Sint,
-    kR32Uint,
-    kR32Sint,
-    kR32Float,
     kRg16Uint,
     kRg16Sint,
     kRg16Float,
-    kRgba8Unorm,
     kRgba8UnormSrgb,
-    kRgba8Snorm,
-    kRgba8Uint,
-    kRgba8Sint,
     kBgra8Unorm,
     kBgra8UnormSrgb,
     kRgb10A2Unorm,
     kRg11B10Float,
-    kRg32Uint,
-    kRg32Sint,
-    kRg32Float,
-    kRgba16Uint,
-    kRgba16Sint,
-    kRgba16Float,
-    kRgba32Uint,
-    kRgba32Sint,
-    kRgba32Float,
   };
 
   /// Renamed field [DEPRECATED]
diff --git a/src/reader/spirv/parser_impl.cc b/src/reader/spirv/parser_impl.cc
index 8a5f48b..287b0a8 100644
--- a/src/reader/spirv/parser_impl.cc
+++ b/src/reader/spirv/parser_impl.cc
@@ -2528,42 +2528,23 @@
 
 const Type* ParserImpl::GetComponentTypeForFormat(ast::TexelFormat format) {
   switch (format) {
-    case ast::TexelFormat::kR8Uint:
-    case ast::TexelFormat::kR16Uint:
-    case ast::TexelFormat::kRg8Uint:
     case ast::TexelFormat::kR32Uint:
-    case ast::TexelFormat::kRg16Uint:
     case ast::TexelFormat::kRgba8Uint:
     case ast::TexelFormat::kRg32Uint:
     case ast::TexelFormat::kRgba16Uint:
     case ast::TexelFormat::kRgba32Uint:
       return ty_.U32();
 
-    case ast::TexelFormat::kR8Sint:
-    case ast::TexelFormat::kR16Sint:
-    case ast::TexelFormat::kRg8Sint:
     case ast::TexelFormat::kR32Sint:
-    case ast::TexelFormat::kRg16Sint:
     case ast::TexelFormat::kRgba8Sint:
     case ast::TexelFormat::kRg32Sint:
     case ast::TexelFormat::kRgba16Sint:
     case ast::TexelFormat::kRgba32Sint:
       return ty_.I32();
 
-    case ast::TexelFormat::kR8Unorm:
-    case ast::TexelFormat::kRg8Unorm:
     case ast::TexelFormat::kRgba8Unorm:
-    case ast::TexelFormat::kRgba8UnormSrgb:
-    case ast::TexelFormat::kBgra8Unorm:
-    case ast::TexelFormat::kBgra8UnormSrgb:
-    case ast::TexelFormat::kRgb10A2Unorm:
-    case ast::TexelFormat::kR8Snorm:
-    case ast::TexelFormat::kRg8Snorm:
     case ast::TexelFormat::kRgba8Snorm:
-    case ast::TexelFormat::kR16Float:
     case ast::TexelFormat::kR32Float:
-    case ast::TexelFormat::kRg16Float:
-    case ast::TexelFormat::kRg11B10Float:
     case ast::TexelFormat::kRg32Float:
     case ast::TexelFormat::kRgba16Float:
     case ast::TexelFormat::kRgba32Float:
@@ -2577,36 +2558,18 @@
 
 unsigned ParserImpl::GetChannelCountForFormat(ast::TexelFormat format) {
   switch (format) {
-    case ast::TexelFormat::kR16Float:
-    case ast::TexelFormat::kR16Sint:
-    case ast::TexelFormat::kR16Uint:
     case ast::TexelFormat::kR32Float:
     case ast::TexelFormat::kR32Sint:
     case ast::TexelFormat::kR32Uint:
-    case ast::TexelFormat::kR8Sint:
-    case ast::TexelFormat::kR8Snorm:
-    case ast::TexelFormat::kR8Uint:
-    case ast::TexelFormat::kR8Unorm:
       // One channel
       return 1;
 
-    case ast::TexelFormat::kRg11B10Float:
-    case ast::TexelFormat::kRg16Float:
-    case ast::TexelFormat::kRg16Sint:
-    case ast::TexelFormat::kRg16Uint:
     case ast::TexelFormat::kRg32Float:
     case ast::TexelFormat::kRg32Sint:
     case ast::TexelFormat::kRg32Uint:
-    case ast::TexelFormat::kRg8Sint:
-    case ast::TexelFormat::kRg8Snorm:
-    case ast::TexelFormat::kRg8Uint:
-    case ast::TexelFormat::kRg8Unorm:
       // Two channels
       return 2;
 
-    case ast::TexelFormat::kBgra8Unorm:
-    case ast::TexelFormat::kBgra8UnormSrgb:
-    case ast::TexelFormat::kRgb10A2Unorm:
     case ast::TexelFormat::kRgba16Float:
     case ast::TexelFormat::kRgba16Sint:
     case ast::TexelFormat::kRgba16Uint:
@@ -2617,7 +2580,6 @@
     case ast::TexelFormat::kRgba8Snorm:
     case ast::TexelFormat::kRgba8Uint:
     case ast::TexelFormat::kRgba8Unorm:
-    case ast::TexelFormat::kRgba8UnormSrgb:
       // Four channels
       return 4;
 
diff --git a/src/reader/spirv/parser_type_test.cc b/src/reader/spirv/parser_type_test.cc
index c683cdd..dde9a01 100644
--- a/src/reader/spirv/parser_type_test.cc
+++ b/src/reader/spirv/parser_type_test.cc
@@ -46,9 +46,9 @@
   EXPECT_EQ(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()),
             ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()));
   EXPECT_EQ(ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead),
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead),
             ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead));
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead));
 }
 
 TEST(SpvParserTypeTest, DifferentArgumentsGivesDifferentPointer) {
@@ -83,17 +83,17 @@
   EXPECT_NE(ty.SampledTexture(ast::TextureDimension::k2d, ty.I32()),
             ty.SampledTexture(ast::TextureDimension::k2d, ty.U32()));
   EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead),
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead),
             ty.StorageTexture(ast::TextureDimension::k3d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead));
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead));
   EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead),
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead),
             ty.StorageTexture(ast::TextureDimension::k2d,
                               ast::TexelFormat::kR32Sint, ast::Access::kRead));
   EXPECT_NE(ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kRead),
+                              ast::TexelFormat::kR32Uint, ast::Access::kRead),
             ty.StorageTexture(ast::TextureDimension::k2d,
-                              ast::TexelFormat::kR16Sint, ast::Access::kWrite));
+                              ast::TexelFormat::kR32Uint, ast::Access::kWrite));
 }
 
 }  // namespace
diff --git a/src/reader/wgsl/parser_impl.cc b/src/reader/wgsl/parser_impl.cc
index adb259b..719e1b9 100644
--- a/src/reader/wgsl/parser_impl.cc
+++ b/src/reader/wgsl/parser_impl.cc
@@ -745,139 +745,30 @@
   return Failure::kNoMatch;
 }
 
-// image_storage_type
-//  : R8UNORM
-//  | R8SNORM
-//  | R8UINT
-//  | R8SINT
-//  | R16UINT
-//  | R16SINT
-//  | R16FLOAT
-//  | RG8UNORM
-//  | RG8SNORM
-//  | RG8UINT
-//  | RG8SINT
-//  | R32UINT
-//  | R32SINT
-//  | R32FLOAT
-//  | RG16UINT
-//  | RG16SINT
-//  | RG16FLOAT
-//  | RGBA8UNORM
-/// | RGBA8UNORM-SRGB
-//  | RGBA8SNORM
-//  | RGBA8UINT
-//  | RGBA8SINT
-//  | BGRA8UNORM
-//  | BGRA8UNORM-SRGB
-//  | RGB10A2UNORM
-//  | RG11B10FLOAT
-//  | RG32UINT
-//  | RG32SINT
-//  | RG32FLOAT
-//  | RGBA16UINT
-//  | RGBA16SINT
-//  | RGBA16FLOAT
-//  | RGBA32UINT
-//  | RGBA32SINT
-//  | RGBA32FLOAT
+// texel_format
+//  : 'rgba8unorm'
+//  | 'rgba8snorm'
+//  | 'rgba8uint'
+//  | 'rgba8sint'
+//  | 'rgba16uint'
+//  | 'rgba16sint'
+//  | 'rgba16float'
+//  | 'r32uint'
+//  | 'r32sint'
+//  | 'r32float'
+//  | 'rg32uint'
+//  | 'rg32sint'
+//  | 'rg32float'
+//  | 'rgba32uint'
+//  | 'rgba32sint'
+//  | 'rgba32float'
 Expect<ast::TexelFormat> ParserImpl::expect_texel_format(
     const std::string& use) {
   auto tok = next();
   if (tok.IsIdentifier()) {
     auto s = tok.to_str();
-    if (s == "bgra8unorm") {
-      return ast::TexelFormat::kBgra8Unorm;
-    }
-    if (s == "bgra8unorm_srgb") {
-      return ast::TexelFormat::kBgra8UnormSrgb;
-    }
-    if (s == "r16float") {
-      return ast::TexelFormat::kR16Float;
-    }
-    if (s == "r16sint") {
-      return ast::TexelFormat::kR16Sint;
-    }
-    if (s == "r16uint") {
-      return ast::TexelFormat::kR16Uint;
-    }
-    if (s == "r32float") {
-      return ast::TexelFormat::kR32Float;
-    }
-    if (s == "r32sint") {
-      return ast::TexelFormat::kR32Sint;
-    }
-    if (s == "r32uint") {
-      return ast::TexelFormat::kR32Uint;
-    }
-    if (s == "r8sint") {
-      return ast::TexelFormat::kR8Sint;
-    }
-    if (s == "r8snorm") {
-      return ast::TexelFormat::kR8Snorm;
-    }
-    if (s == "r8uint") {
-      return ast::TexelFormat::kR8Uint;
-    }
-    if (s == "r8unorm") {
-      return ast::TexelFormat::kR8Unorm;
-    }
-    if (s == "rg11b10float") {
-      return ast::TexelFormat::kRg11B10Float;
-    }
-    if (s == "rg16float") {
-      return ast::TexelFormat::kRg16Float;
-    }
-    if (s == "rg16sint") {
-      return ast::TexelFormat::kRg16Sint;
-    }
-    if (s == "rg16uint") {
-      return ast::TexelFormat::kRg16Uint;
-    }
-    if (s == "rg32float") {
-      return ast::TexelFormat::kRg32Float;
-    }
-    if (s == "rg32sint") {
-      return ast::TexelFormat::kRg32Sint;
-    }
-    if (s == "rg32uint") {
-      return ast::TexelFormat::kRg32Uint;
-    }
-    if (s == "rg8sint") {
-      return ast::TexelFormat::kRg8Sint;
-    }
-    if (s == "rg8snorm") {
-      return ast::TexelFormat::kRg8Snorm;
-    }
-    if (s == "rg8uint") {
-      return ast::TexelFormat::kRg8Uint;
-    }
-    if (s == "rg8unorm") {
-      return ast::TexelFormat::kRg8Unorm;
-    }
-    if (s == "rgb10a2unorm") {
-      return ast::TexelFormat::kRgb10A2Unorm;
-    }
-    if (s == "rgba16float") {
-      return ast::TexelFormat::kRgba16Float;
-    }
-    if (s == "rgba16sint") {
-      return ast::TexelFormat::kRgba16Sint;
-    }
-    if (s == "rgba16uint") {
-      return ast::TexelFormat::kRgba16Uint;
-    }
-    if (s == "rgba32float") {
-      return ast::TexelFormat::kRgba32Float;
-    }
-    if (s == "rgba32sint") {
-      return ast::TexelFormat::kRgba32Sint;
-    }
-    if (s == "rgba32uint") {
-      return ast::TexelFormat::kRgba32Uint;
-    }
-    if (s == "rgba8sint") {
-      return ast::TexelFormat::kRgba8Sint;
+    if (s == "rgba8unorm") {
+      return ast::TexelFormat::kRgba8Unorm;
     }
     if (s == "rgba8snorm") {
       return ast::TexelFormat::kRgba8Snorm;
@@ -885,11 +776,44 @@
     if (s == "rgba8uint") {
       return ast::TexelFormat::kRgba8Uint;
     }
-    if (s == "rgba8unorm") {
-      return ast::TexelFormat::kRgba8Unorm;
+    if (s == "rgba8sint") {
+      return ast::TexelFormat::kRgba8Sint;
     }
-    if (s == "rgba8unorm_srgb") {
-      return ast::TexelFormat::kRgba8UnormSrgb;
+    if (s == "rgba16uint") {
+      return ast::TexelFormat::kRgba16Uint;
+    }
+    if (s == "rgba16sint") {
+      return ast::TexelFormat::kRgba16Sint;
+    }
+    if (s == "rgba16float") {
+      return ast::TexelFormat::kRgba16Float;
+    }
+    if (s == "r32uint") {
+      return ast::TexelFormat::kR32Uint;
+    }
+    if (s == "r32sint") {
+      return ast::TexelFormat::kR32Sint;
+    }
+    if (s == "r32float") {
+      return ast::TexelFormat::kR32Float;
+    }
+    if (s == "rg32uint") {
+      return ast::TexelFormat::kRg32Uint;
+    }
+    if (s == "rg32sint") {
+      return ast::TexelFormat::kRg32Sint;
+    }
+    if (s == "rg32float") {
+      return ast::TexelFormat::kRg32Float;
+    }
+    if (s == "rgba32uint") {
+      return ast::TexelFormat::kRgba32Uint;
+    }
+    if (s == "rgba32sint") {
+      return ast::TexelFormat::kRgba32Sint;
+    }
+    if (s == "rgba32float") {
+      return ast::TexelFormat::kRgba32Float;
     }
   }
   return add_error(tok.source(), "invalid format", use);
diff --git a/src/reader/wgsl/parser_impl_error_msg_test.cc b/src/reader/wgsl/parser_impl_error_msg_test.cc
index 7c1d391..6d1ff74 100644
--- a/src/reader/wgsl/parser_impl_error_msg_test.cc
+++ b/src/reader/wgsl/parser_impl_error_msg_test.cc
@@ -585,10 +585,10 @@
 }
 
 TEST_F(ParserImplErrorTest, GlobalDeclStorageTextureMissingGreaterThan) {
-  EXPECT("var x : texture_storage_2d<r8uint, read;",
-         "test.wgsl:1:40 error: expected '>' for storage texture type\n"
-         "var x : texture_storage_2d<r8uint, read;\n"
-         "                                       ^\n");
+  EXPECT("var x : texture_storage_2d<r32uint, read;",
+         "test.wgsl:1:41 error: expected '>' for storage texture type\n"
+         "var x : texture_storage_2d<r32uint, read;\n"
+         "                                        ^\n");
 }
 
 TEST_F(ParserImplErrorTest, GlobalDeclStorageTextureMissingSubtype) {
diff --git a/src/reader/wgsl/parser_impl_texel_format_test.cc b/src/reader/wgsl/parser_impl_texel_format_test.cc
index 8a0d5a7..86955ae 100644
--- a/src/reader/wgsl/parser_impl_texel_format_test.cc
+++ b/src/reader/wgsl/parser_impl_texel_format_test.cc
@@ -27,94 +27,6 @@
   EXPECT_EQ(p->error(), "1:1: invalid format for test");
 }
 
-TEST_F(ParserImplTest, ImageStorageType_R8Unorm) {
-  auto p = parser("r8unorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR8Unorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R8Snorm) {
-  auto p = parser("r8snorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR8Snorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R8Uint) {
-  auto p = parser("r8uint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR8Uint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R8Sint) {
-  auto p = parser("r8sint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR8Sint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R16Uint) {
-  auto p = parser("r16uint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR16Uint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R16Sint) {
-  auto p = parser("r16sint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR16Sint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_R16Float) {
-  auto p = parser("r16float");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kR16Float);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg8Unorm) {
-  auto p = parser("rg8unorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg8Unorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg8Snorm) {
-  auto p = parser("rg8snorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg8Snorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg8Uint) {
-  auto p = parser("rg8uint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg8Uint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg8Sint) {
-  auto p = parser("rg8sint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg8Sint);
-  EXPECT_FALSE(p->has_error());
-}
-
 TEST_F(ParserImplTest, ImageStorageType_R32Uint) {
   auto p = parser("r32uint");
   auto t = p->expect_texel_format("test");
@@ -139,30 +51,6 @@
   EXPECT_FALSE(p->has_error());
 }
 
-TEST_F(ParserImplTest, ImageStorageType_Rg16Uint) {
-  auto p = parser("rg16uint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg16Uint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg16Sint) {
-  auto p = parser("rg16sint");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg16Sint);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg16Float) {
-  auto p = parser("rg16float");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg16Float);
-  EXPECT_FALSE(p->has_error());
-}
-
 TEST_F(ParserImplTest, ImageStorageType_Rgba8Unorm) {
   auto p = parser("rgba8unorm");
   auto t = p->expect_texel_format("test");
@@ -171,14 +59,6 @@
   EXPECT_FALSE(p->has_error());
 }
 
-TEST_F(ParserImplTest, ImageStorageType_Rgba8UnormSrgb) {
-  auto p = parser("rgba8unorm_srgb");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRgba8UnormSrgb);
-  EXPECT_FALSE(p->has_error());
-}
-
 TEST_F(ParserImplTest, ImageStorageType_Rgba8Snorm) {
   auto p = parser("rgba8snorm");
   auto t = p->expect_texel_format("test");
@@ -203,38 +83,6 @@
   EXPECT_FALSE(p->has_error());
 }
 
-TEST_F(ParserImplTest, ImageStorageType_Bgra8Unorm) {
-  auto p = parser("bgra8unorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kBgra8Unorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Bgra8UnormSrgb) {
-  auto p = parser("bgra8unorm_srgb");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kBgra8UnormSrgb);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rgb10A2Unorm) {
-  auto p = parser("rgb10a2unorm");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRgb10A2Unorm);
-  EXPECT_FALSE(p->has_error());
-}
-
-TEST_F(ParserImplTest, ImageStorageType_Rg11B10Float) {
-  auto p = parser("rg11b10float");
-  auto t = p->expect_texel_format("test");
-  EXPECT_FALSE(t.errored);
-  EXPECT_EQ(t.value, ast::TexelFormat::kRg11B10Float);
-  EXPECT_FALSE(p->has_error());
-}
-
 TEST_F(ParserImplTest, ImageStorageType_Rg32Uint) {
   auto p = parser("rg32uint");
   auto t = p->expect_texel_format("test");
diff --git a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
index 0b4af5c..214bd72 100644
--- a/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
+++ b/src/reader/wgsl/parser_impl_texture_sampler_types_test.cc
@@ -184,8 +184,8 @@
   EXPECT_EQ(p->error(), "1:28: expected '>' for multisampled texture type");
 }
 
-TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dR8Unorm) {
-  auto p = parser("texture_storage_1d<r8unorm, read>");
+TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Readonly1dRg32Float) {
+  auto p = parser("texture_storage_1d<rg32float, read>");
   auto t = p->texture_sampler_types();
   ASSERT_FALSE(p->has_error()) << p->error();
   EXPECT_TRUE(t.matched);
@@ -194,14 +194,14 @@
 
   ASSERT_TRUE(t->Is<ast::Texture>());
   ASSERT_TRUE(t->Is<ast::StorageTexture>());
-  EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kR8Unorm);
+  EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kRg32Float);
   EXPECT_EQ(t->As<ast::StorageTexture>()->access, ast::Access::kRead);
   EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k1d);
-  EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 34u}}));
+  EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 36u}}));
 }
 
-TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR16Float) {
-  auto p = parser("texture_storage_2d<r16float, write>");
+TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_Writeonly2dR32Uint) {
+  auto p = parser("texture_storage_2d<r32uint, write>");
   auto t = p->texture_sampler_types();
   ASSERT_FALSE(p->has_error()) << p->error();
   EXPECT_TRUE(t.matched);
@@ -210,10 +210,10 @@
 
   ASSERT_TRUE(t->Is<ast::Texture>());
   ASSERT_TRUE(t->Is<ast::StorageTexture>());
-  EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kR16Float);
+  EXPECT_EQ(t->As<ast::StorageTexture>()->format, ast::TexelFormat::kR32Uint);
   EXPECT_EQ(t->As<ast::StorageTexture>()->access, ast::Access::kWrite);
   EXPECT_EQ(t->As<ast::Texture>()->dim, ast::TextureDimension::k2d);
-  EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 36u}}));
+  EXPECT_EQ(t->source.range, (Source::Range{{1u, 1u}, {1u, 35u}}));
 }
 
 TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidType) {
@@ -226,7 +226,7 @@
 }
 
 TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_InvalidAccess) {
-  auto p = parser("texture_storage_1d<r16float, abc>");
+  auto p = parser("texture_storage_1d<r32float, abc>");
   auto t = p->texture_sampler_types();
   EXPECT_EQ(t.value, nullptr);
   EXPECT_FALSE(t.matched);
@@ -253,7 +253,7 @@
 }
 
 TEST_F(ParserImplTest, TextureSamplerTypes_StorageTexture_MissingGreaterThan) {
-  auto p = parser("texture_storage_1d<r8unorm, read");
+  auto p = parser("texture_storage_1d<r32uint, read");
   auto t = p->texture_sampler_types();
   EXPECT_EQ(t.value, nullptr);
   EXPECT_FALSE(t.matched);
diff --git a/src/resolver/dependency_graph_test.cc b/src/resolver/dependency_graph_test.cc
index 7186ef9..17364e6 100644
--- a/src/resolver/dependency_graph_test.cc
+++ b/src/resolver/dependency_graph_test.cc
@@ -1316,7 +1316,7 @@
   Global(Sym(), ty.external_texture());
   Global(Sym(), ty.multisampled_texture(ast::TextureDimension::k2d, T));
   Global(Sym(), ty.storage_texture(ast::TextureDimension::k2d,
-                                   ast::TexelFormat::kR16Float,
+                                   ast::TexelFormat::kR32Float,
                                    ast::Access::kRead));  //
   Global(Sym(), ty.sampler(ast::SamplerKind::kSampler));
   Func(Sym(), {}, ty.void_(), {});
diff --git a/src/resolver/intrinsic_test.cc b/src/resolver/intrinsic_test.cc
index ffe9388..57b0342 100644
--- a/src/resolver/intrinsic_test.cc
+++ b/src/resolver/intrinsic_test.cc
@@ -222,7 +222,7 @@
 struct TextureTestParams {
   ast::TextureDimension dim;
   Texture type = Texture::kF32;
-  ast::TexelFormat format = ast::TexelFormat::kR16Float;
+  ast::TexelFormat format = ast::TexelFormat::kR32Float;
 };
 inline std::ostream& operator<<(std::ostream& out, TextureTestParams data) {
   out << data.dim << "_" << data.type;
diff --git a/src/resolver/type_validation_test.cc b/src/resolver/type_validation_test.cc
index 9da7dfa..2592246 100644
--- a/src/resolver/type_validation_test.cc
+++ b/src/resolver/type_validation_test.cc
@@ -861,30 +861,12 @@
 };
 
 static constexpr FormatParams format_cases[] = {
-    FormatParams{ast::TexelFormat::kBgra8Unorm, false},
-    FormatParams{ast::TexelFormat::kBgra8UnormSrgb, false},
-    FormatParams{ast::TexelFormat::kR16Float, false},
-    FormatParams{ast::TexelFormat::kR16Sint, false},
-    FormatParams{ast::TexelFormat::kR16Uint, false},
     FormatParams{ast::TexelFormat::kR32Float, true},
     FormatParams{ast::TexelFormat::kR32Sint, true},
     FormatParams{ast::TexelFormat::kR32Uint, true},
-    FormatParams{ast::TexelFormat::kR8Sint, false},
-    FormatParams{ast::TexelFormat::kR8Snorm, false},
-    FormatParams{ast::TexelFormat::kR8Uint, false},
-    FormatParams{ast::TexelFormat::kR8Unorm, false},
-    FormatParams{ast::TexelFormat::kRg11B10Float, false},
-    FormatParams{ast::TexelFormat::kRg16Float, false},
-    FormatParams{ast::TexelFormat::kRg16Sint, false},
-    FormatParams{ast::TexelFormat::kRg16Uint, false},
     FormatParams{ast::TexelFormat::kRg32Float, true},
     FormatParams{ast::TexelFormat::kRg32Sint, true},
     FormatParams{ast::TexelFormat::kRg32Uint, true},
-    FormatParams{ast::TexelFormat::kRg8Sint, false},
-    FormatParams{ast::TexelFormat::kRg8Snorm, false},
-    FormatParams{ast::TexelFormat::kRg8Uint, false},
-    FormatParams{ast::TexelFormat::kRg8Unorm, false},
-    FormatParams{ast::TexelFormat::kRgb10A2Unorm, false},
     FormatParams{ast::TexelFormat::kRgba16Float, true},
     FormatParams{ast::TexelFormat::kRgba16Sint, true},
     FormatParams{ast::TexelFormat::kRgba16Uint, true},
@@ -894,8 +876,7 @@
     FormatParams{ast::TexelFormat::kRgba8Sint, true},
     FormatParams{ast::TexelFormat::kRgba8Snorm, true},
     FormatParams{ast::TexelFormat::kRgba8Uint, true},
-    FormatParams{ast::TexelFormat::kRgba8Unorm, true},
-    FormatParams{ast::TexelFormat::kRgba8UnormSrgb, false}};
+    FormatParams{ast::TexelFormat::kRgba8Unorm, true}};
 
 using StorageTextureFormatTest = ResolverTestWithParam<FormatParams>;
 TEST_P(StorageTextureFormatTest, All) {
diff --git a/src/sem/storage_texture_type.cc b/src/sem/storage_texture_type.cc
index 8f796db..6492afd 100644
--- a/src/sem/storage_texture_type.cc
+++ b/src/sem/storage_texture_type.cc
@@ -48,11 +48,7 @@
 sem::Type* StorageTexture::SubtypeFor(ast::TexelFormat format,
                                       sem::Manager& type_mgr) {
   switch (format) {
-    case ast::TexelFormat::kR8Uint:
-    case ast::TexelFormat::kR16Uint:
-    case ast::TexelFormat::kRg8Uint:
     case ast::TexelFormat::kR32Uint:
-    case ast::TexelFormat::kRg16Uint:
     case ast::TexelFormat::kRgba8Uint:
     case ast::TexelFormat::kRg32Uint:
     case ast::TexelFormat::kRgba16Uint:
@@ -60,11 +56,7 @@
       return type_mgr.Get<sem::U32>();
     }
 
-    case ast::TexelFormat::kR8Sint:
-    case ast::TexelFormat::kR16Sint:
-    case ast::TexelFormat::kRg8Sint:
     case ast::TexelFormat::kR32Sint:
-    case ast::TexelFormat::kRg16Sint:
     case ast::TexelFormat::kRgba8Sint:
     case ast::TexelFormat::kRg32Sint:
     case ast::TexelFormat::kRgba16Sint:
@@ -72,20 +64,9 @@
       return type_mgr.Get<sem::I32>();
     }
 
-    case ast::TexelFormat::kR8Unorm:
-    case ast::TexelFormat::kRg8Unorm:
     case ast::TexelFormat::kRgba8Unorm:
-    case ast::TexelFormat::kRgba8UnormSrgb:
-    case ast::TexelFormat::kBgra8Unorm:
-    case ast::TexelFormat::kBgra8UnormSrgb:
-    case ast::TexelFormat::kRgb10A2Unorm:
-    case ast::TexelFormat::kR8Snorm:
-    case ast::TexelFormat::kRg8Snorm:
     case ast::TexelFormat::kRgba8Snorm:
-    case ast::TexelFormat::kR16Float:
     case ast::TexelFormat::kR32Float:
-    case ast::TexelFormat::kRg16Float:
-    case ast::TexelFormat::kRg11B10Float:
     case ast::TexelFormat::kRg32Float:
     case ast::TexelFormat::kRgba16Float:
     case ast::TexelFormat::kRgba32Float: {
diff --git a/src/transform/renamer_test.cc b/src/transform/renamer_test.cc
index d32c9f3..7f83043 100644
--- a/src/transform/renamer_test.cc
+++ b/src/transform/renamer_test.cc
@@ -1334,19 +1334,19 @@
         "ptrdiff_t",
         "r16snorm",
         "r16unorm",
-        // "r8unorm",  // Also used in WGSL
+        "r8unorm",
         "reference",
         "rg11b10f",
         "rg16snorm",
         "rg16unorm",
-        // "rg8snorm",  // Also used in WGSL
-        // "rg8unorm",  // Also used in WGSL
+        "rg8snorm",
+        "rg8unorm",
         "rgb10a2",
         "rgb9e5",
         "rgba16snorm",
         "rgba16unorm",
-        // "rgba8snorm",  // Also used in WGSL
-        // "rgba8unorm",  // Also used in WGSL
+        "rgba8snorm",
+        "rgba8unorm",
         // "sampler",  // Also used in WGSL
         "short2",
         "short3",
diff --git a/src/writer/spirv/builder.cc b/src/writer/spirv/builder.cc
index cec7b77..f7f354f 100644
--- a/src/writer/spirv/builder.cc
+++ b/src/writer/spirv/builder.cc
@@ -4304,74 +4304,20 @@
 SpvImageFormat Builder::convert_texel_format_to_spv(
     const ast::TexelFormat format) {
   switch (format) {
-    case ast::TexelFormat::kR8Unorm:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR8;
-    case ast::TexelFormat::kR8Snorm:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR8Snorm;
-    case ast::TexelFormat::kR8Uint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR8ui;
-    case ast::TexelFormat::kR8Sint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR8i;
-    case ast::TexelFormat::kR16Uint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR16ui;
-    case ast::TexelFormat::kR16Sint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR16i;
-    case ast::TexelFormat::kR16Float:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR16f;
-    case ast::TexelFormat::kRg8Unorm:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg8;
-    case ast::TexelFormat::kRg8Snorm:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg8Snorm;
-    case ast::TexelFormat::kRg8Uint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg8ui;
-    case ast::TexelFormat::kRg8Sint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg8i;
     case ast::TexelFormat::kR32Uint:
       return SpvImageFormatR32ui;
     case ast::TexelFormat::kR32Sint:
       return SpvImageFormatR32i;
     case ast::TexelFormat::kR32Float:
       return SpvImageFormatR32f;
-    case ast::TexelFormat::kRg16Uint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg16ui;
-    case ast::TexelFormat::kRg16Sint:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg16i;
-    case ast::TexelFormat::kRg16Float:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRg16f;
     case ast::TexelFormat::kRgba8Unorm:
       return SpvImageFormatRgba8;
-    case ast::TexelFormat::kRgba8UnormSrgb:
-      return SpvImageFormatUnknown;
     case ast::TexelFormat::kRgba8Snorm:
       return SpvImageFormatRgba8Snorm;
     case ast::TexelFormat::kRgba8Uint:
       return SpvImageFormatRgba8ui;
     case ast::TexelFormat::kRgba8Sint:
       return SpvImageFormatRgba8i;
-    case ast::TexelFormat::kBgra8Unorm:
-      return SpvImageFormatUnknown;
-    case ast::TexelFormat::kBgra8UnormSrgb:
-      return SpvImageFormatUnknown;
-    case ast::TexelFormat::kRgb10A2Unorm:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatRgb10A2;
-    case ast::TexelFormat::kRg11B10Float:
-      push_capability(SpvCapabilityStorageImageExtendedFormats);
-      return SpvImageFormatR11fG11fB10f;
     case ast::TexelFormat::kRg32Uint:
       push_capability(SpvCapabilityStorageImageExtendedFormats);
       return SpvImageFormatRg32ui;
diff --git a/src/writer/spirv/builder_format_conversion_test.cc b/src/writer/spirv/builder_format_conversion_test.cc
index c7ec41f..0c4b67b 100644
--- a/src/writer/spirv/builder_format_conversion_test.cc
+++ b/src/writer/spirv/builder_format_conversion_test.cc
@@ -51,33 +51,34 @@
     BuilderTest,
     ImageFormatConversionTest,
     testing::Values(
-        TestData{ast::TexelFormat::kR8Unorm, SpvImageFormatR8, true},
-        TestData{ast::TexelFormat::kR8Snorm, SpvImageFormatR8Snorm, true},
-        TestData{ast::TexelFormat::kR8Uint, SpvImageFormatR8ui, true},
-        TestData{ast::TexelFormat::kR8Sint, SpvImageFormatR8i, true},
-        TestData{ast::TexelFormat::kR16Uint, SpvImageFormatR16ui, true},
-        TestData{ast::TexelFormat::kR16Sint, SpvImageFormatR16i, true},
-        TestData{ast::TexelFormat::kR16Float, SpvImageFormatR16f, true},
-        TestData{ast::TexelFormat::kRg8Unorm, SpvImageFormatRg8, true},
-        TestData{ast::TexelFormat::kRg8Snorm, SpvImageFormatRg8Snorm, true},
-        TestData{ast::TexelFormat::kRg8Uint, SpvImageFormatRg8ui, true},
-        TestData{ast::TexelFormat::kRg8Sint, SpvImageFormatRg8i, true},
+        /* WGSL unsupported formats
+  TestData{ast::TexelFormat::kR8Unorm, SpvImageFormatR8, true},
+  TestData{ast::TexelFormat::kR8Snorm, SpvImageFormatR8Snorm, true},
+  TestData{ast::TexelFormat::kR8Uint, SpvImageFormatR8ui, true},
+  TestData{ast::TexelFormat::kR8Sint, SpvImageFormatR8i, true},
+  TestData{ast::TexelFormat::kR16Uint, SpvImageFormatR16ui, true},
+  TestData{ast::TexelFormat::kR16Sint, SpvImageFormatR16i, true},
+  TestData{ast::TexelFormat::kR16Float, SpvImageFormatR16f, true},
+  TestData{ast::TexelFormat::kRg8Unorm, SpvImageFormatRg8, true},
+  TestData{ast::TexelFormat::kRg8Snorm, SpvImageFormatRg8Snorm, true},
+  TestData{ast::TexelFormat::kRg8Uint, SpvImageFormatRg8ui, true},
+  TestData{ast::TexelFormat::kRg8Sint, SpvImageFormatRg8i, true},
+  TestData{ast::TexelFormat::kRg16Uint, SpvImageFormatRg16ui, true},
+  TestData{ast::TexelFormat::kRg16Sint, SpvImageFormatRg16i, true},
+  TestData{ast::TexelFormat::kRg16Float, SpvImageFormatRg16f, true},
+  TestData{ast::TexelFormat::kRgba8UnormSrgb, SpvImageFormatUnknown},
+  TestData{ast::TexelFormat::kBgra8Unorm, SpvImageFormatUnknown},
+  TestData{ast::TexelFormat::kBgra8UnormSrgb, SpvImageFormatUnknown},
+  TestData{ast::TexelFormat::kRgb10A2Unorm, SpvImageFormatRgb10A2, true},
+  TestData{ast::TexelFormat::kRg11B10Float, SpvImageFormatR11fG11fB10f, true},
+*/
         TestData{ast::TexelFormat::kR32Uint, SpvImageFormatR32ui},
         TestData{ast::TexelFormat::kR32Sint, SpvImageFormatR32i},
         TestData{ast::TexelFormat::kR32Float, SpvImageFormatR32f},
-        TestData{ast::TexelFormat::kRg16Uint, SpvImageFormatRg16ui, true},
-        TestData{ast::TexelFormat::kRg16Sint, SpvImageFormatRg16i, true},
-        TestData{ast::TexelFormat::kRg16Float, SpvImageFormatRg16f, true},
         TestData{ast::TexelFormat::kRgba8Unorm, SpvImageFormatRgba8},
-        TestData{ast::TexelFormat::kRgba8UnormSrgb, SpvImageFormatUnknown},
         TestData{ast::TexelFormat::kRgba8Snorm, SpvImageFormatRgba8Snorm},
         TestData{ast::TexelFormat::kRgba8Uint, SpvImageFormatRgba8ui},
         TestData{ast::TexelFormat::kRgba8Sint, SpvImageFormatRgba8i},
-        TestData{ast::TexelFormat::kBgra8Unorm, SpvImageFormatUnknown},
-        TestData{ast::TexelFormat::kBgra8UnormSrgb, SpvImageFormatUnknown},
-        TestData{ast::TexelFormat::kRgb10A2Unorm, SpvImageFormatRgb10A2, true},
-        TestData{ast::TexelFormat::kRg11B10Float, SpvImageFormatR11fG11fB10f,
-                 true},
         TestData{ast::TexelFormat::kRg32Uint, SpvImageFormatRg32ui, true},
         TestData{ast::TexelFormat::kRg32Sint, SpvImageFormatRg32i, true},
         TestData{ast::TexelFormat::kRg32Float, SpvImageFormatRg32f, true},
diff --git a/src/writer/wgsl/generator_impl_type_test.cc b/src/writer/wgsl/generator_impl_type_test.cc
index 2b84826..236c1b1 100644
--- a/src/writer/wgsl/generator_impl_type_test.cc
+++ b/src/writer/wgsl/generator_impl_type_test.cc
@@ -489,32 +489,13 @@
     WgslGeneratorImplTest,
     WgslGenerator_ImageFormatTest,
     testing::Values(
-        ImageFormatData{ast::TexelFormat::kR8Unorm, "r8unorm"},
-        ImageFormatData{ast::TexelFormat::kR8Snorm, "r8snorm"},
-        ImageFormatData{ast::TexelFormat::kR8Uint, "r8uint"},
-        ImageFormatData{ast::TexelFormat::kR8Sint, "r8sint"},
-        ImageFormatData{ast::TexelFormat::kR16Uint, "r16uint"},
-        ImageFormatData{ast::TexelFormat::kR16Sint, "r16sint"},
-        ImageFormatData{ast::TexelFormat::kR16Float, "r16float"},
-        ImageFormatData{ast::TexelFormat::kRg8Unorm, "rg8unorm"},
-        ImageFormatData{ast::TexelFormat::kRg8Snorm, "rg8snorm"},
-        ImageFormatData{ast::TexelFormat::kRg8Uint, "rg8uint"},
-        ImageFormatData{ast::TexelFormat::kRg8Sint, "rg8sint"},
         ImageFormatData{ast::TexelFormat::kR32Uint, "r32uint"},
         ImageFormatData{ast::TexelFormat::kR32Sint, "r32sint"},
         ImageFormatData{ast::TexelFormat::kR32Float, "r32float"},
-        ImageFormatData{ast::TexelFormat::kRg16Uint, "rg16uint"},
-        ImageFormatData{ast::TexelFormat::kRg16Sint, "rg16sint"},
-        ImageFormatData{ast::TexelFormat::kRg16Float, "rg16float"},
         ImageFormatData{ast::TexelFormat::kRgba8Unorm, "rgba8unorm"},
-        ImageFormatData{ast::TexelFormat::kRgba8UnormSrgb, "rgba8unorm_srgb"},
         ImageFormatData{ast::TexelFormat::kRgba8Snorm, "rgba8snorm"},
         ImageFormatData{ast::TexelFormat::kRgba8Uint, "rgba8uint"},
         ImageFormatData{ast::TexelFormat::kRgba8Sint, "rgba8sint"},
-        ImageFormatData{ast::TexelFormat::kBgra8Unorm, "bgra8unorm"},
-        ImageFormatData{ast::TexelFormat::kBgra8UnormSrgb, "bgra8unorm_srgb"},
-        ImageFormatData{ast::TexelFormat::kRgb10A2Unorm, "rgb10a2unorm"},
-        ImageFormatData{ast::TexelFormat::kRg11B10Float, "rg11b10float"},
         ImageFormatData{ast::TexelFormat::kRg32Uint, "rg32uint"},
         ImageFormatData{ast::TexelFormat::kRg32Sint, "rg32sint"},
         ImageFormatData{ast::TexelFormat::kRg32Float, "rg32float"},