113 Commits

Author SHA1 Message Date
renovate[bot]
670940f457
chore(deps): update cts digest to cf8d393 (#8501)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-11 00:22:09 -05:00
Andy Leiserson
a2db631672
Fix clamping at minimal render extent (#8486)
This was a regression introduced by #8307.

For mipmapped multi-planar textures, requires that the size is a
multiple of a power of two determined by the mip level count, in lieu
of properly aligning the size of each mip level to an even
dimension. See #8491.

(The failure referred to by "fails due to missing validation" was
fixed before the regression, by #8402, but was not identified as fixed
and added to the test list at that time.)
2025-11-06 17:56:18 -08:00
Andy Leiserson
3443224e78
Correct STORAGE_READ_ONLY exclusivity (#8490)
Fixes #8485
2025-11-06 15:04:38 -08:00
Erich Gubler
e2e4651ecb fix(core): validate that buffer is unmapped in write_buffer calls 2025-11-05 16:12:58 -05:00
Erich Gubler
f47a8eb1d1 test(cts): write current expected outcomes for webgpu:api,validation,queue,buffer_mapped:* 2025-11-05 16:12:58 -05:00
renovate[bot]
abff8ae375
Update cts digest to 964a0b4 (#8465)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-11-03 16:04:27 -08:00
renovate[bot]
6ae3ee569f
chore(deps): update cts digest to 3f7ca40 (#8433)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-27 11:59:22 +01:00
Andy Leiserson
3ca6a1c0df Defer some bind group processing until draw/dispatch
This allows us to save some work when a bind group is replaced,
although WebGPU still requires us to fail a submission if any
resource in any bind group that was ever referenced during
encoding is destroyed.

Fixes #8399
2025-10-23 14:59:25 +02:00
Andy Leiserson
7f644452f0
Check for attachment overlap using textures, not views (#8402) 2025-10-22 17:37:38 +02:00
renovate[bot]
a2cde58ff7
chore(deps): update cts digest to 8f90672 (#8381)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-21 10:06:40 -07:00
Andy Leiserson
cb13fbe4a7
[cts_runner] Print uncaptured errors to stderr (#8263)
This is useful when running test snippets. Update READMEs including to
mention how to do that.
2025-10-15 16:13:04 -04:00
Erich Gubler
54ded60d8e fix(dx12): align tex. <-> buf. copies via intermediate buffer if !UnrestrictedBufferTextureCopyPitchSupported 2025-10-14 09:39:56 -04:00
Erich Gubler
53f3da3f1b test(cts): add …,image_copy:undefined_params:* with current failures 2025-10-14 09:39:56 -04:00
renovate[bot]
d15e6e6f5f
chore(deps): update cts digest to dd4ecea (#8337)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-13 07:18:57 -07:00
Teodor Tanasoaia
1072b87894
Fix stray comma in function signatures in Metal (#8311)
Fixes a regression introduced by #8265 where we were mistakenly writing a comma before the first buffer argument (if no other arguments were printed before it).
2025-10-06 18:59:45 +00:00
renovate[bot]
abc2dfab52
chore(deps): update cts digest to 9fe13c9 (#8305)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-10-06 09:00:33 -07:00
renovate[bot]
bc43a23e04
chore(deps): update cts digest to 5e7bd6e (#8275)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 11:43:27 -04:00
Erich Gubler
2b71b1f99d feat(deno): accept GPUTexture as GPUBindingResource 2025-09-26 17:51:35 -04:00
Erich Gubler
375095f789 feat(deno): accept GPUBuffer as GPUBindingResource 2025-09-26 17:51:35 -04:00
Teodor Tanasoaia
ce96254f4f
[msl] fix vertex pulling with a stride of 0 (#8265) 2025-09-26 13:37:37 -04:00
Erich Gubler
cac1bf998c test(cts): add …,vertex_state,correctness:array_stride_zero:*, expect fail on macOS 2025-09-25 17:56:12 -04:00
Andy Leiserson
7f30a8d66e [deno] Switch rustfmt to edition 2024 2025-09-25 16:35:05 -04:00
Andy Leiserson
b6b951d467 Update to deno 2.3.2
(cherry picked from denoland/deno#29166)

Co-authored-by: snek <snek@deno.com>
2025-09-25 16:35:05 -04:00
Kenta Moriuchi
99a6fdd803 [deno] move isFallbackAdapter from GPUAdapter to GPUAdapterInfo
Also fixes `Deno.privateCustomInspect`, which was defined as static
methods of the classes and was not working properly.

(cherry picked from denoland/deno#28650)
2025-09-25 16:35:05 -04:00
Sam
084431b548
[naga] Implement atan2 in const (#8222)
Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com>
2025-09-24 11:23:25 -07:00
renovate[bot]
ffd4e9fb53
chore(deps): update cts digest to 81bfec7 (#8253)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-23 13:37:29 -07:00
Teodor Tanasoaia
0b38e96379
[msl] vertex pulling: fix unpacking snorm16x2 & snorm16x4 (#8249) 2025-09-19 18:11:31 -04:00
renovate[bot]
023f124fa5
chore(deps): update cts digest to 7a9fcc3 (#8227)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-16 07:56:22 -04:00
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