Update perf test shutdown to wait for all operations. When tearing down the Dawn perf tests we're seeing some racing which appears to terminate the tests on the bots, there is no logging output when this happens, just the test fails to teardown. It seems that there maybe a race between GPU commands and test tear down. Specifically: 1. UniformBufferUpdatePref tests do MapAsync on a bunch of buffers, the callback for those map asyncs uses the `this` pointer to set some information 2. The test "completes" while the MapAsync messages are in progress 3. The test harness waits for its iteration counter, based on queue submission. That iteration counter can complete before the map async. 4. The test harness exits the test is torn down and the fixture for the `this` pointer is destroyed. 5. the MapAsync finishes, tries to access this and then dies. This is a hypothesis, I haven't been able to reproduce the test locally where it crashes. This CL changes the waiting for a specific iteration count to a `WaitForAllOperations` call instead. This seems, when trying to run the tests on the perf bot in the try jobs, to make the flake go away over a number of runs. Change-Id: I808a915973eabeb3568b4490ce808c5649543876 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/295355 Reviewed-by: Kai Ninomiya <kainino@chromium.org> Reviewed-by: Loko Kung <lokokung@google.com> Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Dawn is an open-source and cross-platform implementation of the WebGPU standard. More precisely it implements webgpu.h that is a one-to-one mapping with the WebGPU IDL. Dawn is meant to be integrated as part of a larger system and is the underlying implementation of WebGPU in Chromium.
Dawn provides several WebGPU building blocks:
webgpu.h version that Dawn implements.webgpu.h.Helpful links:
Developer documentation:
User documentation: (TODO, figure out what overlaps with the webgpu.h docs)
BSD 3-Clause License, please see LICENSE.
This is not an officially supported Google product.