commit | 168d54a050758eb88e25757111b850bb1e97ed90 | [log] [tgz] |
---|---|---|
author | Antonio Maiorano <amaiorano@google.com> | Thu Jun 19 11:27:58 2025 -0700 |
committer | Dawn LUCI CQ <dawn-scoped@luci-project-accounts.iam.gserviceaccount.com> | Thu Jun 19 11:27:58 2025 -0700 |
tree | 2bf7ee929f68ad9d9a0f6151c0fe236b547f3cdf | |
parent | ea65cb32ca9e29ddf3779262d669fdc8d846ab71 [diff] |
d3d12: Add BlockCount and TexelCount typed integers - Add new typed integers TexelCount and BlockCount, along with strongly typed versions of TexelOrigin3D, TexelExtent3D, and TexelBlockInfo. - Modify TextureCopySubresource, the return value from the TextureCopySplitter API, to use these new strong types. - Update TextureCopySplitter implementation to convert input args to strong types and use them. - Update CopySplitTests to use strong types. - Update CopySplitTests to also tests the relaxed versions of TextureCopySplitter API (these were completely untested). - Fixed a bug in Compute3DTextureCopySubresourceWithRelaxedRowPitchAndOffset when setting `copyInfo1->bufferSize`, which was found by using strong types. - Fixed a bug in CopySplitTests BaseBufferSpecs which when computing bytesPerRow. - Added SCOPED_TRACE to CopySplitTests so that test failures can actually be debugged, since each test actually performs multiple subtests. A few things worth noting: - TexelCount and BlockCount are uint64_t, not uint32_t, because as typed integers, they do not participate in type promotion to uint64_t, which was being relied on for computing buffer offsets and such. - There are multiple type conversions between Origin3D/Extent3D/TexelBlockInfo and their strongly typed counterparts. Future CLs will remove many of these, and should eventually only occur in one place, probably post-validation. Bug: 424536624 Change-Id: I1be5fd2fa2ee8faa6a0cbc0aa51b9ab7e2b3693b Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/247374 Reviewed-by: Corentin Wallez <cwallez@chromium.org> Commit-Queue: Antonio Maiorano <amaiorano@google.com>
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.