diff --git a/dawn.json b/dawn.json
index a93d404..a2102b3 100644
--- a/dawn.json
+++ b/dawn.json
@@ -1191,68 +1191,59 @@
             {"value": 2, "name": "R8 uint"},
             {"value": 3, "name": "R8 sint"},
 
-            {"value": 4, "name": "R16 unorm"},
-            {"value": 5, "name": "R16 snorm"},
-            {"value": 6, "name": "R16 uint"},
-            {"value": 7, "name": "R16 sint"},
-            {"value": 8, "name": "R16 float"},
-            {"value": 9, "name": "RG8 unorm"},
-            {"value": 10, "name": "RG8 snorm"},
-            {"value": 11, "name": "RG8 uint"},
-            {"value": 12, "name": "RG8 sint"},
+            {"value": 4, "name": "R16 uint"},
+            {"value": 5, "name": "R16 sint"},
+            {"value": 6, "name": "R16 float"},
+            {"value": 7, "name": "RG8 unorm"},
+            {"value": 8, "name": "RG8 snorm"},
+            {"value": 9, "name": "RG8 uint"},
+            {"value": 10, "name": "RG8 sint"},
 
-            {"value": 13, "name": "R32 float"},
-            {"value": 14, "name": "R32 uint"},
-            {"value": 15, "name": "R32 sint"},
-            {"value": 16, "name": "RG16 unorm"},
-            {"value": 17, "name": "RG16 snorm"},
-            {"value": 18, "name": "RG16 uint"},
-            {"value": 19, "name": "RG16 sint"},
-            {"value": 20, "name": "RG16 float"},
-            {"value": 21, "name": "RGBA8 unorm"},
-            {"value": 22, "name": "RGBA8 unorm srgb"},
-            {"value": 23, "name": "RGBA8 snorm"},
-            {"value": 24, "name": "RGBA8 uint"},
-            {"value": 25, "name": "RGBA8 sint"},
-            {"value": 26, "name": "BGRA8 unorm"},
-            {"value": 27, "name": "BGRA8 unorm srgb"},
-            {"value": 28, "name": "RGB10 A2 unorm"},
-            {"value": 29, "name": "RG11 B10 float"},
+            {"value": 11, "name": "R32 float"},
+            {"value": 12, "name": "R32 uint"},
+            {"value": 13, "name": "R32 sint"},
+            {"value": 14, "name": "RG16 uint"},
+            {"value": 15, "name": "RG16 sint"},
+            {"value": 16, "name": "RG16 float"},
+            {"value": 17, "name": "RGBA8 unorm"},
+            {"value": 18, "name": "RGBA8 unorm srgb"},
+            {"value": 19, "name": "RGBA8 snorm"},
+            {"value": 20, "name": "RGBA8 uint"},
+            {"value": 21, "name": "RGBA8 sint"},
+            {"value": 22, "name": "BGRA8 unorm"},
+            {"value": 23, "name": "BGRA8 unorm srgb"},
+            {"value": 24, "name": "RGB10 A2 unorm"},
+            {"value": 25, "name": "RG11 B10 float"},
 
-            {"value": 30, "name": "RG32 float"},
-            {"value": 31, "name": "RG32 uint"},
-            {"value": 32, "name": "RG32 sint"},
-            {"value": 33, "name": "RGBA16 unorm"},
-            {"value": 34, "name": "RGBA16 snorm"},
-            {"value": 35, "name": "RGBA16 uint"},
-            {"value": 36, "name": "RGBA16 sint"},
-            {"value": 37, "name": "RGBA16 float"},
+            {"value": 26, "name": "RG32 float"},
+            {"value": 27, "name": "RG32 uint"},
+            {"value": 28, "name": "RG32 sint"},
+            {"value": 29, "name": "RGBA16 uint"},
+            {"value": 30, "name": "RGBA16 sint"},
+            {"value": 31, "name": "RGBA16 float"},
 
-            {"value": 38, "name": "RGBA32 float"},
-            {"value": 39, "name": "RGBA32 uint"},
-            {"value": 40, "name": "RGBA32 sint"},
+            {"value": 32, "name": "RGBA32 float"},
+            {"value": 33, "name": "RGBA32 uint"},
+            {"value": 34, "name": "RGBA32 sint"},
 
-            {"value": 41, "name": "depth32 float"},
-            {"value": 42, "name": "depth24 plus"},
-            {"value": 43, "name": "depth24 plus stencil8"},
+            {"value": 35, "name": "depth32 float"},
+            {"value": 36, "name": "depth24 plus"},
+            {"value": 37, "name": "depth24 plus stencil8"},
 
-            {"value": 44, "name": "BC1 RGBA unorm"},
-            {"value": 45, "name": "BC1 RGBA unorm srgb"},
-            {"value": 46, "name": "BC2 RGBA unorm"},
-            {"value": 47, "name": "BC2 RGBA unorm srgb"},
-            {"value": 48, "name": "BC3 RGBA unorm"},
-            {"value": 49, "name": "BC3 RGBA unorm srgb"},
-            {"value": 50, "name": "BC4 R unorm"},
-            {"value": 51, "name": "BC4 R snorm"},
-            {"value": 52, "name": "BC5 RG unorm"},
-            {"value": 53, "name": "BC5 RG snorm"},
-            {"value": 54, "name": "BC6H RGB ufloat"},
-            {"value": 55, "name": "BC6H RGB sfloat"},
-            {"value": 56, "name": "BC7 RGBA unorm"},
-            {"value": 57, "name": "BC7 RGBA unorm srgb"}
-        ],
-        "TODO": [
-            "jiawei.shao@intel.com: support BC formats as extension"
+            {"value": 38, "name": "BC1 RGBA unorm"},
+            {"value": 39, "name": "BC1 RGBA unorm srgb"},
+            {"value": 40, "name": "BC2 RGBA unorm"},
+            {"value": 41, "name": "BC2 RGBA unorm srgb"},
+            {"value": 42, "name": "BC3 RGBA unorm"},
+            {"value": 43, "name": "BC3 RGBA unorm srgb"},
+            {"value": 44, "name": "BC4 R unorm"},
+            {"value": 45, "name": "BC4 R snorm"},
+            {"value": 46, "name": "BC5 RG unorm"},
+            {"value": 47, "name": "BC5 RG snorm"},
+            {"value": 48, "name": "BC6H RGB ufloat"},
+            {"value": 49, "name": "BC6H RGB sfloat"},
+            {"value": 50, "name": "BC7 RGBA unorm"},
+            {"value": 51, "name": "BC7 RGBA unorm srgb"}
         ]
     },
     "texture usage bit": {
diff --git a/src/dawn_native/Format.cpp b/src/dawn_native/Format.cpp
index 0f904bd..c18f57a 100644
--- a/src/dawn_native/Format.cpp
+++ b/src/dawn_native/Format.cpp
@@ -117,8 +117,6 @@
         AddColorFormat(dawn::TextureFormat::R8Sint, true, 1);
 
         // 2 bytes color formats
-        AddColorFormat(dawn::TextureFormat::R16Unorm, true, 2);
-        AddColorFormat(dawn::TextureFormat::R16Snorm, false, 2);
         AddColorFormat(dawn::TextureFormat::R16Uint, true, 2);
         AddColorFormat(dawn::TextureFormat::R16Sint, true, 2);
         AddColorFormat(dawn::TextureFormat::R16Float, true, 2);
@@ -131,8 +129,6 @@
         AddColorFormat(dawn::TextureFormat::R32Uint, true, 4);
         AddColorFormat(dawn::TextureFormat::R32Sint, true, 4);
         AddColorFormat(dawn::TextureFormat::R32Float, true, 4);
-        AddColorFormat(dawn::TextureFormat::RG16Unorm, true, 4);
-        AddColorFormat(dawn::TextureFormat::RG16Snorm, false, 4);
         AddColorFormat(dawn::TextureFormat::RG16Uint, true, 4);
         AddColorFormat(dawn::TextureFormat::RG16Sint, true, 4);
         AddColorFormat(dawn::TextureFormat::RG16Float, true, 4);
@@ -151,8 +147,6 @@
         AddColorFormat(dawn::TextureFormat::RG32Uint, true, 8);
         AddColorFormat(dawn::TextureFormat::RG32Sint, true, 8);
         AddColorFormat(dawn::TextureFormat::RG32Float, true, 8);
-        AddColorFormat(dawn::TextureFormat::RGBA16Unorm, true, 8);
-        AddColorFormat(dawn::TextureFormat::RGBA16Snorm, false, 8);
         AddColorFormat(dawn::TextureFormat::RGBA16Uint, true, 8);
         AddColorFormat(dawn::TextureFormat::RGBA16Sint, true, 8);
         AddColorFormat(dawn::TextureFormat::RGBA16Float, true, 8);
diff --git a/src/dawn_native/Format.h b/src/dawn_native/Format.h
index 334198c..39776d7 100644
--- a/src/dawn_native/Format.h
+++ b/src/dawn_native/Format.h
@@ -27,7 +27,7 @@
 
     // The number of formats Dawn knows about. Asserts in BuildFormatTable ensure that this is the
     // exact number of known format.
-    static constexpr size_t kKnownFormatCount = 58;
+    static constexpr size_t kKnownFormatCount = 52;
 
     // A dawn::TextureFormat along with all the information about it necessary for validation.
     struct Format {
diff --git a/src/dawn_native/d3d12/TextureD3D12.cpp b/src/dawn_native/d3d12/TextureD3D12.cpp
index cc36c9d..c200dbb 100644
--- a/src/dawn_native/d3d12/TextureD3D12.cpp
+++ b/src/dawn_native/d3d12/TextureD3D12.cpp
@@ -106,10 +106,6 @@
             case dawn::TextureFormat::R8Sint:
                 return DXGI_FORMAT_R8_SINT;
 
-            case dawn::TextureFormat::R16Unorm:
-                return DXGI_FORMAT_R16_UNORM;
-            case dawn::TextureFormat::R16Snorm:
-                return DXGI_FORMAT_R16_SNORM;
             case dawn::TextureFormat::R16Uint:
                 return DXGI_FORMAT_R16_UINT;
             case dawn::TextureFormat::R16Sint:
@@ -131,10 +127,6 @@
                 return DXGI_FORMAT_R32_SINT;
             case dawn::TextureFormat::R32Float:
                 return DXGI_FORMAT_R32_FLOAT;
-            case dawn::TextureFormat::RG16Unorm:
-                return DXGI_FORMAT_R16G16_UNORM;
-            case dawn::TextureFormat::RG16Snorm:
-                return DXGI_FORMAT_R16G16_SNORM;
             case dawn::TextureFormat::RG16Uint:
                 return DXGI_FORMAT_R16G16_UINT;
             case dawn::TextureFormat::RG16Sint:
@@ -166,10 +158,6 @@
                 return DXGI_FORMAT_R32G32_SINT;
             case dawn::TextureFormat::RG32Float:
                 return DXGI_FORMAT_R32G32_FLOAT;
-            case dawn::TextureFormat::RGBA16Unorm:
-                return DXGI_FORMAT_R16G16B16A16_UNORM;
-            case dawn::TextureFormat::RGBA16Snorm:
-                return DXGI_FORMAT_R16G16B16A16_SNORM;
             case dawn::TextureFormat::RGBA16Uint:
                 return DXGI_FORMAT_R16G16B16A16_UINT;
             case dawn::TextureFormat::RGBA16Sint:
diff --git a/src/dawn_native/metal/TextureMTL.mm b/src/dawn_native/metal/TextureMTL.mm
index 755069c..089974d 100644
--- a/src/dawn_native/metal/TextureMTL.mm
+++ b/src/dawn_native/metal/TextureMTL.mm
@@ -134,10 +134,6 @@
             case dawn::TextureFormat::R8Sint:
                 return MTLPixelFormatR8Sint;
 
-            case dawn::TextureFormat::R16Unorm:
-                return MTLPixelFormatR16Unorm;
-            case dawn::TextureFormat::R16Snorm:
-                return MTLPixelFormatR16Snorm;
             case dawn::TextureFormat::R16Uint:
                 return MTLPixelFormatR16Uint;
             case dawn::TextureFormat::R16Sint:
@@ -159,10 +155,6 @@
                 return MTLPixelFormatR32Sint;
             case dawn::TextureFormat::R32Float:
                 return MTLPixelFormatR32Float;
-            case dawn::TextureFormat::RG16Unorm:
-                return MTLPixelFormatRG16Unorm;
-            case dawn::TextureFormat::RG16Snorm:
-                return MTLPixelFormatRG16Snorm;
             case dawn::TextureFormat::RG16Uint:
                 return MTLPixelFormatRG16Uint;
             case dawn::TextureFormat::RG16Sint:
@@ -194,10 +186,6 @@
                 return MTLPixelFormatRG32Sint;
             case dawn::TextureFormat::RG32Float:
                 return MTLPixelFormatRG32Float;
-            case dawn::TextureFormat::RGBA16Unorm:
-                return MTLPixelFormatRGBA16Unorm;
-            case dawn::TextureFormat::RGBA16Snorm:
-                return MTLPixelFormatRGBA16Snorm;
             case dawn::TextureFormat::RGBA16Uint:
                 return MTLPixelFormatRGBA16Uint;
             case dawn::TextureFormat::RGBA16Sint:
diff --git a/src/dawn_native/opengl/GLFormat.cpp b/src/dawn_native/opengl/GLFormat.cpp
index 34cac27..1297e9f 100644
--- a/src/dawn_native/opengl/GLFormat.cpp
+++ b/src/dawn_native/opengl/GLFormat.cpp
@@ -50,8 +50,6 @@
         AddFormat(dawn::TextureFormat::R8Sint, GL_R8I, GL_RED_INTEGER, GL_BYTE, Type::Int);
 
         // 2 bytes color formats
-        AddFormat(dawn::TextureFormat::R16Unorm, GL_R16, GL_RED, GL_UNSIGNED_SHORT, Type::Float);
-        AddFormat(dawn::TextureFormat::R16Snorm, GL_R16_SNORM, GL_RED, GL_SHORT, Type::Float);
         AddFormat(dawn::TextureFormat::R16Uint, GL_R16UI, GL_RED_INTEGER, GL_UNSIGNED_SHORT, Type::Uint);
         AddFormat(dawn::TextureFormat::R16Sint, GL_R16I, GL_RED_INTEGER, GL_SHORT, Type::Int);
         AddFormat(dawn::TextureFormat::R16Float, GL_R16F, GL_RED, GL_HALF_FLOAT, Type::Float);
@@ -64,8 +62,6 @@
         AddFormat(dawn::TextureFormat::R32Uint, GL_R32UI, GL_RED_INTEGER, GL_UNSIGNED_INT, Type::Uint);
         AddFormat(dawn::TextureFormat::R32Sint, GL_R32I, GL_RED_INTEGER, GL_INT, Type::Int);
         AddFormat(dawn::TextureFormat::R32Float, GL_R32F, GL_RED, GL_FLOAT, Type::Float);
-        AddFormat(dawn::TextureFormat::RG16Unorm, GL_RG16, GL_RG, GL_UNSIGNED_SHORT, Type::Float);
-        AddFormat(dawn::TextureFormat::RG16Snorm, GL_RG16_SNORM, GL_RG, GL_SHORT, Type::Float);
         AddFormat(dawn::TextureFormat::RG16Uint, GL_RG16UI, GL_RG_INTEGER, GL_UNSIGNED_SHORT, Type::Uint);
         AddFormat(dawn::TextureFormat::RG16Sint, GL_RG16I, GL_RG_INTEGER, GL_SHORT, Type::Int);
         AddFormat(dawn::TextureFormat::RG16Float, GL_RG16F, GL_RG, GL_HALF_FLOAT, Type::Float);
@@ -84,8 +80,6 @@
         AddFormat(dawn::TextureFormat::RG32Uint, GL_RG32UI, GL_RG_INTEGER, GL_UNSIGNED_INT, Type::Uint);
         AddFormat(dawn::TextureFormat::RG32Sint, GL_RG32I, GL_RG_INTEGER, GL_INT, Type::Int);
         AddFormat(dawn::TextureFormat::RG32Float, GL_RG32F, GL_RG, GL_FLOAT, Type::Float);
-        AddFormat(dawn::TextureFormat::RGBA16Unorm, GL_RGBA16, GL_RGBA, GL_UNSIGNED_SHORT, Type::Float);
-        AddFormat(dawn::TextureFormat::RGBA16Snorm, GL_RGBA16_SNORM, GL_RGBA, GL_SHORT, Type::Float);
         AddFormat(dawn::TextureFormat::RGBA16Uint, GL_RGBA16UI, GL_RGBA_INTEGER, GL_UNSIGNED_SHORT, Type::Uint);
         AddFormat(dawn::TextureFormat::RGBA16Sint, GL_RGBA16I, GL_RGBA_INTEGER, GL_SHORT, Type::Int);
         AddFormat(dawn::TextureFormat::RGBA16Float, GL_RGBA16F, GL_RGBA, GL_HALF_FLOAT, Type::Float);
diff --git a/src/dawn_native/vulkan/TextureVk.cpp b/src/dawn_native/vulkan/TextureVk.cpp
index fc2e031..f5c56d0 100644
--- a/src/dawn_native/vulkan/TextureVk.cpp
+++ b/src/dawn_native/vulkan/TextureVk.cpp
@@ -224,10 +224,6 @@
             case dawn::TextureFormat::R8Sint:
                 return VK_FORMAT_R8_SINT;
 
-            case dawn::TextureFormat::R16Unorm:
-                return VK_FORMAT_R16_UNORM;
-            case dawn::TextureFormat::R16Snorm:
-                return VK_FORMAT_R16_SNORM;
             case dawn::TextureFormat::R16Uint:
                 return VK_FORMAT_R16_UINT;
             case dawn::TextureFormat::R16Sint:
@@ -249,10 +245,6 @@
                 return VK_FORMAT_R32_SINT;
             case dawn::TextureFormat::R32Float:
                 return VK_FORMAT_R32_SFLOAT;
-            case dawn::TextureFormat::RG16Unorm:
-                return VK_FORMAT_R16G16_UNORM;
-            case dawn::TextureFormat::RG16Snorm:
-                return VK_FORMAT_R16G16_SNORM;
             case dawn::TextureFormat::RG16Uint:
                 return VK_FORMAT_R16G16_UINT;
             case dawn::TextureFormat::RG16Sint:
@@ -284,10 +276,6 @@
                 return VK_FORMAT_R32G32_SINT;
             case dawn::TextureFormat::RG32Float:
                 return VK_FORMAT_R32G32_SFLOAT;
-            case dawn::TextureFormat::RGBA16Unorm:
-                return VK_FORMAT_R16G16B16A16_UNORM;
-            case dawn::TextureFormat::RGBA16Snorm:
-                return VK_FORMAT_R16G16B16A16_SNORM;
             case dawn::TextureFormat::RGBA16Uint:
                 return VK_FORMAT_R16G16B16A16_UINT;
             case dawn::TextureFormat::RGBA16Sint:
diff --git a/src/tests/end2end/NonzeroTextureCreationTests.cpp b/src/tests/end2end/NonzeroTextureCreationTests.cpp
index e7fe33b..02497da 100644
--- a/src/tests/end2end/NonzeroTextureCreationTests.cpp
+++ b/src/tests/end2end/NonzeroTextureCreationTests.cpp
@@ -105,13 +105,13 @@
     descriptor.size.depth = 1;
     descriptor.arrayLayerCount = 1;
     descriptor.sampleCount = 1;
-    descriptor.format = dawn::TextureFormat::RGBA16Snorm;
+    descriptor.format = dawn::TextureFormat::RGBA8Snorm;
     descriptor.mipLevelCount = 1;
     descriptor.usage = dawn::TextureUsageBit::CopySrc;
     dawn::Texture texture = device.CreateTexture(&descriptor);
 
     // Set buffer with dirty data so we know it is cleared by the lazy cleared texture copy
-    uint32_t bufferSize = 8 * kSize * kSize;
+    uint32_t bufferSize = 4 * kSize * kSize;
     std::vector<uint8_t> data(bufferSize, 100);
     dawn::Buffer bufferDst = utils::CreateBufferFromData(
         device, data.data(), static_cast<uint32_t>(data.size()), dawn::BufferUsageBit::CopySrc);
diff --git a/src/tests/end2end/TextureFormatTests.cpp b/src/tests/end2end/TextureFormatTests.cpp
index 674c5ca..2567fde 100644
--- a/src/tests/end2end/TextureFormatTests.cpp
+++ b/src/tests/end2end/TextureFormatTests.cpp
@@ -475,21 +475,6 @@
     DoUnormTest<uint8_t>({dawn::TextureFormat::RGBA8Unorm, 4, Float, 4});
 }
 
-// Test the R16Unorm format
-TEST_P(TextureFormatTest, R16Unorm) {
-    DoUnormTest<uint16_t>({dawn::TextureFormat::R16Unorm, 2, Float, 1});
-}
-
-// Test the RG16Unorm format
-TEST_P(TextureFormatTest, RG16Unorm) {
-    DoUnormTest<uint16_t>({dawn::TextureFormat::RG16Unorm, 4, Float, 2});
-}
-
-// Test the RGBA16Unorm format
-TEST_P(TextureFormatTest, RGBA16Unorm) {
-    DoUnormTest<uint16_t>({dawn::TextureFormat::RGBA16Unorm, 8, Float, 4});
-}
-
 // Test the BGRA8Unorm format
 TEST_P(TextureFormatTest, BGRA8Unorm) {
     uint8_t maxValue = std::numeric_limits<uint8_t>::max();
@@ -516,21 +501,6 @@
     DoSnormTest<int8_t>({dawn::TextureFormat::RGBA8Snorm, 4, Float, 4});
 }
 
-// Test the R16Snorm format
-TEST_P(TextureFormatTest, R16Snorm) {
-    DoSnormTest<int16_t>({dawn::TextureFormat::R16Snorm, 2, Float, 1});
-}
-
-// Test the RG16Snorm format
-TEST_P(TextureFormatTest, RG16Snorm) {
-    DoSnormTest<int16_t>({dawn::TextureFormat::RG16Snorm, 4, Float, 2});
-}
-
-// Test the RGBA16Snorm format
-TEST_P(TextureFormatTest, RGBA16Snorm) {
-    DoSnormTest<int16_t>({dawn::TextureFormat::RGBA16Snorm, 8, Float, 4});
-}
-
 // Test the R8Uint format
 TEST_P(TextureFormatTest, R8Uint) {
     // TODO(cwallez@chromium.org): This fails on the Intel GL driver, understand why.
diff --git a/src/tests/end2end/TextureZeroInitTests.cpp b/src/tests/end2end/TextureZeroInitTests.cpp
index 9f10de5..9655f45 100644
--- a/src/tests/end2end/TextureZeroInitTests.cpp
+++ b/src/tests/end2end/TextureZeroInitTests.cpp
@@ -87,7 +87,7 @@
     constexpr static dawn::TextureFormat kDepthStencilFormat =
         dawn::TextureFormat::Depth24PlusStencil8;
     constexpr static dawn::TextureFormat kNonrenderableColorFormat =
-        dawn::TextureFormat::RGBA16Snorm;
+        dawn::TextureFormat::RGBA8Snorm;
 };
 
 // This tests that the code path of CopyTextureToBuffer clears correctly to Zero after first usage
@@ -575,7 +575,7 @@
     dawn::Texture texture = device.CreateTexture(&descriptor);
 
     // Set buffer with dirty data so we know it is cleared by the lazy cleared texture copy
-    uint32_t bufferSize = 8 * kSize * kSize;
+    uint32_t bufferSize = 4 * kSize * kSize;
     std::vector<uint8_t> data(bufferSize, 100);
     dawn::Buffer bufferDst = utils::CreateBufferFromData(
         device, data.data(), static_cast<uint32_t>(data.size()), dawn::BufferUsageBit::CopySrc);
diff --git a/src/tests/unittests/validation/TextureValidationTests.cpp b/src/tests/unittests/validation/TextureValidationTests.cpp
index af783ba..94cd40d 100644
--- a/src/tests/unittests/validation/TextureValidationTests.cpp
+++ b/src/tests/unittests/validation/TextureValidationTests.cpp
@@ -248,8 +248,6 @@
     dawn::TextureFormat nonRenderableFormats[] = {
         dawn::TextureFormat::RG11B10Float, dawn::TextureFormat::R8Snorm,
         dawn::TextureFormat::RG8Snorm,     dawn::TextureFormat::RGBA8Snorm,
-        dawn::TextureFormat::R16Snorm,     dawn::TextureFormat::RG16Snorm,
-        dawn::TextureFormat::RGBA16Snorm,
     };
 
     for (dawn::TextureFormat format : nonRenderableFormats) {
