Suppressions for Mali and Adreno Android devices

Adds suppressions for multiple failures in the end2end tests that are
showing up on Pixel devices I'm able to test. Majority (800+) affect
the devices with Qualcomm GPUs (Pixel 4, Pixel 2, etc) and 8 affect the
newer Tensor devices (Pixel 6).

Bug: dawn:1549
Bug: dawn:1550
Change-Id: Ia598734a1752e5f086e4e79c96a799156d84e448
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/103940
Kokoro: Kokoro <noreply+kokoro@google.com>
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
This commit is contained in:
Brandon Jones 2022-09-28 19:17:18 +00:00 committed by Dawn LUCI CQ
parent 3a329f2209
commit f4faccbbbd
19 changed files with 154 additions and 2 deletions

View File

@ -135,11 +135,13 @@ MaybeError Adapter::InitializeSupportedFeaturesImpl() {
mSupportedFeatures.EnableFeature(Feature::TextureCompressionBC); mSupportedFeatures.EnableFeature(Feature::TextureCompressionBC);
} }
if (mDeviceInfo.features.textureCompressionETC2 == VK_TRUE) { // TODO(dawn:1549) Fails on Qualcomm-based Android devices.
if (mDeviceInfo.features.textureCompressionETC2 == VK_TRUE && !IsAndroidQualcomm()) {
mSupportedFeatures.EnableFeature(Feature::TextureCompressionETC2); mSupportedFeatures.EnableFeature(Feature::TextureCompressionETC2);
} }
if (mDeviceInfo.features.textureCompressionASTC_LDR == VK_TRUE) { // TODO(dawn:1549) Fails on Qualcomm-based Android devices.
if (mDeviceInfo.features.textureCompressionASTC_LDR == VK_TRUE && !IsAndroidQualcomm()) {
mSupportedFeatures.EnableFeature(Feature::TextureCompressionASTC); mSupportedFeatures.EnableFeature(Feature::TextureCompressionASTC);
} }
@ -385,4 +387,13 @@ MaybeError Adapter::ValidateFeatureSupportedWithTogglesImpl(
return {}; return {};
} }
// Android devices with Qualcomm GPUs have a myriad of known issues. (dawn:1549)
bool Adapter::IsAndroidQualcomm() {
#if DAWN_PLATFORM_IS(ANDROID)
return gpu_info::IsQualcomm(GetVendorId());
#else
return false;
#endif
}
} // namespace dawn::native::vulkan } // namespace dawn::native::vulkan

View File

@ -41,6 +41,8 @@ class Adapter : public AdapterBase {
bool IsDepthStencilFormatSupported(VkFormat format); bool IsDepthStencilFormatSupported(VkFormat format);
bool IsAndroidQualcomm();
private: private:
MaybeError InitializeImpl() override; MaybeError InitializeImpl() override;
MaybeError InitializeSupportedFeaturesImpl() override; MaybeError InitializeSupportedFeaturesImpl() override;

View File

@ -627,6 +627,11 @@ void Device::ApplyDepthStencilFormatToggles() {
if (!supportsS8) { if (!supportsS8) {
ForceSetToggle(Toggle::VulkanUseS8, false); ForceSetToggle(Toggle::VulkanUseS8, false);
} }
// TODO(dawn:1549) Depth/Stencil reads are failing on Qualcomm-based Android devices.
if (ToBackend(GetAdapter())->IsAndroidQualcomm()) {
SetToggle(Toggle::DisableDepthStencilRead, true);
}
} }
void Device::ApplyUseZeroInitializeWorkgroupMemoryExtensionToggle() { void Device::ApplyUseZeroInitializeWorkgroupMemoryExtensionToggle() {

View File

@ -742,6 +742,14 @@ bool DawnTestBase::IsMacOS(int32_t majorVersion, int32_t minorVersion) const {
#endif #endif
} }
bool DawnTestBase::IsAndroid() const {
#if DAWN_PLATFORM_IS(ANDROID)
return true;
#else
return false;
#endif
}
bool DawnTestBase::UsesWire() const { bool DawnTestBase::UsesWire() const {
return gTestEnv->UsesWire(); return gTestEnv->UsesWire();
} }

View File

@ -240,6 +240,7 @@ class DawnTestBase {
bool IsWindows() const; bool IsWindows() const;
bool IsLinux() const; bool IsLinux() const;
bool IsMacOS(int32_t majorVersion = -1, int32_t minorVersion = -1) const; bool IsMacOS(int32_t majorVersion = -1, int32_t minorVersion = -1) const;
bool IsAndroid() const;
bool UsesWire() const; bool UsesWire() const;
bool IsBackendValidationEnabled() const; bool IsBackendValidationEnabled() const;

View File

@ -1029,6 +1029,9 @@ TEST_P(CopyTests_T2B, CopyOneRowWithDepth32Float) {
// depth. // depth.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read")); DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read"));
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr wgpu::TextureFormat kFormat = wgpu::TextureFormat::Depth32Float; constexpr wgpu::TextureFormat kFormat = wgpu::TextureFormat::Depth32Float;
constexpr uint32_t kPixelsPerRow = 4u; constexpr uint32_t kPixelsPerRow = 4u;

View File

@ -347,6 +347,9 @@ TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyNonRenderableNonZeroMipStenc
TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyDepth) { TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyDepth) {
DAWN_TEST_UNSUPPORTED_IF(!IsValidDepthCopyTextureFormat()); DAWN_TEST_UNSUPPORTED_IF(!IsValidDepthCopyTextureFormat());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr uint32_t kWidth = 4; constexpr uint32_t kWidth = 4;
constexpr uint32_t kHeight = 4; constexpr uint32_t kHeight = 4;
@ -367,6 +370,9 @@ TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyDepth) {
TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyNonZeroMipDepth) { TEST_P(DepthStencilCopyTests, T2TBothAspectsThenCopyNonZeroMipDepth) {
DAWN_TEST_UNSUPPORTED_IF(!IsValidDepthCopyTextureFormat()); DAWN_TEST_UNSUPPORTED_IF(!IsValidDepthCopyTextureFormat());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::Texture texture = CreateInitializeDepthStencilTextureAndCopyT2T( wgpu::Texture texture = CreateInitializeDepthStencilTextureAndCopyT2T(
0.1f, 0.3f, 1u, 3u, 8, 8, wgpu::TextureUsage::RenderAttachment, 1); 0.1f, 0.3f, 1u, 3u, 8, 8, wgpu::TextureUsage::RenderAttachment, 1);
@ -533,6 +539,9 @@ class DepthCopyTests : public DepthStencilCopyTests {
// Test copying the depth-only aspect into a buffer. // Test copying the depth-only aspect into a buffer.
TEST_P(DepthCopyTests, FromDepthAspect) { TEST_P(DepthCopyTests, FromDepthAspect) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr float kInitDepth = 0.2f; constexpr float kInitDepth = 0.2f;
constexpr uint32_t kBufferCopyOffset = 0; constexpr uint32_t kBufferCopyOffset = 0;
constexpr uint32_t kWidth = 4; constexpr uint32_t kWidth = 4;
@ -543,6 +552,9 @@ TEST_P(DepthCopyTests, FromDepthAspect) {
// Test copying the depth-only aspect into a buffer at a non-zero offset. // Test copying the depth-only aspect into a buffer at a non-zero offset.
TEST_P(DepthCopyTests, FromDepthAspectToBufferAtNonZeroOffset) { TEST_P(DepthCopyTests, FromDepthAspectToBufferAtNonZeroOffset) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr float kInitDepth = 0.2f; constexpr float kInitDepth = 0.2f;
constexpr uint32_t kWidth = 4; constexpr uint32_t kWidth = 4;
constexpr uint32_t kHeight = 4; constexpr uint32_t kHeight = 4;
@ -555,6 +567,9 @@ TEST_P(DepthCopyTests, FromDepthAspectToBufferAtNonZeroOffset) {
// Test copying the non-zero mip, depth-only aspect into a buffer. // Test copying the non-zero mip, depth-only aspect into a buffer.
TEST_P(DepthCopyTests, FromNonZeroMipDepthAspect) { TEST_P(DepthCopyTests, FromNonZeroMipDepthAspect) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr float kInitDepth = 0.2f; constexpr float kInitDepth = 0.2f;
constexpr uint32_t kBufferCopyOffset = 0; constexpr uint32_t kBufferCopyOffset = 0;
constexpr uint32_t kWidth = 9; constexpr uint32_t kWidth = 9;
@ -732,6 +747,9 @@ class StencilCopyTests : public DepthStencilCopyTests {
// TODO(crbug.com/dawn/1273): Fails on Win11 with D3D12 debug layer and full validation // TODO(crbug.com/dawn/1273): Fails on Win11 with D3D12 debug layer and full validation
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled()); DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
// Create a stencil texture // Create a stencil texture
constexpr uint32_t kWidth = 4; constexpr uint32_t kWidth = 4;
constexpr uint32_t kHeight = 4; constexpr uint32_t kHeight = 4;

View File

@ -70,6 +70,9 @@ class DepthStencilLoadOpTests : public DawnTestWithParams<DepthStencilLoadOpTest
// Also depends on glTextureView which is not supported on ES. // Also depends on glTextureView which is not supported on ES.
DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES()); DAWN_SUPPRESS_TEST_IF(IsOpenGL() || IsOpenGLES());
// TODO(dawn:1549) All DepthStencilLoadOp tests fail on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureDescriptor descriptor; wgpu::TextureDescriptor descriptor;
descriptor.size = {kRTSize, kRTSize}; descriptor.size = {kRTSize, kRTSize};
descriptor.format = GetParam().mFormat; descriptor.format = GetParam().mFormat;
@ -361,6 +364,9 @@ class DepthTextureClearTwiceTest : public DawnTestWithParams<DepthTextureClearTw
TEST_P(DepthTextureClearTwiceTest, ClearDepthAspectTwice) { TEST_P(DepthTextureClearTwiceTest, ClearDepthAspectTwice) {
DAWN_SUPPRESS_TEST_IF(!mIsFormatSupported); DAWN_SUPPRESS_TEST_IF(!mIsFormatSupported);
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr uint32_t kSize = 64; constexpr uint32_t kSize = 64;
constexpr uint32_t kLevelCount = 5; constexpr uint32_t kLevelCount = 5;

View File

@ -625,6 +625,9 @@ TEST_P(DepthStencilSamplingTest, SampleExtraComponents) {
// This test fails on ANGLE (both SwiftShader and D3D11). // This test fails on ANGLE (both SwiftShader and D3D11).
DAWN_SUPPRESS_TEST_IF(IsANGLE()); DAWN_SUPPRESS_TEST_IF(IsANGLE());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureFormat format = GetParam().mTextureFormat; wgpu::TextureFormat format = GetParam().mTextureFormat;
DoSamplingExtraStencilComponentsRenderTest(TestAspectAndSamplerType::StencilAsUint, format, DoSamplingExtraStencilComponentsRenderTest(TestAspectAndSamplerType::StencilAsUint, format,
@ -636,6 +639,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(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureFormat format = GetParam().mTextureFormat; wgpu::TextureFormat format = GetParam().mTextureFormat;
wgpu::SamplerDescriptor samplerDesc; wgpu::SamplerDescriptor samplerDesc;
@ -754,6 +760,9 @@ class DepthSamplingTest : public DepthStencilSamplingTest {};
// Test that sampling a depth texture with a render/compute pipeline works // Test that sampling a depth texture with a render/compute pipeline works
TEST_P(DepthSamplingTest, SampleDepthOnly) { TEST_P(DepthSamplingTest, SampleDepthOnly) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureFormat format = GetParam().mTextureFormat; wgpu::TextureFormat format = GetParam().mTextureFormat;
float tolerance = format == wgpu::TextureFormat::Depth16Unorm ? 0.001f : 0.0f; float tolerance = format == wgpu::TextureFormat::Depth16Unorm ? 0.001f : 0.0f;
@ -778,6 +787,9 @@ TEST_P(DepthSamplingTest, CompareFunctionsRender) {
// Initialization via renderPass loadOp doesn't work on Mac Intel. // Initialization via renderPass loadOp doesn't work on Mac Intel.
DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureFormat format = GetParam().mTextureFormat; wgpu::TextureFormat format = GetParam().mTextureFormat;
// Test does not account for precision issues when comparison testing Depth16Unorm. // Test does not account for precision issues when comparison testing Depth16Unorm.
DAWN_TEST_UNSUPPORTED_IF(format == wgpu::TextureFormat::Depth16Unorm); DAWN_TEST_UNSUPPORTED_IF(format == wgpu::TextureFormat::Depth16Unorm);
@ -800,6 +812,9 @@ TEST_P(StencilSamplingTest, SampleStencilOnly) {
// This test fails on SwANGLE (although it passes on other ANGLE backends). // This test fails on SwANGLE (although it passes on other ANGLE backends).
DAWN_TEST_UNSUPPORTED_IF(IsANGLE()); DAWN_TEST_UNSUPPORTED_IF(IsANGLE());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureFormat format = GetParam().mTextureFormat; wgpu::TextureFormat format = GetParam().mTextureFormat;
DoSamplingTest(TestAspectAndSamplerType::StencilAsUint, DoSamplingTest(TestAspectAndSamplerType::StencilAsUint,

View File

@ -308,6 +308,9 @@ TEST_P(DrawIndexedIndirectTest, ValidateMultipleDraws) {
// the offsets that Tint/GLSL produces. // the offsets that Tint/GLSL produces.
DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsLinux()); DAWN_SUPPRESS_TEST_IF(IsIntel() && IsOpenGL() && IsLinux());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
// It doesn't make sense to test invalid inputs when validation is disabled. // It doesn't make sense to test invalid inputs when validation is disabled.
DAWN_SUPPRESS_TEST_IF(HasToggleEnabled("skip_validation")); DAWN_SUPPRESS_TEST_IF(HasToggleEnabled("skip_validation"));

View File

@ -111,6 +111,9 @@ TEST_P(MaxLimitTests, MaxBufferBindingSize) {
// TODO(crbug.com/dawn/1217): Remove this suppression. // TODO(crbug.com/dawn/1217): Remove this suppression.
DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsNvidia()); DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsNvidia());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
for (wgpu::BufferUsage usage : {wgpu::BufferUsage::Storage, wgpu::BufferUsage::Uniform}) { for (wgpu::BufferUsage usage : {wgpu::BufferUsage::Storage, wgpu::BufferUsage::Uniform}) {
uint64_t maxBufferBindingSize; uint64_t maxBufferBindingSize;
std::string shader; std::string shader;

View File

@ -359,6 +359,9 @@ TEST_P(MultisampledRenderingTest, MultisampledRenderingWithDepthTest) {
// Test rendering into a multisampled color attachment and doing MSAA resolve in another render pass // Test rendering into a multisampled color attachment and doing MSAA resolve in another render pass
// works correctly. // works correctly.
TEST_P(MultisampledRenderingTest, ResolveInAnotherRenderPass) { TEST_P(MultisampledRenderingTest, ResolveInAnotherRenderPass) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr bool kTestDepth = false; constexpr bool kTestDepth = false;
wgpu::CommandEncoder commandEncoder = device.CreateCommandEncoder(); wgpu::CommandEncoder commandEncoder = device.CreateCommandEncoder();
wgpu::RenderPipeline pipeline = CreateRenderPipelineWithOneOutputForTest(kTestDepth); wgpu::RenderPipeline pipeline = CreateRenderPipelineWithOneOutputForTest(kTestDepth);
@ -395,6 +398,9 @@ TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargets) {
// TODO(dawn:462): Issue in the D3D12 validation layers. // TODO(dawn:462): Issue in the D3D12 validation layers.
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia() && IsBackendValidationEnabled()); DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsNvidia() && IsBackendValidationEnabled());
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
wgpu::TextureView multisampledColorView2 = wgpu::TextureView multisampledColorView2 =
CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView(); CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView();
wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1); wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1);
@ -433,6 +439,9 @@ TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargets) {
// Test doing MSAA resolve on one multisampled texture twice works correctly. // Test doing MSAA resolve on one multisampled texture twice works correctly.
TEST_P(MultisampledRenderingTest, ResolveOneMultisampledTextureTwice) { TEST_P(MultisampledRenderingTest, ResolveOneMultisampledTextureTwice) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr bool kTestDepth = false; constexpr bool kTestDepth = false;
wgpu::CommandEncoder commandEncoder = device.CreateCommandEncoder(); wgpu::CommandEncoder commandEncoder = device.CreateCommandEncoder();
wgpu::RenderPipeline pipeline = CreateRenderPipelineWithOneOutputForTest(kTestDepth); wgpu::RenderPipeline pipeline = CreateRenderPipelineWithOneOutputForTest(kTestDepth);
@ -511,6 +520,10 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DArrayTexture) {
// TODO(dawn:462): Issue in the D3D12 validation layers. // TODO(dawn:462): Issue in the D3D12 validation layers.
DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled()); DAWN_SUPPRESS_TEST_IF(IsD3D12() && IsBackendValidationEnabled());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid());
wgpu::TextureView multisampledColorView2 = wgpu::TextureView multisampledColorView2 =
CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView(); CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView();
@ -632,6 +645,9 @@ TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithSampleMas
// TODO(crbug.com/dawn/1462): Re-enable on Mac Intel 12.4. // TODO(crbug.com/dawn/1462): Re-enable on Mac Intel 12.4.
DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel() && (IsMacOS(12, 4) || IsMacOS(12, 5))); DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel() && (IsMacOS(12, 4) || IsMacOS(12, 5)));
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
wgpu::TextureView multisampledColorView2 = wgpu::TextureView multisampledColorView2 =
CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView(); CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView();
wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1); wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1);
@ -671,6 +687,9 @@ TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithSampleMas
// Test multisampled rendering with depth test works correctly with a non-default sample mask. // Test multisampled rendering with depth test works correctly with a non-default sample mask.
TEST_P(MultisampledRenderingTest, MultisampledRenderingWithDepthTestAndSampleMask) { TEST_P(MultisampledRenderingTest, MultisampledRenderingWithDepthTestAndSampleMask) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr bool kTestDepth = true; constexpr bool kTestDepth = true;
// The second sample is included in the first render pass and it's covered by the triangle. // The second sample is included in the first render pass and it's covered by the triangle.
constexpr uint32_t kSampleMaskGreen = kSecondSampleMaskBit; constexpr uint32_t kSampleMaskGreen = kSecondSampleMaskBit;
@ -785,6 +804,9 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DTextureWithSampleMaskAndShaderOut
// Test doing MSAA resolve into multiple resolve targets works correctly with a non-default // Test doing MSAA resolve into multiple resolve targets works correctly with a non-default
// shader-output mask. // shader-output mask.
TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithShaderOutputMask) { TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithShaderOutputMask) {
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
// TODO(crbug.com/dawn/673): Work around or enforce via validation that sample variables are not // TODO(crbug.com/dawn/673): Work around or enforce via validation that sample variables are not
// supported on some platforms. // supported on some platforms.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_sample_variables")); DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_sample_variables"));
@ -896,6 +918,9 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DTextureWithAlphaToCoverage) {
// alphaToCoverage. The alphaToCoverage mask is computed based on the alpha // alphaToCoverage. The alphaToCoverage mask is computed based on the alpha
// component of the first color render attachment. // component of the first color render attachment.
TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithAlphaToCoverage) { TEST_P(MultisampledRenderingTest, ResolveIntoMultipleResolveTargetsWithAlphaToCoverage) {
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
wgpu::TextureView multisampledColorView2 = wgpu::TextureView multisampledColorView2 =
CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView(); CreateTextureForRenderAttachment(kColorFormat, kSampleCount).CreateView();
wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1); wgpu::Texture resolveTexture2 = CreateTextureForRenderAttachment(kColorFormat, 1);
@ -952,6 +977,10 @@ TEST_P(MultisampledRenderingTest, MultisampledRenderingWithDepthTestAndAlphaToCo
// algorithm. // algorithm.
DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE()); DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid());
constexpr bool kTestDepth = true; constexpr bool kTestDepth = true;
constexpr uint32_t kSampleMask = 0xFFFFFFFF; constexpr uint32_t kSampleMask = 0xFFFFFFFF;
@ -1013,6 +1042,9 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DTextureWithAlphaToCoverageAndSamp
// algorithm. // algorithm.
DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE()); DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE());
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
// TODO(dawn:491): This doesn't work on Metal, because we're using both the shader-output // TODO(dawn:491): This doesn't work on Metal, because we're using both the shader-output
// mask (emulting the sampleMask from RenderPipeline) and alpha-to-coverage at the same // mask (emulting the sampleMask from RenderPipeline) and alpha-to-coverage at the same
// time. See the issue: https://github.com/gpuweb/gpuweb/issues/959. // time. See the issue: https://github.com/gpuweb/gpuweb/issues/959.
@ -1058,6 +1090,9 @@ TEST_P(MultisampledRenderingTest, ResolveInto2DTextureWithAlphaToCoverageAndRast
// algorithm. // algorithm.
DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE()); DAWN_SUPPRESS_TEST_IF(IsSwiftshader() || IsANGLE());
// TODO(dawn:1550) Fails on ARM-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsARM());
constexpr bool kTestDepth = false; constexpr bool kTestDepth = false;
constexpr float kMSAACoverage = 0.50f; constexpr float kMSAACoverage = 0.50f;
constexpr uint32_t kSampleMask = 0xFFFFFFFF; constexpr uint32_t kSampleMask = 0xFFFFFFFF;

View File

@ -750,6 +750,9 @@ TEST_P(TimestampQueryTests, TimestampOnRenderPass) {
// devices // devices
DAWN_TEST_UNSUPPORTED_IF(IsMacOS() && IsMetal() && IsApple()); DAWN_TEST_UNSUPPORTED_IF(IsMacOS() && IsMetal() && IsApple());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
constexpr uint32_t kQueryCount = 2; constexpr uint32_t kQueryCount = 2;
// Write timestamp with different query indexes // Write timestamp with different query indexes
@ -1032,6 +1035,9 @@ TEST_P(TimestampQueryTests, TimestampWritesOnRenderPassWithNoPipline) {
// the issue is fixed. // the issue is fixed.
DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsIntel()); DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsIntel());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::QuerySet querySet = CreateQuerySetForTimestamp(2); wgpu::QuerySet querySet = CreateQuerySetForTimestamp(2);
TestTimestampWritesOnRenderPass({{querySet, 0, wgpu::RenderPassTimestampLocation::Beginning}, TestTimestampWritesOnRenderPass({{querySet, 0, wgpu::RenderPassTimestampLocation::Beginning},
{querySet, 1, wgpu::RenderPassTimestampLocation::End}}, {querySet, 1, wgpu::RenderPassTimestampLocation::End}},
@ -1047,6 +1053,9 @@ TEST_P(TimestampQueryTests, TimestampWritesOnRenderPassWithOnlyVertexStage) {
// the issue is fixed. // the issue is fixed.
DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsIntel()); DAWN_SUPPRESS_TEST_IF(IsWindows() && IsVulkan() && IsIntel());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::QuerySet querySet = CreateQuerySetForTimestamp(2); wgpu::QuerySet querySet = CreateQuerySetForTimestamp(2);
TestTimestampWritesOnRenderPass({{querySet, 0, wgpu::RenderPassTimestampLocation::Beginning}, TestTimestampWritesOnRenderPass({{querySet, 0, wgpu::RenderPassTimestampLocation::Beginning},
{querySet, 1, wgpu::RenderPassTimestampLocation::End}}, {querySet, 1, wgpu::RenderPassTimestampLocation::End}},

View File

@ -207,6 +207,9 @@ class ReadOnlyDepthAttachmentTests : public ReadOnlyDepthStencilAttachmentTests
void SetUp() override { void SetUp() override {
ReadOnlyDepthStencilAttachmentTests::SetUp(); ReadOnlyDepthStencilAttachmentTests::SetUp();
DAWN_TEST_UNSUPPORTED_IF(!IsFormatSupported()); DAWN_TEST_UNSUPPORTED_IF(!IsFormatSupported());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
} }
}; };
@ -296,6 +299,9 @@ class ReadOnlyStencilAttachmentTests : public ReadOnlyDepthStencilAttachmentTest
}; };
TEST_P(ReadOnlyStencilAttachmentTests, SampleFromAttachment) { TEST_P(ReadOnlyStencilAttachmentTests, SampleFromAttachment) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::Texture colorTexture = wgpu::Texture colorTexture =
CreateTexture(wgpu::TextureFormat::RGBA8Unorm, CreateTexture(wgpu::TextureFormat::RGBA8Unorm,
wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc); wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc);
@ -320,6 +326,9 @@ TEST_P(ReadOnlyStencilAttachmentTests, SampleFromAttachment) {
} }
TEST_P(ReadOnlyStencilAttachmentTests, NotSampleFromAttachment) { TEST_P(ReadOnlyStencilAttachmentTests, NotSampleFromAttachment) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::Texture colorTexture = wgpu::Texture colorTexture =
CreateTexture(wgpu::TextureFormat::RGBA8Unorm, CreateTexture(wgpu::TextureFormat::RGBA8Unorm,
wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc); wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc);

View File

@ -156,6 +156,9 @@ TEST_P(SubresourceRenderAttachmentTest, DepthTexture) {
// depth. // depth.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read")); DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read"));
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
DoTest(Type::Depth); DoTest(Type::Depth);
} }

View File

@ -604,6 +604,9 @@ TEST_P(TextureZeroInitTest, IndependentDepthStencilLoadAfterDiscard) {
// on some Intel drivers. // on some Intel drivers.
DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureDescriptor depthStencilDescriptor = CreateTextureDescriptor( wgpu::TextureDescriptor depthStencilDescriptor = CreateTextureDescriptor(
1, 1, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc, 1, 1, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc,
kDepthStencilFormat); kDepthStencilFormat);
@ -767,6 +770,9 @@ TEST_P(TextureZeroInitTest, IndependentDepthStencilCopyAfterDiscard) {
// TODO(enga): Figure out why this fails on Metal Intel. // TODO(enga): Figure out why this fails on Metal Intel.
DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel()); DAWN_SUPPRESS_TEST_IF(IsMetal() && IsIntel());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
wgpu::TextureDescriptor depthStencilDescriptor = CreateTextureDescriptor( wgpu::TextureDescriptor depthStencilDescriptor = CreateTextureDescriptor(
1, 1, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc, 1, 1, wgpu::TextureUsage::RenderAttachment | wgpu::TextureUsage::CopySrc,
kDepthStencilFormat); kDepthStencilFormat);

View File

@ -718,6 +718,9 @@ TEST_P(VertexFormatTest, Float16x4) {
} }
TEST_P(VertexFormatTest, Float32) { TEST_P(VertexFormatTest, Float32) {
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
std::vector<float> vertexData = {1.3f, +0.0f, -0.0f}; std::vector<float> vertexData = {1.3f, +0.0f, -0.0f};
DoVertexFormatTest(wgpu::VertexFormat::Float32, vertexData, vertexData); DoVertexFormatTest(wgpu::VertexFormat::Float32, vertexData, vertexData);
@ -731,6 +734,9 @@ TEST_P(VertexFormatTest, Float32x2) {
// Fails on NVIDIA's Vulkan drivers on CQ but passes locally. // Fails on NVIDIA's Vulkan drivers on CQ but passes locally.
DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia()); DAWN_SUPPRESS_TEST_IF(IsVulkan() && IsNvidia());
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
std::vector<float> vertexData = {18.23f, -0.0f, +0.0f, +1.0f, 1.3f, -1.0f}; std::vector<float> vertexData = {18.23f, -0.0f, +0.0f, +1.0f, 1.3f, -1.0f};
DoVertexFormatTest(wgpu::VertexFormat::Float32x2, vertexData, vertexData); DoVertexFormatTest(wgpu::VertexFormat::Float32x2, vertexData, vertexData);

View File

@ -27,6 +27,9 @@ class VertexOnlyRenderPipelineTest : public DawnTest {
void SetUp() override { void SetUp() override {
DawnTest::SetUp(); DawnTest::SetUp();
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
vertexBuffer = vertexBuffer =
utils::CreateBufferFromData<float>(device, wgpu::BufferUsage::Vertex, utils::CreateBufferFromData<float>(device, wgpu::BufferUsage::Vertex,
{// The middle back line {// The middle back line

View File

@ -176,6 +176,9 @@ TEST_P(ViewportTest, DefaultViewportDepth) {
// depth. // depth.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read")); DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read"));
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
TestViewportDepth(0.0, 1.0, false); TestViewportDepth(0.0, 1.0, false);
} }
@ -185,6 +188,9 @@ TEST_P(ViewportTest, ViewportDepth) {
// depth. // depth.
DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read")); DAWN_TEST_UNSUPPORTED_IF(HasToggleEnabled("disable_depth_read"));
// TODO(dawn:1549) Fails on Qualcomm-based Android devices.
DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
TestViewportDepth(0.0, 0.5); TestViewportDepth(0.0, 0.5);
TestViewportDepth(0.5, 1.0); TestViewportDepth(0.5, 1.0);
} }