diff --git a/src/dawn_native/CommandValidation.cpp b/src/dawn_native/CommandValidation.cpp
index e46d438..9654b2a 100644
--- a/src/dawn_native/CommandValidation.cpp
+++ b/src/dawn_native/CommandValidation.cpp
@@ -268,13 +268,6 @@
 
         ASSERT(texture->GetDimension() != wgpu::TextureDimension::e1D);
 
-        // Disallow copy to/from a 3D texture as unsafe until it is fully implemented.
-        if (texture->GetDimension() == wgpu::TextureDimension::e3D &&
-            device->IsToggleEnabled(Toggle::DisallowUnsafeAPIs)) {
-            return DAWN_VALIDATION_ERROR(
-                "Copy to/from a 3D texture is disallowed because it is not fully implemented");
-        }
-
         // Validation for the copy being in-bounds:
         Extent3D mipSize = texture->GetMipLevelPhysicalSize(textureCopy.mipLevel);
         // For 1D/2D textures, include the array layer as depth so it can be checked with other
diff --git a/src/dawn_native/Texture.cpp b/src/dawn_native/Texture.cpp
index 293e0a8..d9567d5 100644
--- a/src/dawn_native/Texture.cpp
+++ b/src/dawn_native/Texture.cpp
@@ -270,13 +270,6 @@
             return DAWN_VALIDATION_ERROR("Cannot create an empty texture");
         }
 
-        // Disallow 1D and 3D textures as unsafe until they are fully implemented.
-        if (descriptor->dimension != wgpu::TextureDimension::e2D &&
-            device->IsToggleEnabled(Toggle::DisallowUnsafeAPIs)) {
-            return DAWN_VALIDATION_ERROR(
-                "1D and 3D textures are disallowed because they are not fully implemented");
-        }
-
         if (descriptor->dimension != wgpu::TextureDimension::e2D && format->isCompressed) {
             return DAWN_VALIDATION_ERROR("Compressed texture must be 2D");
         }
@@ -323,13 +316,6 @@
             return DAWN_VALIDATION_ERROR("1D texture views aren't supported (yet).");
         }
 
-        // Disallow 3D views as unsafe until they are fully implemented.
-        if (descriptor->dimension == wgpu::TextureViewDimension::e3D &&
-            device->IsToggleEnabled(Toggle::DisallowUnsafeAPIs)) {
-            return DAWN_VALIDATION_ERROR(
-                "3D views are disallowed because they are not fully implemented");
-        }
-
         DAWN_TRY(ValidateTextureFormat(descriptor->format));
 
         DAWN_TRY(ValidateTextureAspect(descriptor->aspect));
diff --git a/src/tests/unittests/validation/UnsafeAPIValidationTests.cpp b/src/tests/unittests/validation/UnsafeAPIValidationTests.cpp
index 61b3271..c5cab0f 100644
--- a/src/tests/unittests/validation/UnsafeAPIValidationTests.cpp
+++ b/src/tests/unittests/validation/UnsafeAPIValidationTests.cpp
@@ -28,22 +28,6 @@
     }
 };
 
-// Check that 3D Texture creation is disallowed as part of unsafe APIs.
-TEST_F(UnsafeAPIValidationTest, 3DTextureCreationDisallowed) {
-    wgpu::TextureDescriptor baseDesc;
-    baseDesc.size = {32, 32, 6};
-    baseDesc.format = wgpu::TextureFormat::RGBA8Unorm;
-    baseDesc.usage = wgpu::TextureUsage::Sampled;
-
-    // Control case: 2D (array) texture creation is allowed.
-    device.CreateTexture(&baseDesc);
-
-    // 3D texture creation is disallowed.
-    wgpu::TextureDescriptor texture3DDesc = baseDesc;
-    texture3DDesc.dimension = wgpu::TextureDimension::e3D;
-    ASSERT_DEVICE_ERROR(device.CreateTexture(&texture3DDesc));
-}
-
 // Check that DrawIndexedIndirect is disallowed as part of unsafe APIs.
 TEST_F(UnsafeAPIValidationTest, DrawIndexedIndirectDisallowed) {
     // Create the index and indirect buffers.
