wgpu breaking changes

cargo

17 curated breaking changes across major versions of wgpu. Use this as a migration checklist before bumping dependencies.

17
changes
Breaking changes by transition
  • v28.0.1 \u2192 v29.0.0breaking

    `new_with_display_handle`

  • v28.0.1 \u2192 v29.0.0breaking

    `new_with_display_handle_from_env`

  • v28.0.1 \u2192 v29.0.0breaking

    `new_without_display_handle`

  • v28.0.1 \u2192 v29.0.0breaking

    `new_without_display_handle_from_env` If you are using `winit`, this can be populated using `EventLoop::owned_display_handle`. ```diff

  • v28.0.1 \u2192 v29.0.0breaking

    InstanceDescriptor::default();

  • v27.0.4 \u2192 v28.0.0breaking

    pub fn enumerate_adapters(&self, backends: Backends) -> Vec<Adapter> {

  • v27.0.4 \u2192 v28.0.0breaking

    pub fn enumerate_adapters(&self, backends: Backends) -> impl Future<Output = Vec<Adapter>> { ``` This yields two benefits:

  • v27.0.4 \u2192 v28.0.0breaking

    This method is now implemented on non-native using the standard `Adapter::request_adapter(…)`, making `enumerate_adapters` a portable surface. This was previously a nontrivial pain point when an application wanted to do some of its own filtering of adapters.

  • v27.0.4 \u2192 v28.0.0breaking

    This method can now be implemented in custom backends. By @R-Cramer4 in [#8230](https://github.com/gfx-rs/wgpu/pull/8230)

  • v26.0.4 \u2192 v27.0.0breaking

    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).

  • v26.0.4 \u2192 v27.0.0breaking

    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).

  • v26.0.4 \u2192 v27.0.0breaking

    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).

  • v26.0.4 \u2192 v27.0.0breaking

    naga implement OpImageGather and OpImageDrefGather operations when ingesting SPIR-V. By @hasenbanck in [8280](https://github.com/gfx-rs/wgpu/pull/8280).

  • v22.1.0 \u2192 v23.0.0breaking

    Call `flush_mapped_ranges` when unmapping write-mapped buffers. By @teoxoy in [#6089](https://github.com/gfx-rs/wgpu/pull/6089).

  • v22.1.0 \u2192 v23.0.0breaking

    When mapping buffers for reading, mark buffers as initialized only when they have `MAP_WRITE` usage. By @teoxoy in [#6178](https://github.com/gfx-rs/wgpu/pull/6178).

  • v22.1.0 \u2192 v23.0.0breaking

    Add a separate pipeline constants error. By @teoxoy in [#6094](https://github.com/gfx-rs/wgpu/pull/6094).

  • v22.1.0 \u2192 v23.0.0breaking

    Ensure safety of indirect dispatch by injecting a compute shader that validates the content of the indirect buffer. By @teoxoy in [#5714](https://github.com/gfx-rs/wgpu/pull/5714).

API access

Get this data programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/breaking/cargo/wgpu
wgpu breaking changes — Cargo migration guide | DepScope