9805 Commits

Author SHA1 Message Date
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
Jamie Nicol
725549363b [vulkan] Use corresponding bind group layout entries when creating bind groups, rather than list of vk::DescriptorType
This is a refactoring of Vulkan BindGroupLayout and BindGroup creation
in preparation for implementing external texture support.

Currently when creating a BindGroupLayout the Vulkan backend creates a
list of the vk::DescriptorType for each entry, as well as the count, for
binding arrays. Then when creating the BindGroup, it iterates through
this list and does whatever it needs to do for each entry based on these
values.

In order to support external textures, we will have to create multiple
descriptors for each BindingType::ExternalTexture. This means we cannot
map each binding type to a single Vulkan descriptor type. Instead, store
the list of BindGroupLayoutEntries on the BindGroupLayout and use those
when creating the BindGroup, using the same "layout_and_entry_iter"
idiom used by other backends. In subsequent patches this will allow us
to create multiple descriptors for a single resource binding.
2025-09-24 17:55:35 +02: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
EriKWDev
3efd640178
naga: Correct spelling in wgsl parsing rg11b10float -> rg11b10ufloat (#8219) 2025-09-21 10:41:17 +00:00
Andie Bradley
f6005a16c8
Include FreeBSD in conditional compile attributes (#8246) 2025-09-20 22:46:46 -04:00
Teodor Tanasoaia
0b38e96379
[msl] vertex pulling: fix unpacking snorm16x2 & snorm16x4 (#8249) 2025-09-19 18:11:31 -04:00
Andy Leiserson
68199042ed
Remove unused stale copy of webgpu.idl (#8242) 2025-09-18 23:48:58 -04:00
Andy Leiserson
c7fd582f05
docs(README): Update statement on naga spec conformance (#8233) 2025-09-16 10:45:48 -04:00
Matthias Reitinger
b55c24cf27
[naga wgsl-in] Allow trailing comma in switch cases (#8165) 2025-09-16 07:58:23 -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
aee8cd1650
Lazy-load the dcomp library (#8216) 2025-09-15 11:48:28 -07:00
Andy Leiserson
04a3401638
Extract command encoding to free functions (#8210) 2025-09-11 15:15:33 -04:00