[dawn][wire] Ensure that Devices on the Server always call Destroy.
- Because the wire server creates and manages callback information
for all Devices, we need to ensure that all Devices' callbacks
are fired before the server goes away. Otherwise, if the server
is deleted, and somehow there is an outstanding reference to the
backing native Device, the callbacks can happen and reference
freed memory.
- Updates Wire testing infrastructure to:
1) Use a NiceMock for the ProcTable to avoid overly strict tests
that end up adding a lot implementation detail expectations.
2) Add expecatations that successfully created Devices on the
server should call Destroy to ensure that their callbacks are
all flushed.
3) Remove some tech-debt/unused members and functions after the
change.
Bug: 491518608
Change-Id: I136f7c94ee7e2d79b5b04796bf850a990300aba4
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/297136
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
Commit-Queue: Loko Kung <lokokung@google.com>
Reviewed-by: Corentin Wallez <cwallez@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.