mirror of
https://github.com/encounter/dawn-cmake.git
synced 2025-07-05 12:46:11 +00:00
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()) {
|
if (!mANGLEBackend.empty()) {
|
||||||
platform = mANGLEBackend.c_str();
|
platform = mANGLEBackend.c_str();
|
||||||
} else {
|
} else {
|
||||||
|
#if defined(DAWN_PLATFORM_WINDOWS)
|
||||||
|
platform = "d3d11";
|
||||||
|
#else
|
||||||
platform = "swiftshader";
|
platform = "swiftshader";
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
angleDefaultPlatform.Set("ANGLE_DEFAULT_PLATFORM", platform);
|
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
|
// 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.
|
// one pipeline that has 4 bind group sets in one render pass.
|
||||||
TEST_P(BindGroupTests, DrawTwiceInSamePipelineWithFourBindGroupSets) {
|
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);
|
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, kRTSize, kRTSize);
|
||||||
|
|
||||||
wgpu::BindGroupLayout layout = utils::MakeBindGroupLayout(
|
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.
|
// Do a successful draw. Then, change the pipeline and one bind group.
|
||||||
// Draw to check that the all bind groups are set.
|
// Draw to check that the all bind groups are set.
|
||||||
TEST_P(BindGroupTests, DrawThenChangePipelineAndBindGroup) {
|
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);
|
utils::BasicRenderPass renderPass = utils::CreateBasicRenderPass(device, kRTSize, kRTSize);
|
||||||
|
|
||||||
// Create a bind group layout which uses a single dynamic uniform buffer.
|
// 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 that bind group bindings may have unbounded and arbitrary binding numbers
|
||||||
TEST_P(BindGroupTests, ArbitraryBindingNumbers) {
|
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.
|
// TODO(crbug.com/dawn/736): Test output is wrong with D3D12 + WARP.
|
||||||
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsWARP());
|
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 that a slightly-less-trivial compute-shader memcpy implementation works.
|
||||||
TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfStruct) {
|
TEST_P(ComputeCopyStorageBufferTests, SizedArrayOfStruct) {
|
||||||
|
// TODO(anglebug.com/7271): fix failure in ANGLE/D3D11
|
||||||
|
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
|
||||||
|
|
||||||
BasicTest(R"(
|
BasicTest(R"(
|
||||||
struct S {
|
struct S {
|
||||||
a : vec2<u32>,
|
a : vec2<u32>,
|
||||||
|
@ -104,6 +104,9 @@ TEST_P(ComputeSharedMemoryTests, Basic) {
|
|||||||
// for matrices in threadgroup memory. Basic test that reading and
|
// for matrices in threadgroup memory. Basic test that reading and
|
||||||
// writing a matrix in workgroup memory works.
|
// writing a matrix in workgroup memory works.
|
||||||
TEST_P(ComputeSharedMemoryTests, AssortedTypes) {
|
TEST_P(ComputeSharedMemoryTests, AssortedTypes) {
|
||||||
|
// TODO(anglebug.com/7226): fix failure in ANGLE/D3D11
|
||||||
|
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
|
||||||
|
|
||||||
wgpu::ComputePipelineDescriptor csDesc;
|
wgpu::ComputePipelineDescriptor csDesc;
|
||||||
csDesc.compute.module = utils::CreateShaderModule(device, R"(
|
csDesc.compute.module = utils::CreateShaderModule(device, R"(
|
||||||
struct StructValues {
|
struct StructValues {
|
||||||
|
@ -340,6 +340,9 @@ TEST_P(ComputeStorageBufferBarrierTests, UniformToStorageAddPingPongInOnePass) {
|
|||||||
// 2 - Write ones into it with a compute shader.
|
// 2 - Write ones into it with a compute shader.
|
||||||
// 3 - Use the indirect buffer in a Dispatch while also reading its data.
|
// 3 - Use the indirect buffer in a Dispatch while also reading its data.
|
||||||
TEST_P(ComputeStorageBufferBarrierTests, IndirectBufferCorrectBarrier) {
|
TEST_P(ComputeStorageBufferBarrierTests, IndirectBufferCorrectBarrier) {
|
||||||
|
// TODO(anglebug.com/7226): fix failure in ANGLE/D3D11
|
||||||
|
DAWN_SUPPRESS_TEST_IF(IsANGLE() && IsWindows());
|
||||||
|
|
||||||
wgpu::ComputePipelineDescriptor step2PipelineDesc;
|
wgpu::ComputePipelineDescriptor step2PipelineDesc;
|
||||||
step2PipelineDesc.compute.entryPoint = "main";
|
step2PipelineDesc.compute.entryPoint = "main";
|
||||||
step2PipelineDesc.compute.module = utils::CreateShaderModule(device, R"(
|
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 that copying whole 3D texture to a 2D array in one texture-to-texture-copy works.
|
||||||
TEST_P(CopyTests_T2T, Texture3DTo2DArrayFull) {
|
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 kWidth = 256;
|
||||||
constexpr uint32_t kHeight = 128;
|
constexpr uint32_t kHeight = 128;
|
||||||
constexpr uint32_t kDepth = 6u;
|
constexpr uint32_t kDepth = 6u;
|
||||||
@ -2307,6 +2310,9 @@ TEST_P(CopyTests_T2T, Texture3DAnd2DArraySubRegion) {
|
|||||||
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
// TODO(crbug.com/dawn/1216): Remove this suppression.
|
||||||
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia());
|
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 kWidth = 8;
|
||||||
constexpr uint32_t kHeight = 4;
|
constexpr uint32_t kHeight = 4;
|
||||||
constexpr uint32_t kDepth = 2u;
|
constexpr uint32_t kDepth = 2u;
|
||||||
|
@ -437,9 +437,9 @@ TEST_P(DepthCopyTests, FromDepthAspect) {
|
|||||||
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
|
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
|
||||||
(IsOpenGL() || IsOpenGLES()));
|
(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.
|
// when using Tint/GLSL.
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES() && IsNvidia());
|
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES());
|
||||||
|
|
||||||
constexpr uint32_t kWidth = 4;
|
constexpr uint32_t kWidth = 4;
|
||||||
constexpr uint32_t kHeight = 4;
|
constexpr uint32_t kHeight = 4;
|
||||||
@ -480,9 +480,9 @@ TEST_P(DepthCopyTests, FromNonZeroMipDepthAspect) {
|
|||||||
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
|
DAWN_TEST_UNSUPPORTED_IF(GetParam().mTextureFormat == wgpu::TextureFormat::Depth16Unorm &&
|
||||||
(IsOpenGL() || IsOpenGLES()));
|
(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.
|
// when using Tint/GLSL.
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES() && IsNvidia());
|
DAWN_TEST_UNSUPPORTED_IF(IsOpenGLES());
|
||||||
|
|
||||||
wgpu::Texture depthTexture = CreateDepthTexture(
|
wgpu::Texture depthTexture = CreateDepthTexture(
|
||||||
9, 9, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc, 2);
|
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
|
// Test that sampling a depth/stencil texture at components 1, 2, and 3 yield 0, 0, and 1
|
||||||
// respectively
|
// respectively
|
||||||
TEST_P(DepthStencilSamplingTest, SampleExtraComponents) {
|
TEST_P(DepthStencilSamplingTest, SampleExtraComponents) {
|
||||||
// This test fails on SwANGLE (although it passes on other ANGLE backends).
|
// This test fails on ANGLE (both SwiftShader and D3D11).
|
||||||
DAWN_TEST_UNSUPPORTED_IF(IsANGLE());
|
DAWN_SUPPRESS_TEST_IF(IsANGLE());
|
||||||
|
|
||||||
wgpu::TextureFormat format = GetParam().mTextureFormat;
|
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 sampling both depth and stencil with a render/compute pipeline works.
|
||||||
TEST_P(DepthStencilSamplingTest, SampleDepthAndStencilRender) {
|
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::TextureFormat format = GetParam().mTextureFormat;
|
||||||
|
|
||||||
wgpu::SamplerDescriptor samplerDesc;
|
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
|
// TODO(crbug.com/dawn/1292): Some Intel drivers don't seem to like the
|
||||||
// (spurious but harmless) offset=64 that Tint/GLSL produces.
|
// (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.
|
// Create a buffer to hold the result sizes and create a bindgroup for it.
|
||||||
wgpu::BufferDescriptor bufferDesc;
|
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
|
// TODO(crbug.com/dawn/1292): Some Intel drivers don't seem to like the
|
||||||
// (spurious but harmless) offset=64 that Tint/GLSL produces.
|
// (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);
|
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 that WGSL built-in variable @sample_index can be used in fragment shaders.
|
||||||
TEST_P(ShaderTests, SampleIndex) {
|
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"(
|
wgpu::ShaderModule vsModule = utils::CreateShaderModule(device, R"(
|
||||||
@stage(vertex)
|
@stage(vertex)
|
||||||
fn main(@location(0) pos : vec4<f32>) -> @builtin(position) vec4<f32> {
|
fn main(@location(0) pos : vec4<f32>) -> @builtin(position) vec4<f32> {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user