diff --git a/src/dawn/native/Device.cpp b/src/dawn/native/Device.cpp
index 233a6de..d03a73f 100644
--- a/src/dawn/native/Device.cpp
+++ b/src/dawn/native/Device.cpp
@@ -400,6 +400,7 @@
         mPersistentCache = nullptr;
         mEmptyBindGroupLayout = nullptr;
         mInternalPipelineStore = nullptr;
+        mExternalTextureDummyView = nullptr;
 
         AssumeCommandsComplete();
 
@@ -787,6 +788,35 @@
         ASSERT(removedCount == 1);
     }
 
+    ResultOrError<Ref<TextureViewBase>>
+    DeviceBase::GetOrCreateDummyTextureViewForExternalTexture() {
+        if (!mExternalTextureDummyView.Get()) {
+            Ref<TextureBase> externalTextureDummy;
+            TextureDescriptor textureDesc;
+            textureDesc.dimension = wgpu::TextureDimension::e2D;
+            textureDesc.format = wgpu::TextureFormat::RGBA8Unorm;
+            textureDesc.label = "Dawn_External_Texture_Dummy_Texture";
+            textureDesc.size = {1, 1, 1};
+            textureDesc.usage = wgpu::TextureUsage::TextureBinding;
+
+            DAWN_TRY_ASSIGN(externalTextureDummy, CreateTexture(&textureDesc));
+
+            TextureViewDescriptor textureViewDesc;
+            textureViewDesc.arrayLayerCount = 1;
+            textureViewDesc.aspect = wgpu::TextureAspect::All;
+            textureViewDesc.baseArrayLayer = 0;
+            textureViewDesc.dimension = wgpu::TextureViewDimension::e2D;
+            textureViewDesc.format = wgpu::TextureFormat::RGBA8Unorm;
+            textureViewDesc.label = "Dawn_External_Texture_Dummy_Texture_View";
+            textureViewDesc.mipLevelCount = 1;
+
+            DAWN_TRY_ASSIGN(mExternalTextureDummyView,
+                            CreateTextureView(externalTextureDummy.Get(), &textureViewDesc));
+        }
+
+        return mExternalTextureDummyView;
+    }
+
     ResultOrError<Ref<PipelineLayoutBase>> DeviceBase::GetOrCreatePipelineLayout(
         const PipelineLayoutDescriptor* descriptor) {
         PipelineLayoutBase blueprint(this, descriptor, ApiObjectBase::kUntrackedByDevice);
diff --git a/src/dawn/native/Device.h b/src/dawn/native/Device.h
index 36de304..6bb9e2f 100644
--- a/src/dawn/native/Device.h
+++ b/src/dawn/native/Device.h
@@ -170,6 +170,8 @@
 
         void UncacheComputePipeline(ComputePipelineBase* obj);
 
+        ResultOrError<Ref<TextureViewBase>> GetOrCreateDummyTextureViewForExternalTexture();
+
         ResultOrError<Ref<PipelineLayoutBase>> GetOrCreatePipelineLayout(
             const PipelineLayoutDescriptor* descriptor);
         void UncachePipelineLayout(PipelineLayoutBase* obj);
@@ -507,6 +509,8 @@
 
         Ref<BindGroupLayoutBase> mEmptyBindGroupLayout;
 
+        Ref<TextureViewBase> mExternalTextureDummyView;
+
         std::unique_ptr<DynamicUploader> mDynamicUploader;
         std::unique_ptr<AsyncTaskManager> mAsyncTaskManager;
         Ref<QueueBase> mQueue;
diff --git a/src/dawn/native/ExternalTexture.cpp b/src/dawn/native/ExternalTexture.cpp
index fe06ccc..1570825 100644
--- a/src/dawn/native/ExternalTexture.cpp
+++ b/src/dawn/native/ExternalTexture.cpp
@@ -129,26 +129,8 @@
         if (descriptor->plane1) {
             mTextureViews[1] = descriptor->plane1;
         } else {
-            TextureDescriptor textureDesc;
-            textureDesc.dimension = wgpu::TextureDimension::e2D;
-            textureDesc.format = wgpu::TextureFormat::RGBA8Unorm;
-            textureDesc.label = "Dawn_External_Texture_Dummy_Texture";
-            textureDesc.size = {1, 1, 1};
-            textureDesc.usage = wgpu::TextureUsage::TextureBinding;
-
-            DAWN_TRY_ASSIGN(mDummyTexture, device->CreateTexture(&textureDesc));
-
-            TextureViewDescriptor textureViewDesc;
-            textureViewDesc.arrayLayerCount = 1;
-            textureViewDesc.aspect = wgpu::TextureAspect::All;
-            textureViewDesc.baseArrayLayer = 0;
-            textureViewDesc.dimension = wgpu::TextureViewDimension::e2D;
-            textureViewDesc.format = wgpu::TextureFormat::RGBA8Unorm;
-            textureViewDesc.label = "Dawn_External_Texture_Dummy_Texture_View";
-            textureViewDesc.mipLevelCount = 1;
-
             DAWN_TRY_ASSIGN(mTextureViews[1],
-                            device->CreateTextureView(mDummyTexture.Get(), &textureViewDesc));
+                            device->GetOrCreateDummyTextureViewForExternalTexture());
         }
 
         // We must create a buffer to store parameters needed by a shader that operates on this
