commit | 03dfd718c9be433d303250376f1e8c63fcced985 | [log] [tgz] |
---|---|---|
author | Le Hoang Quyen <lehoangquyen@chromium.org> | Mon Jul 01 17:42:13 2024 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Mon Jul 01 17:42:13 2024 +0000 |
tree | 0d7791126a07a07bada514662d316d10e175e16f | |
parent | eb249b37e3e8aba8c60efe1be0b09263944f6b9b [diff] |
Implement BufferMapExtendedUsages on D3D11 The new MappableBuffer supports mapping usage and any other usages. This is achieved by managing several copies of the buffer, each with its own ID3D11Buffer storage for specific usage. For example, a buffer that has MapWrite + Storage usage will have at least two copies: - One copy with D3D11_USAGE_DYNAMIC for mapping on CPU. - One copy with D3D11_USAGE_DEFAULT for writing on GPU. Internally this class will synchronize the content between the copies so that when it is mapped or used by GPU, the appropriate copy will have the up-to-date content. The synchronizations are done in a way that minimizes CPU stall as much as possible. Bug: 345471009 Change-Id: I78c51a2bed5adcbdb65d05b5fc0f41706a53d9d7 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/191980 Commit-Queue: Quyen Le <lehoangquyen@chromium.org> Reviewed-by: Corentin Wallez <cwallez@chromium.org> Reviewed-by: Austin Eng <enga@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.