| commit | d4d10c202a398b7da51a8cbf665394abf573758f | [log] [tgz] |
|---|---|---|
| author | Le Hoang Quyen <lehoangquyen@chromium.org> | Mon Nov 03 19:15:34 2025 -0800 |
| committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Nov 03 19:15:34 2025 -0800 |
| tree | 0d1d127634206a49e65e1c9089ee3bb5c87c67a7 | |
| parent | ea099c37e2b9fec223cb95249fc7153c843d4921 [diff] |
D3D11: Cache shader objects from same shader blobs. Currently, Dawn only caches the shader *blob* (the compiled HLSL bytecode) but not the actual D3D11 shader *objects* (ID3D11VertexShader, ID3D11PixelShader, ID3D11ComputeShader). The creation of these shader objects from the blob can be a non-trivial operation, impacting performance. This change introduces caching for the D3D11 shader objects themselves. The caching mechanism uses the SHA3 hash of the shader blob as the key to store and retrieve the D3D11 shader objects. This allows for reuse when multiple pipelines use the same underlying shader blob, thereby reducing redundant object creation and improving performance. Bug: 439845637, chromium:40266176 Change-Id: I15e2b74b869d96ee890d38647405fc288f4d94e2 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/270014 Reviewed-by: Geoff Lang <geofflang@chromium.org> Commit-Queue: Quyen Le <lehoangquyen@chromium.org> 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.