Switch ANGLE backend to D3D11 on Windows for DawnTest.

This will test the same path currently exercised by the
WebGPU/Compat prototype in Chrome.

Suppress failing tests.

Bug: dawn:1420
Change-Id: Ie3d55e387ece292a98ec15eeaa04b6fad25e3be7
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/90080
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Commit-Queue: Stephen White <senorblanco@chromium.org>
This commit is contained in:
Stephen White 2022-05-20 17:16:21 +00:00 committed by Dawn LUCI CQ
parent a526167e33
commit 249dcd8f87
10 changed files with 43 additions and 8 deletions

View File

@ -451,7 +451,11 @@ std::unique_ptr<dawn::native::Instance> DawnTestEnvironment::CreateInstanceAndDi
if (!mANGLEBackend.empty()) {
platform = mANGLEBackend.c_str();
} else {
#if defined(DAWN_PLATFORM_WINDOWS)
platform = "d3d11";
#else
platform = "swiftshader";
#endif
}
angleDefaultPlatform.Set("ANGLE_DEFAULT_PLATFORM", platform);
}

View File

@ -553,6 +553,9 @@ TEST_P(BindGroupTests, MultipleEntryPointsWithMultipleNonZeroGroups) {
// This test reproduces an out-of-bound bug on D3D12 backends when calling draw command twice with
// one pipeline that has 4 bind group sets in one render pass.
TEST_P(BindGroupTests, DrawTwiceInSamePipelineWithFourBindGroupSets) {
// TODO(anglebug.com/7304): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, kRTSize, kRTSize);
wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
@ -782,6 +785,9 @@ TEST_P(BindGroupTests, BindGroupsPersistAfterPipelineChange) {
// Do a successful draw. Then, change the pipeline and one bind group.
// Draw to check that the all bind groups are set.
TEST_P(BindGroupTests, DrawThenChangePipelineAndBindGroup) {
// TODO(anglebug.com/3032): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, kRTSize, kRTSize);
// Create a bind group layout which uses a single dynamic uniform buffer.
@ -1230,6 +1236,9 @@ TEST_P(BindGroupTests, DynamicBindingNoneVisibility) {
// Test that bind group bindings may have unbounded and arbitrary binding numbers
TEST_P(BindGroupTests, ArbitraryBindingNumbers) {
// TODO(anglebug.com/7305): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
// TODO(crbug.com/dawn/736): Test output is wrong with D3D12 + WARP.
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsWARP());

View File

@ -105,6 +105,9 @@ TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfBasic) {
// Test that a slightly-less-trivial compute-shader memcpy implementation works.
TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfStruct) {
// TODO(anglebug.com/7271): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
BasicTest(R"(
struct S {
a : vec2<u32>,

View File

@ -104,6 +104,9 @@ TEST_P(ComputeSharedMemoryTests, Basic) {
// for matrices in threadgroup memory. Basic test that reading and
// writing a matrix in workgroup memory works.
TEST_P(ComputeSharedMemoryTests, AssortedTypes) {
// TODO(anglebug.com/7226): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
wgpu::ComputePipelineDescriptor csDesc;
csDesc.compute.module = utils::CreateShaderModule(device, R"(
struct StructValues {

View File

@ -340,6 +340,9 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPongInOnePass) {
// 2 - Write ones into it with a compute shader.
// 3 - Use the indirect buffer in a Dispatch while also reading its data.
TEST_P(ComputeStorageBufferBarrierTests, IndirectBufferCorrectBarrier) {
// TODO(anglebug.com/7226): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
wgpu::ComputePipelineDescriptor step2PipelineDesc;
step2PipelineDesc.compute.entryPoint = "main";
step2PipelineDesc.compute.module = utils::CreateShaderModule(device, R"(

View File

@ -2290,6 +2290,9 @@ TEST_P(CopyTests_T2T, Texture3DSameTextureDifferentMipLevels) {
// Test that copying whole 3D texture to a 2D array in one texture-to-texture-copy works.
TEST_P(CopyTests_T2T, Texture3DTo2DArrayFull) {
// TODO(crbug.com/dawn/1425): Remove this suppression.
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows() && IsIntel());
constexpr uint32_t kWidth = 256;
constexpr uint32_t kHeight = 128;
constexpr uint32_t kDepth = 6u;
@ -2307,6 +2310,9 @@ TEST_P(CopyTests_T2T, Texture3DAnd2DArraySubRegion) {
// TODO(crbug.com/dawn/1216): Remove this suppression.
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
// TODO(crbug.com/dawn/1426): Remove this suppression.
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows() && IsIntel());
constexpr uint32_t kWidth = 8;
constexpr uint32_t kHeight = 4;
constexpr uint32_t kDepth = 2u;

View File

@ -437,9 +437,9 @@ TEST_P(DepthCopyTests, FromDepthAspect) {
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
(IsOpenGL() || IsOpenGLES()));
// TODO(crbug.com/dawn/1291): These tests are failing on NVidia GLES
// TODO(crbug.com/dawn/1291): These tests are failing on GLES (both native and ANGLE)
// when using Tint/GLSL.
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES() && IsNvidia());
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES());
constexpr uint32_t kWidth = 4;
constexpr uint32_t kHeight = 4;
@ -480,9 +480,9 @@ TEST_P(DepthCopyTests, FromNonZeroMipDepthAspect) {
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
(IsOpenGL() || IsOpenGLES()));
// TODO(crbug.com/dawn/1291): These tests are failing on NVidia GLES
// TODO(crbug.com/dawn/1291): These tests are failing on GLES (both native and ANGLE)
// when using Tint/GLSL.
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES() && IsNvidia());
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES());
wgpu::Texture depthTexture = CreateDepthTexture(
9, 9, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc, 2);

View File

@ -606,8 +606,8 @@ class DepthStencilSamplingTest : public DawnTestWithParams<DepthStencilSamplingT
// Test that sampling a depth/stencil texture at components 1, 2, and 3 yield 0, 0, and 1
// respectively
TEST_P(DepthStencilSamplingTest, SampleExtraComponents) {
// This test fails on SwANGLE (although it passes on other ANGLE backends).
DAWN_TEST_UNSUPPORTED_IF(IsANGLE());
// This test fails on ANGLE (both SwiftShader and D3D11).
DAWN_SUPPRESS_TEST_IF(IsANGLE());
wgpu::TextureFormat format = GetParam().mTextureFormat;
@ -624,6 +624,9 @@ TEST_P(DepthStencilSamplingTest, SampleExtraComponents) {
// Test sampling both depth and stencil with a render/compute pipeline works.
TEST_P(DepthStencilSamplingTest, SampleDepthAndStencilRender) {
// TODO(anglebug.com/7303): fix failure in ANGLE/D3D11
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
wgpu::TextureFormat format = GetParam().mTextureFormat;
wgpu::SamplerDescriptor samplerDesc;

View File

@ -100,7 +100,7 @@ TEST_P(OpArrayLengthTest, Compute) {
// TODO(crbug.com/dawn/1292): Some Intel drivers don't seem to like the
// (spurious but harmless) offset=64 that Tint/GLSL produces.
DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL());
DAWN_SUPPRESS_TEST_IF(IsIntel() && (IsOpenGL() || IsOpenGLES()));
// Create a buffer to hold the result sizes and create a bindgroup for it.
wgpu::BufferDescriptor bufferDesc;
@ -161,7 +161,7 @@ TEST_P(OpArrayLengthTest, Fragment) {
// TODO(crbug.com/dawn/1292): Some Intel drivers don't seem to like the
// (spurious but harmless) offset=64 that Tint/GLSL produces.
DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL());
DAWN_SUPPRESS_TEST_IF(IsIntel() && (IsOpenGL() || IsOpenGLES()));
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, 1, 1);

View File

@ -364,6 +364,10 @@ struct S1 { data : array<vec4<u32>, 20> }
// Test that WGSL built-in variable @sample_index can be used in fragment shaders.
TEST_P(ShaderTests, SampleIndex) {
// TODO(crbug.com/dawn/673): Work around or enforce via validation that sample variables are not
// supported on some platforms.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_sample_variables"));
wgpu::ShaderModule vsModule = utils::CreateShaderModule(device, R"(
@stage(vertex)
fn main(@location(0) pos : vec4<f32>) -> @builtin(position) vec4<f32> {