Skip to content

Commit 4dbc32f

Browse files
committed
Merge from trunk
2 parents 6d8b30a + 482a983 commit 4dbc32f

File tree

222 files changed

+10593
-6828
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

222 files changed

+10593
-6828
lines changed

.deny.toml

Lines changed: 5 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,10 @@ multiple-versions = "deny"
33
skip-tree = [
44
{ name = "windows-sys", version = "0.45" },
55
{ name = "winit", version = "0.29" },
6-
{ name = "rustc_version", version = "0.2.3" },
7-
{ name = "miniz_oxide", version = "0.7.4" },
6+
{ name = "rustc-hash", version = "1.1.0" },
87

98
# introduced by Deno, to be investigated
10-
{ name = "strum_macros", version = "0.25.3" },
119
{ name = "petgraph", version = "0.6.5" },
12-
{ name = "base64-simd", version = "0.7.0" },
13-
{ name = "bit-set", version = "0.5.3" },
14-
{ name = "bit-vec", version = "0.6.3" },
15-
{ name = "capacity_builder", version = "0.1.3" },
1610
]
1711
skip = [
1812
# Flume uses an old version
@@ -21,6 +15,9 @@ skip = [
2115
# Deno uses an old version
2216
{ name = "which", version = "6.0.3" },
2317

18+
# Winit uses an old version
19+
{ name = "windows-sys", version = "0.52.0" },
20+
2421
# Loom uses a new windows version
2522
{ name = "windows", version = "0.61.1" },
2623
{ name = "windows-core", version = "0.61.2" },
@@ -29,16 +26,10 @@ skip = [
2926
{ name = "windows-result", version = "0.3.4" },
3027
{ name = "windows-strings", version = "0.4.2" },
3128

32-
# cargo-metadata uses old version. Only used for infrastructure.
33-
{ name = "toml", version = "0.8.23" },
34-
{ name = "ordered-float", version = "2.10.1" },
3529
# bindgen (used by deno) uses old version
3630
{ name = "itertools", version = "0.13.0" },
37-
# Strum uses an old version
38-
{ name = "heck", version = "0.4.0" },
3931
# Deno uses an old version
4032
{ name = "bincode", version = "1.3.3" },
41-
{ name = "strum", version = "0.25.0" },
4233
]
4334
wildcards = "deny"
4435
allow-wildcard-paths = true
@@ -49,10 +40,6 @@ ignore = [
4940
# It's a dependency of `metal` (which is to be replaced with `objc2-metal`), and a
5041
# transitive dependency of `deno`. https://github.com/gfx-rs/wgpu/issues/7873
5142
"RUSTSEC-2024-0436",
52-
# `adler` crate is no longer maintained https://rustsec.org/advisories/RUSTSEC-2025-0056
53-
# It's a dependency of `miniz_oxide` 0.7.4, and a transitive dependency of `deno`.
54-
# https://github.com/gfx-rs/wgpu/issues/7961
55-
"RUSTSEC-2025-0056",
5643
]
5744

5845
[licenses]
@@ -66,7 +53,6 @@ allow = [
6653
"MPL-2.0",
6754
"MIT",
6855
"MIT-0",
69-
"Unicode-DFS-2016",
7056
"Unicode-3.0",
7157
"Zlib",
7258
]
@@ -81,4 +67,4 @@ unknown-git = "deny"
8167
required-git-spec = "rev"
8268

8369
[sources.allow-org]
84-
github = ["gfx-rs"]
70+
github = []

.github/workflows/ci.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -691,7 +691,7 @@ jobs:
691691
run: taplo format --check --diff
692692

693693
- name: Check for typos
694-
uses: crate-ci/[email protected].2
694+
uses: crate-ci/[email protected].3
695695

696696
check-cts-runner:
697697
# runtime is normally 2 minutes
@@ -746,6 +746,7 @@ jobs:
746746
with:
747747
command: check advisories
748748
arguments: --all-features --workspace
749+
command-arguments: -Dwarnings -Aunmatched-organization
749750
rust-version: ${{ env.REPO_MSRV }}
750751

751752
cargo-deny-check-rest:
@@ -763,4 +764,5 @@ jobs:
763764
with:
764765
command: check bans licenses sources
765766
arguments: --all-features --workspace
767+
command-arguments: -Dwarnings -Aunmatched-organization
766768
rust-version: ${{ env.REPO_MSRV }}

.github/workflows/shaders.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ jobs:
6767
6868
naga-validate-macos:
6969
name: "Validate: MSL"
70-
runs-on: macos-14
70+
runs-on: macos-15
7171
steps:
7272
- uses: actions/checkout@v5
7373

CHANGELOG.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@ Bottom level categories:
4040

4141
## Unreleased
4242

43+
## v27.0.0 (2025-10-01)
44+
4345
### Major Changes
4446

4547
#### Deferred command buffer actions: `map_buffer_on_submit` and `on_submitted_work_done`
@@ -132,6 +134,7 @@ makes it significantly easier to store these types in structs, which is useful f
132134
```
133135

134136
By @sagudev in [#8046](https://github.com/gfx-rs/wgpu/pull/8046) and @cwfitzgerald in [#8070](https://github.com/gfx-rs/wgpu/pull/8161).
137+
135138
#### `EXPERIMENTAL_*` features now require unsafe code to enable
136139

137140
We want to be able to expose potentially experimental features to our users before we have ensured that they are fully sound to use.
@@ -158,13 +161,55 @@ by if the `Feature::MULTI_DRAW_INDIRECT_COUNT` feature is available on the devic
158161

159162
By @cwfitzgerald in [#8162](https://github.com/gfx-rs/wgpu/pull/8162).
160163

164+
165+
#### `wgpu::PollType::Wait` has now an optional timeout
166+
167+
We removed `wgpu::PollType::WaitForSubmissionIndex` and added fields to `wgpu::PollType::Wait` in order to express timeouts.
168+
169+
Before/after for `wgpu::PollType::Wait`:
170+
171+
```diff
172+
-device.poll(wgpu::PollType::Wait).unwrap();
173+
-device.poll(wgpu::PollType::wait_indefinitely()).unwrap();
174+
+device.poll(wgpu::PollType::Wait {
175+
+ submission_index: None, // Wait for most recent submission
176+
+ timeout: Some(std::time::Duration::from_secs(60)), // Previous behavior, but more likely you want `None` instead.
177+
+ })
178+
+ .unwrap();
179+
```
180+
181+
Before/after for `wgpu::PollType::WaitForSubmissionIndex`:
182+
183+
```diff
184+
-device.poll(wgpu::PollType::WaitForSubmissionIndex(index_to_wait_on))
185+
+device.poll(wgpu::PollType::Wait {
186+
+ submission_index: Some(index_to_wait_on),
187+
+ timeout: Some(std::time::Duration::from_secs(60)), // Previous behavior, but more likely you want `None` instead.
188+
+ })
189+
+ .unwrap();
190+
```
191+
192+
⚠️ Previously, both `wgpu::PollType::WaitForSubmissionIndex` and `wgpu::PollType::Wait` had a hard-coded timeout of 60 seconds.
193+
194+
195+
To wait indefinitely on the latest submission, you can also use the `wait_indefinitely` convenience function:
196+
```rust
197+
device.poll(wgpu::PollType::wait_indefinitely());
198+
```
199+
200+
By @wumpf in [#8282](https://github.com/gfx-rs/wgpu/pull/8282), [#8285](https://github.com/gfx-rs/wgpu/pull/8285)
201+
161202
### New Features
162203

163204
#### General
164205

165206
- Added mesh shader support to `wgpu`, with examples. Requires passthrough. By @SupaMaggie70Incorporated in [#7345](https://github.com/gfx-rs/wgpu/pull/7345).
166-
167207
- Added support for external textures based on WebGPU's [`GPUExternalTexture`](https://www.w3.org/TR/webgpu/#gpuexternaltexture). These allow shaders to transparently operate on potentially multiplanar source texture data in either RGB or YCbCr formats via WGSL's `texture_external` type. This is gated behind the `Features::EXTERNAL_TEXTURE` feature, which is currently only supported on DX12. By @jamienicol in [#4386](https://github.com/gfx-rs/wgpu/issues/4386).
208+
- `wgpu::Device::poll` can now specify a timeout via `wgpu::PollType::Wait`. By @wumpf in [#8282](https://github.com/gfx-rs/wgpu/pull/8282) & [#8285](https://github.com/gfx-rs/wgpu/pull/8285)
209+
210+
#### naga
211+
212+
- Expose `naga::front::wgsl::UnimplementedEnableExtension`. By @ErichDonGubler in [#8237](https://github.com/gfx-rs/wgpu/pull/8237).
168213

169214
### Changes
170215

@@ -200,6 +245,8 @@ By @cwfitzgerald in [#8162](https://github.com/gfx-rs/wgpu/pull/8162).
200245
- **BREAKING**: Previously the WGSL storage-texture format `rg11b10float` was incorrectly accepted and generated by naga, but now only accepts the the correct name `rg11b10ufloat` instead. By @ErikWDev in [#8219](https://github.com/gfx-rs/wgpu/pull/8219).
201246
- The [`source()`](https://doc.rust-lang.org/std/error/trait.Error.html#method.source) method of `ShaderError` no longer reports the error as its own source. By @andyleiserson in [#8258](https://github.com/gfx-rs/wgpu/pull/8258).
202247
- naga correctly ingests SPIR-V that use descriptor runtime indexing, which in turn is correctly converted into WGSLs binding array. By @hasenbanck in [8256](https://github.com/gfx-rs/wgpu/pull/8256).
248+
- naga correctly ingests SPIR-V that loads from multi-sampled textures, which in turn is correctly converted into WGSLs texture_multisampled_2d and load operations. By @hasenbanck in [8270](https://github.com/gfx-rs/wgpu/pull/8270).
249+
- naga implement OpImageGather and OpImageDrefGather operations when ingesting SPIR-V. By @hasenbanck in [8280](https://github.com/gfx-rs/wgpu/pull/8280).
203250

204251
#### DX12
205252

@@ -214,16 +261,22 @@ By @cwfitzgerald in [#8162](https://github.com/gfx-rs/wgpu/pull/8162).
214261

215262
#### DX12
216263

264+
- Create an event per wait to prevent 60 second hangs in certain multithreaded scenarios. By @Vecvec in [#8273](https://github.com/gfx-rs/wgpu/pull/8273).
217265
- Fixed a bug where access to matrices with 2 rows would not work in some cases. By @andyleiserson in [#7438](https://github.com/gfx-rs/wgpu/pull/7438).
218266

219267
##### EGL
220268

221269
- Fixed unwrap failed in context creation for some Android devices. By @uael in [#8024](https://github.com/gfx-rs/wgpu/pull/8024).
222270

271+
##### Vulkan
272+
273+
- Fixed wrong color format+space being reported versus what is hardcoded in `create_swapchain()`. By @MarijnS95 in [#8226](https://github.com/gfx-rs/wgpu/pull/8226).
274+
223275
#### naga
224276

225277
- [wgsl-in] Allow a trailing comma in `@blend_src(…)` attributes. By @ErichDonGubler in [#8137](https://github.com/gfx-rs/wgpu/pull/8137).
226278
- [wgsl-in] Allow a trailing comma in the list of `case` values inside a `switch`. By @reima in [#8165](https://github.com/gfx-rs/wgpu/pull/8165).
279+
- Escape, rather than strip, identifiers with Unicode. By @ErichDonGubler in [7995](https://github.com/gfx-rs/wgpu/pull/7995).
227280

228281
### Documentation
229282

0 commit comments

Comments
 (0)