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;