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:
parent
a526167e33
commit
249dcd8f87
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -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());
|
||||
|
||||
|
|
|
@ -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>,
|
||||
|
|
|
@ -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 {
|
||||
|
|
|
@ -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"(
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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> {
|
||||
|
|
Loading…
Reference in New Issue