d3d11: Suppress Intel Gen12 specific fails

Many 16 float formats fail in CopyTests.
D3D11_QUERY_OCCLUSION_PREDICATE doesn't work.
Cubemap view on part of texture doesn't work if the texture has less
than 12 total layers.

Bug: dawn:1935
Bug: dawn:1870
Bug: dawn:1705

Change-Id: I4c993a4492a805352ef7d2f8e43258188374195f
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/142822
Reviewed-by: Peng Huang <penghuang@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Austin Eng <enga@chromium.org>
diff --git a/src/dawn/tests/end2end/CopyTests.cpp b/src/dawn/tests/end2end/CopyTests.cpp
index 9e8bac3..3ed6803 100644
--- a/src/dawn/tests/end2end/CopyTests.cpp
+++ b/src/dawn/tests/end2end/CopyTests.cpp
@@ -183,6 +183,12 @@
                                GetParam().mTextureFormat == wgpu::TextureFormat::RGBA16Float ||
                                GetParam().mTextureFormat == wgpu::TextureFormat::RG11B10Ufloat) &&
                               IsAndroid() && IsVulkan());
+
+        // TODO(dawn:1935): Many 16 float formats tests failing for D3D11 backend on Intel Gen12.
+        DAWN_SUPPRESS_TEST_IF((GetParam().mTextureFormat == wgpu::TextureFormat::R16Float ||
+                               GetParam().mTextureFormat == wgpu::TextureFormat::RGBA16Float ||
+                               GetParam().mTextureFormat == wgpu::TextureFormat::RG11B10Ufloat) &&
+                              IsD3D11() && IsIntelGen12());
     }
     static BufferSpec MinimumBufferSpec(uint32_t width, uint32_t height, uint32_t depth = 1) {
         return CopyTests::MinimumBufferSpec(width, height, depth, GetParam().mTextureFormat);
diff --git a/src/dawn/tests/end2end/QueryTests.cpp b/src/dawn/tests/end2end/QueryTests.cpp
index a52ca2b..2dc25ad 100644
--- a/src/dawn/tests/end2end/QueryTests.cpp
+++ b/src/dawn/tests/end2end/QueryTests.cpp
@@ -231,6 +231,9 @@
 // zero indicates that no sample passed depth/stencil testing,
 // non-zero indicates that at least one sample passed depth/stencil testing.
 TEST_P(OcclusionQueryTests, QueryWithDepthStencilTest) {
+    // TODO(dawn:1870): D3D11_QUERY_OCCLUSION_PREDICATE doesn't work on Intel Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     // Disable depth/stencil testing, the samples always pass the testing, the expected occlusion
     // result is non-zero.
     TestOcclusionQueryWithDepthStencilTest(false, false, OcclusionExpectation::Result::NonZero);
@@ -249,6 +252,9 @@
 // zero indicates that no sample passed scissor testing,
 // non-zero indicates that at least one sample passed scissor testing.
 TEST_P(OcclusionQueryTests, QueryWithScissorTest) {
+    // TODO(dawn:1870): D3D11_QUERY_OCCLUSION_PREDICATE doesn't work on Intel Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     // Test there are samples passed scissor testing, the expected occlusion result is non-zero.
     TestOcclusionQueryWithScissorTest({2, 1, 2, 1}, OcclusionExpectation::Result::NonZero);
 
@@ -369,6 +375,9 @@
 
 // Test setting an occlusion query to non-zero, then rewriting it without drawing, resolves to 0.
 TEST_P(OcclusionQueryTests, RewriteNoDrawToZero) {
+    // TODO(dawn:1870): D3D11_QUERY_OCCLUSION_PREDICATE doesn't work on Intel Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     constexpr uint32_t kQueryCount = 1;
 
     wgpu::QuerySet querySet = CreateOcclusionQuerySet(kQueryCount);
@@ -407,6 +416,9 @@
 // Test setting an occlusion query to non-zero, then rewriting it without drawing, resolves to 0.
 // Do the two queries+resolves in separate submits.
 TEST_P(OcclusionQueryTests, RewriteNoDrawToZeroSeparateSubmit) {
+    // TODO(dawn:1870): D3D11_QUERY_OCCLUSION_PREDICATE doesn't work on Intel Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     constexpr uint32_t kQueryCount = 1;
 
     wgpu::QuerySet querySet = CreateOcclusionQuerySet(kQueryCount);
@@ -447,6 +459,9 @@
 // Test that resetting an occlusion query to zero works when a draw is done where all primitives
 // fail the depth test.
 TEST_P(OcclusionQueryTests, RewriteToZeroWithDraw) {
+    // TODO(dawn:1870): D3D11_QUERY_OCCLUSION_PREDICATE doesn't work on Intel Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     constexpr uint32_t kQueryCount = 1;
 
     utils::ComboRenderPipelineDescriptor descriptor;
diff --git a/src/dawn/tests/end2end/TextureViewTests.cpp b/src/dawn/tests/end2end/TextureViewTests.cpp
index 68174bf..098f417 100644
--- a/src/dawn/tests/end2end/TextureViewTests.cpp
+++ b/src/dawn/tests/end2end/TextureViewTests.cpp
@@ -536,6 +536,9 @@
 
 // Test sampling from a cube map texture view that covers a sub part of a 2D array texture.
 TEST_P(TextureViewSamplingTest, TextureCubeMapViewOnPartOfTexture) {
+    // TODO(dawn:1935): Total layers have to be at least 12 on Intel D3D11 Gen12.
+    DAWN_SUPPRESS_TEST_IF(IsD3D11() && IsIntelGen12());
+
     TextureCubeMapTest(10, 2, 6, false);
 }