Check the availability of free command allocator
When testing WebGPU support on Qualcomm, there is a little chance we couldn't get a free allocator. However, it's too hard to reproduce the issue locally. So we use DAWN_CHECK instead of DAWN_ASSERT to see how often we may hit this in the wild.
Bug: 442950558
Change-Id: Ib9636de25d7876d08edfff4b58d4f6270f4c1536
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/262254
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Yang Gu <ygu@microsoft.com>
Reviewed-by: Rafael Cintron <rafael.cintron@microsoft.com>
diff --git a/src/dawn/native/d3d12/QueueD3D12.cpp b/src/dawn/native/d3d12/QueueD3D12.cpp
index 7c5e60e..5c41cf8 100644
--- a/src/dawn/native/d3d12/QueueD3D12.cpp
+++ b/src/dawn/native/d3d12/QueueD3D12.cpp
@@ -237,7 +237,9 @@
DAWN_TRY(RecycleUnusedCommandLists());
}
- DAWN_ASSERT(mFreeAllocators.any());
+ // This is a release check to catch a potential issue where allocator recycling didn't seem to
+ // work correctly so we want to get crash reports if it happens again.
+ DAWN_CHECK(mFreeAllocators.any());
ID3D12Device* d3d12Device = ToBackend(GetDevice())->GetD3D12Device();
// Get the index of the first free allocator from the bitset