D3D12: Enable `SharedBufferMemoryFromWindowsHandle` on all UMA This patch enables `SharedBufferMemoryFromWindowsHandle` on all UMA so that we can test this feature on non-cache-coherent UMA. This patch also fixes a bug in `CanUseCopyResource()`. When a buffer is created from shared buffer memory backed by a Windows file mapping handle, `InitializeAsExternalBuffer()` sets `mAllocatedSize` to the wgpu buffer descriptor size, while the underlying D3D12 resource is always the full shared heap allocation. When a small shared-memory buffer and a small device buffer had matching `GetAllocatedSize()` values, `CopyResource` was selected in `CanUseCopyResource()` even though the two D3D12 resources had different widths, triggering a D3D12 validation error: "Source and Destination buffer resource must have the same size/width.". This patch fixes the above issue by comparing the actual D3D12 resource widths `GetDesc().Width` instead of `GetAllocatedSize()`. This patch also uses `utils::SystemHandle` instead of raw `HANDLE` in the tests to ensure we never leak any `HANDLE`s in the tests. Bug: 386255678 Change-Id: I78a9a07c00de4de6e5a1a69dfa6538d6473ea224 Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/326495 Commit-Queue: Shao, Jiawei <jiawei.shao@intel.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.