commit | 2c8bea1f9e81b5d624bc97a3bfcbb349635156c3 | [log] [tgz] |
---|---|---|
author | Austin Eng <enga@chromium.org> | Sat Feb 11 00:00:12 2023 +0000 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Sat Feb 11 00:00:12 2023 +0000 |
tree | 78c8cfcb5a9bd0e4c2275811bd13fe8889f3156c | |
parent | 0bf516b14bf4cce2575c262b7578535473aac763 [diff] |
Add a toggle to keep Metal depth stencil textures initialized To avoid uninitialized reads of depth stencil data, where the Metal driver incorrectly binds/loads the wrong depth stencil subresource, always keep all depth stencil subresources initialized. This means that textures are initialized on creation, and StoreOp::Discard is never used - Store is used instead. Texture initialized state is still set as-if the Discard occured, so Dawn will try to zero-initialize the subresource if it is read from. In many cases, this will work correctly, and the application will read back 0, as expected. In some cases, Metal will bind the wrong subresource, and the previous contents will be read. This is wrong, but at least it is not uninitialized data. Bug: dawn:838 Change-Id: I3cc87073d52de60283e3b683bbee7809db803018 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/119344 Commit-Queue: Austin Eng <enga@chromium.org> Reviewed-by: Shrek Shao <shrekshao@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.