9766 Commits

Author SHA1 Message Date
Erich Gubler
90702156af fix(namer): escape, rather than strip, non-ASCII ident. characters
Escape non-ASCII identifier characters with `write!(…, "u{:04x}", …)`,
surrounding with `_` as appropriate. This solves (1) a debugging issue
where stripped characters would otherwise be invisible, and (2) failure
to re-validate that stripped identifiers didn't start with an ASCII
digit.

I've confirmed that this fixes [bug
1978197](https://bugzilla.mozilla.org/show_bug.cgi?id=1978197) on the
Firefox side.
2025-10-01 08:50:37 -04:00
Andreas Reich
00ea850d79
Allow timeouting on poll (#8282) 2025-10-01 07:19:24 +00:00
Erich Gubler
06fc6f7345
feat(wgsl): recognize enable primitive-index; (#8237) 2025-09-30 22:02:10 +00:00
Marijn Suijten
d0bcb7e62d
CI: Disallow all warnings in cargo deny and prune unmatched skips (#8283)
The warnings right now all entail `unmatched-skip` /
`unmatched-skip-root` that have (likely) gotten stale since various
automated Renovate bumps where `Cargo.lock` changes don't require the
corresponding unmatched duplicate to be removed from `.deny.toml` again.

An exception has been made for `unmatched-organization` since we don't
always have a `git` dependency on a fork in `gfx-rs`, resulting in
a warning about that orga being in `sources.allow-org.github`.
2025-09-30 17:45:14 -04:00
Nils Hasenbanck
8c4aebc0c1
(Naga) Implement OpImageGather and OpImageDrefGather when ingesting SPIR-V (#8280) 2025-09-29 13:15:32 -04:00
Marijn Suijten
ea80c7dbc3
hal/vulkan: Accurately map all formats except fp16 to use the non-linear sRGB color space (#8226) 2025-09-29 11:50:10 -04:00
Nils Hasenbanck
8cb94db802
(Naga) Add support for Storage Image Multisample when ingesting SPIR-V (#8270) 2025-09-29 11:45:39 -04:00
Andy Leiserson
a01ffb7967
Fix unused warning in a specific feature config (#8271) 2025-09-29 11:44:05 -04: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
renovate[bot]
9c92a907e1
chore(deps): update crate-ci/typos action to v1.36.3 (#8276)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-29 11:43:13 -04:00
Vecvec
f1c876c875
Create a seperate event for each fence wait. (#8273)
* create an event per fence wait

* Use seperate event for each `wait_for_present_queue_idle` call.

* changelog
2025-09-29 11:38:33 -04:00
Andy Leiserson
61e5124eb9
[deno] Return undefined instead of null from WebGPU APIs (#8266)
See denoland/deno#29603
2025-09-26 20:10:09 -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
Teodor Tanasoaia
3375284f16
[D3D12] fix setting vertex buffer array stride if 0 (#8260) 2025-09-26 11:45:37 +00: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
Erich Gubler
83a0722eb6 test(cts): allow comma-separated backend list in fails-if(…) 2025-09-25 17:56:12 -04:00
Erich Gubler
5cbab61109 refactor(xtask/cts): move TEST_LINE_REGEX to single site of use 2025-09-25 17:56:12 -04:00
Erich Gubler
5e6c151f9f chore: remove advisories.ignore entry for RUSTSEC-2025-0056 2025-09-25 16:35:05 -04:00
Kenta Moriuchi
67f7a4ea3b [deno] add illegal constructor errors
(cherry-picked from denoland/deno#30500)
2025-09-25 16:35:05 -04:00
Andy Leiserson
492fb59648 Update to deno 2.4.5 2025-09-25 16:35:05 -04:00
cions
ad4f10f60f [deno] fix android build
(cherry-picked from denoland/deno#30360)
2025-09-25 16:35:05 -04:00
Andy Leiserson
7f30a8d66e [deno] Switch rustfmt to edition 2024 2025-09-25 16:35:05 -04:00
chirsz
eb3bed5f53 [deno] add resize method to UnsafeWindowSurface
(cherry-picked from denoland/deno#29254)
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
Andy Leiserson
3ebae1bf3b Update to deno 2.2.12 2025-09-25 16:35:05 -04:00
Leo Kettmeir
190050e296 [deno] add deviceStartCapture and deviceStopCapture
This is achieved by adding a new `Deno.webgpu` namespace which will be
used for non-spec functionality, which for now will be marked as
unstable

(cherry picked from denoland/deno#28192)
2025-09-25 16:35:05 -04:00
chirsz
48097412fc [deno] release current texture of surface after present
(cherry picked from denoland/deno#28691)
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
Andy Leiserson
e714cb0339 [deno] Format with Deno's rustfmt config 2025-09-25 16:35:05 -04:00
Erich Gubler
099a95ba64 chore: update min. req. for strum 0.27 → 0.27.1 2025-09-25 16:35:05 -04:00
Erich Gubler
5093585d5b chore: update min. req. for indexmap to 2.8 2025-09-25 16:35:05 -04:00
Erich Gubler
a6c71911a8 chore: update min. req. for tokio to 1.45.1 2025-09-25 16:35:05 -04:00
Erich Gubler
9aeb5a4079 chore: update min. req. for libc to 0.2.171 2025-09-25 16:35:05 -04:00
Erich Gubler
157134293c chore: ignore rustc-hash 1.1.0 in cargo-deny check for dupes 2025-09-25 16:35:05 -04:00
Erich Gubler
1f88dfa6e0 style: Cargo.toml: strip trailing whitespace 2025-09-25 16:35:05 -04:00
Erich Gubler
b3423dc6c4 chore: update min. req. for smallvec 0.13.1 → 0.14 2025-09-25 16:35:05 -04:00
Andy Leiserson
1967900565
Encode commands on finish (#8220)
Co-authored-by: Andreas Reich <r_andreas2@web.de>
2025-09-25 14:22:51 -04:00
Xiaopeng Li
990aef977e
Expose external memory of vulkan texture (#8257) 2025-09-25 08:27:54 -04:00
Nils Hasenbanck
2f7ebf1401
(Naga) Add support for Descriptor Runtime Indexing when ingesting SPIR-V (#8256) 2025-09-25 08:25:04 -04:00
Magnus
05cc6dca82
[hal/dx12] Mesh Shaders (#8110)
* Features and draw commands added

* Tried to implement the pipeline creation (completely untested)

* Fixed clippy issues

* Fixed something I think

* A little bit of work on the mesh shader example (currently doesn't work on dx12)

* Reached a new kind of error state

* Fixed an alignment issue

* DirectX 12 mesh shaders working :party:

* Removed stupid change and updated changelog

* Fixed typo

* Added backends option to example framework

* Removed silly no write fragment shader from tests to see if anything breaks

* Tried to make mesh shader tests run elsewhere too

* Removed printlns and checked that dx12 mesh shader tests run

* Documented very strange issue

* I'm so lost

* Fixed stupid typos

* Fixed all issues

* Removed unnecessary example stuff, updated tests

* Updated typos.toml

* Updated limits

* Apply suggestion from @cwfitzgerald

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>

* Apply suggestion from @cwfitzgerald

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>

* Removed supported backends, made example & tests always pass the filename to shader compilers

* Removed excessive bools in test params

* Added new tests to the list

* I'm a sinner for this one (unused import)

* Replaced random stuff with test params hashing

* Updated typos.toml

* Updated -Fo typo thing

* Actually fixed typo issue this time

* Update CHANGELOG.md

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>

* Update tests/tests/wgpu-gpu/mesh_shader/mod.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

* Update wgpu-hal/src/dx12/mod.rs

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>

* Addressed comments

* Lmao

---------

Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-25 03:24:56 +00:00
Andy Leiserson
1f10d0ce8a
[naga] Don't report shader errors as their own source (#8258) 2025-09-24 22:42:24 -04:00
renovate[bot]
4566e56677
chore(deps): update rust crate encase to 0.12 (#8228)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2025-09-24 22:18:05 +00:00
renovate[bot]
81f02f26f2
chore(deps): update rust crate ron to 0.11 (#8196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-09-24 17:47:32 -04:00
Jay McCarthy
6ef8e1f103
Expose raw handles (#8174)
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2025-09-24 21:16:47 +00:00
renovate[bot]
b2b76e6bfc
chore(deps): update rust crate hashbrown to 0.16 (#8194)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Connor Fitzgerald <connorwadefitzgerald@gmail.com>
2025-09-24 20:50:01 +00: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
Cai Bear
d2ee4b8be5
Fix #8151. (#8215) 2025-09-24 16:03:58 +00:00
Jamie Nicol
ba0b6b9b0e [vulkan, naga spv-out] Remap resource bindings
In order to support external textures, we must be able to map a single
external texture resource binding to multiple Vulkan descriptors. This
means we must be able to override the `Binding` and `DescriptorSet`
values for global variables when generating SPIR-V, rather than simply
passing through the group and binding values from Naga IR.

This patch extends the existing SPIR-V Naga backend's `BindingMap` to
contain a descriptor set and binding value in addition to the existing
array size. When creating BindGroupLayouts/BindGroups we use a
sequentially incrementing value for each entry's binding value,
continuing to just use the bind group index as the descriptor set
value.

The Naga backend looks up each resource in the map when emitting its
`Binding` and `DescriptorSet` decorations. If the entry cannot be
found in the map, it will either error or emit fake bindings based on
its configuration.
2025-09-24 17:55:35 +02:00