Deprecate fences.

The are replaced by Queue::OnSubmittedWorkDone. Only Queue::CreateFence
is deprecated since all other fence-related calls require a fence to
work.

Also ports a number of uses of fences in test harness to use
Queue::OnSubmittedWorkDone instead.

Bug: chromium:1177476

Change-Id: I479415f72b08158a3484013e00db8facd11e6f33
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42660
Auto-Submit: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Brandon Jones <bajones@chromium.org>
Reviewed-by: Austin Eng <enga@chromium.org>
Reviewed-by: Brandon Jones <bajones@chromium.org>
This commit is contained in:
Corentin Wallez
2021-02-25 21:47:15 +00:00
committed by Commit Bot service account
parent 7124cc4e5d
commit 4165c1cd9c
11 changed files with 97 additions and 70 deletions

View File

@@ -65,10 +65,6 @@ namespace {
return sOriginalDeviceCreateSwapChain(device, surface, &desc);
}
void CommandsCompleteCallback(WGPUFenceCompletionStatus status, void* userdata) {
sCommandsComplete = true;
}
} // namespace
int DawnWireServerFuzzer::Initialize(int* argc, char*** argv) {
@@ -163,10 +159,8 @@ int DawnWireServerFuzzer::Run(const uint8_t* data,
// Wait for all previous commands before destroying the server.
// TODO(enga): Improve this when we improve/finalize how processing events happens.
{
wgpu::Queue queue = device.GetQueue();
wgpu::Fence fence = queue.CreateFence();
queue.Signal(fence, 1u);
fence.OnCompletion(1u, CommandsCompleteCallback, 0);
device.GetQueue().OnSubmittedWorkDone(
0u, [](WGPUQueueWorkDoneStatus, void*) { sCommandsComplete = true; }, nullptr);
while (!sCommandsComplete) {
device.Tick();
utils::USleep(100);