diff --git a/src/dawn_native/metal/DeviceMTL.mm b/src/dawn_native/metal/DeviceMTL.mm index f91fd95279..c3d2fafb55 100644 --- a/src/dawn_native/metal/DeviceMTL.mm +++ b/src/dawn_native/metal/DeviceMTL.mm @@ -298,7 +298,12 @@ namespace dawn_native { namespace metal { while (GetCompletedCommandSerial() != mLastSubmittedSerial) { usleep(100); } - Tick(); + + // Artificially increase the serials so work that was pending knows it can complete. + mCompletedSerial++; + mLastSubmittedSerial++; + + DAWN_TRY(TickImpl()); return {}; } diff --git a/src/tests/end2end/DeviceLostTests.cpp b/src/tests/end2end/DeviceLostTests.cpp index b06377ce18..410a5c6990 100644 --- a/src/tests/end2end/DeviceLostTests.cpp +++ b/src/tests/end2end/DeviceLostTests.cpp @@ -471,4 +471,4 @@ TEST_P(DeviceLostTest, LoseForTestingOnce) { device.LoseForTesting(); } -DAWN_INSTANTIATE_TEST(DeviceLostTest, D3D12Backend(), VulkanBackend()); +DAWN_INSTANTIATE_TEST(DeviceLostTest, D3D12Backend(), MetalBackend(), VulkanBackend());