Avoid recursive lock with multisample workaround

By calling pass->End() instead of pass->APIEnd() in the workaround
we avoid the recursive lock, which should allow us to avoid asserts
on some platforms.

Also, I discovered that the workaround in question fixed one more
test on ARM, so I've updated the test suppression to take that
into account.

Bug: dawn:1949
Change-Id: I474e7c65687a7bc03255ad537ad226a47faaaffc
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/144260
Kokoro: Kokoro <noreply+kokoro@google.com>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
diff --git a/src/dawn/native/CommandEncoder.cpp b/src/dawn/native/CommandEncoder.cpp
index 456e715..dcfb4cb 100644
--- a/src/dawn/native/CommandEncoder.cpp
+++ b/src/dawn/native/CommandEncoder.cpp
@@ -1257,7 +1257,7 @@
 
                         // Begin and end an empty render pass to force the resolve.
                         Ref<RenderPassEncoder> encoder = this->BeginRenderPass(&resolvePass);
-                        encoder->APIEnd();
+                        encoder->End();
                     }
 
                     // If there were any other callbacks in the workaround stack, call the next one.
diff --git a/src/dawn/tests/end2end/MultisampledRenderingTests.cpp b/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
index 0a3da0c..4b8fe49 100644
--- a/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
+++ b/src/dawn/tests/end2end/MultisampledRenderingTests.cpp
@@ -1130,8 +1130,7 @@
 // Test multisampled rendering with depth test works correctly with alphaToCoverage.
 TEST_P(MultisampledRenderingTest, MultisampledRenderingWithDepthTestAndAlphaToCoverage) {
     // TODO(dawn:1549) Fails on Qualcomm-based Android devices.
-    // TODO(dawn:1550) Fails on ARM-based Android devices.
-    DAWN_SUPPRESS_TEST_IF(IsAndroid());
+    DAWN_SUPPRESS_TEST_IF(IsAndroid() && IsQualcomm());
 
     constexpr bool kTestDepth = true;
     constexpr uint32_t kSampleMask = 0xFFFFFFFF;