commit | dec0c62997bc037bc6a88be39a6939d5a479bf1b | [log] [tgz] |
---|---|---|
author | Antonio Maiorano <amaiorano@google.com> | Fri Feb 24 20:59:08 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Feb 24 20:59:08 2023 +0000 |
tree | 6a24f8cf2ff7e4b9e07be70243cdea9fc413b334 | |
parent | 66d487395d293c983bde13e14709df6eb2bb01e4 [diff] |
tint: optimize SymbolTable::New Avoid linearly searching for prefix_i. This becomes very slow when adding the same prefix many times. Instead, cache each prefix and the last index that was assigned, and start searching from there. Note that this locally speeds up MaxLimitTests.MaxBufferBindingSize on GL backends from about 10 minutes to a few seconds. This test creates a very large struct, and Tint's GLES backend runs the PadStructs transform, which produces a struct with 16384 members. Creating these members triggers the behaviour described above when creating names for each member. Also replaced std::unordered_maps with utils::Hashmap. Change-Id: I86678a049ac229ce617d500971e9c077ff5c10a1 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/121440 Reviewed-by: Ben Clayton <bclayton@google.com> Commit-Queue: Antonio Maiorano <amaiorano@google.com> Kokoro: Kokoro <noreply+kokoro@google.com>
Dawn is an open-source and cross-platform implementation of the work-in-progress 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)
(TODO)
Apache 2.0 Public License, please see LICENSE.
This is not an officially supported Google product.