85 Commits

Author SHA1 Message Date
Andy Leiserson
3758b08be9
Update cts to 20d2805 (#8201) 2025-09-10 20:50:25 -04:00
Andy Leiserson
4853133eaa Fix buffer initialization tracking for some buffer-texture copies (#8099)
Fixes #7947
Fixes #8021
Fixes #8097
2025-09-04 14:15:31 -07:00
Andy Leiserson
989d48ccb6 Tweak the bytes_per_row alignment check
Previously, the check was skipped if the copy was a single row, which is
not correct. The check should be made whenever bytes_per_row is
specified. It is permissible not to specify bytes_per_row if the copy is
a single row, but if it is specified, it must be aligned.

Also removes a redundant check of the `offset` alignment.

Since the offset and bytesPerRow alignment checks are not part of
"validating linear texture data", I chose to remove that instance of
them. These checks are now in `validate_texture_buffer_copy`, which
does not correspond 1:1 with the spec, but has a comment explaining how
it does correspond.
2025-09-04 14:15:31 -07:00
Andy Leiserson
9a8dbfb85c
Link image_copy depth/stencil dx12 failures to #8133 (#8148) 2025-08-25 13:43:17 -04:00
renovate[bot]
fdde05c7c0
Update cts digest to f164473 (#8143) 2025-08-25 04:22:26 -04:00
Andy Leiserson
57368b374f
Disable copy_ranges on dx12 due to intermittent failures (#8141) 2025-08-24 17:21:12 -04:00
Erich Gubler
dd73743e78
fix(wgsl-in): accept trailing comma in @blend_src(…) attr. (#8137) 2025-08-24 11:37:19 -07:00
Andy Leiserson
e7a99be058
[deno] Fix some problems in the handling of device limits (#8085)
* Correct error type when a requested limit is too high
* Clamp requested limits to the WebGPU defaults

Fixes #8084
2025-08-20 14:58:56 -07:00
renovate[bot]
21497a5322
chore(deps): update cts digest to 94f4ce1 (#8113)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-18 10:18:46 -07:00
Erich Gubler
495df81f14 fix(deno_webgpu): expose GPUUncapturedErrorEvent in bootstrap.js 2025-08-09 07:50:51 -04:00
Erich Gubler
1241bb0384 fix(deno_webgpu): expose GPUInternalError in bootstrap.js 2025-08-09 07:50:51 -04:00
Erich Gubler
b5385225ab
fix(core): validate effective buf. binding size is aligned to 4 (#8041)
The WebGPU spec. `createBindGroup` [states][spec-ref] (emphasis mine):

> Device timeline initialization steps:
>
> …
>
> 2. If any of the following conditions are unsatisfied generate a
>    validation error, invalidate _bindGroup_ and return.
>
>    …
>
>    For each `GPUBindGroupEntry` _bindingDescriptor_ in
>    _descriptor_.`entries`:
>
>    - …
>
>    - If the defined binding member for _layoutBinding_ is:
>
>      - …
>
>      - `buffer`
>
>        - …
>
>        - If _layoutBinding_.`buffer`.`type` is
>
>          - …
>
>          - `"storage"` or `"read-only-storage"`
>
>            - …
>
>            - effective buffer binding size(_bufferBinding_) is a multiple of 4.

[spec-ref]: https://www.w3.org/TR/webgpu/#dom-gpudevice-createbindgroup

We were not implementing this check of effective buffer binding size.
Check that it's a multiple of 4, including
`webgpu:api,validation,createBindGroup:buffer,effective_buffer_binding_size:*`
that this is now implemented as intended.
2025-08-06 16:19:08 +02:00
Andy Leiserson
910143d622
Check for more cases of unbalanced debug groups (#8048)
Fixes #3911
2025-08-05 16:52:50 +02:00
renovate[bot]
fe22fe2bf2
Update cts digest to a46bb82 (#8044)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-08-04 09:28:36 -07:00
Andy Leiserson
f25a79595a
Add a missing condition to viewport validation (#8040) 2025-08-01 01:10:15 -04:00
Andy Leiserson
36ae215e9c
Fix image copy regressions (#8022)
* Restore allowance of unaligned buffer-texture copies

This fixes a regression introduced by #7948. However, it makes it
possible to reach a panic in initialize_buffer_memory if the copy
requires initializing a region of memory that is not 4B aligned.

* Fix CopyT2T of multi-layer depth/stencil textures

* Adjust test list
2025-07-30 14:35:12 +02:00
Andy Leiserson
5089063048
Allow copying one layer of depth/stencil textures (#8020)
This fixes a regression introduced by #7935.
2025-07-29 10:18:26 -07:00
renovate[bot]
ec1ab06bff
Update cts digest to e110f5e (#8015)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-28 11:38:26 -04:00
SupaMaggie70Incorporated
074c0e7191
Add mesh shading api to wgpu & wgpu-core (#7345) 2025-07-24 20:58:56 -04:00
Andy Leiserson
1c43ac2c42
Additional validation of buffer-texture copies (#7948)
* Additional validation of buffer-texture copies

Fixes #7936, but leaves a TODO for #7947

* Skip tests failing on dx12

* Update comments and change unwrap_or to expect
2025-07-23 17:39:42 +02:00
Andy Leiserson
f5d8a0a06a
Additional validation of texture copies (#7935)
* Additional validation of texture copies

 * Copies must not overlap.
 * Copies of multisampled or depth/stencil formats must span
   the entire texture.
 * Move no-op for zero-size copies after parameter validation.

Closes #2951
Fixes #7844

* Fix issue with combined depth+stencil copy on dx12

* PR feedback
2025-07-22 15:17:47 +02:00
renovate[bot]
712ab8dec2
chore(deps): update cts digest to 7bdef02 (#7975)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-20 22:48:01 -04:00
Connor Fitzgerald
ff0de91ad7
Bump REPO_MSRV to 1.88 (#7960) 2025-07-17 13:00:40 -04:00
renovate[bot]
9872df55d7
Update cts digest to 6e9d87b (#7941)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-14 02:50:23 -04:00
Andy Leiserson
c868142709
Validate vertex and index buffer alignment (#7929) 2025-07-11 14:43:03 -07:00
renovate[bot]
5b2c8406bf
chore(deps): update cts digest to 18fcd81 (#7923)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-10 18:57:33 -04:00
Erich Gubler
166c2ea2aa
fix(core): check query set index before other validation (#7908) 2025-07-10 19:04:37 +00:00
Andy Leiserson
9b966bf8a3 Fix for destroyed resource errors 2025-07-10 09:52:20 -07:00
Andy Leiserson
468632f207 Restore plumbing of implicit remainder-of-buffer size to backends 2025-07-10 09:52:20 -07:00
renovate[bot]
e5b03ffa1d
chore(deps): update cts digest to 223e1bf (#7888)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Andy Leiserson <aleiserson@mozilla.com>
2025-07-09 15:34:42 -04:00
Andy Leiserson
3d0fe3a003 Check the math for buffer-texture copies 2025-07-08 12:11:56 -07:00
Andy Leiserson
b695317a9b
Rg11b10ufloat should be resolvable when it is renderable (#7878) 2025-07-03 17:51:48 -04:00
Andy Leiserson
86e6b1835b Tolerate destruction of textures used in immediate queue operations prior to submit 2025-06-30 10:29:50 -07:00
Andy Leiserson
26ca28e13c Use env_logger in cts_runner 2025-06-30 10:29:50 -07:00
Andy Leiserson
768d5f4879
[metal] Increase MAX_COMMAND_BUFFERS (#7858) 2025-06-27 14:18:40 -04:00
Andy Leiserson
201b2fba76
[deno] Don't report support for native-only features (#7813) 2025-06-27 10:05:13 -07:00
Andy Leiserson
7722c341e0 Defer destroyed resource errors until cmdbuf submission 2025-06-26 15:39:53 -07:00
Andy Leiserson
41badaedfb Update tests and changelog for deferred error reporting 2025-06-26 15:39:53 -07:00
Jamie Nicol
111a95b822 [cts_runner] Add texture2d<f32> textureSampleBaseClampToEdge() shader execution tests to CTS test list 2025-06-17 14:27:18 -07:00
Jamie Nicol
a5f328613d [cts_runner] Run some textureSample CTS shader execution tests
Limit to the `sampled_1d_coords` subtests for now as otherwise the tests
take a very long time to execute, and there are also some failures with
certain texture formats that are used in higher dimensions.
2025-06-17 20:20:25 +01:00
Jamie Nicol
5f8d408fb8 [deno_webgpu] Add stub GPUExternalTexture implementation
This doesn't do anything yet, but unblocks running some CTS tests.
2025-06-17 20:20:25 +01:00
Andy Leiserson
afa0f71736
[deno] Fix dropping of command encoders/buffers, and an enum typo (#7808)
Fixes #7797
2025-06-16 10:50:19 -07:00
Erich Gubler
f96ac55aa4
fix(naga): don't panic on f16s in pipeline constants (#7801) 2025-06-13 10:41:19 -07:00
Andy Leiserson
82fa8e2a94 [naga] Remove non-essential override references via compaction
Adds a mode to compaction that removes unused functions, global
variables, and named types and overrides. This mode is used
everywhere except the compaction at the end of lowering, where
it is important to preserve unused items for type checking and
other validation of the module.

Pruning all but the active entry point and then compacting makes
`process_overrides` tolerant of missing values for overrides that are
not used by the active entry point.

Fixes #5885
2025-06-12 14:22:18 +09:00
Erich Gubler
db3c35db90 fix(naga): properly impl. auto. type conv. for select 2025-06-11 21:55:02 +09:00
Andy Leiserson
e9af205c71
[deno] Implement ShaderModule.getCompilationInfo (#7736) 2025-06-11 03:49:39 -04:00
Andy Leiserson
1194833a74
[deno] Make QuerySet.destroy a no-op for now (#7758)
Implementing it is tracked by #6495. In the mean time it is okay for it
to be a no-op. `destroy` just recovers the resources earlier than garbage
collection might, doing nothing is not a leak.
2025-06-09 10:22:42 -07:00
Andy Leiserson
233a25c1e5
Update to the latest CTS; run it on all platforms and on all PRs (#7752) 2025-06-05 22:04:45 -04:00
Andy Leiserson
f34dfd90e0
[naga] Allow unreachable statements (#7718)
Allow unreachable statements after return/break/continue/discard.

Fixes #7536
2025-05-28 15:46:49 +00:00
Andy Leiserson
3cca5f8cfd
Make the copy_buffer_to_buffer size parameter optional (#7659)
* Make wgpu-core's copy_buffer_to_buffer `size` parameter optional

* Make the copy size optional in more places

* Fix for webgpu backend

* [deno_webgpu] Support additional copyBufferToBuffer signatures

* Add changelog entry

* Add copyBufferToBuffer tests to CTS test list

(This doesn't actually enable the tests for the new overloads, because
of a different error reporting issue that affects many CTS tests
including these. But if you run the tests for the new overloads
manually, before and after the fix, you can see that the behavior has
changed.)

* Reproducible formula for vendoring modified webgpu-sys

Commit the updated vendor command in all the files for consistency.
2025-05-28 17:21:19 +02:00