| commit | 18f45d0373057395c9875b455035ef19ca6a655c | [log] [tgz] |
|---|---|---|
| author | Kai Ninomiya <kainino@chromium.org> | Tue Feb 18 13:35:25 2025 -0800 |
| committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Tue Feb 18 13:35:25 2025 -0800 |
| tree | 9dfaf0a2b2c47ed6b72361254dc1e21cd09ffae4 | |
| parent | 9ced21150942107e67919ed591b50935835ffd00 [diff] |
dawn::DynamicLib: Leak all DLLs on Windows ASan builds
Loading the same DLL more than once does not work on Windows ASan
builds. (I don't know if this is clang-only or all compilers, so I just
do it for all compilers.)
According to amaiorano:
> By never unloading DLLs, future loads will just increase process ref
> count for that DLL. I think the reason this fixes both issues:
>
> 1. DXC DLL is loaded the first time, then never unloaded, so future
> attempts to load it are no-ops (apart from ref count going up).
> 2. OpenGLES DLL is loaded the first time, which loads dependent DLLs
> like libc++, and never unloaded, so again, future attempts to load
> it are no-ops. Formerly, when OpenGLES DLL was unloaded, it would
> likely unload the libc++ DLL as well, which is why a future attempt
> to load resulted in an ASAN failure.
This issue can be reproduced dawn-try-win10-x64-intel-asan and
dawn-try-win10-x64-nvidia-asan, but using "Cq-Include-Trybots" doesn't
work ("the following builders are included but not defined in the LUCI
project"), so I've run them manually.
Fixed: 392929847
Bug: 347169607
Change-Id: I2c1181969693994b97d3a40bd76364307d2b1b43
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/223901
Reviewed-by: Antonio Maiorano <amaiorano@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.