commit | e5cb77fb8dd3b6b0594107654dd60dae151af7f1 | [log] [tgz] |
---|---|---|
author | Kyle Charbonneau <kylechar@google.com> | Fri Nov 01 15:17:27 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Fri Nov 01 15:17:27 2024 +0000 |
tree | b5265ad2640b467e8bf4634ed85146b4246a1327 | |
parent | c080752826c2e13cc494bec564e1c67d65f870da [diff] |
Implement monolithic VkPipelineCache toggle Dawn/Vulkan was using a VkPipelineCache per unique pipeline previously. This hurts pipeline/shader compilation performance since many pipelines produce the same binary blobs. Add a VulkanMonolithicPipelineCache toggle that switches to using a single VkPipelineCache per wgpu::Device. The existing behaviour to serialize VkPipelineCache into BlobCache immediately after pipeline compilation is more problematic with a single VkPipelineCache since it can get quite large. With monolithic cache it will just mark that serialization is needed. PerformIdleWork() is added to dawn native device to trigger this serialization at a time of the embedders choosing, preferably when it's not going to hinder performance. Bug: 370343334 Change-Id: I92f826e98c57580d5ee24e895d4ded3920495d2d Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/209816 Commit-Queue: Kyle Charbonneau <kylechar@google.com> Reviewed-by: 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.