d3d11: add d3d11 backend in end2end tests

Right now, many tests are not passed becasue unimplemented
features in d3d11 backend. HoweverD3D11 backend is disabled on
bots by default, so this CL will not break out bots.

Bug: dawn:1705
Change-Id: I57321b86a404bc245b71c467479fdee0464dee9b
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/126260
Commit-Queue: Peng Huang <penghuang@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
diff --git a/src/dawn/tests/AdapterTestConfig.cpp b/src/dawn/tests/AdapterTestConfig.cpp
index 454b9b1..e81bb29 100644
--- a/src/dawn/tests/AdapterTestConfig.cpp
+++ b/src/dawn/tests/AdapterTestConfig.cpp
@@ -29,6 +29,12 @@
       forceEnabledWorkarounds(forceEnabledWorkarounds),
       forceDisabledWorkarounds(forceDisabledWorkarounds) {}
 
+BackendTestConfig D3D11Backend(std::initializer_list<const char*> forceEnabledWorkarounds,
+                               std::initializer_list<const char*> forceDisabledWorkarounds) {
+    return BackendTestConfig(wgpu::BackendType::D3D11, forceEnabledWorkarounds,
+                             forceDisabledWorkarounds);
+}
+
 BackendTestConfig D3D12Backend(std::initializer_list<const char*> forceEnabledWorkarounds,
                                std::initializer_list<const char*> forceDisabledWorkarounds) {
     return BackendTestConfig(wgpu::BackendType::D3D12, forceEnabledWorkarounds,
@@ -71,6 +77,8 @@
 
 std::string TestAdapterProperties::ParamName() const {
     switch (backendType) {
+        case wgpu::BackendType::D3D11:
+            return "D3D11";
         case wgpu::BackendType::D3D12:
             return "D3D12";
         case wgpu::BackendType::Metal:
diff --git a/src/dawn/tests/AdapterTestConfig.h b/src/dawn/tests/AdapterTestConfig.h
index 2e978ec..2273559 100644
--- a/src/dawn/tests/AdapterTestConfig.h
+++ b/src/dawn/tests/AdapterTestConfig.h
@@ -59,6 +59,9 @@
 
 std::ostream& operator<<(std::ostream& os, const AdapterTestParam& param);
 
+BackendTestConfig D3D11Backend(std::initializer_list<const char*> forceEnabledWorkarounds = {},
+                               std::initializer_list<const char*> forceDisabledWorkarounds = {});
+
 BackendTestConfig D3D12Backend(std::initializer_list<const char*> forceEnabledWorkarounds = {},
                                std::initializer_list<const char*> forceDisabledWorkarounds = {});
 
diff --git a/src/dawn/tests/DawnTest.cpp b/src/dawn/tests/DawnTest.cpp
index 04aa0aca..a1b8103 100644
--- a/src/dawn/tests/DawnTest.cpp
+++ b/src/dawn/tests/DawnTest.cpp
@@ -294,7 +294,9 @@
         argLen = sizeof(kBackendArg) - 1;
         if (strncmp(argv[i], kBackendArg, argLen) == 0) {
             const char* param = argv[i] + argLen;
-            if (strcmp("d3d12", param) == 0) {
+            if (strcmp("d3d11", param) == 0) {
+                mBackendTypeFilter = wgpu::BackendType::D3D11;
+            } else if (strcmp("d3d12", param) == 0) {
                 mBackendTypeFilter = wgpu::BackendType::D3D12;
             } else if (strcmp("metal", param) == 0) {
                 mBackendTypeFilter = wgpu::BackendType::Metal;
@@ -699,9 +701,9 @@
     mAdapter = nullptr;
     mInstance = nullptr;
 
-    // D3D12's GPU-based validation will accumulate objects over time if the backend device is not
-    // destroyed and recreated, so we reset it here.
-    if (IsD3D12() && IsBackendValidationEnabled()) {
+    // D3D11 and D3D12's GPU-based validation will accumulate objects over time if the backend
+    // device is not destroyed and recreated, so we reset it here.
+    if ((IsD3D11() || IsD3D12()) && IsBackendValidationEnabled()) {
         mBackendAdapter.ResetInternalDeviceForTesting();
     }
     mWireHelper.reset();
@@ -712,6 +714,10 @@
     gCurrentTest = nullptr;
 }
 
+bool DawnTestBase::IsD3D11() const {
+    return mParam.adapterProperties.backendType == wgpu::BackendType::D3D11;
+}
+
 bool DawnTestBase::IsD3D12() const {
     return mParam.adapterProperties.backendType == wgpu::BackendType::D3D12;
 }
@@ -1532,7 +1538,7 @@
 
 void DawnTestBase::ResolveExpectations() {
     for (const auto& expectation : mDeferredExpectations) {
-        DAWN_ASSERT(mReadbackSlots[expectation.readbackSlot].mappedData != nullptr);
+        EXPECT_TRUE(mReadbackSlots[expectation.readbackSlot].mappedData != nullptr);
 
         // Get a pointer to the mapped copy of the data for the expectation.
         const char* data =
diff --git a/src/dawn/tests/DawnTest.h b/src/dawn/tests/DawnTest.h
index a62e112..938b11c 100644
--- a/src/dawn/tests/DawnTest.h
+++ b/src/dawn/tests/DawnTest.h
@@ -222,6 +222,7 @@
     void SetUp();
     void TearDown();
 
+    bool IsD3D11() const;
     bool IsD3D12() const;
     bool IsMetal() const;
     bool IsNull() const;
diff --git a/src/dawn/tests/end2end/BasicTests.cpp b/src/dawn/tests/end2end/BasicTests.cpp
index 4193fc2..04eed0b 100644
--- a/src/dawn/tests/end2end/BasicTests.cpp
+++ b/src/dawn/tests/end2end/BasicTests.cpp
@@ -59,6 +59,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BasicTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/BindGroupTests.cpp b/src/dawn/tests/end2end/BindGroupTests.cpp
index 2117c2e..41bccac 100644
--- a/src/dawn/tests/end2end/BindGroupTests.cpp
+++ b/src/dawn/tests/end2end/BindGroupTests.cpp
@@ -170,7 +170,6 @@
         struct VertexUniformBuffer {
             transform : vec4f
         }
-
         @group(0) @binding(0) var <uniform> vertexUbo : VertexUniformBuffer;
 
         @vertex
@@ -190,7 +189,8 @@
         }
         @group(0) @binding(1) var <uniform> fragmentUbo : FragmentUniformBuffer;
 
-        @fragment fn main() -> @location(0) vec4f {
+        @fragment
+        fn main() -> @location(0) vec4f {
             return fragmentUbo.color;
         })");
 
@@ -203,20 +203,17 @@
 
     struct Data {
         float transform[8];
-        char padding[256 - 8 * sizeof(float)];
+        char padding[256 - sizeof(transform)];
         float color[4];
     };
-    ASSERT(offsetof(Data, color) == 256);
-    Data data{
-        {1.f, 0.f, 0.f, 1.0f},
-        {0},
-        {0.f, 1.f, 0.f, 1.f},
-    };
+    Data data{{1.f, 0.f, 0.f, 1.0f}, {0}, {0.f, 1.f, 0.f, 1.f}};
     wgpu::Buffer buffer =
         utils::CreateBufferFromData(device, &data, sizeof(data), wgpu::BufferUsage::Uniform);
-    wgpu::BindGroup bindGroup = utils::MakeBindGroup(
-        device, pipeline.GetBindGroupLayout(0),
-        {{0, buffer, 0, sizeof(Data::transform)}, {1, buffer, 256, sizeof(Data::color)}});
+
+    wgpu::BindGroup bindGroup =
+        utils::MakeBindGroup(device, pipeline.GetBindGroupLayout(0),
+                             {{0, buffer, offsetof(Data, transform), sizeof(Data::transform)},
+                              {1, buffer, offsetof(Data, color), sizeof(Data::color)}});
 
     wgpu::CommandEncoder encoder = device.CreateCommandEncoder();
     wgpu::RenderPassEncoder pass = encoder.BeginRenderPass(&renderPass.renderPassInfo);
@@ -992,6 +989,9 @@
 // Regression test for crbug.com/dawn/408 where dynamic offsets were applied in the wrong order.
 // Dynamic offsets should be applied in increasing order of binding number.
 TEST_P(BindGroupTests, DynamicOffsetOrder) {
+    // D3D11 doesn't support partial updates of dynamic uniform buffers.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11());
+
     // We will put the following values and the respective offsets into a buffer.
     // The test will ensure that the correct dynamic offset is applied to each buffer by reading the
     // value from an offset binding.
@@ -1507,6 +1507,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BindGroupTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/BufferTests.cpp b/src/dawn/tests/end2end/BufferTests.cpp
index 98a96a7..a8af960 100644
--- a/src/dawn/tests/end2end/BufferTests.cpp
+++ b/src/dawn/tests/end2end/BufferTests.cpp
@@ -553,6 +553,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BufferMappingTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -713,7 +714,11 @@
     buffer.Unmap();
 }
 
-DAWN_INSTANTIATE_TEST(BufferMappingCallbackTests, D3D12Backend(), MetalBackend(), VulkanBackend());
+DAWN_INSTANTIATE_TEST(BufferMappingCallbackTests,
+                      D3D11Backend(),
+                      D3D12Backend(),
+                      MetalBackend(),
+                      VulkanBackend());
 
 class BufferMappedAtCreationTests : public DawnTest {
   protected:
@@ -961,6 +966,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BufferMappedAtCreationTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_resource_heap_tier2"}),
                       MetalBackend(),
@@ -1108,6 +1114,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BufferTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1140,6 +1147,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BufferNoSuballocationTests,
+                      D3D11Backend({"disable_resource_suballocation"}),
                       D3D12Backend({"disable_resource_suballocation"}),
                       MetalBackend({"disable_resource_suballocation"}),
                       OpenGLBackend({"disable_resource_suballocation"}),
diff --git a/src/dawn/tests/end2end/ClipSpaceTests.cpp b/src/dawn/tests/end2end/ClipSpaceTests.cpp
index ca0fa35..5f8c07e 100644
--- a/src/dawn/tests/end2end/ClipSpaceTests.cpp
+++ b/src/dawn/tests/end2end/ClipSpaceTests.cpp
@@ -93,6 +93,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ClipSpaceTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ColorStateTests.cpp b/src/dawn/tests/end2end/ColorStateTests.cpp
index 0216eae..c5e35b1 100644
--- a/src/dawn/tests/end2end/ColorStateTests.cpp
+++ b/src/dawn/tests/end2end/ColorStateTests.cpp
@@ -1189,6 +1189,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ColorStateTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/CommandEncoderTests.cpp b/src/dawn/tests/end2end/CommandEncoderTests.cpp
index 00d99c5..14f227e 100644
--- a/src/dawn/tests/end2end/CommandEncoderTests.cpp
+++ b/src/dawn/tests/end2end/CommandEncoderTests.cpp
@@ -46,6 +46,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CommandEncoderTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/CompressedTextureFormatTests.cpp b/src/dawn/tests/end2end/CompressedTextureFormatTests.cpp
index e0650c4..3ecd54d 100644
--- a/src/dawn/tests/end2end/CompressedTextureFormatTests.cpp
+++ b/src/dawn/tests/end2end/CompressedTextureFormatTests.cpp
@@ -1121,8 +1121,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(CompressedTextureFormatTest,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend(),
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend(),
                          VulkanBackend({"use_temporary_buffer_in_texture_to_texture_copy"})},
                         std::vector<wgpu::TextureFormat>(utils::kCompressedFormats.begin(),
                                                          utils::kCompressedFormats.end()));
@@ -1177,6 +1177,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CompressedTextureFormatSpecificTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1304,7 +1305,7 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(CompressedTextureWriteTextureTest,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kCompressedFormats.begin(),
                                                          utils::kCompressedFormats.end()));
diff --git a/src/dawn/tests/end2end/ComputeCopyStorageBufferTests.cpp b/src/dawn/tests/end2end/ComputeCopyStorageBufferTests.cpp
index b4bd836..4cd8fe5 100644
--- a/src/dawn/tests/end2end/ComputeCopyStorageBufferTests.cpp
+++ b/src/dawn/tests/end2end/ComputeCopyStorageBufferTests.cpp
@@ -145,6 +145,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ComputeCopyStorageBufferTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ComputeDispatchTests.cpp b/src/dawn/tests/end2end/ComputeDispatchTests.cpp
index 23555a5..6930626 100644
--- a/src/dawn/tests/end2end/ComputeDispatchTests.cpp
+++ b/src/dawn/tests/end2end/ComputeDispatchTests.cpp
@@ -311,6 +311,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ComputeDispatchTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ComputeFlowControlTests.cpp b/src/dawn/tests/end2end/ComputeFlowControlTests.cpp
index 933ffaf..6c22093 100644
--- a/src/dawn/tests/end2end/ComputeFlowControlTests.cpp
+++ b/src/dawn/tests/end2end/ComputeFlowControlTests.cpp
@@ -500,6 +500,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ComputeFlowControlTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ComputeLayoutMemoryBufferTests.cpp b/src/dawn/tests/end2end/ComputeLayoutMemoryBufferTests.cpp
index 734d82c..897f1dd 100644
--- a/src/dawn/tests/end2end/ComputeLayoutMemoryBufferTests.cpp
+++ b/src/dawn/tests/end2end/ComputeLayoutMemoryBufferTests.cpp
@@ -778,6 +778,7 @@
 auto GenerateParams() {
     auto params = MakeParamGenerator<ComputeLayoutMemoryBufferTestParams>(
         {
+            D3D11Backend(),
             D3D12Backend(),
             D3D12Backend({"use_dxc"}),
             MetalBackend(),
diff --git a/src/dawn/tests/end2end/ComputeSharedMemoryTests.cpp b/src/dawn/tests/end2end/ComputeSharedMemoryTests.cpp
index e395517..57ad5b6 100644
--- a/src/dawn/tests/end2end/ComputeSharedMemoryTests.cpp
+++ b/src/dawn/tests/end2end/ComputeSharedMemoryTests.cpp
@@ -197,6 +197,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ComputeSharedMemoryTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ComputeStorageBufferBarrierTests.cpp b/src/dawn/tests/end2end/ComputeStorageBufferBarrierTests.cpp
index 4dbaf73..e9af858 100644
--- a/src/dawn/tests/end2end/ComputeStorageBufferBarrierTests.cpp
+++ b/src/dawn/tests/end2end/ComputeStorageBufferBarrierTests.cpp
@@ -409,6 +409,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ComputeStorageBufferBarrierTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp b/src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp
index f27bb27..b2ec442 100644
--- a/src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp
+++ b/src/dawn/tests/end2end/CopyExternalTextureForBrowserTests.cpp
@@ -378,7 +378,8 @@
 
 DAWN_INSTANTIATE_TEST_P(
     CopyExternalTextureForBrowserTests_Basic,
-    {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+    {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
+     VulkanBackend()},
     std::vector<CopyRect>({CopyRect::TopLeft, CopyRect::TopRight, CopyRect::BottomLeft,
                            CopyRect::BottomRight, CopyRect::FullSize}),
     std::vector<CopyRect>({CopyRect::TopLeft, CopyRect::TopRight, CopyRect::BottomLeft,
diff --git a/src/dawn/tests/end2end/CopyTests.cpp b/src/dawn/tests/end2end/CopyTests.cpp
index 8aaabc3..285096a 100644
--- a/src/dawn/tests/end2end/CopyTests.cpp
+++ b/src/dawn/tests/end2end/CopyTests.cpp
@@ -1353,6 +1353,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CopyTests_T2B,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1946,6 +1947,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CopyTests_B2T,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -2446,7 +2448,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     CopyTests_T2T,
-    {D3D12Backend(),
+    {D3D11Backend(), D3D12Backend(),
      D3D12Backend({"use_temp_buffer_in_small_format_texture_to_texture_copy_from_greater_to_less_"
                    "mip_level"}),
      D3D12Backend(
@@ -2470,8 +2472,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(CopyTests_Formats,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         {wgpu::TextureFormat::RGBA8Unorm, wgpu::TextureFormat::RGBA8UnormSrgb,
                          wgpu::TextureFormat::BGRA8Unorm, wgpu::TextureFormat::BGRA8UnormSrgb});
 
@@ -2502,6 +2504,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CopyTests_B2B,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -2530,6 +2533,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ClearBufferTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -2712,8 +2716,9 @@
 
 DAWN_INSTANTIATE_TEST_P(
     CopyToDepthStencilTextureAfterDestroyingBigBufferTests,
-    {D3D12Backend(), D3D12Backend({"d3d12_force_clear_copyable_depth_stencil_texture_on_creation"}),
-     MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+    {D3D11Backend(), D3D12Backend(),
+     D3D12Backend({"d3d12_force_clear_copyable_depth_stencil_texture_on_creation"}), MetalBackend(),
+     OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
     {wgpu::TextureFormat::Depth16Unorm, wgpu::TextureFormat::Stencil8},
     {InitializationMethod::CopyBufferToTexture, InitializationMethod::WriteTexture,
      InitializationMethod::CopyTextureToTexture},
@@ -2911,6 +2916,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(T2TCopyFromDirtyHeapTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/CopyTextureForBrowserTests.cpp b/src/dawn/tests/end2end/CopyTextureForBrowserTests.cpp
index d1d1d77..e458f2f 100644
--- a/src/dawn/tests/end2end/CopyTextureForBrowserTests.cpp
+++ b/src/dawn/tests/end2end/CopyTextureForBrowserTests.cpp
@@ -1116,6 +1116,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CopyTextureForBrowser_Basic,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1137,19 +1138,20 @@
     DoColorConversionTest();
 }
 
-DAWN_INSTANTIATE_TEST_P(
-    CopyTextureForBrowser_Formats,
-    {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
-    std::vector<wgpu::TextureFormat>({wgpu::TextureFormat::RGBA8Unorm,
-                                      wgpu::TextureFormat::BGRA8Unorm,
-                                      wgpu::TextureFormat::RGBA16Float}),
-    std::vector<wgpu::TextureFormat>(
-        {wgpu::TextureFormat::R8Unorm, wgpu::TextureFormat::R16Float, wgpu::TextureFormat::R32Float,
-         wgpu::TextureFormat::RG8Unorm, wgpu::TextureFormat::RG16Float,
-         wgpu::TextureFormat::RG32Float, wgpu::TextureFormat::RGBA8Unorm,
-         wgpu::TextureFormat::RGBA8UnormSrgb, wgpu::TextureFormat::BGRA8Unorm,
-         wgpu::TextureFormat::BGRA8UnormSrgb, wgpu::TextureFormat::RGB10A2Unorm,
-         wgpu::TextureFormat::RGBA16Float, wgpu::TextureFormat::RGBA32Float}));
+DAWN_INSTANTIATE_TEST_P(CopyTextureForBrowser_Formats,
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
+                        std::vector<wgpu::TextureFormat>({wgpu::TextureFormat::RGBA8Unorm,
+                                                          wgpu::TextureFormat::BGRA8Unorm,
+                                                          wgpu::TextureFormat::RGBA16Float}),
+                        std::vector<wgpu::TextureFormat>(
+                            {wgpu::TextureFormat::R8Unorm, wgpu::TextureFormat::R16Float,
+                             wgpu::TextureFormat::R32Float, wgpu::TextureFormat::RG8Unorm,
+                             wgpu::TextureFormat::RG16Float, wgpu::TextureFormat::RG32Float,
+                             wgpu::TextureFormat::RGBA8Unorm, wgpu::TextureFormat::RGBA8UnormSrgb,
+                             wgpu::TextureFormat::BGRA8Unorm, wgpu::TextureFormat::BGRA8UnormSrgb,
+                             wgpu::TextureFormat::RGB10A2Unorm, wgpu::TextureFormat::RGBA16Float,
+                             wgpu::TextureFormat::RGBA32Float}));
 
 // Verify |CopyTextureForBrowser| doing subrect copy.
 // Source texture is a full red texture and dst texture is a full
@@ -1170,8 +1172,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(CopyTextureForBrowser_SubRects,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::Origin3D>({{1, 1}, {1, 2}, {2, 1}}),
                         std::vector<wgpu::Origin3D>({{1, 1}, {1, 2}, {2, 1}}),
                         std::vector<wgpu::Extent3D>({{1, 1}, {2, 1}, {1, 2}, {2, 2}}),
@@ -1194,7 +1196,8 @@
 
 DAWN_INSTANTIATE_TEST_P(
     CopyTextureForBrowser_AlphaMode,
-    {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+    {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
+     VulkanBackend()},
     std::vector<wgpu::AlphaMode>({wgpu::AlphaMode::Premultiplied, wgpu::AlphaMode::Unpremultiplied,
                                   wgpu::AlphaMode::Opaque}),
     std::vector<wgpu::AlphaMode>({wgpu::AlphaMode::Premultiplied, wgpu::AlphaMode::Unpremultiplied,
@@ -1213,8 +1216,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(CopyTextureForBrowser_ColorSpace,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::TextureFormat>({wgpu::TextureFormat::RGBA16Float,
                                                           wgpu::TextureFormat::RGBA32Float}),
                         std::vector<ColorSpace>({ColorSpace::SRGB, ColorSpace::DisplayP3}),
diff --git a/src/dawn/tests/end2end/CreatePipelineAsyncTests.cpp b/src/dawn/tests/end2end/CreatePipelineAsyncTests.cpp
index 627d3b2..5d945be 100644
--- a/src/dawn/tests/end2end/CreatePipelineAsyncTests.cpp
+++ b/src/dawn/tests/end2end/CreatePipelineAsyncTests.cpp
@@ -955,6 +955,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CreatePipelineAsyncTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/CullingTests.cpp b/src/dawn/tests/end2end/CullingTests.cpp
index 3680466..47d30cc 100644
--- a/src/dawn/tests/end2end/CullingTests.cpp
+++ b/src/dawn/tests/end2end/CullingTests.cpp
@@ -127,6 +127,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(CullingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DepthBiasTests.cpp b/src/dawn/tests/end2end/DepthBiasTests.cpp
index 5ad2919..78538c1 100644
--- a/src/dawn/tests/end2end/DepthBiasTests.cpp
+++ b/src/dawn/tests/end2end/DepthBiasTests.cpp
@@ -390,6 +390,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DepthBiasTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DepthStencilCopyTests.cpp b/src/dawn/tests/end2end/DepthStencilCopyTests.cpp
index 37d04cb..5b440e3 100644
--- a/src/dawn/tests/end2end/DepthStencilCopyTests.cpp
+++ b/src/dawn/tests/end2end/DepthStencilCopyTests.cpp
@@ -1040,7 +1040,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     DepthStencilCopyTests,
-    {D3D12Backend(), MetalBackend(),
+    {D3D11Backend(), D3D12Backend(), MetalBackend(),
      MetalBackend({"use_blit_for_depth_texture_to_texture_copy_to_nonzero_subresource"}),
      MetalBackend({"use_blit_for_buffer_to_depth_texture_copy",
                    "use_blit_for_buffer_to_stencil_texture_copy"}),
@@ -1052,7 +1052,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     DepthCopyTests,
-    {D3D12Backend(),
+    {D3D11Backend(), D3D12Backend(),
      D3D12Backend({"d3d12_use_temp_buffer_in_depth_stencil_texture_and_buffer_"
                    "copy_with_non_zero_buffer_offset"}),
      MetalBackend(),
@@ -1062,7 +1062,7 @@
                                      kValidDepthCopyTextureFormats.end()));
 
 DAWN_INSTANTIATE_TEST_P(DepthCopyFromBufferTests,
-                        {D3D12Backend(),
+                        {D3D11Backend(), D3D12Backend(),
                          D3D12Backend({"d3d12_use_temp_buffer_in_depth_stencil_texture_and_buffer_"
                                        "copy_with_non_zero_buffer_offset"}),
                          MetalBackend(),
@@ -1073,7 +1073,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     StencilCopyTests,
-    {D3D12Backend(),
+    {D3D11Backend(), D3D12Backend(),
      D3D12Backend({"d3d12_use_temp_buffer_in_depth_stencil_texture_and_buffer_"
                    "copy_with_non_zero_buffer_offset"}),
      MetalBackend(), MetalBackend({"metal_use_combined_depth_stencil_format_for_stencil8"}),
@@ -1087,7 +1087,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     DepthStencilCopyTests_RegressionDawn1083,
-    {D3D12Backend(), MetalBackend(),
+    {D3D11Backend(), D3D12Backend(), MetalBackend(),
      MetalBackend({"use_blit_for_depth_texture_to_texture_copy_to_nonzero_subresource"}),
      OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
     std::vector<wgpu::TextureFormat>{wgpu::TextureFormat::Depth16Unorm,
diff --git a/src/dawn/tests/end2end/DepthStencilLoadOpTests.cpp b/src/dawn/tests/end2end/DepthStencilLoadOpTests.cpp
index 29bb81d..bbb784e 100644
--- a/src/dawn/tests/end2end/DepthStencilLoadOpTests.cpp
+++ b/src/dawn/tests/end2end/DepthStencilLoadOpTests.cpp
@@ -231,14 +231,14 @@
 
 auto GenerateParam() {
     auto params1 = MakeParamGenerator<DepthStencilLoadOpTestParams>(
-        {D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}), MetalBackend(),
-         OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+        {D3D11Backend(), D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}),
+         MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
         {wgpu::TextureFormat::Depth32Float, wgpu::TextureFormat::Depth16Unorm},
         {Check::CopyDepth, Check::DepthTest, Check::SampleDepth});
 
     auto params2 = MakeParamGenerator<DepthStencilLoadOpTestParams>(
-        {D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}), MetalBackend(),
-         MetalBackend({"metal_use_combined_depth_stencil_format_for_stencil8"}),
+        {D3D11Backend(), D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}),
+         MetalBackend(), MetalBackend({"metal_use_combined_depth_stencil_format_for_stencil8"}),
          MetalBackend(
              {"metal_use_both_depth_and_stencil_attachments_for_combined_depth_stencil_formats"}),
          OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
@@ -294,8 +294,9 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(StencilClearValueOverflowTest,
-                        {D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}),
-                         MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(),
+                         D3D12Backend({}, {"use_d3d12_render_pass"}), MetalBackend(),
+                         OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
                         {wgpu::TextureFormat::Depth24PlusStencil8,
                          wgpu::TextureFormat::Depth32FloatStencil8, wgpu::TextureFormat::Stencil8},
                         {Check::CopyStencil, Check::StencilTest});
@@ -412,8 +413,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(DepthTextureClearTwiceTest,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         {wgpu::TextureFormat::Depth16Unorm, wgpu::TextureFormat::Depth24Plus,
                          wgpu::TextureFormat::Depth32Float,
                          wgpu::TextureFormat::Depth32FloatStencil8,
diff --git a/src/dawn/tests/end2end/DepthStencilSamplingTests.cpp b/src/dawn/tests/end2end/DepthStencilSamplingTests.cpp
index 58f84f2..1898a87 100644
--- a/src/dawn/tests/end2end/DepthStencilSamplingTests.cpp
+++ b/src/dawn/tests/end2end/DepthStencilSamplingTests.cpp
@@ -921,19 +921,19 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(DepthStencilSamplingTest,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kDepthAndStencilFormats.begin(),
                                                          utils::kDepthAndStencilFormats.end()));
 
 DAWN_INSTANTIATE_TEST_P(DepthSamplingTest,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), OpenGLESBackend(),
-                         VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kDepthFormats.begin(),
                                                          utils::kDepthFormats.end()));
 
 DAWN_INSTANTIATE_TEST_P(StencilSamplingTest,
-                        {D3D12Backend(), MetalBackend(),
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(),
                          MetalBackend({"metal_use_combined_depth_stencil_format_for_stencil8"}),
                          OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kStencilFormats.begin(),
diff --git a/src/dawn/tests/end2end/DepthStencilStateTests.cpp b/src/dawn/tests/end2end/DepthStencilStateTests.cpp
index c2446bc..0c9457e 100644
--- a/src/dawn/tests/end2end/DepthStencilStateTests.cpp
+++ b/src/dawn/tests/end2end/DepthStencilStateTests.cpp
@@ -840,6 +840,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DepthStencilStateTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DestroyTests.cpp b/src/dawn/tests/end2end/DestroyTests.cpp
index 8a2d0bf..4b903f5 100644
--- a/src/dawn/tests/end2end/DestroyTests.cpp
+++ b/src/dawn/tests/end2end/DestroyTests.cpp
@@ -213,6 +213,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DestroyTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DeviceLifetimeTests.cpp b/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
index ad760fb..cec6374 100644
--- a/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
+++ b/src/dawn/tests/end2end/DeviceLifetimeTests.cpp
@@ -509,6 +509,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DeviceLifetimeTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       NullBackend(),
diff --git a/src/dawn/tests/end2end/DeviceLostTests.cpp b/src/dawn/tests/end2end/DeviceLostTests.cpp
index beb7a8a..f2ad3bd 100644
--- a/src/dawn/tests/end2end/DeviceLostTests.cpp
+++ b/src/dawn/tests/end2end/DeviceLostTests.cpp
@@ -537,6 +537,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DeviceLostTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       NullBackend(),
diff --git a/src/dawn/tests/end2end/DrawIndexedIndirectTests.cpp b/src/dawn/tests/end2end/DrawIndexedIndirectTests.cpp
index f87994f..549a5bb 100644
--- a/src/dawn/tests/end2end/DrawIndexedIndirectTests.cpp
+++ b/src/dawn/tests/end2end/DrawIndexedIndirectTests.cpp
@@ -710,6 +710,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DrawIndexedIndirectTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DrawIndexedTests.cpp b/src/dawn/tests/end2end/DrawIndexedTests.cpp
index 7f8198c..48b5a6c 100644
--- a/src/dawn/tests/end2end/DrawIndexedTests.cpp
+++ b/src/dawn/tests/end2end/DrawIndexedTests.cpp
@@ -156,6 +156,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DrawIndexedTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DrawIndirectTests.cpp b/src/dawn/tests/end2end/DrawIndirectTests.cpp
index 8c0b28a..b1ee395 100644
--- a/src/dawn/tests/end2end/DrawIndirectTests.cpp
+++ b/src/dawn/tests/end2end/DrawIndirectTests.cpp
@@ -129,6 +129,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DrawIndirectTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DrawTests.cpp b/src/dawn/tests/end2end/DrawTests.cpp
index 10c7e3a..e7ffbca 100644
--- a/src/dawn/tests/end2end/DrawTests.cpp
+++ b/src/dawn/tests/end2end/DrawTests.cpp
@@ -101,6 +101,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DrawTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/DynamicBufferOffsetTests.cpp b/src/dawn/tests/end2end/DynamicBufferOffsetTests.cpp
index 8f1d59e..1131857 100644
--- a/src/dawn/tests/end2end/DynamicBufferOffsetTests.cpp
+++ b/src/dawn/tests/end2end/DynamicBufferOffsetTests.cpp
@@ -573,6 +573,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DynamicBufferOffsetTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/EntryPointTests.cpp b/src/dawn/tests/end2end/EntryPointTests.cpp
index 18b3fbd..2bd1ca4 100644
--- a/src/dawn/tests/end2end/EntryPointTests.cpp
+++ b/src/dawn/tests/end2end/EntryPointTests.cpp
@@ -143,6 +143,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(EntryPointTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/FirstIndexOffsetTests.cpp b/src/dawn/tests/end2end/FirstIndexOffsetTests.cpp
index ccb0529..29b0dcf 100644
--- a/src/dawn/tests/end2end/FirstIndexOffsetTests.cpp
+++ b/src/dawn/tests/end2end/FirstIndexOffsetTests.cpp
@@ -322,6 +322,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(FirstIndexOffsetTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/FragDepthTests.cpp b/src/dawn/tests/end2end/FragDepthTests.cpp
index ec3217e..0b96589 100644
--- a/src/dawn/tests/end2end/FragDepthTests.cpp
+++ b/src/dawn/tests/end2end/FragDepthTests.cpp
@@ -224,6 +224,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(FragDepthTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/GpuMemorySynchronizationTests.cpp b/src/dawn/tests/end2end/GpuMemorySynchronizationTests.cpp
index 4b93539..f19f888 100644
--- a/src/dawn/tests/end2end/GpuMemorySynchronizationTests.cpp
+++ b/src/dawn/tests/end2end/GpuMemorySynchronizationTests.cpp
@@ -214,6 +214,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(GpuMemorySyncTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -385,6 +386,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(StorageToUniformSyncTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -646,6 +648,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(MultipleWriteThenMultipleReadTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/IndexFormatTests.cpp b/src/dawn/tests/end2end/IndexFormatTests.cpp
index fa51f50..e46073d 100644
--- a/src/dawn/tests/end2end/IndexFormatTests.cpp
+++ b/src/dawn/tests/end2end/IndexFormatTests.cpp
@@ -473,18 +473,21 @@
 }
 
 DAWN_INSTANTIATE_TEST(IndexFormatTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
                       OpenGLESBackend(),
                       VulkanBackend());
 DAWN_INSTANTIATE_TEST(TriangleStripPrimitiveRestartTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
                       OpenGLESBackend(),
                       VulkanBackend());
 DAWN_INSTANTIATE_TEST(LineStripPrimitiveRestartTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/MaxLimitTests.cpp b/src/dawn/tests/end2end/MaxLimitTests.cpp
index 0632318..9ea70bb 100644
--- a/src/dawn/tests/end2end/MaxLimitTests.cpp
+++ b/src/dawn/tests/end2end/MaxLimitTests.cpp
@@ -728,6 +728,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(MaxLimitTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/MemoryAllocationStressTests.cpp b/src/dawn/tests/end2end/MemoryAllocationStressTests.cpp
index 59fe068..4db3f4d 100644
--- a/src/dawn/tests/end2end/MemoryAllocationStressTests.cpp
+++ b/src/dawn/tests/end2end/MemoryAllocationStressTests.cpp
@@ -38,6 +38,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(MemoryAllocationStressTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/MultisampledRenderingTests.cpp b/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
index 11c2303..58f5cee 100644
--- a/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
+++ b/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
@@ -1130,6 +1130,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(MultisampledRenderingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_resource_heap_tier2"}),
                       D3D12Backend({}, {"use_d3d12_render_pass"}),
diff --git a/src/dawn/tests/end2end/MultisampledSamplingTests.cpp b/src/dawn/tests/end2end/MultisampledSamplingTests.cpp
index 358e981..dd4cf21 100644
--- a/src/dawn/tests/end2end/MultisampledSamplingTests.cpp
+++ b/src/dawn/tests/end2end/MultisampledSamplingTests.cpp
@@ -259,6 +259,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(MultisampledSamplingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ObjectCachingTests.cpp b/src/dawn/tests/end2end/ObjectCachingTests.cpp
index 8a69884..d51eeaa 100644
--- a/src/dawn/tests/end2end/ObjectCachingTests.cpp
+++ b/src/dawn/tests/end2end/ObjectCachingTests.cpp
@@ -445,6 +445,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ObjectCachingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/OpArrayLengthTests.cpp b/src/dawn/tests/end2end/OpArrayLengthTests.cpp
index c560b2a..a40b42d 100644
--- a/src/dawn/tests/end2end/OpArrayLengthTests.cpp
+++ b/src/dawn/tests/end2end/OpArrayLengthTests.cpp
@@ -275,6 +275,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(OpArrayLengthTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/PipelineCachingTests.cpp b/src/dawn/tests/end2end/PipelineCachingTests.cpp
index 69e7ef1..d5d8062 100644
--- a/src/dawn/tests/end2end/PipelineCachingTests.cpp
+++ b/src/dawn/tests/end2end/PipelineCachingTests.cpp
@@ -639,6 +639,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(SinglePipelineCachingTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({"use_dxc"}),
                       MetalBackend(),
diff --git a/src/dawn/tests/end2end/PipelineLayoutTests.cpp b/src/dawn/tests/end2end/PipelineLayoutTests.cpp
index dca4be3..02dabfe 100644
--- a/src/dawn/tests/end2end/PipelineLayoutTests.cpp
+++ b/src/dawn/tests/end2end/PipelineLayoutTests.cpp
@@ -144,6 +144,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(PipelineLayoutTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/PrimitiveStateTests.cpp b/src/dawn/tests/end2end/PrimitiveStateTests.cpp
index db1fed4..5c3a2bd 100644
--- a/src/dawn/tests/end2end/PrimitiveStateTests.cpp
+++ b/src/dawn/tests/end2end/PrimitiveStateTests.cpp
@@ -357,6 +357,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(DepthClippingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/PrimitiveTopologyTests.cpp b/src/dawn/tests/end2end/PrimitiveTopologyTests.cpp
index 9f4d7d2..1ad47c7 100644
--- a/src/dawn/tests/end2end/PrimitiveTopologyTests.cpp
+++ b/src/dawn/tests/end2end/PrimitiveTopologyTests.cpp
@@ -298,6 +298,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(PrimitiveTopologyTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/QueryTests.cpp b/src/dawn/tests/end2end/QueryTests.cpp
index 0635c75..1a09491 100644
--- a/src/dawn/tests/end2end/QueryTests.cpp
+++ b/src/dawn/tests/end2end/QueryTests.cpp
@@ -1284,23 +1284,27 @@
 }
 
 DAWN_INSTANTIATE_TEST(OcclusionQueryTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       MetalBackend({"metal_fill_empty_occlusion_queries_with_zero"}),
                       VulkanBackend());
 DAWN_INSTANTIATE_TEST(PipelineStatisticsQueryTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
                       OpenGLESBackend(),
                       VulkanBackend());
 DAWN_INSTANTIATE_TEST(TimestampQueryTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
                       OpenGLESBackend(),
                       VulkanBackend());
 DAWN_INSTANTIATE_TEST(TimestampQueryInsidePassesTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/QueueTests.cpp b/src/dawn/tests/end2end/QueueTests.cpp
index 23e6f40..2de1b49 100644
--- a/src/dawn/tests/end2end/QueueTests.cpp
+++ b/src/dawn/tests/end2end/QueueTests.cpp
@@ -30,6 +30,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(QueueTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       NullBackend(),
@@ -187,6 +188,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(QueueWriteBufferTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -771,6 +773,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(QueueWriteTextureTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({"d3d12_use_temp_buffer_in_depth_stencil_texture_and_buffer_"
                                     "copy_with_non_zero_buffer_offset"}),
diff --git a/src/dawn/tests/end2end/QueueTimelineTests.cpp b/src/dawn/tests/end2end/QueueTimelineTests.cpp
index b07ca08..cbdbfa4 100644
--- a/src/dawn/tests/end2end/QueueTimelineTests.cpp
+++ b/src/dawn/tests/end2end/QueueTimelineTests.cpp
@@ -96,6 +96,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(QueueTimelineTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ReadOnlyDepthStencilAttachmentTests.cpp b/src/dawn/tests/end2end/ReadOnlyDepthStencilAttachmentTests.cpp
index 06e6688..26228c9 100644
--- a/src/dawn/tests/end2end/ReadOnlyDepthStencilAttachmentTests.cpp
+++ b/src/dawn/tests/end2end/ReadOnlyDepthStencilAttachmentTests.cpp
@@ -344,12 +344,14 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(ReadOnlyDepthAttachmentTests,
-                        {D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}),
-                         MetalBackend(), VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(),
+                         D3D12Backend({}, {"use_d3d12_render_pass"}), MetalBackend(),
+                         VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kDepthFormats.begin(),
                                                          utils::kDepthFormats.end()));
 DAWN_INSTANTIATE_TEST_P(ReadOnlyStencilAttachmentTests,
-                        {D3D12Backend(), D3D12Backend({}, {"use_d3d12_render_pass"}),
-                         MetalBackend(), VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(),
+                         D3D12Backend({}, {"use_d3d12_render_pass"}), MetalBackend(),
+                         VulkanBackend()},
                         std::vector<wgpu::TextureFormat>(utils::kStencilFormats.begin(),
                                                          utils::kStencilFormats.end()));
diff --git a/src/dawn/tests/end2end/RenderAttachmentTests.cpp b/src/dawn/tests/end2end/RenderAttachmentTests.cpp
index bfc7188..dbc095c 100644
--- a/src/dawn/tests/end2end/RenderAttachmentTests.cpp
+++ b/src/dawn/tests/end2end/RenderAttachmentTests.cpp
@@ -76,6 +76,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderAttachmentTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_render_pass"}),
                       MetalBackend(),
diff --git a/src/dawn/tests/end2end/RenderBundleTests.cpp b/src/dawn/tests/end2end/RenderBundleTests.cpp
index d3e8e2f..abdefab 100644
--- a/src/dawn/tests/end2end/RenderBundleTests.cpp
+++ b/src/dawn/tests/end2end/RenderBundleTests.cpp
@@ -194,6 +194,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderBundleTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/RenderPassLoadOpTests.cpp b/src/dawn/tests/end2end/RenderPassLoadOpTests.cpp
index 8eac3ed..f25f5fd 100644
--- a/src/dawn/tests/end2end/RenderPassLoadOpTests.cpp
+++ b/src/dawn/tests/end2end/RenderPassLoadOpTests.cpp
@@ -714,6 +714,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderPassLoadOpTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/RenderPassTests.cpp b/src/dawn/tests/end2end/RenderPassTests.cpp
index 14e8d72..9a14a4a 100644
--- a/src/dawn/tests/end2end/RenderPassTests.cpp
+++ b/src/dawn/tests/end2end/RenderPassTests.cpp
@@ -166,6 +166,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderPassTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_render_pass"}),
                       MetalBackend(),
@@ -225,6 +226,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderPassTest_RegressionDawn1071,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       MetalBackend({"metal_render_r8_rg8_unorm_small_mip_to_temp_texture"}),
@@ -359,6 +361,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(RenderPassTest_RegressionDawn1389,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       MetalBackend({"use_blit_for_buffer_to_depth_texture_copy"}),
diff --git a/src/dawn/tests/end2end/RequiredBufferSizeInCopyTests.cpp b/src/dawn/tests/end2end/RequiredBufferSizeInCopyTests.cpp
index 58c45ce..6d5c038 100644
--- a/src/dawn/tests/end2end/RequiredBufferSizeInCopyTests.cpp
+++ b/src/dawn/tests/end2end/RequiredBufferSizeInCopyTests.cpp
@@ -199,8 +199,9 @@
 
 DAWN_INSTANTIATE_TEST_P(
     RequiredBufferSizeInCopyTests,
-    {D3D12Backend(), D3D12Backend({"d3d12_split_buffer_texture_copy_for_rows_per_image_paddings"}),
-     MetalBackend(), OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
+    {D3D11Backend(), D3D12Backend(),
+     D3D12Backend({"d3d12_split_buffer_texture_copy_for_rows_per_image_paddings"}), MetalBackend(),
+     OpenGLBackend(), OpenGLESBackend(), VulkanBackend()},
     {Type::T2BCopy, Type::B2TCopy},
     {wgpu::TextureDimension::e3D, wgpu::TextureDimension::e2D},
     {2u, 1u},
diff --git a/src/dawn/tests/end2end/SamplerFilterAnisotropicTests.cpp b/src/dawn/tests/end2end/SamplerFilterAnisotropicTests.cpp
index f201d75d4..0a54085 100644
--- a/src/dawn/tests/end2end/SamplerFilterAnisotropicTests.cpp
+++ b/src/dawn/tests/end2end/SamplerFilterAnisotropicTests.cpp
@@ -288,6 +288,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(SamplerFilterAnisotropicTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/SamplerTests.cpp b/src/dawn/tests/end2end/SamplerTests.cpp
index c2dcb27..3960ec3 100644
--- a/src/dawn/tests/end2end/SamplerTests.cpp
+++ b/src/dawn/tests/end2end/SamplerTests.cpp
@@ -205,6 +205,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(SamplerTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ScissorTests.cpp b/src/dawn/tests/end2end/ScissorTests.cpp
index 60e5199..5d9a2fa 100644
--- a/src/dawn/tests/end2end/ScissorTests.cpp
+++ b/src/dawn/tests/end2end/ScissorTests.cpp
@@ -152,6 +152,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ScissorTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ShaderF16Tests.cpp b/src/dawn/tests/end2end/ShaderF16Tests.cpp
index 20ee517..243118b 100644
--- a/src/dawn/tests/end2end/ShaderF16Tests.cpp
+++ b/src/dawn/tests/end2end/ShaderF16Tests.cpp
@@ -443,6 +443,7 @@
 // DawnTestBase::CreateDeviceImpl always disable disallow_unsafe_apis toggle.
 DAWN_INSTANTIATE_TEST_P(ShaderF16Tests,
                         {
+                            D3D11Backend(),
                             D3D12Backend(),
                             D3D12Backend({"use_dxc"}),
                             VulkanBackend(),
diff --git a/src/dawn/tests/end2end/ShaderTests.cpp b/src/dawn/tests/end2end/ShaderTests.cpp
index 2e91325..6094ab9 100644
--- a/src/dawn/tests/end2end/ShaderTests.cpp
+++ b/src/dawn/tests/end2end/ShaderTests.cpp
@@ -1424,6 +1424,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ShaderTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({"use_dxc"}),
                       MetalBackend(),
diff --git a/src/dawn/tests/end2end/ShaderValidationTests.cpp b/src/dawn/tests/end2end/ShaderValidationTests.cpp
index 94da47f..9555f72 100644
--- a/src/dawn/tests/end2end/ShaderValidationTests.cpp
+++ b/src/dawn/tests/end2end/ShaderValidationTests.cpp
@@ -375,6 +375,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(WorkgroupSizeValidationTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       NullBackend(),
diff --git a/src/dawn/tests/end2end/StorageTextureTests.cpp b/src/dawn/tests/end2end/StorageTextureTests.cpp
index 0403632..1a1b413 100644
--- a/src/dawn/tests/end2end/StorageTextureTests.cpp
+++ b/src/dawn/tests/end2end/StorageTextureTests.cpp
@@ -867,6 +867,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(StorageTextureTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -931,6 +932,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BGRA8UnormStorageTextureTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/SubresourceRenderAttachmentTests.cpp b/src/dawn/tests/end2end/SubresourceRenderAttachmentTests.cpp
index 9722c53..27f3bf9 100644
--- a/src/dawn/tests/end2end/SubresourceRenderAttachmentTests.cpp
+++ b/src/dawn/tests/end2end/SubresourceRenderAttachmentTests.cpp
@@ -172,6 +172,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(SubresourceRenderAttachmentTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_render_pass"}),
                       MetalBackend(),
diff --git a/src/dawn/tests/end2end/Texture3DTests.cpp b/src/dawn/tests/end2end/Texture3DTests.cpp
index 6a6381d..4dee0a2 100644
--- a/src/dawn/tests/end2end/Texture3DTests.cpp
+++ b/src/dawn/tests/end2end/Texture3DTests.cpp
@@ -118,6 +118,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(Texture3DTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/TextureFormatTests.cpp b/src/dawn/tests/end2end/TextureFormatTests.cpp
index 5431e00..932926e 100644
--- a/src/dawn/tests/end2end/TextureFormatTests.cpp
+++ b/src/dawn/tests/end2end/TextureFormatTests.cpp
@@ -897,6 +897,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureFormatTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/TextureSubresourceTests.cpp b/src/dawn/tests/end2end/TextureSubresourceTests.cpp
index 169f89d..4d9584b 100644
--- a/src/dawn/tests/end2end/TextureSubresourceTests.cpp
+++ b/src/dawn/tests/end2end/TextureSubresourceTests.cpp
@@ -189,6 +189,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureSubresourceTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/TextureViewTests.cpp b/src/dawn/tests/end2end/TextureViewTests.cpp
index 7b8c2bb..d28c72e 100644
--- a/src/dawn/tests/end2end/TextureViewTests.cpp
+++ b/src/dawn/tests/end2end/TextureViewTests.cpp
@@ -977,6 +977,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureViewSamplingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -984,6 +985,7 @@
                       VulkanBackend());
 
 DAWN_INSTANTIATE_TEST(TextureViewRenderingTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       D3D12Backend({}, {"use_d3d12_render_pass"}),
                       MetalBackend(),
@@ -1024,6 +1026,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureViewTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1040,6 +1043,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureView3DTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -1114,6 +1118,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(TextureView1DTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       VulkanBackend(),
diff --git a/src/dawn/tests/end2end/VertexFormatTests.cpp b/src/dawn/tests/end2end/VertexFormatTests.cpp
index 34182dc..42c6aec 100644
--- a/src/dawn/tests/end2end/VertexFormatTests.cpp
+++ b/src/dawn/tests/end2end/VertexFormatTests.cpp
@@ -829,6 +829,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(VertexFormatTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/VertexOnlyRenderPipelineTests.cpp b/src/dawn/tests/end2end/VertexOnlyRenderPipelineTests.cpp
index a02562b..bdf9ab8 100644
--- a/src/dawn/tests/end2end/VertexOnlyRenderPipelineTests.cpp
+++ b/src/dawn/tests/end2end/VertexOnlyRenderPipelineTests.cpp
@@ -307,6 +307,8 @@
 }
 
 DAWN_INSTANTIATE_TEST(VertexOnlyRenderPipelineTest,
+                      D3D11Backend(),
+                      D3D11Backend({"use_placeholder_fragment_in_vertex_only_pipeline"}),
                       D3D12Backend(),
                       D3D12Backend({"use_placeholder_fragment_in_vertex_only_pipeline"}),
                       MetalBackend(),
diff --git a/src/dawn/tests/end2end/VertexStateTests.cpp b/src/dawn/tests/end2end/VertexStateTests.cpp
index 5b0e49b..5a962ab 100644
--- a/src/dawn/tests/end2end/VertexStateTests.cpp
+++ b/src/dawn/tests/end2end/VertexStateTests.cpp
@@ -645,6 +645,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(VertexStateTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
@@ -691,6 +692,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(OptionalVertexStateTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ViewportOrientationTests.cpp b/src/dawn/tests/end2end/ViewportOrientationTests.cpp
index 8e8f1e7..11b7fdc 100644
--- a/src/dawn/tests/end2end/ViewportOrientationTests.cpp
+++ b/src/dawn/tests/end2end/ViewportOrientationTests.cpp
@@ -59,6 +59,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ViewportOrientationTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/end2end/ViewportTests.cpp b/src/dawn/tests/end2end/ViewportTests.cpp
index 5fbeed0..6233c4a 100644
--- a/src/dawn/tests/end2end/ViewportTests.cpp
+++ b/src/dawn/tests/end2end/ViewportTests.cpp
@@ -220,6 +220,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(ViewportTest,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/perf_tests/BufferUploadPerf.cpp b/src/dawn/tests/perf_tests/BufferUploadPerf.cpp
index 8381729..1e8df07 100644
--- a/src/dawn/tests/perf_tests/BufferUploadPerf.cpp
+++ b/src/dawn/tests/perf_tests/BufferUploadPerf.cpp
@@ -147,7 +147,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(BufferUploadPerf,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         VulkanBackend()},
                         {UploadMethod::WriteBuffer, UploadMethod::MappedAtCreation},
                         {UploadSize::BufferSize_1KB, UploadSize::BufferSize_64KB,
                          UploadSize::BufferSize_1MB, UploadSize::BufferSize_4MB,
diff --git a/src/dawn/tests/perf_tests/DrawCallPerf.cpp b/src/dawn/tests/perf_tests/DrawCallPerf.cpp
index 640e156..cf89f9b 100644
--- a/src/dawn/tests/perf_tests/DrawCallPerf.cpp
+++ b/src/dawn/tests/perf_tests/DrawCallPerf.cpp
@@ -597,7 +597,7 @@
 
 DAWN_INSTANTIATE_TEST_P(
     DrawCallPerf,
-    {D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend(),
+    {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend(),
      VulkanBackend({"skip_validation"})},
     {
         // Baseline
diff --git a/src/dawn/tests/perf_tests/ShaderRobustnessPerf.cpp b/src/dawn/tests/perf_tests/ShaderRobustnessPerf.cpp
index 3b174ad..5f2553b 100644
--- a/src/dawn/tests/perf_tests/ShaderRobustnessPerf.cpp
+++ b/src/dawn/tests/perf_tests/ShaderRobustnessPerf.cpp
@@ -497,7 +497,8 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(ShaderRobustnessPerf,
-                        {D3D12Backend(), D3D12Backend({"disable_robustness"}, {}), MetalBackend(),
+                        {D3D11Backend(), D3D11Backend({"disable_robustness"}, {}), D3D12Backend(),
+                         D3D12Backend({"disable_robustness"}, {}), MetalBackend(),
                          MetalBackend({"disable_robustness"}, {}), OpenGLBackend(),
                          OpenGLBackend({"disable_robustness"}, {}), VulkanBackend(),
                          VulkanBackend({"disable_robustness"}, {})},
diff --git a/src/dawn/tests/perf_tests/SubresourceTrackingPerf.cpp b/src/dawn/tests/perf_tests/SubresourceTrackingPerf.cpp
index e3ccb6f..eacaab1 100644
--- a/src/dawn/tests/perf_tests/SubresourceTrackingPerf.cpp
+++ b/src/dawn/tests/perf_tests/SubresourceTrackingPerf.cpp
@@ -144,6 +144,7 @@
 }
 
 DAWN_INSTANTIATE_TEST_P(SubresourceTrackingPerf,
-                        {D3D12Backend(), MetalBackend(), OpenGLBackend(), VulkanBackend()},
+                        {D3D11Backend(), D3D12Backend(), MetalBackend(), OpenGLBackend(),
+                         VulkanBackend()},
                         {1, 4, 16, 256},
                         {2, 3, 8});
diff --git a/src/dawn/tests/white_box/BufferAllocatedSizeTests.cpp b/src/dawn/tests/white_box/BufferAllocatedSizeTests.cpp
index cfa9026..e09e371 100644
--- a/src/dawn/tests/white_box/BufferAllocatedSizeTests.cpp
+++ b/src/dawn/tests/white_box/BufferAllocatedSizeTests.cpp
@@ -36,12 +36,17 @@
 
 // Test expected allocated size for buffers with uniform usage
 TEST_P(BufferAllocatedSizeTests, UniformUsage) {
+    // D3D11 backend doesn't support buffer with both uniform and storage usage.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11());
+
     // Some backends have a minimum buffer size, so make sure
     // we allocate above that.
     constexpr uint32_t kMinBufferSize = 4u;
 
     uint32_t requiredBufferAlignment = 1u;
-    if (IsD3D12()) {
+    if (IsD3D11()) {
+        requiredBufferAlignment = 256u;
+    } else if (IsD3D12()) {
         requiredBufferAlignment = 256u;
     } else if (IsMetal()) {
         requiredBufferAlignment = 16u;
@@ -78,6 +83,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(BufferAllocatedSizeTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       OpenGLBackend(),
diff --git a/src/dawn/tests/white_box/InternalStorageBufferBindingTests.cpp b/src/dawn/tests/white_box/InternalStorageBufferBindingTests.cpp
index 0be3d3b..0b63439 100644
--- a/src/dawn/tests/white_box/InternalStorageBufferBindingTests.cpp
+++ b/src/dawn/tests/white_box/InternalStorageBufferBindingTests.cpp
@@ -108,6 +108,7 @@
 }
 
 DAWN_INSTANTIATE_TEST(InternalStorageBufferBindingTests,
+                      D3D11Backend(),
                       D3D12Backend(),
                       MetalBackend(),
                       VulkanBackend());
diff --git a/src/dawn/tests/white_box/QueryInternalShaderTests.cpp b/src/dawn/tests/white_box/QueryInternalShaderTests.cpp
index 296bbaa..b63453c 100644
--- a/src/dawn/tests/white_box/QueryInternalShaderTests.cpp
+++ b/src/dawn/tests/white_box/QueryInternalShaderTests.cpp
@@ -224,4 +224,8 @@
     }
 }
 
-DAWN_INSTANTIATE_TEST(QueryInternalShaderTests, D3D12Backend(), MetalBackend(), VulkanBackend());
+DAWN_INSTANTIATE_TEST(QueryInternalShaderTests,
+                      D3D11Backend(),
+                      D3D12Backend(),
+                      MetalBackend(),
+                      VulkanBackend());