Skip to content

Commit

Permalink
chore: release 22.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ErichDonGubler committed Jul 18, 2024
1 parent 9a0adef commit 6a1432c
Show file tree
Hide file tree
Showing 10 changed files with 64 additions and 41 deletions.
25 changes: 24 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,27 @@ Bottom level categories:
- Hal
-->

## Unreleased
## 22.0.0 (2024-07-17)

### Overview

### Our first major version release!

For the first time ever, WGPU is being released with a major version (i.e., 22.* instead of 0.22.*)! Maintainership has decided to fully adhere to [Semantic Versioning](https://semver.org/)'s recommendations for versioning production software. According to [SemVer 2.0.0's Q&A about when to use 1.0.0 versions (and beyond)](https://semver.org/spec/v2.0.0.html#how-do-i-know-when-to-release-100):

> ### How do I know when to release 1.0.0?
>
> If your software is being used in production, it should probably already be 1.0.0. If you have a stable API on which users have come to depend, you should be 1.0.0. If you’re worrying a lot about backward compatibility, you should probably already be 1.0.0.
It is a well-known fact that WGPU has been used for applications and platforms already in production for years, at this point. We are often concerned with tracking breaking changes, and affecting these consumers' ability to ship. By releasing our first major version, we publicly acknowledge that this is the case. We encourage other projects in the Rust ecosystem to follow suit.

Note that while we start to use the major version number, WGPU is _not_ "going stable", as many Rust projects do. We anticipate many breaking changes before we fully comply with the WebGPU spec., which we expect to take a small number of years.

### Overview

A major ([pun intended](#our-first-major-version-release)) theme of this release is incremental improvement. Among the typically large set of bug fixes, new features, and other adjustments to WGPU by the many contributors listed below, @wumpf and @teoxoy have merged a series of many simplifications to WGPU's internals and, in one case, to the render and compute pass recording APIs. Many of these change WGPU to use atomically reference-counted resource tracking (i.e., `Arc<…>`), rather than using IDs to manage the lifetimes of platform-specific graphics resources in a registry of separate reference counts. This has led us to diagnose and fix many long-standing bugs, and net some neat performance improvements on the order of 40% or more of some workloads.

While the above is exciting, we acknowledge already finding and fixing some (easy-to-fix) regressions from the above work. If you migrate to WGPU 22 and encounter such bugs, please engage us in the issue tracker right away!

### Major Changes

Expand All @@ -46,6 +66,7 @@ Bottom level categories:
`wgpu::RenderPass` & `wgpu::ComputePass` recording methods (e.g. `wgpu::RenderPass:set_render_pipeline`) no longer impose a lifetime constraint to objects passed to a pass (like pipelines/buffers/bindgroups/query-sets etc.).

This means the following pattern works now as expected:

```rust
let mut pipelines: Vec<wgpu::RenderPipeline> = ...;
// ...
Expand Down Expand Up @@ -79,6 +100,7 @@ By @wumpf in [#5569](https://github.com/gfx-rs/wgpu/pull/5569), [#5575](https://
Wgpu now supports querying [shader compilation info](https://www.w3.org/TR/webgpu/#dom-gpushadermodule-getcompilationinfo).

This allows you to get more structured information about compilation errors, warnings and info:

```rust
...
let lighting_shader = ctx.device.create_shader_module(include_wgsl!("lighting.wgsl"));
Expand Down Expand Up @@ -143,6 +165,7 @@ to pass a compatible surface when targeting WebGL2, having `enumerate_adapters()
By @teoxoy in [#5901](https://github.com/gfx-rs/wgpu/pull/5901)

### New features

#### General

- Added `as_hal` for `Buffer` to access wgpu created buffers form wgpu-hal. By @JasondeWolff in [#5724](https://github.com/gfx-rs/wgpu/pull/5724)
Expand Down
28 changes: 14 additions & 14 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

22 changes: 11 additions & 11 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -47,27 +47,27 @@ keywords = ["graphics"]
license = "MIT OR Apache-2.0"
homepage = "https://wgpu.rs/"
repository = "https://github.com/gfx-rs/wgpu"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]

[workspace.dependencies.wgc]
package = "wgpu-core"
path = "./wgpu-core"
version = "0.20.0"
version = "22.0.0"

[workspace.dependencies.wgt]
package = "wgpu-types"
path = "./wgpu-types"
version = "0.20.0"
version = "22.0.0"

[workspace.dependencies.hal]
package = "wgpu-hal"
path = "./wgpu-hal"
version = "0.20.0"
version = "22.0.0"

[workspace.dependencies.naga]
path = "./naga"
version = "0.20.0"
version = "22.0.0"

[workspace.dependencies]
anyhow = "1.0.86"
Expand Down Expand Up @@ -125,12 +125,12 @@ static_assertions = "1.1.0"
strum = { version = "0.25.0", features = ["derive"] }
tracy-client = "0.17"
thiserror = "1"
wgpu = { version = "0.20.0", path = "./wgpu", default-features = false }
wgpu-core = { version = "0.20.0", path = "./wgpu-core" }
wgpu = { version = "22.0.0", path = "./wgpu", default-features = false }
wgpu-core = { version = "22.0.0", path = "./wgpu-core" }
wgpu-example = { version = "0.20.0", path = "./examples/common" }
wgpu-macros = { version = "0.20.0", path = "./wgpu-macros" }
wgpu-test = { version = "0.20.0", path = "./tests" }
wgpu-types = { version = "0.20.0", path = "./wgpu-types" }
wgpu-macros = { version = "22.0.0", path = "./wgpu-macros" }
wgpu-test = { version = "22.0.0", path = "./tests" }
wgpu-types = { version = "22.0.0", path = "./wgpu-types" }
winit = { version = "0.29", features = ["android-native-activity"] }

# Metal dependencies
Expand All @@ -151,7 +151,7 @@ gpu-allocator = { version = "0.26", default-features = false, features = [
"d3d12",
"public-winapi",
] }
d3d12 = { version = "0.20.0", path = "./d3d12/" }
d3d12 = { version = "22.0.0", path = "./d3d12/" }
range-alloc = "0.1"
winapi = "0.3"
hassle-rs = "0.11.0"
Expand Down
2 changes: 1 addition & 1 deletion d3d12/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "d3d12"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
description = "Low level D3D12 API wrapper"
repository = "https://github.com/gfx-rs/wgpu/tree/trunk/d3d12"
Expand Down
4 changes: 2 additions & 2 deletions naga-cli/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "naga-cli"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "Shader translation command line tool"
Expand All @@ -25,7 +25,7 @@ argh = "0.1.5"
anyhow.workspace = true

[dependencies.naga]
version = "0.20.0"
version = "22.0.0"
path = "../naga"
features = [
"compact",
Expand Down
2 changes: 1 addition & 1 deletion naga/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "naga"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "Shader translation infrastructure"
Expand Down
2 changes: 1 addition & 1 deletion naga/fuzz/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ libfuzzer-sys = "0.4"

[target.'cfg(not(any(target_arch = "wasm32", target_os = "ios")))'.dependencies.naga]
path = ".."
version = "0.20.0"
version = "22.0.0"
features = ["arbitrary", "spv-in", "wgsl-in", "glsl-in"]

[[bin]]
Expand Down
8 changes: 4 additions & 4 deletions wgpu-core/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "wgpu-core"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "WebGPU core logic on wgpu-hal"
Expand Down Expand Up @@ -123,17 +123,17 @@ thiserror = "1"

[dependencies.naga]
path = "../naga"
version = "0.20.0"
version = "22.0.0"

[dependencies.wgt]
package = "wgpu-types"
path = "../wgpu-types"
version = "0.20.0"
version = "22.0.0"

[dependencies.hal]
package = "wgpu-hal"
path = "../wgpu-hal"
version = "0.20.0"
version = "22.0.0"
default-features = false

[build-dependencies]
Expand Down
10 changes: 5 additions & 5 deletions wgpu-hal/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "wgpu-hal"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "WebGPU hardware abstraction layer"
Expand Down Expand Up @@ -125,7 +125,7 @@ glow = { version = "0.13.1", optional = true }
[dependencies.wgt]
package = "wgpu-types"
path = "../wgpu-types"
version = "0.20.0"
version = "22.0.0"

[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
# backend: Vulkan
Expand Down Expand Up @@ -161,7 +161,7 @@ winapi = { version = "0.3", features = [
"winuser",
"dcomp",
] }
d3d12 = { path = "../d3d12/", version = "0.20.0", optional = true, features = [
d3d12 = { path = "../d3d12/", version = "22.0.0", optional = true, features = [
"libloading",
] }

Expand Down Expand Up @@ -192,15 +192,15 @@ ndk-sys = { version = "0.5.0", optional = true }

[dependencies.naga]
path = "../naga"
version = "0.20.0"
version = "22.0.0"

[build-dependencies]
cfg_aliases.workspace = true

# DEV dependencies
[dev-dependencies.naga]
path = "../naga"
version = "0.20.0"
version = "22.0.0"
features = ["wgsl-in"]

[dev-dependencies]
Expand Down
2 changes: 1 addition & 1 deletion wgpu-types/Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "wgpu-types"
version = "0.20.0"
version = "22.0.0"
authors = ["gfx-rs developers"]
edition = "2021"
description = "WebGPU types"
Expand Down

0 comments on commit 6a1432c

Please sign in to comment.